Skip to content

docs(tui): COR-226 session-shared lock_v2 scene - #72

Merged
echobt merged 3 commits into
mainfrom
cursor/cor-226-session-shared-lock-95cc
Sep 13, 2026
Merged

echobt merged 3 commits into
mainfrom
cursor/cor-226-session-shared-lock-95cc

Conversation

@echobt

@echobt echobt commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

COR-226 — /share · /unshare Shared status-line marker

Adds one lock_v2 ui-state, session-shared, at both sizes (40×12 and 120×40) — designer boards, runtime captures, and txt grids — plus the runtime chrome the board needs.

Linear: COR-226 — cli shortcut: /share and /unshare (title only; no label/status change).

Head SHA: de4cba2 — rebased onto origin/main tip 98eb2c5 (#71, on top of #69/#70). Session-shared runtime PNG bytes unchanged.

What the board locks

Interactive session chrome while a read-only share link is live:

  • Status line (header row 0, left margin): Shared · read-only at 120 cols, Shared at 40 cols — dim #6B7280, never accent, never a wash. Persistent chrome, not a one-shot toast: it stays up for as long as the link is live and the token counter keeps its right-aligned slot.
  • Transcript: the /share user bar plus dim system copy — the minted read-only URL on cortex.foundation/share/9f4c2a71, a “copied to your clipboard” note (wide only), and the /unshare way out.
  • Composer stays interactive (idle placeholder, banner-green > caret) and the footer stays the normal session footer — no hold, no approval sheet.
  • Narrow 40×12 keeps the word Shared in the marker and shortens the URL line to just the link.

/unshare is idle chrome: clearing AppState::share_link drops the marker. No /unshare sheet, no /share backend work in this PR.

Runtime wiring

  • AppState::share_link: Option<String> — live read-only link, None after /unshare.
  • ui::chrome::paint_status_marker — dim header-row marker at the left margin, clipped so it never runs into the token counter.
  • ui::consts::SHARE_MARKER / SHARE_MARKER_NARROW.
  • lock_v2_share.rs — the session-shared scene plus its tests, split out so lock_v2.rs keeps its line-count baseline (same pattern as lock_v2_network.rs / lock_v2_parity.rs).

Counts

After rebase onto #71: 96 wide / 50 narrow. Keeps #71 (theme-picker, handoff-confirm, session-fork, init-agents, custom-commands, hooks-lifecycle), #70, and #69.

pngDelta

pngDelta: 0 for docs/media/tui-lock-v2/runtime/** files that existed before the rebase. Session-shared runtime SHA256s:

  • 120x40/session-shared.png b07f2a98abc7e53412810c4b4fed463163ea1e152a84c1535c97ab0e966991c6
  • 40x12/session-shared.png 7b15b2a2ef28afdc7d895c04cb91fed17673a6a87ce14ec410ebd4430a387e8e

Verification

  • Conflict resolution in code/docs only (counts 96/50; both apply_designed_scene and apply_share_scene).
  • Fade tests remain scheduler-safe (60s duration; constructor progress() without reset()).

Test plan

  • Conflict resolution in code/docs only; no runtime PNG byte changes
  • cargo fmt --all -- --check
  • ./scripts/clippy.sh
  • cargo test -p cortex-tui --lib lock_v2 and animation fade tests
  • TUI / snapshot tests for every surface this PR touches
  • cargo audit (or note a documented .cargo/audit.toml exception)
  • 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 — lock_v2 session-shared scene tests cover the surface; runtime PNGs were not recaptured.
  • Tests addedlock_v2_share.rs plus fade scheduler-safe assertions. No mocks that report success.
  • No secrets — no API keys, WorkOS secrets, R2/AWS credentials, or .env files are included.

Risk

Lock board count assertions must stay aligned with #71 + session-shared. Recapturing runtime PNGs would break the byte-identical LOCK.

Open in Web Open in Cursor 

@cursor
cursor Bot force-pushed the cursor/cor-226-session-shared-lock-95cc branch from a1924a6 to 174b221 Compare September 13, 2026 17:40
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

2 similar comments
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

@echobt

echobt commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

@greptileai

@greptile-apps

greptile-apps Bot commented Sep 13, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds the session-shared lock-v2 scene and a dim, width-aware read-only share-link marker to the TUI status chrome. It also updates scene assets and coverage, and strengthens fade constructor tests.

Confidence Score: 5/5

Safe to merge.

No outstanding issues remain. The previously reported design-spec scope statement is corrected, and the fade tests now sample newly constructed fades directly, preserving constructor initialization coverage.

Reviews (7): Last reviewed commit: "test(core): sample fade constructor with..." | Re-trigger Greptile

Comment thread docs/media/tui-lock-v2/SPEC.md Outdated
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

@cursor
cursor Bot force-pushed the cursor/cor-226-session-shared-lock-95cc branch from aa70c30 to 233f157 Compare September 13, 2026 17:58
@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 — COR-226 session-shared

Verdict: LOCK (chrome lockable) on head 233f157f.

QA designer + runtime 40×12 and 120×40 session-shared

  • Ink chrome #000 / #F5F5F5 / #6B7280 / #262626 / #1A1A1A; violet px = 0
  • Shared marker is dim header chrome; no violet / competitor strings
  • Linear COR-226 already Already designed

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

@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

Comment thread src/cortex-core/src/animation/mod.rs Outdated
@cursor
cursor Bot force-pushed the cursor/cor-226-session-shared-lock-95cc branch from b98a5df to 33f127e Compare September 13, 2026 18:40
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

@greptileai

cursoragent and others added 3 commits September 13, 2026 18:41
Add designer and runtime lock boards for a live read-only /share link at
40x12 and 120x40. The Shared marker is dim status chrome on the header row;
/unshare clears it by dropping the live link.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
nextest can delay a worker tens of milliseconds between Fade construction
and progress(), so a 100ms fade-in was already past mid-curve on CI.
Use a long duration and reset() immediately before sampling.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
Keep the 60s duration for nextest scheduling, but assert constructor
progress() directly so fade_in/fade_out start timestamps stay covered.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
@cursor
cursor Bot force-pushed the cursor/cor-226-session-shared-lock-95cc branch from 33f127e to de4cba2 Compare September 13, 2026 18:42
@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 18:54
@echobt
echobt merged commit 0621bf5 into main Sep 13, 2026
21 checks passed
@echobt
echobt deleted the cursor/cor-226-session-shared-lock-95cc branch September 13, 2026 18:54
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