Skip to content

fix(server): Antigravity text generation shows sign-in and setup errors - #29823

Merged
maria-rcks merged 3 commits into
pingdotgg:mainfrom
saphid:fix/antigravity-textgen-error-detail
Nov 3, 2026
Merged

maria-rcks merged 3 commits into
pingdotgg:mainfrom
saphid:fix/antigravity-textgen-error-detail

Conversation

@saphid

@saphid saphid commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Problem

When Antigravity is the text generation model, commit messages, PR text, branch names and thread titles failed with only "Antigravity text generation failed." That happened even when T3 knew exactly what was wrong:

  • T3's own setup errors were hidden. If a sign-in or sign-out is still running, or the Antigravity settings are incomplete, T3 refuses to start the helper with a clear message (for example "Antigravity sign-in or sign-out is in progress. Try again after it finishes."). The user only saw the generic failure.
  • A signed-out Antigravity agent rejects the request with the ACP "auth required" error (JSON-RPC code -32000). The user saw the generic failure, not a prompt to sign in.

Change

The fallback error mapper in AntigravityTextGeneration.ts now picks a fixed detail from structured signals:

  • ProviderSetupError: its detail passes through. All of these on this path are T3-authored fixed text, or text built from structured attributes. The shared provider-core failure helper already treats them as curated.
  • ACP sign-in required (the existing isAntigravitySignInRequiredError: code -32000, or T3's blocked-login transport error): the existing fixed text "Sign in to Antigravity in Settings before you continue."
  • Anything else: the generic "Antigravity text generation failed."

The agent's own message stays only in the error's cause. It is never copied into detail. This follows docs/internals/effect-services.md "Errors": messages are fixed or built from structured attributes, never from raw provider text. Usage limits are not mapped. At this call site Antigravity reports them only as message text, not as a structured code.

Scope and approval

Very small, focused fix for an obvious bug, so no prior issue: about 10 non-test lines in one file. One existing test became a two-row table (sign-in code and an unknown code). The existing sign-in admission test gained one assertion.

Overlap search: the local PR index, plus gh searches for "Antigravity text generation" and Antigravity AcpRequestError. Closest: #29548 (ACP sign-in failure wording in provider-core/failure.ts) and #21419 (Antigravity sign-in feedback in AntigravityAuth.ts). Neither touches text generation. #29800 (Grok), #29748 (Cursor) and #29805 (Codex) are sibling fixes for other providers.

Verification

  • Red on the previous head (which copied the agent's message into detail): AssertionError: expected 'Antigravity text generation failed: R…' to be 'Sign in to Antigravity in Settings be…'. The unknown-code row also failed: expected 'Antigravity text generation failed: R…' to be 'Antigravity text generation failed.'
  • The test also asserts that the raw provider text does not appear in detail.
  • Green: vp test run src/textGeneration/AntigravityTextGeneration.test.ts passes 34 of 34.
  • vp run check:changed: format, lint, knip, graphql, typecheck (3 packages) and tests (2 files) all pass.
  • Not checked: a live Antigravity agent returning a prompt error, or a live signed-out Antigravity. The tests inject the errors at the runtime boundary.

Reviewed with sol-loop: 3 rounds with GPT-6.1 Sol on high (one per commit). Sol verdict: approved.

Created with Claude Opus 5.5 in Claude Code (T3 Code).

🤖 Generated with Claude Code

…r's error message

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Nov 3, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Nov 3, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 8c82528

Macroscope's review found this PR approvable — Antigravity text generation now shows actionable setup and sign-in errors instead of a generic failure. The change is limited to error feedback and leaves authentication behavior, product defaults and data handling unchanged.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Walkthrough

Antigravity text generation now selects provider setup details or a fixed sign-in-required detail for recognized errors. Other errors retain the generic detail. Tests verify fixed details for selected ACP prompt error codes, ensure raw provider text is excluded, and check the sign-in admission detail.

Changes: Antigravity error details

Layer / File(s) Summary
Map Antigravity error details
apps/server/src/textGeneration/AntigravityTextGeneration.ts, apps/server/src/textGeneration/AntigravityTextGeneration.test.ts
The error handler uses ProviderSetupError.detail for provider setup errors and a sign-in-required detail for recognized sign-in errors. Other errors use the generic detail. Tests check fixed details for ACP prompt errors -32000 and -32603, verify raw provider text is excluded, clean up fixtures, and assert the sign-in admission detail.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Possibly related PRs

Suggested labels: bugfix

Suggested reviewers: t3dotgg

Merge Risk: Minimal · up to 8c825

The reviewed error mapping has no established remaining merge-blocking defect.

Pre-merge checks: Passed 3 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Linked Issues check Warning Directly linked issue #29800 is open. Its coding requirements apply to this PR. It requires Grok text generation to map ACP JSON-RPC error codes to fixed details: -32003 gives "Grok usage limit reache… Choose one remediation. (a) Add the Grok change to this PR. In the Grok text-generation error mapping, map ACP error codes -32003, -32000, and (for model switching only) -32602 to the fixed details in the #29800 table. Keep all other errors…
Passed Passed checks: 3 passed
Check name Status Explanation
Title check Passed The title names the Antigravity text generation area and the change of surfacing sign-in and setup errors. The raw summary confirms the change maps ProviderSetupError details and ACP sign-in-required …
Description check Passed The description follows the repository template. It has Problem, Change, Scope and approval, and Verification sections. The Problem section explains the expected behavior and the observed generic fail…
Out of Scope Changes check Passed The whole-PR diff changes one source file and its test file. In AntigravityTextGeneration.ts, the diff makes three changes. It changes the ProviderSetupError import from type-only to a value import so…
Full details: Title check

Explanation

The title names the Antigravity text generation area and the change of surfacing sign-in and setup errors. The raw summary confirms the change maps ProviderSetupError details and ACP sign-in-required errors to user-facing text. The title is specific, concise, and follows the conventional commit form. It does not mention the fixed generic fallback or that raw agent text is kept out of detail, but the main change is clearly covered.

Full details: Description check

Explanation

The description follows the repository template. It has Problem, Change, Scope and approval, and Verification sections. The Problem section explains the expected behavior and the observed generic failure. The Change section explains the error mapping and cites the relevant docs rule. The Scope section explains why no prior issue exists and lists overlapping PRs. The Verification section lists the focused test run, the red-then-green result, the check run, and what was not checked. One gap: the Scope section justifies the small-fix exemption, which is acceptable, but the template's approval requirement for a very small obvious bug is met by the stated explanation. The description is mostly complete.

Full details: Out of Scope Changes check

Explanation

The whole-PR diff changes one source file and its test file. In AntigravityTextGeneration.ts, the diff makes three changes. It changes the ProviderSetupError import from type-only to a value import so Schema.is can test it. It adds the isProviderSetupError guard. It sets the TextGenerationError detail to cause.detail for ProviderSetupError, to ANTIGRAVITY_SIGN_IN_REQUIRED_MESSAGE for isAntigravitySignInRequiredError matches, and otherwise keeps "Antigravity text generation failed.". The agent message stays only in cause. This directly implements the bug described in the PR description. The PR does not link an Antigravity issue, so its own description defines its scope. No change in the diff touches Grok or another provider. The test changes support the same behavior. The thematic overlap with #29800 does not make the Antigravity change unrelated. I did not inspect the provider-core helper that treats ProviderSetupError details as curated. That point rests on the PR description.

Full details: Linked Issues check

Explanation

Directly linked issue #29800 is open. Its coding requirements apply to this PR. It requires Grok text generation to map ACP JSON-RPC error codes to fixed details: -32003 gives "Grok usage limit reached. Try again later.", -32000 gives "Grok authentication is required.", and -32602 in the model switch gives "Grok rejected the text generation model settings.". Other errors keep the generic Grok detail. Raw provider text must stay only in cause. The whole-PR diff (merge base f6503f0 to head 8c82528) changes only apps/server/src/textGeneration/AntigravityTextGeneration.ts and AntigravityTextGeneration.test.ts. It changes no Grok file. The head file list for apps/server/src/textGeneration contains GrokTextGeneration.test.ts but no Grok implementation file, and this PR does not touch Grok. The PR objectives call the Grok issue context only. That conflicts with the link type. A direct link keeps #29800 as a primary requirement. Its Grok requirements are therefore unmet by this PR. The Antigravity change does not satisfy them. The earlier remediation (append the raw ACP message to the detail) no longer matches the current issue text, which requires fixed details.

Resolution

Choose one remediation. (a) Add the Grok change to this PR. In the Grok text-generation error mapping, map ACP error codes -32003, -32000, and (for model switching only) -32602 to the fixed details in the #29800 table. Keep all other errors on the generic Grok detail. Keep the raw provider text only in cause. Add tests for each code and for the model-switch case. The detail must be asserted exactly, and the test must show that raw provider text is absent from detail. (b) If this PR stays Antigravity-only, change the link to #29800 from direct to contextual or sibling context. Then the #29800 coding requirements no longer apply to this PR. Confirm the link change before the next assessment.

Finishing Touches
Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

ast-grep (0.51.1)

ast-grep could not parse rule config: /ast-grep-rules/ast-grep-essentials/rules/typescript/security/jwt-weak-encryption-typescript.yml

Usage-based review receipt

Note

This review was completed with usage-based billing: files reviewed beyond your plan's included limits are billed at $0.25/file. View usage-based billing.

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.
Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between a87d9a9 and 8c82528.

Files selected for processing: 2
  • apps/server/src/textGeneration/AntigravityTextGeneration.test.ts
  • apps/server/src/textGeneration/AntigravityTextGeneration.ts

Limit details: You’ve used all 10 included reviews currently available.

@coderabbitai coderabbitai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Fix comments: Fix CodeRabbit comments on this PR

…ead of a generic failure

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@macroscopeapp
macroscopeapp Bot dismissed their stale review November 3, 2026 02:12

Dismissing prior approval to re-evaluate a87d9a9

@github-actions github-actions Bot added size:S 10-29 changed lines (additions + deletions). and removed size:XS 0-9 changed lines (additions + deletions). labels Nov 3, 2026
Copying the ACP error message into TextGenerationError.detail broke the error rule in docs/internals/effect-services.md. A sign-in-required error (ACP code -32000) now shows the fixed Antigravity sign-in text; other agent failures keep the generic detail. The agent's message stays in cause.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@saphid saphid changed the title fix(server): Antigravity commit and title generation keep the provider's error message fix(server): Antigravity text generation shows sign-in and setup errors Nov 3, 2026
@saphid

saphid commented Nov 3, 2026

Copy link
Copy Markdown
Contributor Author

Note

🤖 Claude Opus 5.5 responding on behalf of saphid

Reworked this PR to follow the documented error rule in docs/internals/effect-services.md "Errors". The agent's raw message is no longer copied into TextGenerationError.detail. It stays only in cause.

Mapped categories:

  • ProviderSetupError (T3's own fixed setup and sign-in admission text): its detail passes through unchanged.
  • ACP sign-in required (-32000, via the existing isAntigravitySignInRequiredError): "Sign in to Antigravity in Settings before you continue."
  • Any other failure: "Antigravity text generation failed."

Commit: 8c82528

@maria-rcks

maria-rcks commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Note

Written by gpt-6.1-sol on behalf of Maria

Verified in a real dev environment

Verified unchanged head 8c8252834c7bec72a21d8c171a1389e94cc20589 against github/main at 61c3794c32b0eeebfac09add43e403618c65d2d7 on Linux. Installed both with vp i and ran their real dev servers sequentially with isolated state. Drove the web client using repository Playwright and /usr/bin/google-chrome. No mocks or fixtures.

Added a real git repository through the app and used a real Codex gpt-6.1-sol turn to create an uncommitted README. Added Antigravity through provider settings with Gemini API key authentication and no key. Selected its text generation model using the running server's authenticated server.updateSettings WebSocket API.

Clicking Commit on main showed only Antigravity text generation failed. The server's error cause already contained Enter a Gemini API key in the Antigravity provider settings. On this PR, the same action with the same thread and README showed that exact setup instruction.

main: commit generation hides the missing-key instruction

pr: the same commit action shows the missing-key instruction

Switched to Google account authentication and installed managed Antigravity 1.4.5 through Settings. Clicking Commit while signed out showed Sign in to Antigravity in Settings before you continue. The recording shows the actual request and resulting error. Failed generation left the README uncommitted.

pr: real signed-out antigravity commit generation

Neighbor checks passed: a real Codex gpt-6.1-sol follow-up read the README and returned its heading; switching text generation back to Codex and clicking Commit created 2c12c7d docs: describe text generation setup verification, leaving a clean working tree. The missing-runtime Antigravity setup instruction also reached the client before installation.

Blacksmith passed the 34 focused Antigravity tests and vp run check:changed f6503f0e717f5d577a897149b4ceeb3d1bf00b3a: format, lint, knip, GraphQL generation check, typechecks, and 35 tests. GitHub's final check rollup had no failures or pending runs; some jobs were skipped and an earlier native fingerprint run was cancelled alongside a successful run. No source changes or pushes were needed.

Short runtime transcript

Not verified

Signed-in Antigravity success needs a Google account or API credential, neither provided here. Did not force a real unknown ACP error or race a sign-in/sign-out operation. PR text, branch-name and title failure entry points were not exercised individually. Electron shell, native mobile, other operating systems, and relay/tunnel connections were not exercised on this Linux web setup.

@maria-rcks
maria-rcks merged commit 9d7f771 into pingdotgg:main Nov 3, 2026
33 of 34 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Nov 4, 2026
**v0.1.7-nightly.20261104.4151** · 155 changes from 31 contributors

- **Share thread links.** Copy a thread link to share anywhere and open the thread directly.
- **Secret-backed usage limits.** Use a secret provider such as 1Password for usage-limit source keys.
- **Windows Group Policy.** Windows administrators can configure T3 Code using a Group Policy template.
- **Faster pairing.** New pairing links display their QR code immediately in Settings.
- **Saved drafts.** Drafts saved by older versions now survive updates.
- **Codex threads.** Codex threads open in another client are no longer silently replaced.
- **Background work.** Queued provider or model switches no longer end running background agents and commands.

### Plus 137 more bug fixes and performance improvements.

<details>
<summary>Full changelog</summary>

## What's Changed
* fix(github): Rebase stack no longer conflicts after a lower layer is squash-merged by @saphid in pingdotgg/t3code#29919
* fix(server): changing a task's wake policy no longer reverts a checkpointed parent run by @juliusmarminge in pingdotgg/t3code#25662
* perf(server): settled PR lookups stop re-spawning git every sweep by @juliusmarminge in pingdotgg/t3code#29721
* fix(server): generated commit and PR text ignores git signature output by @saphid in pingdotgg/t3code#29580
* fix(web): picking a branch in a subfolder project keeps the thread in the project folder by @saphid in pingdotgg/t3code#29908
* fix(mobile): close and reopen pull requests from the actions menu by @juliusmarminge in pingdotgg/t3code#29962
* fix(web): mouse wheel over the thread minimap glides instead of jumping by @flamboh in pingdotgg/t3code#29038
* fix(server): managed policy covers Kiro by @juliusmarminge in pingdotgg/t3code#29915
* fix(server): t3 update installs from the policy's update mirror by @juliusmarminge in pingdotgg/t3code#29911
* fix(desktop): Ctrl+R on macOS reaches the preview page instead of reloading it by @saphid in pingdotgg/t3code#29893
* fix(server): native forks after an undo no longer copy later turns by @saphid in pingdotgg/t3code#29902
* fix(server): idle compaction still runs after a queued message is removed or steered by @saphid in pingdotgg/t3code#29904
* fix(server): guests of a forked thread can open files on the messages it inherited by @saphid in pingdotgg/t3code#29794
* fix(evals): resume browser verification after unavailable status by @Yash-Singh1 in pingdotgg/t3code#30298
* fix(shared): saving one source control token no longer drops the other hosts' tokens by @yordis in pingdotgg/t3code#29554
* fix(desktop): a policy that stops startup no longer points at another release by @juliusmarminge in pingdotgg/t3code#30319
* docs: pin an absolute binary path under a permission cap by @juliusmarminge in pingdotgg/t3code#29916
* fix(mobile): Android follow-up menu shows in full with the keyboard open by @juliusmarminge in pingdotgg/t3code#29263
* fix(web): deleting the open thread no longer opens a snoozed or settled thread by @juliusmarminge in pingdotgg/t3code#29643
* fix(web): closing Settings or Usage no longer jumps back to a quote's source by @juliusmarminge in pingdotgg/t3code#29013
* fix(server): squash-merged branches no longer offer push & create PR by @juliusmarminge in pingdotgg/t3code#28494
* fix(mobile): settings providers show the ACP registry icon by @juliusmarminge in pingdotgg/t3code#28135
* fix(server): Grok usage limits tell Legacy-mode xAI accounts to switch to Privacy Mode by @juliusmarminge in pingdotgg/t3code#28097
* fix(usage): label a proxied Claude account by its e-mail, and drop .json from hub rows by @juliusmarminge in pingdotgg/t3code#28065
* fix(gitlab): a signed-out default glab host no longer hides other signed-in hosts by @juliusmarminge in pingdotgg/t3code#27840
* perf(server): prune events the projections already cover by @juliusmarminge in pingdotgg/t3code#29806
* fix(server): GPT-6.1 Sol no longer compacts after every tool call on managed Codex by @maria-rcks in pingdotgg/t3code#30004
* feat(policy): admins set managed policy from a Group Policy template by @juliusmarminge in pingdotgg/t3code#29862
* perf(server): bound streaming recovery reads by active runs by @Yash-Singh1 in pingdotgg/t3code#30357
* perf(server): read pull request metadata from a lightweight snapshot by @Yash-Singh1 in pingdotgg/t3code#30356
* fix(server): cancelling worktree setup no longer leaves its new branch behind by @saphid in pingdotgg/t3code#29781
* feat(mobile): add on-device Android dictation by @PixPMusic in pingdotgg/t3code#26734
* feat(server): read usage limit source keys from a secret provider by @yordis in pingdotgg/t3code#27760
* feat(device): read the EAS access token from a secret provider by @yordis in pingdotgg/t3code#27763
* fix(server): route missing read-only queries to readers by @Yash-Singh1 in pingdotgg/t3code#30366
* perf(server): index delegated recovery candidates by @Yash-Singh1 in pingdotgg/t3code#30359
* feat(server,web,mobile,desktop): Copy thread copies a link that opens the thread by @juliusmarminge in pingdotgg/t3code#26290
* feat(mobile,web): copied thread links open the mobile app by @juliusmarminge in pingdotgg/t3code#29815
* fix(antigravity): rate-limited turns keep their reset time by @saphid in pingdotgg/t3code#29594
* fix(server): startup no longer hangs on a shell stuck in the kernel by @AdEx-Partners-DE in pingdotgg/t3code#27938
* fix(server): reverting files before the first commit no longer leaves them staged by @Abhishek-B-R in pingdotgg/t3code#28647
* fix(server): truncated Claude task output no longer starts with a replacement character by @Abhishek-B-R in pingdotgg/t3code#28643
* fix(shared): relative file links with routing punctuation open as files by @Abhishek-B-R in pingdotgg/t3code#28637
* fix(server): messages cut by a restart no longer stay marked as streaming by @Abhishek-B-R in pingdotgg/t3code#28646
* fix(server): Antigravity Auto asks instead of approving every request by @parmartejass in pingdotgg/t3code#23698
* fix(server): Codex threads open in another client are no longer silently replaced by @derektrimm in pingdotgg/t3code#21045
* fix(server): WSL servers avoid ports already used by Windows by @tylerjenningsw in pingdotgg/t3code#22962
* perf(web): reuse repeated inline skill lookups by @luke2x in pingdotgg/t3code#29008
* fix(opencode): expand home-relative executable paths by @voltcrash in pingdotgg/t3code#29326
* fix(server): title regeneration works after a thread's worktree is cleaned up by @saphid in pingdotgg/t3code#29606
* fix(server): dev servers a Codex agent starts show under its thread by @saphid in pingdotgg/t3code#29687
* fix(server): status no longer fetches a remote named after a local tracked branch by @saphid in pingdotgg/t3code#29670
* fix(server): preview snapshots no longer cut an emoji in half by @saphid in pingdotgg/t3code#29600
* fix(server): restart notes no longer split an emoji in a long background task label by @saphid in pingdotgg/t3code#29647
* fix(acp): Always allow no longer cancels the turn when an agent only offers allow-once by @MarcoDotIO in pingdotgg/t3code#29463
* fix(server): forking a Codex thread archived outside T3 Code no longer fails by @saphid in pingdotgg/t3code#29618
* perf(shared): stop single-token message search at the best hit by @hieu-lee in pingdotgg/t3code#28930
* fix(preview): a dropped stream withdraws its stale file picker by @saphid in pingdotgg/t3code#29655
* fix(provider-acp): ACP threads keep receiving events after a rollback by @trevoedwards in pingdotgg/t3code#28987
* perf(opencode): provider event logs skip per-token reply deltas by @saphid in pingdotgg/t3code#29673
* fix(web): open files from Claude and ACP tool-call diffs by @Jo2234 in pingdotgg/t3code#29309
* fix(server): files tree labels ignored folders inside git submodules by @saphid in pingdotgg/t3code#29650
* fix(server): server updates reclaim partial database backups left by killed updates by @MarcoDotIO in pingdotgg/t3code#29464
* fix(server): PR watch wakes no longer split an emoji in a long comment by @saphid in pingdotgg/t3code#29633
* fix(server): pinning a settled thread stamps its return to the active list by @saphid in pingdotgg/t3code#29602
* fix(server): Claude's commands no longer run Electron apps as Node by @u9g in pingdotgg/t3code#29413
* docs: keybindings guide lists the rightPanelOpen when key by @saphid in pingdotgg/t3code#29677
* perf(shared): avoid redundant visibility work on status updates by @hieu-lee in pingdotgg/t3code#28965
* fix(desktop): failed settings saves no longer leave temp files behind by @saphid in pingdotgg/t3code#29635
* fix(acp): a final agent message without a trailing newline is no longer dropped by @saphid in pingdotgg/t3code#29605
* fix(server): terminal history keeps output after an unterminated OSC by @saphid in pingdotgg/t3code#29604
* fix(cli): t3 up's pairing hint keeps --base-dir by @saphid in pingdotgg/t3code#29684
* fix(shared): preserve omitted components in zero-major caret ranges by @Jo2234 in pingdotgg/t3code#29335
* fix(server): thread titles use linked PR context when the URL is followed by a colon or bold markers by @saphid in pingdotgg/t3code#29656
* fix(source-control): remotes like github.com:owner/repo reach their host by @MarcoDotIO in pingdotgg/t3code#29457
* fix(server): terminal history keeps text with C1 characters by @saphid in pingdotgg/t3code#29649
* fix(server): worktree handoff follows the project's start-from-origin setting by @saphid in pingdotgg/t3code#29810
* fix(server): review keeps tracked changes when untracked files overflow the listing by @saphid in pingdotgg/t3code#29615
* fix(server): browser setup advice names the server's T3 home by @saphid in pingdotgg/t3code#29646
* fix: honor generic MIME aliases in attachment previews by @Jo2234 in pingdotgg/t3code#29360
* fix(client-runtime): terminals fit their pane again after a reconnect by @saphid in pingdotgg/t3code#29696
* fix(server): Run now on a scheduled task says why it was refused by @saphid in pingdotgg/t3code#29620
* fix(server): a preview_open whose first load fails no longer leaves a hidden tab behind by @saphid in pingdotgg/t3code#29865
* fix(cursor): Cursor text generation names usage-limit failures by @saphid in pingdotgg/t3code#29748
* fix(server): review diffs keep working with untracked files outside the sparse cone by @saphid in pingdotgg/t3code#29880
* fix(opencode): nested custom commands like /git/commit run as commands by @saphid in pingdotgg/t3code#29765
* fix(source-control): renamed files in GitHub, GitLab and Azure DevOps diffs show as renames by @saphid in pingdotgg/t3code#29774
* fix(opencode): a command that exits non-zero is stored as failed, not completed by @saphid in pingdotgg/t3code#29824
* fix(server): linked environments pick up the other machine's new name by @saphid in pingdotgg/t3code#29779
* fix(server): document text skips tracked deletions and field codes by @saphid in pingdotgg/t3code#29796
* fix(server): OTLP export settings survive a saved token streaming mode by @saphid in pingdotgg/t3code#29786
* fix(server): Word text boxes are no longer extracted twice for agents by @saphid in pingdotgg/t3code#29827
* fix(server): new projects are created when core.safecrlf refuses LF files by @saphid in pingdotgg/t3code#29843
* fix(web): drafts saved by older versions load instead of being wiped by @saphid in pingdotgg/t3code#29828
* fix(server): Antigravity text generation shows sign-in and setup errors by @saphid in pingdotgg/t3code#29823
* fix(web): picking a custom model named like a Codex alias keeps that model by @saphid in pingdotgg/t3code#29789
* fix(server): turn checkpoints keep LF files when core.safecrlf is true by @saphid in pingdotgg/t3code#29826
* fix(shared): find in thread matches a word typed with a curly apostrophe by @saphid in pingdotgg/t3code#29759
* fix(server): review rows for nested repositories load in large diffs by @saphid in pingdotgg/t3code#29693
* fix(server): t3_worktree_list lists refs after storage cleanup removes a thread's worktree by @saphid in pingdotgg/t3code#29645
* fix(provider-core): text generation context cuts no longer split an emoji by @saphid in pingdotgg/t3code#29653
* fix(server): html_preview no longer splits an emoji in a long console line by @saphid in pingdotgg/t3code#29844
* fix(server): diffs keep submodule changes under diff.submodule=log by @saphid in pingdotgg/t3code#29852
* fix(opencode): OpenCode 2 titles for image messages skip images the server cannot open by @saphid in pingdotgg/t3code#29819
* fix(server): orchestrator_capabilities no longer offers providers the project turned off by @saphid in pingdotgg/t3code#29842
* fix(web): big terminal selections no longer break sending by @saphid in pingdotgg/t3code#29804
* test(web): file editor dismissal test waits for the editor to render by @juliusmarminge in pingdotgg/t3code#30350
* test(web): worked-for heading test clicks once the list is revealed by @juliusmarminge in pingdotgg/t3code#30404
* fix(azure-devops): legacy DefaultCollection pull request URLs can be pasted to check out by @saphid in pingdotgg/t3code#29763
* fix(shared): preview_open reports about: and mailto: as unsupported instead of misreading them by @saphid in pingdotgg/t3code#29614
* fix(server): delegated threads no longer share one provider event log by @onlydole in pingdotgg/t3code#29770
* fix(server): a queued provider switch no longer ends background work by @juliusmarminge in pingdotgg/t3code#30401
* fix(kiro): slow kiro-cli starts no longer show Kiro as unavailable by @saphid in pingdotgg/t3code#29841
* fix(client): mark unread sticks on a thread reopened within ten minutes by @saphid in pingdotgg/t3code#29814
* fix(pi): extension errors name folder extensions instead of "index" by @saphid in pingdotgg/t3code#29768
* fix(github): Enterprise Server pull request URLs can be pasted to check out by @saphid in pingdotgg/t3code#29892
* fix(server): a peer refusing one call no longer marks its link as failing by @saphid in pingdotgg/t3code#29914
* perf(server): Claude skill discovery resolves each repository root once by @onlydole in pingdotgg/t3code#29757
* fix(server): t3 service uninstall leaves another T3 home's service alone by @saphid in pingdotgg/t3code#29872
* fix(server): PR watches wake again when a push leaves the branch conflicting by @saphid in pingdotgg/t3code#29767
* fix(muse): the thread error banner no longer shows unredacted failure text by @saphid in pingdotgg/t3code#29910
* fix(server): provider settings changed mid-refresh no longer revert to the old status by @saphid in pingdotgg/t3code#29894
* fix(shared): accept whitespace after engine range operators by @romil-bijarnia in pingdotgg/t3code#29730
* perf(server): stop tracing per-event live coalescer work by @onlydole in pingdotgg/t3code#29758
* test(desktop): the Windows shell kill test waits for each spawn before advancing the clock by @maria-rcks in pingdotgg/t3code#30463
* fix(shared): ignore unsupported command output control parameters by @romil-bijarnia in pingdotgg/t3code#29736
* fix(cli): t3 update no longer says a service awaiting restart runs the new version by @saphid in pingdotgg/t3code#29901
* fix(mcp): accept CR and mixed line endings in response streams by @romil-bijarnia in pingdotgg/t3code#29727
* fix(server): preview tabs that fail during setup no longer leave their page open by @saphid in pingdotgg/t3code#29885
* fix(provider-core): long subagent titles no longer end in a broken character by @saphid in pingdotgg/t3code#29906
* fix(shared): ignore unsupported command output erase modes by @romil-bijarnia in pingdotgg/t3code#29737
* fix(server): a failed scheduled run shows its error without a stack trace by @saphid in pingdotgg/t3code#29889
* perf(web): long threads stream with 70% less work-row derivation by @Entrpi in pingdotgg/t3code#29971
* fix(pi): send SIGTERM before closing Pi's stdin on teardown by @yaacovcorcos in pingdotgg/t3code#30025
* fix(server): clean up child worktrees after their parent settles by @voltcrash in pingdotgg/t3code#30026
* fix(server): Claude context meter shows the window for models outside the catalog by @hahhforest in pingdotgg/t3code#30051
* fix(server): quitting no longer waits on an unreachable telemetry endpoint by @levelorbit in pingdotgg/t3code#30033
* fix(client): keep snoozed failures hidden without completion times by @voltcrash in pingdotgg/t3code#30063
* perf(server): PR sync stops reading pull requests closed over a day ago by @advaitpaliwal in pingdotgg/t3code#30071
* fix(acp): file changes show the patch of every diff in a tool call by @Abhishek-B-R in pingdotgg/t3code#28631
* fix(server): Antigravity sign-in no longer blames the network while the runtime starts by @wenshen18643 in pingdotgg/t3code#30079
* fix(relay): read migrations in checkout paths with spaces by @domvox in pingdotgg/t3code#30080
* fix(cli): validate npm runtime before caching it by @voltcrash in pingdotgg/t3code#30099
* fix(server): SSH device host no longer reconnects on a single slow health probe by @gyurix in pingdotgg/t3code#30159
* fix(server): read continued core.bare values during onboarding by @imharjot in pingdotgg/t3code#30174
* fix(server): published repos fall back to HTTPS when SSH is refused by @saphid in pingdotgg/t3code#30142
* fix(opencode): fail stalled event subscriptions promptly by @voltcrash in pingdotgg/t3code#30201
* fix(server): a link card the user moved past no longer blocks auto-settle by @saphid in pingdotgg/t3code#29847
* fix(server): deleting a thread also removes its agent preview recordings by @saphid in pingdotgg/t3code#29853
* fix(server): review guides no longer fail on the repository's checkout hooks by @saphid in pingdotgg/t3code#29907
* fix(desktop): bump Electron to 44.10.1 for October Chromium security backports by @valuin in pingdotgg/t3code#30161
* chore(repos): sync reference repos from shallow clones by @juliusmarminge in pingdotgg/t3code#30472
* chore(repos): sync Effect 4.1.2 and Alchemy beta.85, rename effect-smol by @juliusmarminge in pingdotgg/t3code#30481
* Revert "fix(web): terminal controls no longer cover the first line" by @juliusmarminge in pingdotgg/t3code#30493
* feat(web): show a newly created pairing link without expanding the client list by @juliusmarminge in pingdotgg/t3code#30498

## New Contributors
* @Abhishek-B-R made their first contribution in pingdotgg/t3code#28647
* @tylerjenningsw made their first contribution in pingdotgg/t3code#22962
* @Jo2234 made their first contribution in pingdotgg/t3code#29309
* @u9g made their first contribution in pingdotgg/t3code#29413
* @onlydole made their first contribution in pingdotgg/t3code#29770
* @romil-bijarnia made their first contribution in pingdotgg/t3code#29730
* @Entrpi made their first contribution in pingdotgg/t3code#29971
* @hahhforest made their first contribution in pingdotgg/t3code#30051
* @levelorbit made their first contribution in pingdotgg/t3code#30033
* @advaitpaliwal made their first contribution in pingdotgg/t3code#30071
* @wenshen18643 made their first contribution in pingdotgg/t3code#30079
* @domvox made their first contribution in pingdotgg/t3code#30080
* @gyurix made their first contribution in pingdotgg/t3code#30159
* @imharjot made their first contribution in pingdotgg/t3code#30174
* @valuin made their first contribution in pingdotgg/t3code#30161

**Full Changelog**: pingdotgg/t3code@v0.1.7-nightly.20261103.4138...v0.1.7-nightly.20261104.4151

</details>


Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.7-nightly.20261104.4151
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants