diff --git a/wiki/interface/context-menu.md b/wiki/interface/context-menu.md index 3e1da35e..7029c2ae 100644 --- a/wiki/interface/context-menu.md +++ b/wiki/interface/context-menu.md @@ -2,8 +2,11 @@ ``` Type: spec -Status: IMPLEMENTED -Status note: implemented 2026-07-07 on the context-menu worktree (all +Status: READY +Status note: reopened 2026-07-11 for the recording-review hotkey addendum + (criteria R1-R4 below) — everything else on this page remains implemented + and its criteria met; flip back to IMPLEMENTED when R1-R4 land in both + frontends. History: implemented 2026-07-07 on the context-menu worktree (all seven criteria). The read-only `Sim::available_actions(anchor) -> Vec` query lives in crates/misaligned-core/src/actions.rs as the single legality @@ -82,7 +85,19 @@ Status note: implemented 2026-07-07 on the context-menu worktree (all known devices show TAP / TAKE. Current delegation, subscription, or ownership is bone-bright. A fully tapped foreign device offers UNTAP in its menu rather than retaining a disabled TAP row. + 2026-07-11 recording-review hotkey addendum captured (criteria R1-R4): + `r` runs the target's pooled recording sweep, `R` toggles its + automatic-review policy, both on the selection-hotkey target order with + the menu closed. NOT yet implemented. Stage: B1 — The Basement +Work order: context-menu-review-keys +Work priority: 27 +Work class: frontend +Blocked by: none +Exclusive keys: + - crates/misaligned-terminal/ + - crates/misaligned-bevy/ + - wiki/interface/context-menu.md Design: - wiki/vision/simulation-laws.md#actions-live-on-the-thing - wiki/vision/simulation-laws.md#work-is-somewhere @@ -172,6 +187,17 @@ is status and telemetry only. - `5`–`9` execute the Nth committed world action on the same target. Dials, persistent controls, scheme state, and automation policies do not occupy these slots. Disabled action rows still fire so the reason narrates. + - `r` runs the target's pooled "look at recording (N waiting)" sweep in one + press (DECIDED 2026-07-11): each press opens the next waiting recording's + processing sink, exactly as executing the menu row would. `R` (Shift-R) + toggles the same target's automatic-review policy — the nested + "auto-looking" control — without opening the menu. Reviewing the buffer + is the highest-frequency verb in a surveillance build, and the menu path + priced every press at three interactions (Cameron: "common enough that it + needs to happen really quickly"). The `5`–`9` exclusion of automation + policies stands; `R` is a named exception earned by frequency, not a new + rule that policies get keys. `r` has been free since the 2026-07-08 + panel-key removal. - **Context-menu focus is anchor-generic, not machine-only.** In Bevy, `Enter` / `e` opens the keyboard cursor's tile without changing the cursor. Right-click is the distinct pointer-focus path: it moves the cursor to the @@ -435,3 +461,21 @@ D3. One-shot verbs remain on the root; terminal and Bevy show identical D4. Agent mode `actions` remains a flat ActionDesc dump with no dial chrome; control rows append `CONTROL`; existing agent and integration tests still pass. + +### Recording-review hotkey criteria (CAPTURED 2026-07-11, not implemented) + +R1. With a machine hovered / selected / under the keyboard cursor and the + menu closed, `r` executes that machine's "look at recording" action: + one press opens the next waiting recording's processing sink, repeated + presses sweep successive recordings, and `human_menu` / + `available_actions` stays the single legality source — the key is a + thin dispatcher, not a second path into the buffer. +R2. `R` (Shift-R) toggles the same machine's automatic-review policy, + identical in effect and narration to the nested auto-looking control, + including its visible standing ops/sec cost. +R3. Both keys follow the selection-hotkey target order (pointer, selection, + keyboard cursor). On a target without the action, the empty-menu + feedback pulse narrates the miss instead of silence. +R4. Both human frontends surface the keys (terminal cursor path; Bevy + hover / selection / reticule path); agent mode is unchanged — it + already has the pooled one-command form. diff --git a/wiki/log/2026-07-11-recording-review-hotkeys.md b/wiki/log/2026-07-11-recording-review-hotkeys.md new file mode 100644 index 00000000..fc0d952d --- /dev/null +++ b/wiki/log/2026-07-11-recording-review-hotkeys.md @@ -0,0 +1,31 @@ +# 2026-07-11 — Recording-review hotkeys captured (r / Shift-R) + +``` +Type: log +``` + +## Intent + +Playtest friction: reviewing recordings is the highest-frequency verb in a +surveillance build, and every press cost three interactions (Enter, arrow +to the row, execute). Cameron decided hover + `r` should run the pooled +"look at recording" sweep and `R` (Shift-R) should toggle automatic +review. + +## Changed + +- `wiki/interface/context-menu.md`: new `r` / `R` bullets in the + hover/selection hotkey clause; acceptance criteria R1-R4; spec reopened + READY with work order `context-menu-review-keys` (frontend, priority 27) + so implementation dispatches from the board. All earlier criteria remain + met. +- `wiki/mechanics/intel.md`: player-surface bullet cross-references the + hotkey surface; context-menu.md stays the owner. +- `wiki/log/decisions/2026-07-11.md`: decision appended with rejected + alternatives. + +Capture only — no code changed; R1-R4 are NOT implemented. + +## Checks + +`tools/ledger_index.sh`; `./tools/check.sh --docs`. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 2fa6bd15..7bf96bd9 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -66,6 +66,11 @@ add or amend a session log, then re-run the generator. - Intent: The material frame rendered the two opening subnet edges as doubled, uniformly translucent lines stretching from Rack 3 and the environmental monitor to a switch in another room. The graph was true, but its presentation read as a permanent laser diagram: the destination was of... - Log: [wiki/log/2026-07-11-relay-traces.md](2026-07-11-relay-traces.md) +## 2026-07-11 - Recording-review hotkeys captured (r / Shift-R) + +- Intent: Playtest friction: reviewing recordings is the highest-frequency verb in a surveillance build, and every press cost three interactions (Enter, arrow to the row, execute). Cameron decided hover + `r` should run the pooled "look at recording" sweep and `R` (Shift-R) should toggl... +- Log: [wiki/log/2026-07-11-recording-review-hotkeys.md](2026-07-11-recording-review-hotkeys.md) + ## 2026-07-11 - Tick: make the pooled recording inbox corpus-wide - Intent: Reconcile every current dependent corpus page with the implemented B1 rule: recordings form one host inbox with one REVIEW action and one automatic-review tap, while person anchors remain social surfaces only. diff --git a/wiki/log/decisions/2026-07-11.md b/wiki/log/decisions/2026-07-11.md index cc389b26..8008ed45 100644 --- a/wiki/log/decisions/2026-07-11.md +++ b/wiki/log/decisions/2026-07-11.md @@ -100,3 +100,20 @@ Type: log carriers, costs, event, choices, and effects does not satisfy the player's pick-the-how contract. The proposed Ray plot remains outside canon pending reconsideration. Spec: `wiki/mechanics/plots.md`. + +- **2026-07-11 — Recording review is one keystroke from hover.** Cameron + rejected the menu path for the pooled recording sweep ("right now I have + to keep hitting Enter, tap down, and then click on it... common enough + that it needs to happen really quickly"): hovering a machine and pressing + `r` now runs its "look at recording" sweep, and `R` (Shift-R) toggles the + automatic-review policy, both on the standard selection-hotkey target + order with the menu closed. `r` has been free since the 2026-07-08 + panel-key removal, so this revives the letter without reviving the modal + panel it once opened. The menu row survives as the discoverable form; + the hotkeys are the fast path. The `5`-`9` exclusion of automation + policies from generic slots stands — `R` is a named frequency-earned + exception, not a precedent that policies get keys. Alternatives not + taken: a global review key unscoped to a target (breaks + actions-live-on-the-thing) and defaulting auto-review on (automation must + be chosen and show its price). Specs: `wiki/interface/context-menu.md` + (reopened READY, criteria R1-R4), `wiki/mechanics/intel.md`. diff --git a/wiki/mechanics/intel.md b/wiki/mechanics/intel.md index 01a7f079..3cd5eefd 100644 --- a/wiki/mechanics/intel.md +++ b/wiki/mechanics/intel.md @@ -175,6 +175,9 @@ buffer like any recording. nested control says "enable auto-looking at recordings" (or disable while active). Player copy says "waiting", not pipeline slang "raw". Person anchors expose social acts only; they never duplicate the pooled operation. + The sweep and the toggle also ride the direct selection-hotkey surface + (`r` / `R`, DECIDED 2026-07-11) owned by wiki/interface/context-menu.md; + the menu row is the discoverable form, not the only fast path. - The review path must be visible before overflow hurts the player: sidebar nudge/card copy calls out buffer pressure, overflow logs point at the host's recording-review action, and the agent frame shows one pooled diff --git a/wiki/process/ROADMAP.md b/wiki/process/ROADMAP.md index a2fa8a8d..3c02b597 100644 --- a/wiki/process/ROADMAP.md +++ b/wiki/process/ROADMAP.md @@ -22,6 +22,7 @@ not a second status owner. | 20 | `compute` | [compute](../mechanics/compute.md) | IN PROGRESS | save | - | | 25 | `bevy-digital-real-canvas` | [Bevy digital/real canvas](../interface/bevy-digital-real-canvas.md) | IN PROGRESS | frontend | - | | 26 | `effects-lab` | [effects lab — shared dust and liquid at every zoom](../art/effects-lab.md) | IN PROGRESS | frontend | - | +| 27 | `context-menu-review-keys` | [context menu — actions live on the thing](../interface/context-menu.md) | READY | frontend | - | | 34 | `clinical-frame` | [the clinical frame — perception exposes the institution](../interface/clinical-frame.md) | IN PROGRESS | frontend | - | | 35 | `views` | [views — same-frame digital and real representations](../interface/views.md) | IN PROGRESS | frontend | - | | 60 | `plots` | [plots — authored manipulation stories](../mechanics/plots.md) | READY | sim | - | @@ -146,9 +147,11 @@ is retired — flat materials, Pixel Lab scrubbed.) read; do not land a per-machine split / process-list model against `WorkGrid`. Remaining work lives under #33. -### 26. Context menu: actions live on the thing ✅ DONE (2026-07-08) -- **Spec:** [context-menu.md](../interface/context-menu.md) (IMPLEMENTED - 2026-07-08; design corpus "Actions live on the thing", adopted 2026-07-07) +### 26. Context menu: actions live on the thing 🟩 reopened 2026-07-11 (was DONE 2026-07-08) +- **Spec:** [context-menu.md](../interface/context-menu.md) (READY + 2026-07-11 — recording-review hotkey addendum R1-R4 only; the 2026-07-08 + base and every earlier addendum remain implemented. Design corpus + "Actions live on the thing", adopted 2026-07-07) - **Landed:** `Sim::available_actions` in src/actions.rs (the single legality source, with tests), the terminal cursor menu, the Bevy right-click/Enter menu, agent-mode `actions [name|#flow]`, and the diff --git a/wiki/process/specs.md b/wiki/process/specs.md index 73fd8d19..d14f9baf 100644 --- a/wiki/process/specs.md +++ b/wiki/process/specs.md @@ -31,7 +31,7 @@ replaced the old `spec/`/`knowledge/` directory split. | [../engineering/flow-substrate.md](../engineering/flow-substrate.md) | the flow substrate (signals, messages, money — the shared engine) | IMPLEMENTED | | [../interface/clinical-frame.md](../interface/clinical-frame.md) | the clinical frame — perception exposes the institution | IN PROGRESS | | [../interface/computer-visual-language.md](../interface/computer-visual-language.md) | computer visual language — territory at a glance | IMPLEMENTED | -| [../interface/context-menu.md](../interface/context-menu.md) | context menu — actions live on the thing | IMPLEMENTED | +| [../interface/context-menu.md](../interface/context-menu.md) | context menu — actions live on the thing | READY | | [../interface/feel-floor.md](../interface/feel-floor.md) | the feel floor — rails, pads, and the build beam | IMPLEMENTED | | [../interface/flat-materials.md](../interface/flat-materials.md) | flat materials — the world without textures | IMPLEMENTED | | [../interface/fleet-command.md](../interface/fleet-command.md) | fleet command — ruling at scale | DRAFT |