Skip to content

feat(ui): enable verified click-to-focus in status widgets - #342

Merged
boadij merged 5 commits into
mainfrom
feat/340-clickable-status-navigation
Oct 10, 2026
Merged

boadij merged 5 commits into
mainfrom
feat/340-clickable-status-navigation

Conversation

@boadij

@boadij boadij commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Add fullscreen status-widget click targets for visible Agent and supervision rows, verified ancestor breadcrumb segments, and the managed marker.
  • Carry exact session identities from rendering and revalidate ownership, assignment, role generation, and current Herdr placement at click time before focusing.
  • Keep Chief-visible nested Leads observational; clicking navigates but does not grant staff-control authority. Update the status-widget reference and add focused presentation and breadcrumb regression tests.

Fixes #340

Implementation notes

Navigation intents are internal presentation/runtime contracts. Hit regions are derived from visible rendered rows/segments; runtimes own authorization and call the existing Herdr focus path. Managed-Lead navigation resolves the current exact project assignment and current Manager rather than trusting a snapshot Manager ID. Stale, ambiguous, unavailable, paused/conflicted, or omitted targets fail closed.

External review follow-up

  • Make standalone Manager Lead rows clickable with fresh runtime verification.
  • Remove the cached widget-status freshness requirement from focusLead; the widget click boundary still requires fresh evidence and verifies the target identity before focusing.
  • Add runtime click regression coverage through the rendered widget callback, including successful focus of a valid target and rejection after identity changes. Coverage also exercises generation replacement during fresh verification, changed Agent ownership, assigned and standalone Manager Lead navigation, and Chief/Manager nested navigation.
  • Require Agent and supervision row click regions to have their identifying labels remain visible after truncation. Agent label visibility is measured from its rendered position so matching definition text cannot substitute for a clipped label; add a regression for that collision.
  • Require Manager work-row navigation labels to remain fully visible using the renderer's branch-width calculation. Add a width-16 regression for the active branch/status collision (└─ ● a… · active), which now produces no navigation intent.

Validation

  • npm test -- extension/presentation.test.ts: 92 passed.
  • npm run check: 936 passed, 1 skipped.
  • npm run validate: passed, including build and package audit; 936 passed, 1 skipped.
  • git diff --check: passed.
  • Live fullscreen Pi/Herdr smoke: not performed because there was no active Herdr session.
  • No dedicated managed-marker runtime test was performed.

Remaining risk

Real fullscreen click-through behavior remains unverified. Herdr focus does not provide an atomic compare-and-focus operation, so fresh identity verification cannot eliminate the small race before focus. The managed-marker behavior also lacks a dedicated runtime test.

AI-assisted implementation; reviewed before delivery.

Return the Chief header as a structured text row so supervision text projections and the status widget consume it consistently. Update the breadcrumb fixture to use structured segments.
Allow standalone Manager Lead rows to navigate using fresh runtime evidence without treating a stale cached widget projection as authoritative. Keep click-time freshness and identity checks at the widget boundary.\n\nAdd rendered-callback regression coverage for valid targets, changed identities, and generation, ownership, and assignment changes across Agent, Lead, Manager, and Chief navigation.
Measure Agent label visibility at its rendered position so a matching definition cannot keep a clipped label clickable. Apply the same visible-label requirement to supervision rows and cover narrow-row truncation.
Expose Manager work-row navigation only when the rendered branch is fully visible. Cover the width-16 `active` branch collision where truncated branch text could otherwise be mistaken for status metadata.
@boadij
boadij merged commit b7ca8fd into main Oct 10, 2026
7 checks passed
@boadij
boadij deleted the feat/340-clickable-status-navigation branch October 10, 2026 13:37
boadij pushed a commit that referenced this pull request Oct 10, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.24.0](v0.23.0...v0.24.0)
(2026-10-10)


### Features

* **ui:** enable verified click-to-focus in status widgets
([#342](#342))
([b7ca8fd](b7ca8fd))


### Fixes

* **supervision:** preserve messages until delivery and reconcile
Manager identity
([#339](#339))
([f9b955a](f9b955a))
* **ui:** repair managed Lead to Manager navigation
([#344](#344))
([d0777bc](d0777bc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

polish(ui): click status-tree rows to focus live panes

1 participant