Skip to content

fix(web): scroll terminal output with touch gestures - #11305

Merged
shivamhwp merged 6 commits into
mainfrom
fix/web-terminal-touch-scroll
Oct 14, 2026
Merged

shivamhwp merged 6 commits into
mainfrom
fix/web-terminal-touch-scroll

Conversation

@shivamhwp

@shivamhwp shivamhwp commented Sep 11, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #2141

Touch drags in the web terminal selected text instead of scrolling, leaving mobile browsers stuck at the newest output in #2141.

Route vertical touch drags through the terminal's existing wheel behavior. Scrollback moves in both directions, full-screen programs receive their existing scroll input, and taps still focus the terminal or open links. Pointer activation also selects the touched split pane.

59 focused terminal tests and web typecheck pass. Four new touch cases fail on the baseline; scoped lint reports seven existing drawer warnings. In the isolated Chromium client, the same gesture changes scrollback from 87 to 77 and back to 87 after the fix; it stays at 87 before. Tapping an inactive split selects and focuses it. Physical iOS/Android browsers, native mobile, and remote/relay sessions were not exercised. Web and desktop share this terminal; native mobile uses a separate client. There are no provider, wire-contract, or settings changes.

Rebased onto main, which includes the device-ticket correction from #11304.

Before:

Before: touch drag leaves terminal at the newest output

After:

After: touch drag reveals earlier output

Touch scrolling in both directions:

t3-2141-touch-scroll.mp4

Model: GPT-6. Harness: Codex in T3 Code.

Rebased on main 6f00d3881a197dd33c2cb43c6a11a9e759e56089. The patch is unchanged. All 121 terminal tests, web typecheck, scoped lint and diff checks pass after rebasing. Existing browser evidence remains applicable; physical iOS/Android browser testing remains unverified.

Real-app testing (Oct 13, 2026)

Tested on a real POCO F4 (Android 14, Chrome) against a dev server on this branch and on main, with seq 1 500 in the terminal drawer. GIFs are sped up 3x to 4x.

Main: dragging down doesn't scroll, and one drag selects line 494 This PR: dragging down shows older lines, dragging up goes back

Line numbers on this PR: 488–500, then 479–493, 470–484, 461–475 after three drags down, then back to 470–484 and 479–493 after two drags up. All 5 drags scrolled; none were treated as a tap. The page itself doesn't move while dragging inside the terminal.

This PR: dragging inside less scrolls both ways This PR: long-press opens the menu, but Copy is greyed out

Known gap: on main a touch drag selects text, which was the bug but also the only way to select terminal text by touch. On this PR every drag scrolls and long-press doesn't start a selection, so touch users can't select or copy terminal text.

Full recordings: main drag, PR drag, PR less, PR long-press.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 11, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at de4886e

Macroscope's review found this PR approvable — This is a focused web-terminal bug fix that adds touch scrolling through the existing scroll paths and preserves tap, link, alternate-screen, and mouse-tracking behavior. The implementation is localized and covered by targeted tests, with no schema, deployment, security, billing, default, or static-analysis changes.

Notes:

  • Diff unchanged. Approvability was decided on eligibility alone.

No code changes detected at e6ae306. Prior analysis still applies.

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

@github-actions

github-actions Bot commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.9 KiB 20.9 KiB 0 B (0.0%) 29.3 KiB ✅
Codex Live turn messages 2 2 0 (0.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.2 KiB 21.2 KiB 0 B (0.0%) 29.3 KiB ✅
Claude Live turn messages 2 2 0 (0.0%) 8 ✅

Baseline: 9c9ae43 · PR result: e6ae306 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@shivamhwp
shivamhwp force-pushed the fix/web-terminal-touch-scroll branch from d62b7a1 to f23f7ba Compare September 13, 2026 15:36
@shivamhwp
shivamhwp changed the base branch from fix/client-device-ticket-http-group to main September 13, 2026 15:36
@github-actions github-actions Bot added the 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. label Sep 13, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 13, 2026
@coderabbitai

coderabbitai Bot commented Sep 13, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 835065c1-87c2-4d1e-9222-58bd6498a1b8
📥 Commits

Reviewing files that changed from the base of the PR and between de4886e and 9f78b49.

📒 Files selected for processing (3)
  • apps/web/src/components/ThreadTerminalDrawer.tsx
  • apps/web/src/terminal/ghostty/surface.test.ts
  • apps/web/src/terminal/ghostty/surface.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.

📝 Walkthrough

The terminal surface now supports touch-drag scrolling and touch-aware link and mouse-reporting behavior. Wheel and touch scrolling use a shared dispatch path. Terminal panes activate on pointer-down. Tests cover touch gestures, scrolling, and cancellation.

Changes: Terminal touch support

Layer / File(s) Summary
Touch gesture lifecycle
apps/web/src/terminal/ghostty/surface.ts, apps/web/src/components/ThreadTerminalDrawer.tsx, apps/web/src/terminal/ghostty/surface.test.ts
The surface tracks the primary touch pointer, captures events, and distinguishes taps, drags, and cancellations. Terminal panes activate on pointer-down. Tests cover link activation and multi-touch behavior.
Shared touch and wheel scrolling
apps/web/src/terminal/ghostty/surface.ts, apps/web/src/terminal/ghostty/surface.test.ts
Wheel and touch scrolling use scrollRows. The shared path handles mouse reporting, alternate-screen cursor sequences, and scrollback. Tests cover scrolling in these modes.

Priority: ⬆️ High

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix · Severity of issue fixed: Medium

Sequence Diagram(s)

sequenceDiagram
  participant TouchPointer
  participant GhosttyTerminalSurface
  participant TerminalBehavior
  TouchPointer->>GhosttyTerminalSurface: Send touch pointerdown
  GhosttyTerminalSurface->>GhosttyTerminalSurface: Track primary pointer
  TouchPointer->>GhosttyTerminalSurface: Send pointermove
  GhosttyTerminalSurface->>TerminalBehavior: Route whole scroll rows
  TouchPointer->>GhosttyTerminalSurface: Send pointerup
  GhosttyTerminalSurface->>TerminalBehavior: Handle tap if gesture did not move
Loading

Suggested reviewers: stienswout

Merge Risk: ⚪ Minimal · up to 9f78b

No merge-blocking issue is identified. Physical mobile-browser behavior remains untested, but that alone does not establish a defect.

Security architecture risk: 🔵 Low · up to 9f78b

Existing permissions and session routing remain in place. However, a touch tap can activate a link that changed while the finger was down, creating a limited risk of opening a destination the user did not intend.

Retained concerns

  • Low · security · inferred: The touch path records pointer identity and movement but not the initial link. An unmoved release activates whichever permitted link is then under the finger. Terminal output replaced between press and release can therefore substitute a destination, unlike the base mouse path, which records and revalidates the original link. Existing authorization limits the outcome but does not preserve the user's initial target.
Security review details

Security Blast Radius

  • inferred — The supported link-substitution scenario affects a user's tap on an output-influenced terminal surface. Its downstream effects are bounded by the existing URL-opening and path-opening permissions. Terminal writes remain bound to the viewport's environment, thread, and terminal identifiers; no cross-session authority expansion was established.

Security Findings and Attack Paths

  • inferred — An output producer could replace a displayed link while a user holds a stationary touch. Release then selects the replacement destination without comparing it with the initial target. This is a source-supported action-binding concern, not a demonstrated exploit or a bypass of destination permissions.

Trust Boundaries and Controls

  • observed — The existing mouse path stores the initial link and requires matching text and cell range at release. Touch preserves pointer ownership and cancellation controls but does not carry that initial link identity into its activation decision.

Resilience and Maintainability Implications

  • observed — Disposal removes event listeners before disposing the terminal core and removing its DOM elements. Thus, uncleared touch state at disposal does not by itself establish later input or link activation through the installed handlers.
Pre-merge checks: Passed 4
Passed Passed checks (4 passed)
Check name Status Explanation
Linked Issues check Passed Issue #2141 requires touch scrolling in the mobile web terminal. surface.ts handles primary touch drags, converts vertical movement to terminal row scrolling, and reuses scrollRows for scrollback,…
Out of Scope Changes check Passed The diff is limited to web terminal touch handling, focused terminal tests, and split-pane pointer activation. These changes directly support issue #2141. No provider, wire-contract, settings, or unre…
Title check Passed The title is concise, specific, and accurately describes the primary change: enabling terminal output scrolling with touch gestures.
Description check Passed The description explains the problem, implementation, scope, verification results, known limitations, and includes before/after evidence. It also references the linked issue and identifies the model a…
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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

@shivamhwp
shivamhwp force-pushed the fix/web-terminal-touch-scroll branch 2 times, most recently from f93204e to c14b29f Compare September 14, 2026 10:54
@juliusmarminge
juliusmarminge force-pushed the fix/web-terminal-touch-scroll branch from c14b29f to de4886e Compare September 19, 2026 00:55
@github-actions github-actions Bot removed the 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. label Sep 19, 2026
@juliusmarminge juliusmarminge added the macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews label Oct 1, 2026 — with ChatGPT Codex Connector
@macroscopeapp
macroscopeapp Bot dismissed their stale review October 1, 2026 01:53

Dismissing prior approval to re-evaluate de4886e

@shivamhwp
shivamhwp merged commit 1ce8089 into main Oct 14, 2026
30 checks passed
@shivamhwp
shivamhwp deleted the fix/web-terminal-touch-scroll branch October 14, 2026 02:42
aorwall added a commit to aorwall/t3code that referenced this pull request Oct 14, 2026
Merges `pingdotgg/t3code` up to `6002c5c68c` (42 commits, base
`5070a83a32`), using a merge commit. No open merge PR to stack on; this
branches from `main` at `882bb0a638`.

## Resolution

- **`package.json`** (conflict): dropped upstream's `tsc-rs` 0.6.0 bump
(pingdotgg#19187). The fork removed `tsc-rs`, and the `tsc-rs` tripwire holds
that. New path-policy entry: `root-package-json` (`decide`).
- **`pnpm-lock.yaml`** (conflict, `theirs`): took upstream's copy. Its
seven `tsc-rs@0.6.0` entries fail `minimumReleaseAge` before resolution
can prune them, so I stripped them and let `install.mjs` re-derive the
rest. The fork edges (`moatless-api`, `mermaid`) are back, and `verify
--only lockfile` passes.
- 14 other files that both sides touched merged without conflict.
`duplicate-adds` and `resolution-check` are both clean.
`FilePreviewPanel.tsx` (`decide`) took upstream's `threadRef` prop and
kept both fork deltas. The two unlisted files now have `converged`
entries: `terminal-drawer-open-in-editor` and `thread-shell-subtasks`.
In `threadShell.ts`, upstream's `isChildRunLive` and the fork's listing
filter merged together correctly.
- File counts: 136 files landed, against 136 in the upstream range. The
only differences are `package.json` (missing, because its one upstream
change was the dropped bump) and `docs/fork/inventory.json` (extra,
fork-only). The fork delta is 809 files.
- **Script fix:** Moatless replaced its dispatch match arms with a
`MethodTable` (moatless#1138). Because of that,
`unsupported-methods.mjs` found no arms and exited 2. It now reads
`.detached`/`.session`/`.stream` registrations and follows handlers
passed by name. Result: ADD 0, DROP 0, KEEP 2 (`vcs.switchRef`,
`git.preparePullRequestThread`), which matches `gaps.md`.

## Verification

`verify.mjs`: these checks pass: duplicate-adds, tripwires,
resolution-check, unsupported-methods (after the fix), lockfile, fmt,
lint, typecheck, build. `test` fails. Each of the failing files also
failed when run alone, and they are the same five files as in the
2026-10-13 merge, all caused by the sandbox: shared `AgentScope`, server
`ServerBrowserPage` (no Playwright browser), `AcpAdapterV2`,
`OrchestratorReplayFixtures`, and `OpenCodeServerLedger`.

## Usable as-is

- Full-screen visual replies with zoom (pingdotgg#17561). Links inside HTML
renders open the way chat links do (pingdotgg#18897). App shortcuts keep working
after you click into an HTML render (pingdotgg#18898).
- Touch-scrolling in terminal output (pingdotgg#11305). Fixed: answering a
question reset the editor caret (pingdotgg#11337). Links in agent questions are
now clickable (pingdotgg#19197).
- Fixed: "Subagent needs input" stayed after the subagent finished
(pingdotgg#18996). This is client-side and uses `activityRunStatus` with a
fallback to `status`.
- Slash skill search now works mid-message (pingdotgg#19107). Fixed: removing a
project opened a new thread for it (pingdotgg#15864). Settings now warn when an
environment silently drops a setting (pingdotgg#18334).
- Smaller fixes: context handoff details use the available width
(pingdotgg#19098), pace icon alignment (pingdotgg#18580), tool-call collection perf
(pingdotgg#18853), git file paths keep whitespace in the contract schema
(pingdotgg#12465), Android beta links (pingdotgg#18955).
- Pending context-handoff preview when you pick a model (pingdotgg#18369). It is
computed on the client from `server.providers`
(`requiresNewThreadForModelChange`, `continuation.groupKey`). If
Moatless does not report those fields, the preview shows a handoff on
every provider switch.

## Unsupported in Moatless / needs implementation

- Delegated tasks in separate worktrees (pingdotgg#19102): `isolation:
"worktree"` on the orchestrator MCP `delegate_task`, and
`workspaceStrategy` on the child-launch command. Moatless does not
create worktrees (`FEATURES.worktreeSelection`).
- These land behind flags that are already gated: scheduled-task dialog
fix (pingdotgg#18940, `scheduledTasks`), PR merge/auto-merge button sizing
(pingdotgg#18478, pingdotgg#19111, `pullRequestSurface`), remembering editor selections
(pingdotgg#19078, `openInEditor`), device tool startup failures (pingdotgg#18502,
`deviceHub`), npm "update everything" (pingdotgg#18709, `serverUpdateBanner`),
clone folder names in the welcome wizard (pingdotgg#12474), Cmd+Enter
create-project in the palette (pingdotgg#18901).
- No new RPC methods (ADD 0).

## Backend behavior to consider reproducing in Moatless

I added these to the "Runtime fixes upstream made to its own server"
entry in `docs/fork/gaps.md`:
- Worktree isolation for delegated tasks (pingdotgg#19102).
- Snoozed threads still take queued automatic wakes (pingdotgg#19099).
- Indexed failed-thread error lookup (pingdotgg#18628).
- SQLite: no fsync on every commit, and planner stats collected on open
(pingdotgg#19205, pingdotgg#18471).
- Distinct CI checks with overlapping names (pingdotgg#19162).
- Bitbucket short-hash heads in review guides (pingdotgg#18900).
- Webhook template backtracking (pingdotgg#19160).
- OpenCode timeout formatting (pingdotgg#12469).
- Pi tool schemas and turn-start queueing (pingdotgg#18643, pingdotgg#18639).
- Usage hubs without a host, and Antigravity accounts deduplicated
(pingdotgg#11368, pingdotgg#19207).
- Haiku 5.5 as the default for background text generation (pingdotgg#18781).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---
Moatless task:
https://moatless.soaplabstest.com/tasks/db18f6dc-70c1-4d89-ada7-cd4b4f19a247
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 14, 2026
## What's Changed
* fix(claude): default background text generation to haiku 5.5 by @maria-rcks in pingdotgg/t3code#18781
* chore(typecheck): bump tsc-rs to 0.6.0 by @t3dotgg in pingdotgg/t3code#19187
* fix(server): keep OpenCode timeouts from crashing the error formatter by @tachytelicdetonation in pingdotgg/t3code#12469
* feat(server): run delegated tasks in separate worktrees by @Bil0000 in pingdotgg/t3code#19102
* fix(git): preserve whitespace in file paths (#12464) by @Defmon3 in pingdotgg/t3code#12465
* fix(server): stop fsyncing SQLite on every commit so slow disks no longer drop clients by @t3dotgg in pingdotgg/t3code#19205
* fix(chat): make links in agent questions clickable by @t3dotgg in pingdotgg/t3code#19197
* fix(usage): show one Antigravity account once, not once per machine by @t3dotgg in pingdotgg/t3code#19207
* fix(web): Android beta links point to the APK release, not the banned Google group by @shivamhwp in pingdotgg/t3code#18955
* fix(client): "Subagent needs input" no longer sticks after the subagent finishes by @shivamhwp in pingdotgg/t3code#18996
* fix(web): stop question answers from resetting the editor caret by @shivamhwp in pingdotgg/t3code#11337
* fix(web): app shortcuts keep working after clicking into an HTML render by @maria-rcks in pingdotgg/t3code#18898
* fix(source-control): keep distinct CI checks with overlapping names by @Lucenx9 in pingdotgg/t3code#19162
* fix(server): avoid excessive backtracking in webhook templates by @Lucenx9 in pingdotgg/t3code#19160
* fix(web): auto-merge button fits its label and animates width changes by @flamboh in pingdotgg/t3code#19111
* fix(web): scroll terminal output with touch gestures by @shivamhwp in pingdotgg/t3code#11305
* feat(web): view visual replies full screen with zoom by @Bil0000 in pingdotgg/t3code#17561
* fix(web): removing a project no longer opens a new thread for it by @shivamhwp in pingdotgg/t3code#15864
* fix(server): usage hubs with a host-less URL no longer vanish from Limits by @shivamhwp in pingdotgg/t3code#11368
* fix(mobile): search bar animates in on iOS 26+ instead of popping by @juliusmarminge in pingdotgg/t3code#19209

## New Contributors
* @Defmon3 made their first contribution in pingdotgg/t3code#12465

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261013.3080...v0.0.46-nightly.20261014.3093

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261014.3093
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 14, 2026
## What's Changed
* fix(claude): default background text generation to haiku 5.5 by @maria-rcks in pingdotgg/t3code#18781
* chore(typecheck): bump tsc-rs to 0.6.0 by @t3dotgg in pingdotgg/t3code#19187
* fix(server): keep OpenCode timeouts from crashing the error formatter by @tachytelicdetonation in pingdotgg/t3code#12469
* feat(server): run delegated tasks in separate worktrees by @Bil0000 in pingdotgg/t3code#19102
* fix(git): preserve whitespace in file paths (#12464) by @Defmon3 in pingdotgg/t3code#12465
* fix(server): stop fsyncing SQLite on every commit so slow disks no longer drop clients by @t3dotgg in pingdotgg/t3code#19205
* fix(chat): make links in agent questions clickable by @t3dotgg in pingdotgg/t3code#19197
* fix(usage): show one Antigravity account once, not once per machine by @t3dotgg in pingdotgg/t3code#19207
* fix(web): Android beta links point to the APK release, not the banned Google group by @shivamhwp in pingdotgg/t3code#18955
* fix(client): "Subagent needs input" no longer sticks after the subagent finishes by @shivamhwp in pingdotgg/t3code#18996
* fix(web): stop question answers from resetting the editor caret by @shivamhwp in pingdotgg/t3code#11337
* fix(web): app shortcuts keep working after clicking into an HTML render by @maria-rcks in pingdotgg/t3code#18898
* fix(source-control): keep distinct CI checks with overlapping names by @Lucenx9 in pingdotgg/t3code#19162
* fix(server): avoid excessive backtracking in webhook templates by @Lucenx9 in pingdotgg/t3code#19160
* fix(web): auto-merge button fits its label and animates width changes by @flamboh in pingdotgg/t3code#19111
* fix(web): scroll terminal output with touch gestures by @shivamhwp in pingdotgg/t3code#11305
* feat(web): view visual replies full screen with zoom by @Bil0000 in pingdotgg/t3code#17561
* fix(web): removing a project no longer opens a new thread for it by @shivamhwp in pingdotgg/t3code#15864
* fix(server): usage hubs with a host-less URL no longer vanish from Limits by @shivamhwp in pingdotgg/t3code#11368
* fix(mobile): search bar animates in on iOS 26+ instead of popping by @juliusmarminge in pingdotgg/t3code#19209

## New Contributors
* @Defmon3 made their first contribution in pingdotgg/t3code#12465

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261013.3080...v0.0.46-nightly.20261014.3093

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261014.3093
aidenwboudr added a commit to aidenwboudr/t3code that referenced this pull request Oct 16, 2026
* fix(web): context menus no longer scroll when they fit the window (pingdotgg#16776)

* fix(server): checkpoint restore keeps a nested workspace on Windows (pingdotgg#14874)

* Reject unknown params in t3_thread_read (pingdotgg#17823)

* fix(desktop): Option-click on a chat link opens the system browser (pingdotgg#18238)

* fix(mobile): new thread draft names its repo and says it is a new thread (pingdotgg#17611)

Signed-off-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(web): keep queued threads subscribed (pingdotgg#15293)

Co-authored-by: maria <maria@kuuro.net>

* test(server): Claude reset tests are skipped on Windows hosts, where their mock CLI cannot run (pingdotgg#18184)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): hide stash menu behind maximized panel (pingdotgg#18115)

Co-authored-by: maria <maria@kuuro.net>

* fix(web): sidebar toggle no longer sits under the macOS window buttons (pingdotgg#18193)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>

* fix(server): missing agent binaries report launch failure

Return exit 125 when the Linux cgroup wrapper target is missing, including when /bin/sh is Bash. Preserve arguments and child exit codes.

* feat(android): add Pull Requests tab (pingdotgg#18372)

* fix(mobile): Forgejo change requests ask for the summary they require (pingdotgg#18455)

* fix(server): cap automatic thread continuations and turn them on by default (pingdotgg#18461)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(mobile): stock tab bar, glass filter pills, and saved list filters (pingdotgg#18476)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): keep PR surfaces and Android tab selection visible across themes (pingdotgg#18479)

* fix(mobile): keep preview count badges inside the working pill (pingdotgg#18449)

* fix(mobile): show rounded pull request selection in the sidebar (pingdotgg#18480)

* feat(web): model options for source control writer and review guide models (pingdotgg#18488)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* ci(mobile): cut a store build when the native fingerprint has no build (pingdotgg#18496)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): terminal colors no longer look washed out (pingdotgg#17168)

* refactor(settings): centralize schema-declared secrets and inputs (pingdotgg#18505)

* fix(mobile): restore native scroll-edge effects on forms and PRs (pingdotgg#18507)

* feat(mobile): native-sized pull request action bar (pingdotgg#18527)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): preserve theme contrast across surfaces and actions (pingdotgg#18506)

* refactor(mobile): share themed list rows and sections (pingdotgg#18510)

* refactor(mobile): share themed toggle rows in settings (pingdotgg#18511)

* refactor(mobile): share themed choice rows in settings (pingdotgg#18516)

* fix(server): consolidate browser credential handling (pingdotgg#18509)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat: open T3 Code from a link with a prompt ready to send (pingdotgg#18454)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(release): drop placeholder allowBuilds entry that broke nightly builds (pingdotgg#18560)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* ci: fail PRs on invalid allowBuilds entries in pnpm-workspace.yaml (pingdotgg#18564)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): menu dismiss taps no longer press the view underneath (pingdotgg#18565)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(web): one sidebar click updates every machine and provider (pingdotgg#18053)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(release): avoid PowerShell crashes on Windows ARM (pingdotgg#18573)

* fix(server): Forgejo pull requests report their head commit (pingdotgg#18463)

* test(provider-acp): terminal kill test passes on Windows hosts (pingdotgg#18450)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): context meter no longer reads 1000k just under a million tokens (pingdotgg#17539)

* fix(desktop): avoid Hyprland 0.48–0.50 Wayland color-manager startup crashes (pingdotgg#18566)

Disable WaylandWpColorManagerV1 before Electron is ready only on native Wayland Hyprland sessions running a stock 0.48.0-0.50.1 release, which advertise FEATURE_SET_PRIMARIES but reject set_primaries (hyprwm/Hyprland#9444; fixed in 0.51.0 by hyprwm/Hyprland#11499). Any probe failure or explicit feature override keeps the default.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): iPhones on iOS 27.2 beta no longer open to a black screen (pingdotgg#18654)

Co-authored-by: T3 Code Test <t3code-test@example.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): installs skip the Enriched math download again (pingdotgg#18679)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): setup wizards follow custom themes (pingdotgg#18725)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): resolve configured PR bases to branch names (pingdotgg#18754)

* fix: expose running terminals and prevent setup install stalls (pingdotgg#18740)

* fix(mobile): hide Claude Read image placeholders when previews exist (pingdotgg#18761)

* fix(gitlab): merge request details report their head commit (pingdotgg#18608)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(server): rename built-in models from settings (pingdotgg#18840)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): Git actions follow the selected thread (pingdotgg#18862)

* fix(desktop): preserve updater failure causes in diagnostics (pingdotgg#18864)

* fix(web): attach dropped threads to pending answers (pingdotgg#18789)

* fix(web): keep button text stable during press scaling (pingdotgg#18866)

* fix(bitbucket): preserve PR head commits for review guides (pingdotgg#18402)

* fix(server): return null for unresolved optional commands (pingdotgg#18871)

* fix: show computer-use action titles and align app icons (pingdotgg#18865)

* fix(server): apply confirmed Claude subagent outcomes (pingdotgg#18778)

* fix(mobile): Browser page no longer logs a duplicate key warning (pingdotgg#18776)

* fix(web): a numeric q in the pull requests URL no longer crashes the page (pingdotgg#18666)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(client): T3 Connect clients reconnect once a new tunnel is ready (pingdotgg#16554)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): leaving the home page while the app loads no longer bounces you to a new draft (pingdotgg#18672)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): attachment images no longer re-download on every reconnect (pingdotgg#18824)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): a migration id clash stops startup with a clear error instead of crash-looping (pingdotgg#15925)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: PR Batch Tester <agent@local.test>

* fix(server): a thread with an event type from a newer build can still resync after a downgrade (pingdotgg#15937)

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: PR Batch Tester <agent@local.test>

* fix(server): Codex titles and branch names no longer start the user's MCP servers (pingdotgg#17058)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>

* fix(server): Claude thinking before a tool call stays a collapsed Thought (pingdotgg#18887)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>

* perf(server): cached branch PR lookups no longer start git processes (pingdotgg#17063)

* fix(web): compact merge buttons show when they need a second click (pingdotgg#18878)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): pull requests load from another environment when theirs is offline (pingdotgg#18698)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(web): collect active tool calls without array shifts (pingdotgg#18853)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>

* fix(web): center the pace icon on the limit card's "left" label (pingdotgg#18580)

* fix(web): update everything includes npm-installed servers again (pingdotgg#18709)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): review guides find Bitbucket heads reported by short hash (pingdotgg#18900)

Co-authored-by: Pawel Mikolajczuk <pmikolajczuk@atlassian.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): scheduled task model picker no longer shifts the dialog (pingdotgg#18940)

* fix(ci): CodeRabbit reviews no longer request changes (pingdotgg#18954)

* fix(web): links in HTML renders open like chat links (pingdotgg#18897)

* fix(web): remember editor selections before opening folders (pingdotgg#19078)

* fix(ci): retry Cursor webhook HTTP 400s on main (pingdotgg#19077)

* fix(web): let context handoff details use the available width (pingdotgg#19098)

* fix(server): snoozed threads allow queued automatic wakes (pingdotgg#19099)

* fix(web): merge button fits its label and animates width changes (pingdotgg#18478)

* fix(web): Cmd+Enter creates the new project while an option is highlighted (pingdotgg#18901)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(pi): queue turn-start prompts when native work is running (pingdotgg#18639)

* fix(pi): load T3 tool schemas for completion gateways (pingdotgg#18643)

* fix(devices): report agent tool startup failures (pingdotgg#18502)

* fix(web): settings warn when an environment silently drops a setting (pingdotgg#18334)

* fix(desktop): stop unsolicited Messages code autofill (pingdotgg#19118)

* feat(chat): show pending context handoff when selecting a model (pingdotgg#18369)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): collect SQLite planner statistics when the database opens (pingdotgg#18471)

* fix(server): failed threads no longer scan every tool item for errors (pingdotgg#18628)

* fix(web): keep clone folder names readable in the setup project picker (pingdotgg#12474)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>

* fix(composer): allow slash skill search within messages (pingdotgg#19107)

* fix(claude): default background text generation to haiku 5.5 (pingdotgg#18781)

* chore(typecheck): bump tsc-rs to 0.6.0 (pingdotgg#19187)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): keep OpenCode timeouts from crashing the error formatter (pingdotgg#12469)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>

* feat(server): run delegated tasks in separate worktrees (pingdotgg#19102)

* fix(git): preserve whitespace in file paths (pingdotgg#12464) (pingdotgg#12465)

Co-authored-by: Yash Singh <saiansh2525@gmail.com>

* fix(server): stop fsyncing SQLite on every commit so slow disks no longer drop clients (pingdotgg#19205)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(chat): make links in agent questions clickable (pingdotgg#19197)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(usage): show one Antigravity account once, not once per machine (pingdotgg#19207)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): Android beta links point to the APK release, not the banned Google group (pingdotgg#18955)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(client): "Subagent needs input" no longer sticks after the subagent finishes (pingdotgg#18996)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): stop question answers from resetting the editor caret (pingdotgg#11337)

* fix(web): app shortcuts keep working after clicking into an HTML render (pingdotgg#18898)

* fix(source-control): keep distinct CI checks with overlapping names (pingdotgg#19162)

Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>

* fix(server): avoid excessive backtracking in webhook templates (pingdotgg#19160)

Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>

* fix(web): auto-merge button fits its label and animates width changes (pingdotgg#19111)

* fix(web): scroll terminal output with touch gestures (pingdotgg#11305)

* feat(web): view visual replies full screen with zoom (pingdotgg#17561)

* fix(web): removing a project no longer opens a new thread for it (pingdotgg#15864)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): usage hubs with a host-less URL no longer vanish from Limits (pingdotgg#11368)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): search bar animates in on iOS 26+ instead of popping (pingdotgg#19209)

* chore(deps): Effect 4.0.4 and OpenCode 2.0.28, dropping the patches they made unnecessary (pingdotgg#19213)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): a Claude 403 no longer tells you to log in again (pingdotgg#15872)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): persist only changed pull request links (pingdotgg#19248)

* fix(server): delegate_task explains that supervised runtime modes pause the child (pingdotgg#14416)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: SAPHID <saphid@users.noreply.github.com>

* fix(server): Claude subagent progress no longer re-stores the unchanged prompt (pingdotgg#18375)

* fix(server): thread list reads no longer freeze the server on large databases (pingdotgg#19226)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Alex Southwell <saphid@gmail.com>

* perf(server): streamed events no longer rewrite the whole thread row (pingdotgg#18890)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* docs: close PRs written by Gemini or Muse Wonder (pingdotgg#19286)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix: update all no longer runs agents twice or loses background work (pingdotgg#19291)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): enforce one database owner and guard update rollback (pingdotgg#16102)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>

* perf(server): reuse stored turn item positions (pingdotgg#19230)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(server): avoid quadratic resource history replay (pingdotgg#18825)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>

* fix(server): repair ownership UUID generation (pingdotgg#19298)

* fix(client-runtime): slow config snapshots no longer drop working connections (pingdotgg#14518)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: SAPHID <saphid@users.noreply.github.com>

* fix(server): bound activity publishes so stalled responses release the worker (pingdotgg#18830)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>

* perf(shared): cached SQLite statements no longer hold large parameters (pingdotgg#19305)

Takeover of pingdotgg#17785 by @tris203. Executions binding more than 64 KiB of text or blob data run on a throwaway statement, in the writer and the reader worker, so cached statements no longer pin large payloads in native memory.

Co-authored-by: tris203 <admin@snappeh.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(provider-cursor): Cursor text generation no longer leaks SQLite file handles on every call (pingdotgg#19310)

Takeover of pingdotgg#18154. Per-call SqliteLocalAgentStore so Cursor text generation closes its SQLite handles, and the agent now closes before its store on sign-out. Fixes pingdotgg#18151.

Co-authored-by: Aaron Queen <bompus@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): make SQLite checkpoints durable on macOS (pingdotgg#19304)

Co-authored-by: Soroush Baraouf <soroushraouf44@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(server): Codex plan streaming no longer commits every token (pingdotgg#19317)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): large file edits no longer store their full diff twice (pingdotgg#19316)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): settings save again after a stored value fails decode (pingdotgg#19312)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): HTML and Markdown attachments no longer fail OpenCode turns (pingdotgg#19319)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): worktree paths no longer vanish on git before 2.36 (pingdotgg#19315)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(acp): custom models now reach the agent instead of failing to open (pingdotgg#19313)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): Claude no longer shows unavailable when its health check can't run in $HOME (pingdotgg#19320)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): stalled OAuth token requests no longer block credential calls (pingdotgg#19321)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): steered Claude turns no longer undercount token usage (pingdotgg#19314)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): closing a Claude session no longer leaves plugin MCP servers running (pingdotgg#19322)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(client-runtime): T3 Connect link timeouts explain the relay 504 (pingdotgg#19329)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): settle shortcut moves to the next thread like the sidebar (pingdotgg#19328)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(acp): Copilot's default agent no longer disappears from the Agent menu (pingdotgg#19330)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(server): SQLite checkpoints no longer block the event loop (pingdotgg#19324)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): incompatible environments now say whether to update the app or the host (pingdotgg#19331)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): live reasoning stays scrolled to the newest text while it streams (pingdotgg#19334)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): T3 Connect no longer stays down after a network change (pingdotgg#19335)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(clients): host images say when the connection lacks file access (pingdotgg#19337)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(clients): a resumed subagent no longer moves the later turn's Worked for row (pingdotgg#19338)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix: Claude and Codex no longer time out behind mise wrappers (pingdotgg#19340)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(server): turns no longer re-read merged PRs from GitHub (pingdotgg#19344)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* docs(settings): explain that provider update checks also gate the model catalog (pingdotgg#18208)

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(web): an unsaved citation comment survives a question or approval (pingdotgg#19350)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): changing Claude effort no longer fails while background agents run (pingdotgg#19341)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): service updates no longer fail on full disks or large databases (pingdotgg#19311)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: SAPHID <saphid@users.noreply.github.com>

* fix(clients): # suggestions include pull requests linked to the thread (pingdotgg#19357)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(clients): pairing a switched-off computer again turns it back on (pingdotgg#19354)

Co-authored-by: Mnigos <makowskiigor@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(cli): t3 triage reports the server's version, not its own, as the user's build (pingdotgg#19359)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(client-runtime): a new WSL backend no longer shows Limited permissions until reload (pingdotgg#19361)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): action shortcuts recorded in the browser now save (pingdotgg#19365)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(clients): large pasted images no longer break later Claude image reads (pingdotgg#19364)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): settled and idle-released threads no longer stay Waiting (pingdotgg#19355)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(client-runtime): merged pull requests are no longer re-read every minute (pingdotgg#19374)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): new Codex threads no longer miss slow MCP servers' tools (pingdotgg#19368)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(github): requested teams now show in pull request reviewers (pingdotgg#19375)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(ssh): SSH launch no longer picks a port another server answers on (pingdotgg#19372)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): a failed T3 Connect relink no longer leaves a stale managed tunnel (pingdotgg#19383)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(shared): Windows .cmd shims no longer print DEP0190 on every spawn (pingdotgg#19385)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): commit and title generation use your custom model when no text model is set (pingdotgg#19386)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): T3 Connect settings can repair a link that drifted to publish-only (pingdotgg#19389)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): failed Claude text generation shows the CLI's own error (pingdotgg#19394)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): terminal tells the shell its new width as soon as you release a resize drag (pingdotgg#19395)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): keybindings page says to connect an environment when none is connected (pingdotgg#19400)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(chat): Codex follow-up suggestions show their label instead of raw markup (pingdotgg#19401)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): open in editor works over Tailscale SSH without a local sshd (pingdotgg#19402)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): a deregistered T3 Connect host shows it was removed and offers a relink (pingdotgg#19379)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(server): idle servers no longer scan every process every 5 seconds (pingdotgg#19399)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* chore(typecheck): bump tsc-rs to 0.7.0 (pingdotgg#19408)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): bound Bitbucket API requests with 30s timeout (pingdotgg#14140)

* fix(server): new worktrees no longer fail when a background fetch runs at the same time (pingdotgg#19411)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(server): thread search runs on the SQLite reader worker (pingdotgg#19382)

* perf(server): traces keep ~40% more history and no longer block the event loop (pingdotgg#19430)

Co-authored-by: Aaron Queen <bompus@users.noreply.github.com>
Co-authored-by: Daniyal <115576848+daniyal-sh@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(shared): SQLite checkpoints no longer fall back to the main thread silently (pingdotgg#19417)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(server): unchanged node updates no longer write to SQLite (pingdotgg#19429)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(ssh): reconnecting keeps the remote server and its agents running (pingdotgg#19432)

Co-authored-by: puccez <emanuele.puccetti@icloud.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: luke2x <97411838+luke2x@users.noreply.github.com>

* feat(observability): SQL spans show lock wait and connection; stalls keep their own history (pingdotgg#19425)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): threads woken by notifications no longer load their whole history (pingdotgg#19423)

Co-authored-by: Eldar Politkin <32969822+EldarPolitkin@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): worktree cleanup no longer runs sweeps back to back (pingdotgg#19418)

Co-authored-by: Tanner Sharon <tannermsharon@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): only Claude progress updates before a tool call show as text (pingdotgg#18923)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>

* fix(pr): keep known state in sync across controls (pingdotgg#18408)

* fix(web): review summary only says optional when it is (pingdotgg#18451)

* fix(web): subagent lists in the composer banner no longer start lines with a comma (pingdotgg#19170)

* fix(web,mobile): pull request filters no longer offer the Scratch folder (pingdotgg#19179)

* fix(web,mobile): pull request project filter follows the sidebar order (pingdotgg#19180)

* feat(settings): inactivity auto-settle can keep threads with a PR (pingdotgg#14642)

Co-authored-by: maria-rcks <maria@kuuro.net>

* fix(server): Claude works next to an enterprise managed-mcp.json (pingdotgg#18706)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web,mobile): muse code uses meta's official blue logo (pingdotgg#19562)

* fix(desktop): import CA trust variables from the login shell (pingdotgg#19604)

* fix(server): preview copy only forwards text from the viewer's copy keys (pingdotgg#19561)

* fix(muse): Supervised threads ask before commands again (pingdotgg#19558)

* fix(server): restarts no longer stall on old subagent result deliveries (pingdotgg#19631)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(clients): a thread comes back when its subagent needs approval (pingdotgg#19630)

A delegated subagent waiting on an approval or question now shows on its parent thread: Working section, status badge, notifications, snooze, and the composer banner on web and mobile. Takes over pingdotgg#19614.

Co-authored-by: lovelycodemonkey <ghassemimahyad@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(usage): cold usage scans no longer stall the server (pingdotgg#19446)

Co-authored-by: Victor Vogel <263261067+only21mil@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): "Always allow this session" stops Codex asking for every command (pingdotgg#19635)

After "Always allow this session", the Codex adapter answers later command (or file change) approvals in that thread for the rest of the session. A turn in another runtime mode, or the thread unloading, ends it. Takes over pingdotgg#19598.

Co-authored-by: lovelycodemonkey <ghassemimahyad@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): keep vertical cursor stops outside styled markers (pingdotgg#19651)

* fix(web): mermaid code toggle stays in place when switching views (pingdotgg#19601)

* fix(server): Reveal in File Explorer and browser launches work on Windows again (pingdotgg#19656)

Windows PowerShell started with detached: true exits 0 without running its command. Native Windows PowerShell launches (reveal and browser) now start attached, unref'd, with ignored stdio.

Takes over pingdotgg#10387. Fixes pingdotgg#11780.

Co-authored-by: doubletwisted <118005273+doubletwisted@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): GitHub App tokens can merge and use other write actions (pingdotgg#19103)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(server): commands on busy threads stop decoding thousands of finished tool nodes (pingdotgg#19675)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): use workspace-scoped Bitbucket permissions API (pingdotgg#10984)

Co-authored-by: RealDoc06 <73218979+RealDoc06@users.noreply.github.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(composer): read dropped threads across environments (pingdotgg#15210)

* test(web): remove duplicate change request parser tests (pingdotgg#13591)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>

* fix(server): a delegated task's question ends the parent's blocking wait (pingdotgg#19538)

Co-authored-by: maria-rcks <maria@kuuro.net>

* fix(server): a delegated task's question now wakes its parent agent (pingdotgg#19521)

Co-authored-by: maria-rcks <maria@kuuro.net>

* fix(server): a cancelled delegated task no longer shows its child's question (pingdotgg#18459)

Co-authored-by: maria-rcks <maria@kuuro.net>

* feat(storage): clean up settled thread worktrees (pingdotgg#15208)

Co-authored-by: maria-rcks <maria@kuuro.net>

* feat(web,mobile): waiting status shows a dot-dashed icon and a timer (pingdotgg#19617)

* feat(pr): delete branches after merge or close (pingdotgg#19257)

* fix(web): the sidebar no longer keeps old renders alive (pingdotgg#19852)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): update everything no longer waits on slow servers, and shows progress in the sidebar (pingdotgg#19837)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): text generation no longer falls back to the expensive flagship model (pingdotgg#19722)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(web): setting to open pull request links on GitHub (pingdotgg#19719)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): middle-click opens pull requests in the browser, like cmd+click (pingdotgg#19854)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): the chat view and composer no longer keep old renders alive (pingdotgg#19869)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): steering no longer ends running subagents (pingdotgg#19210)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web,mobile): sent queued messages say "from queue", not "queued" (pingdotgg#19849)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Rodrigo Brechard <rodrigobrechard@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): OTLP exports say which machine and build they came from (pingdotgg#19370)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(prs): bound refreshes by each tracker read (pingdotgg#19403)

* fix(mobile): new threads no longer get stuck on Starting (pingdotgg#15870)

* fix(mobile): agent-spawned threads can be mentioned from the @ picker (pingdotgg#15841)

Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): pull request lists fill the available scroll viewport (pingdotgg#18767)

* fix(server): Cursor threads in Auto use Cursor's Auto-review (pingdotgg#19712)

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(web): text selection keeps going under the turn minimap (pingdotgg#16748)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): Antigravity installs on Windows ARM (pingdotgg#18472)

* perf(server): cut fff-node FFI marshaling overhead on large workspaces (pingdotgg#18514)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(server): replace Windows PowerShell port polling with netstat (pingdotgg#18524)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): Windows Codex install uses system tar and retries rename (pingdotgg#18523)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(providers): fall back to windows-x86_64 ACP binaries on Windows on ARM (pingdotgg#18521)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): fail runs whose provider stream ends without a terminal (pingdotgg#19131)

Co-authored-by: GPT-6.1-Sol at high effort <noreply@openai.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): a dropped HTTP/2 connection no longer crashes the server (pingdotgg#18378)

Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): Stop re-probing hosting CLIs for unrecognized hosts (pingdotgg#19692)

Co-authored-by: Victor Vogel <263261067+only21mil@users.noreply.github.com>
Co-authored-by: Jorrin <43169049+JorrinKievit@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): Android nested list markers no longer overlap their text (pingdotgg#19970)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): release iOS audio session after video playback (pingdotgg#18539)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): keep wrapped split diffs from jumping while scrolling (pingdotgg#20022)

* fix(web): model picker search lists newest models first (pingdotgg#18494)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Gabriel De Andrade <gabrieldeandradeleal@gmail.com>

* fix(acp): one malformed session update no longer ends the session (pingdotgg#20015)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(web): HTML renders show a layout skeleton and reuse cached pages (pingdotgg#19654)

* chore: change product branding from Alpha to Beta (pingdotgg#20032)

* feat(web): carry the open upstream Mermaid fixes

Completed Mermaid blocks render while a reply streams (`pingdotgg#18308`),
copying a diagram copies its source (`pingdotgg#16249`), and math
labels inside diagrams render (`pingdotgg#16198`). Taken from each PR's
current head.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(web): render LaTeX math in chat

`pingdotgg#14574` at its current head: $…$, $$…$$, \(…\) and \[…\]
typeset with KaTeX behind Settings → Appearance → Render math. Includes the
fix that keeps `$HOME` as code after an unmatched dollar, first made in this fork.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat: fork setup: math on by default, FORK.md, Linux build script

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: FORK.md for the v0.1.0 base

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Signed-off-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
Co-authored-by: Gaya KACI <163902005+kacigaya@users.noreply.github.com>
Co-authored-by: Jonas B. <122468993+JonasFocus@users.noreply.github.com>
Co-authored-by: Miklós Fazekas <mfazekas@szemafor.com>
Co-authored-by: Ali Younes <159104116+whoisaldo@users.noreply.github.com>
Co-authored-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: ANSH SINGH <anshsinghapa@gmail.com>
Co-authored-by: maria <maria@kuuro.net>
Co-authored-by: AdEx-Partners-DE <stark.burns@adexpartners.com>
Co-authored-by: Saikrishna Ambeti <saikrisha.ambeti1@gmail.com>
Co-authored-by: Hasan Shoaib <142208891+realhasanshoaib@users.noreply.github.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: Jérôme Poskin <jerome@moinax.com>
Co-authored-by: Alex <me@pixp.cc>
Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Ryan <66844656+RVZO6@users.noreply.github.com>
Co-authored-by: Prathmesh Vhatkar <psv2522@gmail.com>
Co-authored-by: luke <97411838+luke2x@users.noreply.github.com>
Co-authored-by: kronk0s <bessaadkhalil@gmail.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: T3 Code Test <t3code-test@example.com>
Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Scott Norteman <snorteman@gmail.com>
Co-authored-by: Paweł Mikołajczuk <pawel@mikolajczuk.in>
Co-authored-by: Tristan Knight <admin@snappeh.com>
Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Bryce Bjork <brycedbjork@gmail.com>
Co-authored-by: Antony <97451137+TonybynMp4@users.noreply.github.com>
Co-authored-by: Alex Southwell <saphid@gmail.com>
Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Co-authored-by: Akash Moradiya <64416825+akash3444@users.noreply.github.com>
Co-authored-by: Pawel Mikolajczuk <pmikolajczuk@atlassian.com>
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
Co-authored-by: Otavio Salvador <otavio@ossystems.com.br>
Co-authored-by: tachytelicdetonation <47115683+tachytelicdetonation@users.noreply.github.com>
Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com>
Co-authored-by: Defmon3 <111503233+Defmon3@users.noreply.github.com>
Co-authored-by: Simone <lucenz@proton.me>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Guillermo Casanova <75276669+Gigioxx@users.noreply.github.com>
Co-authored-by: Hessboi <101525047+Baker-Harrison@users.noreply.github.com>
Co-authored-by: Tanner Polley <tannerwpolley@gmail.com>
Co-authored-by: Aaron Queen <bompus@users.noreply.github.com>
Co-authored-by: Soroush Baraouf <soroushraouf44@gmail.com>
Co-authored-by: fixfon <12512757+fixfon@users.noreply.github.com>
Co-authored-by: Mnigos <makowskiigor@gmail.com>
Co-authored-by: Kevin Rajan <7121943+kvnloo@users.noreply.github.com>
Co-authored-by: Daniyal <115576848+daniyal-sh@users.noreply.github.com>
Co-authored-by: puccez <emanuele.puccetti@icloud.com>
Co-authored-by: Eldar Politkin <32969822+EldarPolitkin@users.noreply.github.com>
Co-authored-by: Tanner Sharon <tannermsharon@gmail.com>
Co-authored-by: lovelycodemonkey <ghassemimahyad@gmail.com>
Co-authored-by: Victor Vogel <263261067+only21mil@users.noreply.github.com>
Co-authored-by: doubletwisted <118005273+doubletwisted@users.noreply.github.com>
Co-authored-by: Sebastian Pugliese <73218979+RealDoc06@users.noreply.github.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Rodrigo Brechard <rodrigobrechard@gmail.com>
Co-authored-by: nekohasekai <i@sekai.icu>
Co-authored-by: Lars Nieuwenhuis <35393046+lnieuwenhuis@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Cameron Chisholm <cam@camchis.com>
Co-authored-by: owenferg <114884536+owenferg@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Robert Nisipeanu <github@nisipeanu.com>
Co-authored-by: Max Weinbach <maxweinbach5@gmail.com>
Co-authored-by: Alb11747 <albertli_042@hotmail.com>
Co-authored-by: Igor Makowski <56691628+Mnigos@users.noreply.github.com>
Co-authored-by: Mike Olson <mwolson@member.fsf.org>
Co-authored-by: Jorrin <43169049+JorrinKievit@users.noreply.github.com>
Co-authored-by: Christopher Ehrlich <ehrlich.christopher@gmail.com>
Co-authored-by: Gabriel De Andrade <gabrieldeandradeleal@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews size:M 30-99 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.

[Bug]: Cant scroll terminal in mobile web

2 participants