Skip to content

feat(tui): residual lock chrome (COR-6/7/9–17/21) - #68

Merged
echobt merged 15 commits into
mainfrom
cursor/tui-residual-cor-7-9-10-14-15-c44a
Sep 13, 2026
Merged

echobt merged 15 commits into
mainfrom
cursor/tui-residual-cor-7-9-10-14-15-c44a

Conversation

@echobt

@echobt echobt commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Draft lock-chrome residual for Cortex CLI / Cortex Code. Rebased onto origin/main (0621bf5, after #71 and #72). Head bc3a188.

Latest: inline picker click zones follow the same stack as paint when update/opt-in banners force a short-terminal collapse (picker is not always composer_y - height).

Stay draft. Existing lock PNGs from this branch were kept; no runtime PNG bytes were regenerated. Main-only lock scenes from #69/#70/#71/#72 are now on the branch as inherited files.

Test plan

  • cargo fmt --all -- --check
  • scripts/readiness/quality.py --base origin/main — 0 regressions
  • cargo test -p cortex-tui --lib --no-default-features -- picker_layout

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 — picker click-zone tests including cramped banners.
  • Tests added — cramped-stack geometry plus painted-row hit test. No mocks that report success.
  • No secrets — no API keys, WorkOS secrets, R2/AWS credentials, or .env files are included.
Open in Web Open in Cursor 

@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

@echobt

echobt commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

Designer cli LOCK — residual COR-7/9/10/14/15

Verdict: LOCK (chrome lockable; undraft/squash when CI + Greptile green).

QA on head faba22eb runtime samples (40×12 + 120×40): shortcuts-overlay, diff-hunk, composer-typing, goal-chip-active, interrupt-stopped, todos

  • Ink chrome #000/#F5F5F5/#6B7280/#1F4945; green #4ADE80 only on +diff (allowed)
  • Zero violet / blue / competitor names
  • Linear COR-7/9/10/14/15 already Already designed

@alexa chrome is lockable for this residual pack. HOLD only if a later push reintroduces violet/#A78BFA or competitor strings.

@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 draft adds session-sharing command surfaces and related TUI chrome, but the new /share command is not connected to a session action. Users can enter the command, but it reports that no operation was performed instead of creating a read-only link.

Confidence Score: 4/5

Not safe to merge until /share creates and reports a usable session share link.

The reproduced /share failure prevents an advertised session action from working. The following prior threads were resolved without explanatory replies by cursor[bot], which differs from the Greptile bot login, so cursor[bot] manually resolved them without explanation: the live checklist was not populated; compact shortcut rows remained selectable when hidden; off-sheet clicks selected shortcut rows; Ctrl+x took focus from active prompts and modals; the stopped fixture did not show the stopped composer placeholder; checklist events were unwired; shortcut focus interrupted active interactions; stopped guidance persisted after clearing or changing sessions; third-party model identities collapsed to Custom model; inline picker mouse targets did not match painted rows; picker click zones ignored banner heights; and TodoWrite checklist updates could be dropped when the event queue was full.

Files Needing Attention: src/cortex-tui/src/commands/executor/session.rs

T-Rex T-Rex Logs

What T-Rex did

  • T-Rex produced a proof for a posted P1 finding and linked it to the review comment.
  • T-Rex produced a second finding-proof for the same P1 finding to reinforce the evidence.
  • T-Rex validated the contract behavior by comparing the UI before and after submitting /share 1h, confirming the rendered transcript shows an unsupported command message.
  • T-Rex traced the code paths responsible for handling the share command to explain why the command is not matched and falls through.
  • Artifacts were prepared to enable reviewers to verify both the finding-proof and the contract-validation-proof.

View all artifacts

T-Rex Ran code and verified through T-Rex

Comments Outside Diff (2)

  1. src/cortex-tui/src/commands/executor/session.rs, line 51-56 (link)

    P1 Handle Share Actions

    The new /share command returns asynchronous share actions, but the session event loop has no matching handler. Submitting /share 1h reports “Unsupported command in this session: share:1h. No operation was performed.” instead of creating a link. Users therefore cannot share a session or activate the advertised Shared status.

    Knowledge Base Used:

    Artifacts

    Evidence from the check

    • Temporary-script-backed focused test injects, runs, captures, and restores a `/share 1h` composer-path test, demonstrating the actual event-loop result.

    Command output from the check

    • Captured cargo-test output shows the exact command, working directory, exit code 0, before/after terminal renders, and the unsupported-command result.

    TUI before submitting `/share 1h`

    • Rasterized runtime TUI buffer shows `/share 1h` entered in the composer before submission, establishing the command under test.

    TUI after submitting `/share 1h`

    • Rasterized runtime TUI buffer shows `Unsupported command in this session: share:1h. No operation was performed.`, confirming no share action occurred.

    Evidence from the check

    • Exact text buffer captured from the executed test immediately before the composer submits `/share 1h`, preserving the pre-action UI.

    Evidence from the check

    • Exact text buffer captured from the executed test after submission, preserving the unsupported-command UI result.

    View artifacts

    T-Rex Ran code and verified through T-Rex

  2. General comment

    P1 /share async results fall through as unsupported commands

    • Bug
      • The command executor accepts /share and /share <duration>, but an actual /share 1h composer submission renders Unsupported command in this session: share:1h. No operation was performed. No share link/status is produced.
    • Cause
      • cmd_share returns CommandResult::Async("share") or CommandResult::Async("share:<duration>"), while EventLoop::handle_async_command has no share or share: match arm and invokes its unsupported-command fallback.
    • Fix
      • Add explicit share / share:<duration> handling in EventLoop::handle_async_command that creates the link, updates app_state.share_link, and renders/copies a user-visible success result; cover default and duration forms with an event-loop integration test.

    T-Rex Ran code and verified through T-Rex

Reviews (15): Last reviewed commit: "fix(tui): import computer lock scenes af..." | Re-trigger Greptile

Comment thread src/cortex-tui/src/runner/event_loop/tools.rs
Comment thread src/cortex-tui/src/widgets/shortcuts_overlay.rs Outdated
Comment thread src/cortex-tui/src/widgets/shortcuts_overlay.rs
Comment thread src/cortex-tui/src/runner/event_loop/input.rs Outdated
Comment thread src/cortex-tui/src/lock_v2_boards.rs
Comment thread src/cortex-tui/src/runner/event_loop/tools.rs
Comment thread src/cortex-tui/src/runner/event_loop/input.rs Outdated
Comment thread src/cortex-tui/src/widgets/shortcuts_overlay.rs Outdated
Comment thread src/cortex-tui/src/app/state.rs
Comment thread src/cortex-tui/src/interactive/builders/model.rs Outdated
Comment thread src/cortex-tui/src/widgets/shortcuts_overlay.rs
@cursor cursor Bot changed the title feat(tui): residual lock chrome (COR-7/9/10/14/15) feat(tui): residual lock chrome (COR-6/7/9–17/21) Sep 13, 2026
@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

Comment thread src/cortex-tui/src/interactive/renderer.rs
Comment thread src/cortex-tui/src/interactive/renderer.rs
@cursor
cursor Bot force-pushed the cursor/tui-residual-cor-7-9-10-14-15-c44a branch from 2b28bbf to 971a0a6 Compare September 13, 2026 16:53
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai Rebased onto main after #67. Head 971a0a6. Please re-review: distinct custom-model picker labels, file splits under 1000 lines, and lock PNGs including offline/rate-limit from #67.

@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai Head 14888ae. Inline picker click zones now start after banner/subtitle/search chrome (MCP, permissions, clear-confirm, resume). Source policy still 0 regressions vs main. Lock PNGs unchanged this push. Stay draft.

@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai Head a6ea3aa. Source policy already under 1000-line / complexity targets. This push fixes the TUI/Test failure (/sessions inline resume picker) and changed-line coverage on verify_mcp keyboard map. Stay draft.

Comment thread src/cortex-tui/src/interactive/picker_layout.rs Outdated
Comment thread src/cortex-tui/src/runner/event_loop/rendering.rs Outdated
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai Head fd77b5d. Picker click zones now use the same short-terminal stack as paint (update + opt-in above the picker). Stay draft.

@echobt

echobt commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

Designer cli LOCK (reaffirm) — residual COR-6/7/9–17/21

Verdict: LOCK on head fd77b5dc (post-picker-click fixes after prior LOCK on faba22eb).

Spot QA runtime 40×12: shortcuts-overlay, diff-hunk, composer-typing

  • Ink chrome #000 / #F5F5F5 / #6B7280 / #262626; violet px = 0
  • No competitor strings in samples
  • Linear must ui-state children already Already designed

@alexa chrome still lockable — undraft/squash when CI + Greptile green.

@cursor
cursor Bot force-pushed the cursor/tui-residual-cor-7-9-10-14-15-c44a branch from fd77b5d to 4cc0a7e Compare September 13, 2026 18:33
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai Head 1ba238b. Rebased onto origin/main after #67/#69/#70. Existing LOCK PNG blobs kept byte-identical; only new boards from main were added. Compact shortcut hits, Ctrl+x focus, live TodoWrite checklist, and stale stopped placeholder are addressed. Stay draft.

@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai Head 81b9e48. Rebased onto origin/main after #67/#69/#70. Existing LOCK PNG blobs kept byte-identical; only new boards from main were added. Compact shortcut hits, Ctrl+x focus, live TodoWrite checklist, stale stopped placeholder, and source-policy complexity vs main are addressed. Stay draft.

Comment thread src/cortex-tui/src/runner/event_loop/tools.rs Outdated
@cursor
cursor Bot force-pushed the cursor/tui-residual-cor-7-9-10-14-15-c44a branch from 81b9e48 to 2b3e3a0 Compare September 13, 2026 18:50
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai Head 3803205. TodoWrite checklist is applied on spawn from args and restored from completion output, so a full tool-event queue cannot drop Working n/m. Stay draft.

@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai Head 2b3e3a0. Rebased onto origin/main after #71 (98eb2c5). Existing LOCK PNG blobs kept byte-identical; only new boards from main (#71 theme/fork/init/hooks/handoff) were inherited. Stay draft.

@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai Head 5b3aced. Rebased onto origin/main after #71 (98eb2c5). Existing LOCK PNG blobs kept byte-identical; only new boards from main (#71) were inherited. Computer-scene import restored after the rebase. Stay draft.

cursoragent and others added 15 commits September 13, 2026 18:55
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>
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>
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>
Runtime 40×12 and 120×40 hashes after COR-13 /model residual.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
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>
Runtime 40x12 and 120x40 proofs for mode, mcp, resume, clear, sandbox.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
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>
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>
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>
/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>
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>
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>
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>
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>
Co-authored-by: Mathis <echobt@users.noreply.github.com>
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai Head bc3a188. Rebased onto origin/main after #71 and #72 (0621bf5). Existing LOCK PNG blobs kept byte-identical; only new boards from main were inherited (session-shared from #72). Stay draft.

@cursor
cursor Bot force-pushed the cursor/tui-residual-cor-7-9-10-14-15-c44a branch from 5b3aced to bc3a188 Compare September 13, 2026 18:55
@echobt
echobt marked this pull request as ready for review September 13, 2026 19:11
@echobt
echobt merged commit 950d6bb into main Sep 13, 2026
21 checks passed
@greptile-apps

greptile-apps Bot commented Sep 13, 2026

Copy link
Copy Markdown

Too many files changed for review (112 files, 100 file limit).

Bypass the limit by tagging @greptile-apps to review.

@echobt
echobt deleted the cursor/tui-residual-cor-7-9-10-14-15-c44a branch September 13, 2026 19:11
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