Skip to content

feat(herdr): add DAG sidebar and agent management entry - #58

Merged
islee23520 merged 11 commits into
mainfrom
feat/herdr-dag-sidebar
Sep 9, 2026
Merged

islee23520 merged 11 commits into
mainfrom
feat/herdr-dag-sidebar

Conversation

@islee23520

@islee23520 islee23520 commented Sep 9, 2026 •

Copy link
Copy Markdown
Owner

Why

Herdr users need to keep the existing OMO DAG visible while switching between independently attached agent editor tabs, with one native entry for common attachment actions.

What Changed

The secondary sidebar discovers the existing parent-associated OMO plugin pane through verified same-host metadata and the official control bridge. A Herdr-only status-bar entry opens a native QuickPick for agent switching, attach, detach, refresh and Open DAG. Open DAG enables a disabled sidebar before revealing it. Agent tabs and shell mode remain separate; detach does not terminate remote agents. No dependency or alternate DAG renderer was added.

Adversarial corrections

  • Gate commands, discovery and API attach while endpoint forwarding is incomplete; failed forwarding never falls back to the old local host. Reject stale Retry/Choose Again and release old endpoint-bound editor controls.
  • Release sidebar DAG control when hidden; require visible document readiness on reveal, invalidate pending discovery, and preserve external-close suppression even when hide races a queued close.
  • Select the newest matching connected plugin state before its pane record; missing, malformed or unready newest pane never falls back to an older session.
  • Stage the official DAG bridge through the existing attach controller until a full replacement frame. No preframe input/partial cutover; apply latest resize at cutover and release cancelled staging once.
  • Match the producer's Node os.homedir semantics (including Windows USERPROFILE vs HOME) while preserving the explicit state-directory override.
  • Hide the shell-only location toggle in DAG mode through the real manifest condition.

Verification at bb351d1

  • Every original finding and all five fresh delta-review transitions have captured RED/GREEN proofs in existing test seams.
  • npm test: 218 passed; 1 pre-existing opt-in SSH test skipped.
  • npx tsc -p tsconfig.json --noEmit, npm run lint, npm run package: passed. Final source LSP checks clean.
  • npm run test:e2e: 2 passing in actual VS Code with a clean QA profile.
  • npm run test:e2e:herdr: 1 passing in actual VS Code (attach, first frame, input, resize, detach, dead target).
  • npm run package:vsix: 83 files, 7.04 MB, node-pty inclusion verified without --no-dependencies.
  • A repeated standard E2E initially saw the preceding Herdr suite's persisted QA setting and timed out; removing the owned test profile restored a clean passing run. No tests were skipped or weakened.
  • All QA-owned VS Code profiles/processes, Herdr scratch workspace and temporary directories removed. User panes, settings and the existing CuaDriver daemon preserved.

Remaining acceptance: NOT MERGE-READY

Native GUI acceptance at bb351d1 now passes. With explicit authorization to foreground only the isolated QA VS Code PID, the real DAG renders without a source change. Actual QA-owned OMO parents and installed plugin DAG panes exercised statusbar -> QuickPick -> agent editor -> Open DAG, switching, detach without agent termination, refresh, hide/reveal and a 1000x740 narrow window. Disabling Herdr produced one local shell and the visible marker PR58_NATIVE_SHELL_OK. All six QA-profile settings were originally absent, restored to absence, and the owned profile was removed; original frontmost Ghostty was restored. User settings and user agents were not reset or terminated. Final-build screenshots/action log and cleanup are recorded in the local native final report.

Fresh final validation: 218 unit tests pass (one existing SSH opt-in skip), tsc/lint pass, clean sequential standard E2E 2 passing and Herdr E2E 1 passing, VSIX 83 files/7.04MB with node-pty. Current-head CI has four successful checks. No source changes or new commits were needed for this native acceptance pass.

One fresh bounded delta reviewer found five additional transitions; these were independently reproduced and fixed in bb351d1. The final delta and evidence are returned to the coordinator for review, not represented as unconditional reviewer approval. This PR intentionally remains draft. No merge is authorized in this task.

@islee23520
islee23520 marked this pull request as ready for review September 9, 2026 11:53
@islee23520
islee23520 merged commit 5ea2eac into main Sep 9, 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.

1 participant