feat(ui): ports, pids and ahead-counts on the surfaces that lacked them #107
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lz/agent-nexus!107
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/ports-and-probes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Seventh and last in the #96 stack — targets #106, not
main. Closes the remaining mock-fidelity gaps.Two facts folded into an exec that already runs
checkSessionHealthalready pays onedocker execper session per 10s tick for the claude walk. The pid is already in hand inside that loop, and the git ahead-count is a local command in the same shell — so both ride along. One exec, not three. I had previously argued against this on cost; I was pricing it as three separate execs, which was wrong.claude's version is per-container and only changes at boot, so it lives on worker health, probed once and keyed on container id (a recreate re-probes), evicted at
removeWorker.Verified against a real
/proc, not just parsed:"ahead 0" and "could not measure" are distinct at the wire level — level emits the literal line, unmeasurable emits nothing, which the parser turns into
null. The chip is absent when unknown; it never assertsahead 0for a branch nothing could count.The self-match negative control matters here, because this is the bug class that survived 1092 unit tests and needed dind to find. Pointed at its own shell's cwd:
Surfaces
claude <version> · pid <n>, and anahead Nchip beside the branch. The comment that said a live probe was impossible here is gone — #106 made it false.:5173 → host:41703with an approved/pending chip, Copy, and an inline approve for pending, keeping "Open ports panel →" as the last row. Copy button on the worktree path.connection_idthrough a small store, degrading to no chip when unknown rather than to a guess.Browser-verified end to end:
:3001 awaiting approval [approve]→ click →:3001 172.30.0.4:3001 approved [Copy], with the server agreeing (p2 :3001 approved host=3001).Gates
Not in this PR
Editable session name / workspace label. The spec asks for both and the mock shows inputs; they are deliberately deferred past the release candidate so the trial exercises what already exists. Note the recorded reason for deferring the label is now stale: it was that the label is baked into every running claude's
--remote-controlargv, but #100 replaced the argv-grep health probe with a CWD match, soremoteControlIdis used only at launch. Session-name rename is still genuinely hard — it is simultaneously the tmux window name, the git branch and the worktree directory.