• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / agterm / 29311043322 / 1
98%
master: 98%

Build:
DEFAULT BRANCH: master
Ran 14 Jul 2026 06:22AM UTC
Files 67
Run time 2s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Jul 2026 06:20AM UTC coverage: 97.838% (+0.005%) from 97.833%
29311043322.1

push

github

web-flow
fix: resolve agent-status pane from a stable surface token

fixes the agent-status pane misattribution in #199.

the agent-status hook forwarded the shell's baked `AGTERM_PANE` role (`left`/`right`/`scratch`), which goes stale after a split survivor is promoted into the main pane (`closePrimaryPane`) and the session is re-split. Both the promoted agent and the fresh helper are baked `right`, so the `!hasSplit` coercion in `setAgentIndicator` can't tell them apart and a blocked status is attributed to the wrong pane.

this bakes a stable per-surface token (`AGTERM_PANE_ID`, distinct from the mutable role) into the shell env, forwards it from the hook as `session status --pane-id`, and resolves it app-side against the session's live surfaces: `Session.paneRole(forToken:)` returns the role of the slot whose surface currently holds the matching token (`surface` = left, `splitSurface` = right, `scratchSurface` = scratch). A resolved token overrides the stale `--pane`; an absent or unknown token falls back to it, so shells spawned before the token existed keep their current behavior.

kept in sync across the whole control surface: the `Command`/args plus host-free dispatcher in `agtermCore`, the `ControlServer` arm, the `agtermctl session status --pane-id` CLI, the hook wrapper, unit tests (the resolver, protocol round-trip, dispatcher threading, env bake, wrapper forwarding, CLI mapping), an e2e that reads a pane's real `$AGTERM_PANE_ID` and proves both the override and the fallback, plus the bundled agent-skill, the website, and the control-api rule.

two related pre-existing issues surfaced in review, both out of scope here: the copy-based hook install means a pre-#199 setup needs a re-run of Help > Install Agent Status Hooks to pick up the token, and `agterm-codex-status.sh`'s watcher still reads the footer by stale role on the `session.text` path (the same blind spot, on the read side).

Fix #199

5250 of 5366 relevant lines covered (97.84%)

5602974.85 hits per line

Source Files on job 29311043322.1
  • Tree
  • List 67
  • Changed 7
  • Source Changed 7
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 29311043322
  • cb621ef8 on github
  • Prev Job for on master (#29296314367.1)
  • Next Job for on master (#29312475263.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc