Skip to content

feat(heroi): repo commands, image attach, and latest CLI models - #128

Merged
danielss-dev merged 3 commits into
mainfrom
developements/heroi-agentic-commands-images-models-9ac2
Sep 15, 2026
Merged

danielss-dev merged 3 commits into
mainfrom
developements/heroi-agentic-commands-images-models-9ac2

Conversation

@danielss-dev

@danielss-dev danielss-dev commented Sep 14, 2026

Copy link
Copy Markdown
Owner

DAN-70: make bundled Heroi usable as a repo-scoped coding-agent control plane without turning it into a second IDE.

Linear: https://linear.app/daniels-dev/issue/DAN-70/heroi-fuller-agentic-repo-commands-images-latest-models

Grounded against main @ 640a001.

Design (smallest diffs on existing IPC + DAN-61 UI)

Reuse HeroiAgentEvent.activity and the grouped Tool calls block (TurnToolCallsMessageMarkdownTurnFileChanges). Extend HeroiAgentRequest with optional images. Prefer live CLI slugs. Model-list probes keep temp_dir cwd; agent spawns keep request.path.

What landed

  1. Repo commands — Spawn cwd remains the open repository. Codex --cd, Cursor --workspace. Permission mapping:
    • Claude: Plan/read → --permission-mode plan; Build → acceptEdits; Full → --dangerously-skip-permissions
    • Codex: Plan/read → --sandbox read-only; Build → workspace-write; Full → bypass
    • Cursor: Plan/read → --mode plan. Build was a gap on main (build+build passed neither --force nor --mode plan). Cursor headless --print only proposes edits/commands without --force, so Build now passes --force (sandbox stays). Full adds --sandbox disabled.
      Command+output shows as Running a command in the DAN-61 tool group.
  2. Images — Paste/attach/drop → HeroiAgentRequest.images. Claude: stream-json image blocks. Codex: --image + temp paths. Cursor CLI has no --image; files stage under the repo .git/ and paths go in the prompt. Invalid types fail clearly; unknown --image CLI errors map to an explicit vision message.
  3. Models — Fable 5.1 is claude-fable-5-1 at CLI ≥ 2.1.257; Fable 5 stays at ≥ 2.1.169. Unknown CLI version still hides gated models (version_at_least(None)=false). Codex fallbacks remain gpt-5.6-sol / gpt-5.6-terra / gpt-5.4no Astra. Astra (gpt-6-astra) appears from live model/list or Cursor ACP only.

Out of scope: parallel worktrees ADE, browser/design mode, mobile companion, one-click PR ship.

Proof

  • pnpm --filter ./ui exec tsc --noEmit clean; pnpm --filter ./ui test 532 passed
  • cargo test -p strand-tauri heroi 27 passed (catalog gates, command/output, image plumbing, Cursor Build --force, Astra omitted from fallbacks)
  • DAN-61 turn order preserved

Native Tauri + signed-in CLI E2E was not available in this environment.

Open in Web Open in Cursor 

cursoragent and others added 2 commits September 14, 2026 14:21
Make Heroi a fuller agentic control plane for DAN-70: spawn repo
commands with cwd/permission mapping and command+output in the DAN-61
tool group, paste/attach vision images through Claude/Codex/Cursor, and
surface Claude Fable 5.1 (claude-fable-5-1) plus GPT-6 Astra
(gpt-6-astra) from live CLI catalogs.

Co-authored-by: Daniels <danielss-dev@users.noreply.github.com>
Keep gpt-6-astra out of Codex probe-failure fallbacks so older CLIs
degrade to Sol/Terra, and map image-flag rejections to an explicit
vision error instead of a generic CLI failure.

Co-authored-by: Daniels <danielss-dev@users.noreply.github.com>
@danielss-dev
danielss-dev marked this pull request as ready for review September 14, 2026 14:40
Cursor `--print` without `--force` only proposes edits. Map Build to
`--force` (keep sandbox), Full to `--force --sandbox disabled`, and send
Cursor images as workspace-staged prompt paths instead of a non-existent
`--image` flag. Keep `--workspace` on the repo path.

Co-authored-by: Daniels <danielss-dev@users.noreply.github.com>
@danielss-dev
danielss-dev merged commit 550e89d into main Sep 15, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants