Skip to content

lock(tui): COR-222/223/224 consent, @file chip, undo sheet - #70

Merged
echobt merged 7 commits into
mainfrom
cursor/cor-222-223-224-lock-consent-file-undo-f3e9
Sep 13, 2026
Merged

echobt merged 7 commits into
mainfrom
cursor/cor-222-223-224-lock-consent-file-undo-f3e9

Conversation

@echobt

@echobt echobt commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Designer lock for COR-222/223/224 on draft PR #70, rebased onto origin/main after #67 (offline / rate-limit).

HOLD still in this revision:

  • consent-local-tools and undo-sheet footers are Enter:confirm | Esc:cancel (wide also ↑↓:select), not Typed/Idle composer strips and not FooterSet::Approval (e:edit command).
  • 40×12 consent uses shortened option/body copy (Yes — run tools here, Always allow project, This PC · current directory · Cloud is default).
  • undo-sheet wide paints the about-conversation behind the sheet.
  • Runtime PNGs for consent-local-tools, composer-file-chip, and undo-sheet at both sizes.

SPEC counts after rebase: 87 wide / 41 narrow (128 PNGs). permission-prompt* is untouched. No audit markdown. Linear labels unchanged. Stays draft for Designer cli re-QA.

Base: 623ad25 (origin/main, includes #67).

Test plan

  • Rebased onto origin/main without dropping footer / narrow-copy fixes
  • cargo test -p cortex-tui --lib lock_v2
  • ./scripts/clippy.sh (CI)
  • TUI / snapshot tests for consent, file chip, undo sheet
  • cargo audit (CI)
  • Source/dependency policy and generated API contracts verified against the real PR base
  • Local functional/security QA and changed-line coverage passed (or explain the blocker)

Attestation (required)

I attest that:

  • Security reviewed — auth, exec/sandbox, path traversal, network egress, and secret handling in this diff were reviewed. No secrets, tokens, or keyring dumps are in the change.
  • Product-facing errors — user-visible failures use Cortex product copy. API-down paths say The coding service is temporarily unavailable. No raw provider, SDK, or transport names.
  • TUI verified — every TUI surface touched in this PR was exercised (build + headless snapshot / ratatui-style test, and a real run when a TTY was available).
  • Tests added — unit tests cover the new logic; TUI changes include a snapshot or buffer assertion. No mocks that report success.
  • No secrets — no API keys, WorkOS secrets, R2/AWS credentials, or .env files are included.

Risk

Visual-lock / TUI chrome only. No auth, exec policy, sandbox, or API-contract impact.

Open in Web Open in Cursor 

@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

1 similar comment
@echobt

echobt commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

@greptileai

@cursor cursor Bot changed the title docs(tui): COR-222/223/224 consent + @file chip + undo sheet lock_v2 lock(tui): COR-222/223/224 consent, @file chip, undo sheet Sep 13, 2026
cursoragent and others added 4 commits September 13, 2026 16:46
Add designer and runtime lock_v2 scenes for local-tools consent,
composer @file chip, and /undo /redo /rewind sheet at 40x12 and 120x40.
Leave permission-prompt boards unchanged.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
Add MockTerminal captures at 40x12 and 120x40, and keep the
@file chip path short enough to stay visible on the narrow composer.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
Use Enter:confirm Esc:cancel for local-tools consent and the undo sheet
instead of Typed/Idle composer strips. Shorten 40x12 consent options
and body, and paint the about-conversation behind the wide undo sheet.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
Re-render consent, @file chip, and undo sheet at both sizes after
confirm/cancel footers, narrow consent copy, and undo backdrop.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
@cursor
cursor Bot force-pushed the cursor/cor-222-223-224-lock-consent-file-undo-f3e9 branch from 873e287 to 29cd901 Compare September 13, 2026 16:47
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

1 similar comment
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

@greptile-apps

greptile-apps Bot commented Sep 13, 2026

Copy link
Copy Markdown

Greptile Summary

This PR expands visual-lock coverage for local-tools consent, attached @file chips, and the undo/redo/rewind sheet at wide and narrow terminal sizes. It validates selective scene IDs before capture output is written, adds context-specific footer behavior, and covers completed file-chip detection without treating emails, bare @, or unfinished paths as file chips.

Confidence Score: 5/5

Safe to merge; there are no outstanding blocking concerns.

No new findings were identified. The previously reported selective-capture concern is fixed because IDs are validated before output is written. The file-chip accent test now checks the accented @ cell directly. The file-chip footer now requires a completed whitespace-delimited path token, preserving typed-input hints for emails, bare @, and unfinished paths. The final file-chip thread was conceded by greptile-apps[bot] after cursor[bot]'s explanation.

Reviews (6): Last reviewed commit: "fix(tui): exclude trailing-slash @mentio..." | Re-trigger Greptile

Comment thread src/cortex-tui/src/bin/generate_tui_lock_screenshots.rs
Comment thread src/cortex-tui/src/lock_v2_parity.rs
@echobt

echobt commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

@greptileai

Reject unknown, repeated, and empty --only scene lists before writing
frames. Assert composer file-chip paints ACCENT on @, not just text.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

Comment thread src/cortex-tui/src/views/minimal_session/view.rs Outdated
Comment thread src/cortex-tui/src/views/minimal_session/view.rs
File-chip hints now require a whitespace-delimited @path, so emails
and a bare trailing @ keep Enter/newline/mode instead of @:files.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

Emails already skip FileChip because @ is not a token start. Also
treat @src/ as still typing so unfinished mentions keep typed hints.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

@echobt
echobt marked this pull request as ready for review September 13, 2026 17:27
@echobt
echobt merged commit 9743f19 into main Sep 13, 2026
21 checks passed
@echobt
echobt deleted the cursor/cor-222-223-224-lock-consent-file-undo-f3e9 branch September 13, 2026 17:27
cursor Bot pushed a commit that referenced this pull request Sep 13, 2026
Keep COR-23 computer scenes and #70 consent/@file/undo boards.
Combined SPEC §7 set is 89 wide / 43 narrow (132 PNGs).

Co-authored-by: Mathis <echobt@users.noreply.github.com>
echobt added a commit that referenced this pull request Sep 13, 2026
#69)

* docs(tui): add computer fail-closed lock_v2 scenes

Add designer and runtime lock boards for This PC/SSH fail-closed
messaging and the Computer · Cloud shipped default at 40×12 and
120×40. Permission-prompt, cloud-handoff, and error-unavailable
boards are unchanged.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* docs(tui): add runtime computer lock_v2 pngs

Rasterise the new fail-closed and Cloud-default scenes from
MockTerminal at 40×12 and 120×40, and quiet non-test imports in
the computer lock module.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* docs(tui): lock computer runtime inventory at 84/38

Re-render computer lock_v2 runtime frames, drop the stray narrow jobs.png so 40x12 is exactly 38 unique hashes, and wire scene_state with explicit computer arms.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* fix(tui): satisfy clippy expect_fun_call on lock_v2 tests

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* docs(tui): correct lock_v2 inventory and computer scene kinds

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* style(tui): rustfmt footer hold after rebase

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* fix(ci): isolate CodeBuild PR concurrency by event

pull_request and pull_request_target shared one group on github.ref, so
one cancelled the other and the cancelled job rendered as matrix.context.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* docs(tui): sync lock_v2 inventory after #70 rebase

Keep COR-23 computer scenes and #70 consent/@file/undo boards.
Combined SPEC §7 set is 89 wide / 43 narrow (132 PNGs).

Co-authored-by: Mathis <echobt@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Mathis <echobt@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Sep 13, 2026
Keep lock PNG blobs from #67/#69/#70. Wire TodoWrite into the live
checklist, clamp compact shortcut hits, and drop stale stopped copy.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Sep 13, 2026
Split picker-row painting and custom interactive footers so the
rebase onto #69/#70 stays at the main complexity baseline.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Sep 13, 2026
Keep lock PNG blobs from #67/#69/#70. Wire TodoWrite into the live
checklist, clamp compact shortcut hits, and drop stale stopped copy.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Sep 13, 2026
Split picker-row painting and custom interactive footers so the
rebase onto #69/#70 stays at the main complexity baseline.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Sep 13, 2026
Keep lock PNG blobs from #67/#69/#70. Wire TodoWrite into the live
checklist, clamp compact shortcut hits, and drop stale stopped copy.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Sep 13, 2026
Split picker-row painting and custom interactive footers so the
rebase onto #69/#70 stays at the main complexity baseline.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
echobt added a commit that referenced this pull request Sep 13, 2026
* feat(tui): residual lock chrome for shortcuts, goal, composer

Interactive /shortcuts sheet, /goal status polish, composer hover and
Alt+Enter, denser diff/markdown locks, and distinct thinking/stop/todos
question states. COR-7/9/10/14/15 only — not offline or 429 chrome.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* chore(tui): recapture lock v2 runtime pngs

Regenerate 36×40×12 and 82×120×40 unique hashes via
scripts/render-tui-lock-v2.sh for COR-7/9/10/14/15 chrome.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* feat(tui): lock /model effort radios and custom labels

Align /model list and High/Medium/Low effort rows with lock v2
copy, gutter, and footers. Enter chooses then applies; custom
providers stay Cortex-safe. COR-13 residual only.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* chore(tui): recapture /model effort lock pngs

Runtime 40×12 and 120×40 hashes after COR-13 /model residual.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* feat(tui): lock farm modes, mcp, hover, resume, sandbox

Document Esc/Ctrl+C/Shift+Tab/Ctrl+x/F2, polish Plan/Ask/Agent and
/mcp/resume/clear/sandbox-deny chrome. Permission-prompt radios unchanged.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* chore(tui): recapture farm lock pngs

Runtime 40x12 and 120x40 proofs for mode, mcp, resume, clear, sandbox.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* fix(tui): split lock modules and keep custom models distinct

Extract MCP panel and session banner helpers so lock files stay under
the 1000-line source policy. Split keyboard/mouse handlers to cap
complexity. Third-party /model rows keep unique Custom labels without
vendor names.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* fix(tui): split key handlers after rebase onto main

Keep interactive, overlay, and selection dispatch under the source
policy complexity cap now that #67 is on main.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* fix(tui): align inline picker clicks with chrome

MCP, permissions, clear-confirm, and resume paint banner/search rows
above options. Hit-testing now uses that same origin so mouse selects
the visible row.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* fix(tui): resume picker ux contract and keyboard coverage

/sessions opens the inline resume list, not a modal stack. Cover
Ctrl+x, Shift+Tab, palette arrows, and Esc cancel in verify_mcp.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* fix(tui): match picker clicks when banners crowd the stack

On short terminals the update and opt-in banners collapse the
transcript, so the picker is no longer composer_y minus its height.
Click zones now use the same stack origin as paint.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* fix(tui): rebase lock chrome onto main picker and overlay fixes

Keep lock PNG blobs from #67/#69/#70. Wire TodoWrite into the live
checklist, clamp compact shortcut hits, and drop stale stopped copy.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* fix(tui): drop source-policy complexity after main rebase

Split picker-row painting and custom interactive footers so the
rebase onto #69/#70 stays at the main complexity baseline.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* fix(tui): apply TodoWrite checklist without dropping the queue

Apply live Working n/m from spawn args and completion output so a
full tool-event channel cannot hide the checklist.

Co-authored-by: Mathis <echobt@users.noreply.github.com>

* fix(tui): import computer lock scenes after #71 rebase

Co-authored-by: Mathis <echobt@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Mathis <echobt@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.

2 participants