NS3: Narrow terminal UI and panel grammar #3

Closed
opened 2026-06-20 23:28:11 +00:00 by tmk241 · 1 comment
Owner

OUTCOME: The terminal client stays usable on narrow iPhone viewports and every auxiliary surface uses one transient panel model instead of desktop splits.

WHY NOW: PRODUCT.md makes narrow viewport awareness central; panels are the UI seam for files, git, diagnostics, LSP, jobs, terminal, and Pi.

AUTHORITY: PRODUCT.md; req: ui/001-002; req: session/003

SLICES:

  • #18 NS3 slice: Add panel stack state to the session protocol
  • #19 NS3 slice: Render editor-or-panel on narrow terminals
  • #20 NS3 slice: Build the shared list/filter/select panel primitive
  • #21 NS3 slice: Show diagnostics, errors, and job status consistently
  • #22 NS3 slice: Add SSH render responsiveness guardrails

MEMBERSHIP MECHANISM: Gitea fallback via this parent checklist plus explicit parent link in each child issue body.

AGENT AUTHORITY DEFAULTS:

  • Delivery authority: local-commit
  • Tracker authority: child issues may be commented and closed when their acceptance passes; this parent may be commented as children complete.
  • Handoff state: committed clean, tracker commented/closed for completed child slices.

BLOCKERS: none

PROOF: On a narrow terminal, users can open, filter, select, close, and return from panels without layout overflow or permanent split assumptions.

TEST STANDARD: Each child slice must carry its test weight: regular tests prove the intended payoff works, and adversarial tests cover realistic failure, boundary, or regression cases. Prefer protocol/headless/replay/fixture tests over brittle UI snapshots unless rendering behavior is the claim. See req: testing/001 through req: testing/004.

NON-GOALS: No desktop split-first UI, no full window manager, no theming system, no dashboard surface.

GOAL: Implement this Northstar by completing its linked child slices without leaving the product/refusal boundary in PRODUCT.md. Close this parent only when every child is closed and the PROOF above is demonstrated.

OUTCOME: The terminal client stays usable on narrow iPhone viewports and every auxiliary surface uses one transient panel model instead of desktop splits. WHY NOW: PRODUCT.md makes narrow viewport awareness central; panels are the UI seam for files, git, diagnostics, LSP, jobs, terminal, and Pi. AUTHORITY: PRODUCT.md; req: ui/001-002; req: session/003 SLICES: - [x] #18 NS3 slice: Add panel stack state to the session protocol - [x] #19 NS3 slice: Render editor-or-panel on narrow terminals - [x] #20 NS3 slice: Build the shared list/filter/select panel primitive - [x] #21 NS3 slice: Show diagnostics, errors, and job status consistently - [x] #22 NS3 slice: Add SSH render responsiveness guardrails MEMBERSHIP MECHANISM: Gitea fallback via this parent checklist plus explicit parent link in each child issue body. AGENT AUTHORITY DEFAULTS: - Delivery authority: local-commit - Tracker authority: child issues may be commented and closed when their acceptance passes; this parent may be commented as children complete. - Handoff state: committed clean, tracker commented/closed for completed child slices. BLOCKERS: none PROOF: On a narrow terminal, users can open, filter, select, close, and return from panels without layout overflow or permanent split assumptions. TEST STANDARD: Each child slice must carry its test weight: regular tests prove the intended payoff works, and adversarial tests cover realistic failure, boundary, or regression cases. Prefer protocol/headless/replay/fixture tests over brittle UI snapshots unless rendering behavior is the claim. See req: testing/001 through req: testing/004. NON-GOALS: No desktop split-first UI, no full window manager, no theming system, no dashboard surface. GOAL: Implement this Northstar by completing its linked child slices without leaving the product/refusal boundary in PRODUCT.md. Close this parent only when every child is closed and the PROOF above is demonstrated.
tmk241 added this to the v1 milestone 2026-06-20 23:28:11 +00:00
tmk241 added the northstargoal labels 2026-06-20 23:28:11 +00:00
Author
Owner

NS3 complete.

Children closed:

  • #18 Add panel stack state to the session protocol
  • #19 Render editor-or-panel on narrow terminals
  • #20 Build the shared list/filter/select panel primitive
  • #21 Show diagnostics, errors, and job status consistently
  • #22 Add SSH render responsiveness guardrails

Proof/evidence:

  • zig build test: pass
  • zig build: pass
  • zig build run -- --help: pass
  • redgate lint / redgate health: pass
  • Narrow terminal UI now has protocol/session panel state, editor-or-panel rendering, shared generic list/filter/select primitive, recoverable status/error/empty presentation, and deterministic render diagnostics/guardrails.

Boundary held: no concrete file/git/LSP/job/Pi panels, desktop split-first UI, telemetry, hosted reporting, or broad benchmark suite added.

NS3 complete. Children closed: - #18 Add panel stack state to the session protocol - #19 Render editor-or-panel on narrow terminals - #20 Build the shared list/filter/select panel primitive - #21 Show diagnostics, errors, and job status consistently - #22 Add SSH render responsiveness guardrails Proof/evidence: - `zig build test`: pass - `zig build`: pass - `zig build run -- --help`: pass - `redgate lint` / `redgate health`: pass - Narrow terminal UI now has protocol/session panel state, editor-or-panel rendering, shared generic list/filter/select primitive, recoverable status/error/empty presentation, and deterministic render diagnostics/guardrails. Boundary held: no concrete file/git/LSP/job/Pi panels, desktop split-first UI, telemetry, hosted reporting, or broad benchmark suite added.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmk241/mim#3