Skip to content

feat: fleet presentation P2 — lineage tree, real-width panel, scroll separator, #108 card fixes - #110

Merged
rz1989s merged 13 commits into
mainfrom
feat/104-fleet-presentation-p2
Sep 4, 2026
Merged

rz1989s merged 13 commits into
mainfrom
feat/104-fleet-presentation-p2

Conversation

@rz1989s

@rz1989s rz1989s commented Sep 4, 2026

Copy link
Copy Markdown
Member

Summary

P2 of the fleet presentation redesign (#104) — the structure phase. Spec delta ratified with RECTOR 2026-09-03 (spec §5 P2); plan: docs/superpowers/plans/2026-09-03-fleet-presentation-p2.md.

Four workstreams, presentation layer only:

  1. t lineage tree (Runs + Fleet views) — pure layoutTree() helper in src/present/tree.ts (DFS, ├─└─ connectors from GLYPHS, orphan , cycle guard); Runs joins resumedFrom/forkedFrom provenance; Fleet joins workflow childRunIds with synthesized wf:<id> parent rows (visible-children only, honest run counts). Per-view toggle, default flat, flat mode byte-identical.
  2. Real-width panelrender(width) captures lastWidth (pi-tui contract); totals header right-aligns and full-message overlay wraps at the real terminal width (was hardcoded 80 at both sites).
  3. Live scroll separator — while a run streams AND the timeline is scrolled up, the footer becomes warning-themed ↑ scrolled · live paused · ↓ end to re-follow; re-follow is the existing scroll-to-bottom re-pin (zero key changes; Enter keeps Full-message).
  4. Run card frame width defects at wide terminals + dangling separator (T10 smoke findings) #108 card fixesrenderCall delegates to liveCardLines (one frame builder; kills the missing-bar + handoff-fragment defects); CARD_WIDTH = 72 clamp (identical geometry at any terminal); empty-segment suppression; defect-4 root-caused via real-pi smoke: finalLine passed the raw status to theme.fg, which throws Unknown theme color — fixed via statusToken routing, verified live (✓ general-purpose · 8s · 695K tok · $0.01 renders, no fallback line).

Verification

  • Gates: typecheck clean · 919/919 tests (8 new files/suites incl. tree, geometry, separator, byte-identity pins)
  • SDD: 8/8 tasks implemented + reviewed (reviewers 33/33 lifetime), fix round on Task 5 (ghost wf: rows), final whole-branch review: SHIP (0 Critical/Important)
  • Real-pi smoke at 140 cols (--no-extensions -e ./src/index.ts): card live/finalize, panel totals + tree toggles + scroll detach/re-follow + overlay wrap all verified; timer hygiene across bursts

Follow-ups (parked, not in this PR)

…re-follow

Brainstorm 2026-09-03 with RECTOR: Q1 folds #108 into P2 (verified: 2 of 4
defects share the renderCall hand-rolled-frame root cause, 1 already fixed);
Q2 picks nested-DFS tree shape (shared layoutTree helper, orphan ↳, cycle
guard); Q3 replaces 'enter to re-follow' — Enter is bound to Full-message,
re-follow stays the existing scroll-to-bottom re-pin, separator is a
live-only warning footer line. §5 P2 + §7 accept + §8 file map + §10 risk
updated.
layoutTree prefix helper → runs/fleet tree toggles → real-width panel
(lastWidth capture) → live scroll separator → #108 card unification.
Acceptance: journal-replay grouping + real-pi smoke (defect-4 time-box).
@rz1989s
rz1989s merged commit eec934c into main Sep 4, 2026
1 check passed
@rz1989s
rz1989s deleted the feat/104-fleet-presentation-p2 branch September 4, 2026 06:04
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