Skip to content

Commit e297086

Browse files
committed
Merge remote-tracking branch 'origin/main' into cl-10661-logging-cleanup-collapse-storms-fix-levels-add-correla
# Conflicts: # src/tui/runner/exit.ts
2 parents 1fa3f89 + 6ad8089 commit e297086

323 files changed

Lines changed: 23227 additions & 6535 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎bun.lock‎

Lines changed: 204 additions & 182 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎docs/ARCHITECTURE.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,7 @@ OpenTUI (`@opentui/core`) is the shipping shell; the Ink/React tree has been del
443443
- **Runner host** (`runner-host.ts`) — Runner-facing mount: catalog assembly from live config, chrome pushes on session change, subagent observe resolution, and session teardown (quitting is Ctrl+C twice, owned by the shell).
444444
- **Overlays and pickers** — Resume picker (`src/tui/pick-session.ts`) uses `runListModal` (`src/tui/list-modal.ts`). Slash-command surfaces (`/model`, `/settings`, `/permissions`, `/plugins`, etc.) route through `openCommandSurface` (`src/tui/command-surfaces.ts`).
445445
- **Auto mode** — Toggled by CLI flags only (`--auto` / `--no-auto`); there is currently no in-session key bound to it.
446-
- **Send-path ingest** — Submit, leftover send, and live steer run `ingestOperatorPrompt` (`src/tui/prompt-attachments.ts`): inline image-path mentions become attachments (`findImagePathMentions` / `imageAttachmentFromPath`); `@file` contents are inlined and `@dir` mentions become a directory summary (`resolveAtMentions` in `mention-resolution.ts`). The mention popup splices paths into the prompt (`spliceMentionCompletion`); it does not send. Ctrl+V / Ctrl+P (and `/paste-image`) attach a macOS clipboard PNG (`attachClipboardImage` in `shell.ts` → `readClipboardImage`); Cmd+V stays text (bracketed paste). Linux/Windows bitmap clipboard paste is not supported.
446+
- **Send-path ingest** — Submit, leftover send, and live steer run `ingestOperatorPrompt` (`src/tui/prompt-attachments.ts`): inline image-path mentions become attachments (`findImagePathMentions` / `imageAttachmentFromPath`); `@file` contents are inlined and `@dir` mentions become a directory summary (`resolveAtMentions` in `mention-resolution.ts`). The mention popup splices paths into the prompt (`spliceMentionCompletion`); it does not send. Ctrl+V / Ctrl+P (and `/paste-image`) attach an image from the system clipboard (`attachClipboardImage` in `shell.ts` → `readClipboardImage`); Cmd+V stays text (bracketed paste). Image clipboard reads go through the OpenTUI clipboard service (PNG, JPEG, GIF, WebP) on platforms whose host backend supports them.
447447

448448
Known keybindings: `Ctrl+C` interrupts the in-flight run, and quits on a second press inside a two-second window.
449449

‎docs/IMPLEMENTATION.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,10 +235,10 @@ a path into the prompt (`spliceMentionCompletion`). Attachments land at send
235235
time, not at accept time.
236236

237237
Ctrl+V / Ctrl+P and `/paste-image` call `attachClipboardImage` (`shell.ts`) →
238-
`readClipboardImage` (`image-attachments.ts`), which reads a macOS clipboard
239-
PNG via osascript `«class PNGf»`. Cmd+V is terminal bracketed paste and stays
240-
text. Linux and Windows bitmap clipboard paste is a separate product gap; do
241-
not treat bracketed-paste path text as a paste-time image gesture.
238+
`readClipboardImage` (`image-attachments.ts`), which reads PNG, JPEG, GIF, or
239+
WebP through the OpenTUI clipboard service. Cmd+V is terminal bracketed paste
240+
and stays text. Do not treat bracketed-paste path text as a paste-time image
241+
gesture.
242242

243243
## Configuration
244244

‎docs/RFC-ask-authz-suspend.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ already carries the primitive:
7272

7373
- The before-tool authz hook returns, for an `ask` effect,
7474
`{ type: "suspend", gate: { type: "approval", gateId, correlationId,
75-
timeoutAt }, pendingOp }` (`authz-extension.ts:263-267` upstream; the
75+
timeoutAt }, pendingOp }` (`authz-extension.ts:263-267` upstream; the
7676
reactor persists `pendingOp`, minting `correlationId` at :223 and
7777
`gateId = pending-${correlationId}` at :226).
7878
- `DEFAULT_APPROVAL_TIMEOUT_MS = 3_600_000` (:36) — one hour.

‎docs/TUI-064-compat-spike.md‎

Lines changed: 97 additions & 0 deletions
Large diffs are not rendered by default.

‎docs/TUI.md‎

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -878,11 +878,11 @@ sent messages. Once a real `paste` event has fired even once, the fallback
878878
heuristic is permanently skipped for the rest of the session
879879
(`src/tui/shell/keys.ts`, the `sawBracketedPaste` guard).
880880

881-
Ctrl+V and Ctrl+P attach a PNG from the macOS clipboard
881+
Ctrl+V and Ctrl+P attach an image from the system clipboard
882882
(`attachClipboardImage` in `src/tui/shell/prompt.ts` → `readClipboardImage` in
883-
`image-attachments.ts`).
884-
Cmd+V stays text (bracketed paste above). Clipboard image attach is
885-
macOS-only; Linux/Windows bitmap clipboard paste is not supported.
883+
`image-attachments.ts`, which reads through the OpenTUI clipboard service).
884+
Cmd+V stays text (bracketed paste above). The host clipboard backend reads
885+
PNG, JPEG, GIF, and WebP where the platform supports image clipboard data.
886886
`/paste-image` is the same attach path.
887887

888888
@-mention path completion opens a popup keyed off the `@token` under the
@@ -967,7 +967,7 @@ running its own selection. Two chords cover remaining copy needs:
967967
WezTerm, Kitty, and VS Code support it.
968968
- **Linux/Windows: Ctrl+click.** The app opens the URL through the
969969
platform opener (`open` on macOS as fallback, `xdg-open`, `rundll32
970-
url.dll,FileProtocolHandler` — argv spawns, never through a shell).
970+
url.dll,FileProtocolHandler` — argv spawns, never through a shell).
971971
- **Right-click safety.** The open gesture requires a left (button-0)
972972
press with the modifier held, so Ctrl+right-click never opens a URL —
973973
context menus stay safe.
@@ -1042,7 +1042,12 @@ before any other Corbits code executes: the TUI holds the alternate screen
10421042
for the rest of the process, and anything landing on the real terminal
10431043
mid-frame corrupts the paint. Anything the operator must actually see goes
10441044
through the transcript (`appendStreamRow`) or a chrome notice — never a log
1045-
line.
1045+
line. Confirmation flashes stay on the status row and are also mirrored with
1046+
`console.info` into OpenTUI's Console overlay (`consoleMode: "console-overlay"`,
1047+
the production renderer default). The overlay is an in-frame observation
1048+
surface: it stays hidden unless `SHOW_CONSOLE` is set, and it is not a
1049+
durability surface. The file sink remains mandatory, because a log line emitted
1050+
before a renderer exists has nowhere else to go.
10461051

10471052
## Test-harness blind spots
10481053

@@ -1068,6 +1073,11 @@ terminal. It cannot observe:
10681073
- **The system clipboard.** `system-clipboard.ts`'s helper-binary spawns and
10691074
OSC 52 fallback are exercised with mocked spawn functions in tests; no
10701075
test round-trips through a real `pbcopy`/`xclip`/terminal clipboard.
1076+
- **A shown Console overlay.** Headless suites can enable
1077+
`consoleMode: "console-overlay"` and read `renderer.console.getCachedLogs()`
1078+
while the overlay stays hidden. That pins that a mirrored flash was captured
1079+
and that a hidden console adds no rows to `captureCharFrame`. It does not
1080+
show whether a real terminal paints the overlay when `SHOW_CONSOLE` is set.
10711081
- **Terminal-owned text selection.** Native drag-select only exists once DEC
10721082
mouse reporting is off and a real terminal emulator is running; there is
10731083
no terminal emulator in the test harness to select text in. OpenTUI

0 commit comments

Comments
 (0)