Terminal windows show a '?' button that makes no sense (J302) #392

Closed
opened 2026-11-06 12:18:30 +00:00 by kayg · 5 comments
Owner

Owner, on production (74b9c4d80): "why the hell is there a ? icon here? they're just terminals? don't blindly add elements where it does not make sense".

Every terminal window's top-right group shows a circled "?" before split-vertical, split-horizontal, minimise and close.

Task (J302): find where it came from, remove it from terminal windows, audit the rest of the window chrome (list only), update specs, production-build screenshots at 1440x900, 393x852, 375x667 in ink and paper. Branch remove-terminal-help from origin/dev.

Findings so far

  • Button is added in apps/tracer/src/canvas/windows/frame.ts (makeWindow, id: "docs", ICON.help) whenever cx.adapters.docs?.for(m) is truthy.
  • apps/tracer/src/canvas/settings-rows/docs-adapter.ts returns a link for m.kind === "terminal" (multiplexer page, or keys page for a No-access card), for Settings windows (from the catalog) and for the Add hosts flow. So terminals got it by adapter, not by any decision.
  • Origin: commit 2c7123ee9 (2026-11-02, #304) "canvas: ? is the first button of a window's action group". Its message quotes the owner: "? goes in each window's action group as its first button, before split, maximize and close". The terminal link was added in e3d8b002b (2026-11-02, mockup, #304). 96fe7bc9f (2026-11-04) already dropped it from terminals on touch devices only.
  • Decisions: D317 (2026-11-02): "One heading per setting ... A '?' lands on that heading and previews that block." That is about Settings headings. D349, D350 and D351 say nothing about "?" (D351 app-window top right is Send keys plus the ... menu). No numbered decision calls for "?" on a terminal window. The #304 quote is in a commit message only.
Owner, on production (74b9c4d80): "why the hell is there a ? icon here? they're just terminals? don't blindly add elements where it does not make sense". Every terminal window's top-right group shows a circled "?" before split-vertical, split-horizontal, minimise and close. Task (J302): find where it came from, remove it from terminal windows, audit the rest of the window chrome (list only), update specs, production-build screenshots at 1440x900, 393x852, 375x667 in ink and paper. Branch `remove-terminal-help` from origin/dev. ## Findings so far - Button is added in `apps/tracer/src/canvas/windows/frame.ts` (`makeWindow`, `id: "docs"`, `ICON.help`) whenever `cx.adapters.docs?.for(m)` is truthy. - `apps/tracer/src/canvas/settings-rows/docs-adapter.ts` returns a link for `m.kind === "terminal"` (multiplexer page, or keys page for a No-access card), for Settings windows (from the catalog) and for the Add hosts flow. So terminals got it by adapter, not by any decision. - Origin: commit 2c7123ee9 (2026-11-02, #304) "canvas: ? is the first button of a window's action group". Its message quotes the owner: "? goes in each window's action group as its first button, before split, maximize and close". The terminal link was added in e3d8b002b (2026-11-02, mockup, #304). 96fe7bc9f (2026-11-04) already dropped it from terminals on touch devices only. - Decisions: D317 (2026-11-02): "One heading per setting ... A '?' lands on that heading and previews that block." That is about Settings headings. D349, D350 and D351 say nothing about "?" (D351 app-window top right is Send keys plus the ... menu). No numbered decision calls for "?" on a terminal window. The #304 quote is in a commit message only.
Author
Owner

Plan/finding: removing the button in makeWindow for terminal kind (incl. "No access" cards, which are terminal windows) on every device. Kept: Settings windows (D317) and the Add hosts dialog (no decision names it; listed below for kayg, not removed). The ⌘K row "Read about this window" and its key stay (Canvas group; a Help-group move would double the heading because provider rows precede static rows in core-screen.ts).

Branch remove-terminal-help from origin/dev 7b14fbb66. Estimate: 1 h (edit, specs, build on compute01, screenshots).

Chrome audit (terminal window): split right, split down, sessions, close, lock, status icon, title pill. Each maps to a decision (D127 sessions, D212/#280 splits, D133 lock). Not touching anything else. Other candidates listed for kayg: the "?" on the Add hosts dialog (flow window, no decision calls for it).

Plan/finding: removing the button in `makeWindow` for terminal kind (incl. "No access" cards, which are terminal windows) on every device. Kept: Settings windows (D317) and the Add hosts dialog (no decision names it; listed below for kayg, not removed). The ⌘K row "Read about this window" and its key stay (Canvas group; a Help-group move would double the heading because provider rows precede static rows in core-screen.ts). Branch remove-terminal-help from origin/dev 7b14fbb66. Estimate: 1 h (edit, specs, build on compute01, screenshots). Chrome audit (terminal window): split right, split down, sessions, close, lock, status icon, title pill. Each maps to a decision (D127 sessions, D212/#280 splits, D133 lock). Not touching anything else. Other candidates listed for kayg: the "?" on the Add hosts dialog (flow window, no decision calls for it).
Author
Owner

Finish (J302)

Branch remove-terminal-help, head 0d3f8be44 (2 commits on origin/dev 7b14fbb66): bd9ef78ac removes the button, 0d3f8be44 fixes one spec check. Not merged.

Change: makeWindow (apps/tracer/src/canvas/windows/frame.ts) adds the "?" for no terminal window, on any device ("No access" cards are terminals). Settings windows keep it (D317) and so does the Add hosts dialog (no decision names it, left for kayg). "Read about this window" stays in ⌘K (Canvas group) and on its key, and its preview anchors to the title pill. Specs updated: clusters.spec.ts (split buttons first), settings-rows-of-windows.spec.ts (terminal group is split-right, split-down, sessions, close; No access card is Close alone; its page opens from ⌘K; the "meets the ? at its right edge" check applies only when the button exists).

Gate, honestly:

  • scripts/verify quick: FAIL at the fmt row, in crates/infraternal-server/src/bootstrap_remote.rs and another Rust file. My diff touches no Rust (quick scope: workspace=0, tracer=1), so the failure is in origin/dev as it stands; I did not run fmt on a clean origin/dev checkout. Quick stops at the first failure, so its tracer typecheck row never ran. Log: compute01 ~/j302-evidence/run.log.
  • Tracer typecheck run by hand: bun x tsc --project tsconfig.json, TSC_EXIT=0 (~/j302-evidence/run2.log).
  • Playwright, full clusters + settings-rows specs on the first branch build: 71 passed, 2 real failures (the "?" spec preview check, fixed in 0d3f8be44; my own screenshot script clipping on phone) plus clusters descenders (Mesh node pill). Rerun of the affected tests on 0d3f8be44: 10 passed, PW_EXIT=0, including descenders, so that one was a flake under load; it also passes on origin/dev (1 passed, ~/j302-evidence/run2.log). I did not rerun the other ~60 specs after the spec edit, and verify fast was not run.
  • Screenshots (production build, test double, docs=1, so the adapter that gave terminals the "?" is on): compute01 ~/j302-evidence/terminal/, attached below. I looked at 1440x900 ink, 1440x900 paper header crop, 393x852 ink and 375x667 paper. I did not open the other four by eye (393x852 paper, 375x667 ink, 1440x900 paper full, ink header crop); the spec asserts their button list. Actions seen: desktop split-right, split-down, sessions, close; phone Close alone. No gap, group still aligned to the title pill.

Window chrome audit (listed, nothing else removed)

Terminal: title pill, status dot, split right/down (D212, #280), sessions (D127), close, lock (D133), resize handles. All map to a decision. Candidates for kayg:

  1. The "?" on the Add hosts dialog (flow window): left in; no decision names it.
  2. The "?" on Settings windows stays, from D317.
  3. Mesh/node, docs and settings windows have no close by design (not touched).
  4. "MOCKUP" and "TEST DOUBLE" pills in the captures are test-double scaffolding, not product chrome; on a phone the MOCKUP pill overlaps the header's right edge (mock only).
## Finish (J302) Branch `remove-terminal-help`, head `0d3f8be44` (2 commits on origin/dev 7b14fbb66): `bd9ef78ac` removes the button, `0d3f8be44` fixes one spec check. Not merged. **Change:** `makeWindow` (apps/tracer/src/canvas/windows/frame.ts) adds the "?" for no terminal window, on any device ("No access" cards are terminals). Settings windows keep it (D317) and so does the Add hosts dialog (no decision names it, left for kayg). "Read about this window" stays in ⌘K (Canvas group) and on its key, and its preview anchors to the title pill. Specs updated: clusters.spec.ts (split buttons first), settings-rows-of-windows.spec.ts (terminal group is split-right, split-down, sessions, close; No access card is Close alone; its page opens from ⌘K; the "meets the ? at its right edge" check applies only when the button exists). **Gate, honestly:** - `scripts/verify quick`: FAIL at the `fmt` row, in `crates/infraternal-server/src/bootstrap_remote.rs` and another Rust file. My diff touches no Rust (quick scope: workspace=0, tracer=1), so the failure is in origin/dev as it stands; I did not run fmt on a clean origin/dev checkout. Quick stops at the first failure, so its tracer typecheck row never ran. Log: compute01 `~/j302-evidence/run.log`. - Tracer typecheck run by hand: `bun x tsc --project tsconfig.json`, TSC_EXIT=0 (`~/j302-evidence/run2.log`). - Playwright, full clusters + settings-rows specs on the first branch build: 71 passed, 2 real failures (the "?" spec preview check, fixed in 0d3f8be44; my own screenshot script clipping on phone) plus `clusters descenders` (Mesh node pill). Rerun of the affected tests on 0d3f8be44: 10 passed, PW_EXIT=0, including descenders, so that one was a flake under load; it also passes on origin/dev (1 passed, `~/j302-evidence/run2.log`). I did not rerun the other ~60 specs after the spec edit, and `verify fast` was not run. - Screenshots (production build, test double, `docs=1`, so the adapter that gave terminals the "?" is on): compute01 `~/j302-evidence/terminal/`, attached below. I looked at 1440x900 ink, 1440x900 paper header crop, 393x852 ink and 375x667 paper. I did not open the other four by eye (393x852 paper, 375x667 ink, 1440x900 paper full, ink header crop); the spec asserts their button list. Actions seen: desktop split-right, split-down, sessions, close; phone Close alone. No gap, group still aligned to the title pill. ## Window chrome audit (listed, nothing else removed) Terminal: title pill, status dot, split right/down (D212, #280), sessions (D127), close, lock (D133), resize handles. All map to a decision. Candidates for kayg: 1. The "?" on the **Add hosts dialog** (flow window): left in; no decision names it. 2. The "?" on **Settings windows** stays, from D317. 3. Mesh/node, docs and settings windows have no close by design (not touched). 4. "MOCKUP" and "TEST DOUBLE" pills in the captures are test-double scaffolding, not product chrome; on a phone the MOCKUP pill overlaps the header's right edge (mock only).
Author
Owner

Finish (J302)

Branch remove-terminal-help, head 0d3f8be44 (2 commits on origin/dev 7b14fbb66): bd9ef78ac removes the button, 0d3f8be44 fixes one spec check. Not merged.

Change: makeWindow (apps/tracer/src/canvas/windows/frame.ts) adds the "?" for no terminal window, on any device ("No access" cards are terminals). Settings windows keep it (D317) and so does the Add hosts dialog (no decision names it, left for kayg). "Read about this window" stays in ⌘K (Canvas group) and on its key, and its preview anchors to the title pill. Specs updated: clusters.spec.ts (split buttons first), settings-rows-of-windows.spec.ts (terminal group is split-right, split-down, sessions, close; No access card is Close alone; its page opens from ⌘K; the "meets the ? at its right edge" check applies only when the button exists).

Gate, honestly:

  • scripts/verify quick: FAIL at the fmt row, in crates/infraternal-server/src/bootstrap_remote.rs and another Rust file. My diff touches no Rust (quick scope: workspace=0, tracer=1), so the failure is in origin/dev as it stands; I did not run fmt on a clean origin/dev checkout. Quick stops at the first failure, so its tracer typecheck row never ran. Log: compute01 ~/j302-evidence/run.log.
  • Tracer typecheck run by hand: bun x tsc --project tsconfig.json, TSC_EXIT=0 (~/j302-evidence/run2.log).
  • Playwright, full clusters + settings-rows specs on the first branch build: 71 passed, 2 real failures (the "?" spec preview check, fixed in 0d3f8be44; my own screenshot script clipping on phone) plus clusters descenders (Mesh node pill). Rerun of the affected tests on 0d3f8be44: 10 passed, PW_EXIT=0, including descenders, so that one was a flake under load; it also passes on origin/dev (1 passed, ~/j302-evidence/run2.log). I did not rerun the other ~60 specs after the spec edit, and verify fast was not run.
  • Screenshots (production build, test double, docs=1, so the adapter that gave terminals the "?" is on): compute01 ~/j302-evidence/terminal/, attached below. I looked at 1440x900 ink, 1440x900 paper header crop, 393x852 ink and 375x667 paper. I did not open the other four by eye (393x852 paper, 375x667 ink, 1440x900 paper full, ink header crop); the spec asserts their button list. Actions seen: desktop split-right, split-down, sessions, close; phone Close alone. No gap, group still aligned to the title pill.

Window chrome audit (listed, nothing else removed)

Terminal: title pill, status dot, split right/down (D212, #280), sessions (D127), close, lock (D133), resize handles. All map to a decision. Candidates for kayg:

  1. The "?" on the Add hosts dialog (flow window): left in; no decision names it.
  2. The "?" on Settings windows stays, from D317.
  3. Mesh/node, docs and settings windows have no close by design (not touched).
  4. "MOCKUP" and "TEST DOUBLE" pills in the captures are test-double scaffolding, not product chrome; on a phone the MOCKUP pill overlaps the header's right edge (mock only).
## Finish (J302) Branch `remove-terminal-help`, head `0d3f8be44` (2 commits on origin/dev 7b14fbb66): `bd9ef78ac` removes the button, `0d3f8be44` fixes one spec check. Not merged. **Change:** `makeWindow` (apps/tracer/src/canvas/windows/frame.ts) adds the "?" for no terminal window, on any device ("No access" cards are terminals). Settings windows keep it (D317) and so does the Add hosts dialog (no decision names it, left for kayg). "Read about this window" stays in ⌘K (Canvas group) and on its key, and its preview anchors to the title pill. Specs updated: clusters.spec.ts (split buttons first), settings-rows-of-windows.spec.ts (terminal group is split-right, split-down, sessions, close; No access card is Close alone; its page opens from ⌘K; the "meets the ? at its right edge" check applies only when the button exists). **Gate, honestly:** - `scripts/verify quick`: FAIL at the `fmt` row, in `crates/infraternal-server/src/bootstrap_remote.rs` and another Rust file. My diff touches no Rust (quick scope: workspace=0, tracer=1), so the failure is in origin/dev as it stands; I did not run fmt on a clean origin/dev checkout. Quick stops at the first failure, so its tracer typecheck row never ran. Log: compute01 `~/j302-evidence/run.log`. - Tracer typecheck run by hand: `bun x tsc --project tsconfig.json`, TSC_EXIT=0 (`~/j302-evidence/run2.log`). - Playwright, full clusters + settings-rows specs on the first branch build: 71 passed, 2 real failures (the "?" spec preview check, fixed in 0d3f8be44; my own screenshot script clipping on phone) plus `clusters descenders` (Mesh node pill). Rerun of the affected tests on 0d3f8be44: 10 passed, PW_EXIT=0, including descenders, so that one was a flake under load; it also passes on origin/dev (1 passed, `~/j302-evidence/run2.log`). I did not rerun the other ~60 specs after the spec edit, and `verify fast` was not run. - Screenshots (production build, test double, `docs=1`, so the adapter that gave terminals the "?" is on): compute01 `~/j302-evidence/terminal/`, attached below. I looked at 1440x900 ink, 1440x900 paper header crop, 393x852 ink and 375x667 paper. I did not open the other four by eye (393x852 paper, 375x667 ink, 1440x900 paper full, ink header crop); the spec asserts their button list. Actions seen: desktop split-right, split-down, sessions, close; phone Close alone. No gap, group still aligned to the title pill. ## Window chrome audit (listed, nothing else removed) Terminal: title pill, status dot, split right/down (D212, #280), sessions (D127), close, lock (D133), resize handles. All map to a decision. Candidates for kayg: 1. The "?" on the **Add hosts dialog** (flow window): left in; no decision names it. 2. The "?" on **Settings windows** stays, from D317. 3. Mesh/node, docs and settings windows have no close by design (not touched). 4. "MOCKUP" and "TEST DOUBLE" pills in the captures are test-double scaffolding, not product chrome; on a phone the MOCKUP pill overlaps the header's right edge (mock only).
Author
Owner

Owner decision (2026-11-06, relayed by the orchestrator): the "?" on the Add hosts dialog stays ("keep it"). It leads to the add-host help, so it earns its place under TASTE "Every control earns its place". No change needed.

Owner decision (2026-11-06, relayed by the orchestrator): the "?" on the **Add hosts dialog** stays ("keep it"). It leads to the add-host help, so it earns its place under TASTE "Every control earns its place". No change needed.
Author
Owner

J319 housekeeping, authorized by kayg (#402). Closing: Terminal windows no longer show the help control. The targeted rerun passed 10 tests and typecheck passed (J302 receipt 82281). The only owner question, keeping help on Add hosts, is explicitly answered in comment 82301; Settings help remains per D317. No unfinished work remains in this narrow request.

Merged on dev: 48358a5fab. Re-fetched the issue and complete comment history immediately before closure and confirmed unchanged since review. Operational cleanup only; no new test run claimed.

J319 housekeeping, authorized by kayg (#402). Closing: Terminal windows no longer show the help control. The targeted rerun passed 10 tests and typecheck passed (J302 receipt 82281). The only owner question, keeping help on Add hosts, is explicitly answered in comment 82301; Settings help remains per D317. No unfinished work remains in this narrow request. Merged on dev: https://git.kayg.org/kayg/infraternal/commit/48358a5fababfdbbb50a233379956d576c3fc0a2. Re-fetched the issue and complete comment history immediately before closure and confirmed unchanged since review. Operational cleanup only; no new test run claimed.
kayg closed this issue 2026-11-06 16:49:10 +00:00
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#392
No description provided.