Skip to content

Terminal exit error handling - #116

Closed
juliusmarminge wants to merge 1 commit into
mainfrom
cursor/terminal-exit-error-handling-eafe
Closed

juliusmarminge wants to merge 1 commit into
mainfrom
cursor/terminal-exit-error-handling-eafe

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Feb 28, 2026 •

Copy link
Copy Markdown
Member

Auto-close the terminal on exit and suppress benign write errors that occur during shutdown.

Commands like exit should gracefully close the terminal without displaying error messages, treating such "failures" as normal terminal behavior rather than hard errors.


Open in Web Open in Cursor 

Note

Handle terminal exit errors by invoking components.TerminalViewportProps.onCloseTerminal from components.TerminalViewport and remove system messages in ThreadTerminalDrawer.tsx

Add onCloseTerminal to components.TerminalViewportProps and call it when write errors match terminal-errors.isIgnorableTerminalWriteError or on exited; update ThreadTerminalDrawer to pass the callback; add tests for isIgnorableTerminalWriteError and implement the utility in terminal-errors.ts.

📍Where to Start

Start with the TerminalViewport component changes in ThreadTerminalDrawer.tsx, then review isIgnorableTerminalWriteError in terminal-errors.ts.

Macroscope summarized 7dc0ff1.

Co-authored-by: Julius Marminge <juliusmarminge@users.noreply.github.com>
@cursor

cursor Bot commented Feb 28, 2026

Copy link
Copy Markdown
Contributor

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@coderabbitai

coderabbitai Bot commented Feb 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch cursor/terminal-exit-error-handling-eafe

Comment @coderabbitai help to get the list of available commands and usage tips.

radroid referenced this pull request in radroid/t3code Aug 8, 2026
…eep reopened

Fallout from #56, caught by re-checking the alert list after it merged rather than assuming the count only goes down.

Before the sweep the tree had one nanoid@3.3.12, and GHSA #115/#116 against it sat auto-dismissed by GitHub's auto-triage rule — it was scoped as a development dependency. astro 7.2.0 restructured its tree, adding an already-fixed nanoid@3.3.17 alongside the old copy and flipping that copy's scope to runtime, which took it out from under the rule and reopened both alerts.

The sweep did not introduce a vulnerability — 3.3.12 was there before and was always affected — but it turned a suppressed finding into a live one.

One override, "nanoid@3": ^3.3.17, dedupes onto the version already in the tree. Both advisories want <= 3.3.17, so this clears both.

Ledger figures refreshed in the same commit per SEAMS.md's self-reference rule.
github-actions Bot referenced this pull request in radroid/t3code Aug 10, 2026
…eep reopened

Fallout from #56, caught by re-checking the alert list after it merged rather than assuming the count only goes down.

Before the sweep the tree had one nanoid@3.3.12, and GHSA #115/#116 against it sat auto-dismissed by GitHub's auto-triage rule — it was scoped as a development dependency. astro 7.2.0 restructured its tree, adding an already-fixed nanoid@3.3.17 alongside the old copy and flipping that copy's scope to runtime, which took it out from under the rule and reopened both alerts.

The sweep did not introduce a vulnerability — 3.3.12 was there before and was always affected — but it turned a suppressed finding into a live one.

One override, "nanoid@3": ^3.3.17, dedupes onto the version already in the tree. Both advisories want <= 3.3.17, so this clears both.

Ledger figures refreshed in the same commit per SEAMS.md's self-reference rule.
radroid referenced this pull request in radroid/t3code Aug 10, 2026
…eep reopened

Fallout from #56, caught by re-checking the alert list after it merged rather than assuming the count only goes down.

Before the sweep the tree had one nanoid@3.3.12, and GHSA #115/#116 against it sat auto-dismissed by GitHub's auto-triage rule — it was scoped as a development dependency. astro 7.2.0 restructured its tree, adding an already-fixed nanoid@3.3.17 alongside the old copy and flipping that copy's scope to runtime, which took it out from under the rule and reopened both alerts.

The sweep did not introduce a vulnerability — 3.3.12 was there before and was always affected — but it turned a suppressed finding into a live one.

One override, "nanoid@3": ^3.3.17, dedupes onto the version already in the tree. Both advisories want <= 3.3.17, so this clears both.

Ledger figures refreshed in the same commit per SEAMS.md's self-reference rule.
piero-dev25 added a commit to piero-dev25/devgame that referenced this pull request Aug 12, 2026
… provider matrix, architecture drafts

Five-lane research wave against the charter. Headline: the canonical
tool server is SHIPPED infrastructure, not a hypothesis — the server
hosts /mcp and all five provider adapters inject its credential;
generation is a toolkit directory, not a transport project. Async is
forced by Codex's 60s tool timeout: generate_* returns a job id, the
SERVER owns the provider poll loop. Persistence splits by mutability
(decisions event-sourced on the existing project aggregate; progress
in-memory per the fork's own registry precedent); GeneratedAsset must
NOT live in thread-scoped attachmentsDir. The McpCapability widening
(pingdotgg#116) lands as its own PR before any tool. Tripo over Meshy for the
3D spike; ComfyUI over Unsloth for local image. Unsloth notes are
clean-room (AGPL boundary stated in-file). agent-tooling.md carries a
reconciliation banner: its repo-specific findings were measured
against the wrong codebase and are superseded; protocol-level content
verified valid.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
piero-dev25 added a commit to piero-dev25/devgame that referenced this pull request Aug 12, 2026
…pingdotgg#116, V2 prerequisite)

The vendor PreviewAutomationUnavailableError hardcodes
capability: Schema.Literal("preview") inside packages/contracts and is
the declared failure of every preview tool — widening that literal was
the trap. requireMcpCapability now raises a fork-owned
McpCapabilityUnavailableError; the preview toolkit's invoke translates
it back to the vendor error at its one call site (total translation —
that site only ever requests preview), so every preview tool's declared
failure stays honest and packages/contracts has a provably empty diff.

The capability GRANT stays preview-only (registry comment points at
docs/v2/OWNER_DOCKET.md D2 — pending owner ruling). Red-proven three
ways, including the trap itself: against the pre-widening code the
generation tests fail with the vendor schema literally rejecting the
second capability value. 43 mcp-area tests green; server + contracts
typecheck clean; contracts test suite 228 green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.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