Skip to content

fix(usage): show empty sessions when weekly quota is exhausted - #20349

Merged
juliusmarminge merged 5 commits into
pingdotgg:mainfrom
AlexChambers:fix/pooled-limits-empty-weekly
Oct 19, 2026
Merged

juliusmarminge merged 5 commits into
pingdotgg:mainfrom
AlexChambers:fix/pooled-limits-empty-weekly

Conversation

@AlexChambers

@AlexChambers AlexChambers commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Usage → Limits previously counted session quota from Claude and Codex accounts whose overall weekly allowance was exhausted. This made a four-account pool show 95% session quota when only 73% was usable.

The shared presentation now counts those blocked sessions as empty. Refill estimates respect both reset times: a session that resets first becomes usable at the weekly reset; an exhausted session that resets later stays blocked until its own reset; a partly spent session can regain only its unused portion at the weekly reset. Missing or stale reset times have no estimate. Web and mobile hatching uses the amount actually expected back. Claude model-specific weekly allowances retain their reported values, since an exhausted overall allowance does not establish that overage-inclusive model allowances are unusable. Provider snapshots and enforcement are unchanged.

Built on @AlexChambers' original contribution in #20349, preserving its commits and merging current main. This addresses the session-pooling portion of #19035.

Verification:

  • Fresh test reduction: shared suite 54 → 52 tests, then four distinct clock/refresh edge cases added for the rebuilt behavior: 56 shared tests. Three focused regressions failed against both main and the original implementation before the rebuild.
  • 80 tests passed across shared usage limits and the two mobile widget suites. Targeted lint, shared/web/mobile typechecks and diff checks passed.
  • Two independent full-diff review rounds with Claude Opus 5.5 and Codex GPT-6 Sol found no confirmed code blockers. The ordering description was corrected after review. The conservative missing-clock behavior is intentional; partial-refill hatches retain the existing right-edge placement.
  • Headless Linux web client, fixed synthetic four-account snapshot and clock, matching 1280×800 viewport. Main's pooling/component code is the baseline; the current head is the result. Temporary fixtures were removed. A locally served Liberation Sans fallback made text visible in the headless browser and was used for both captures.
Before: session 95%, model weekly 81% After: session 73%, model weekly 81%
Before weekly exhaustion pooling After weekly exhaustion pooling

Not verified: live provider quota refresh or paid overage behavior, macOS, Windows, native iOS/Android, or the Electron shell. Widget behavior is covered by focused tests; the mobile UI received code review and typechecking. No merge was performed.

Implementation: GPT-6.1 Sol through the Codex harness in T3 Code; tests: GPT-6 Astra; adversarial review: Claude Opus 5.5 and GPT-6 Sol.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Oct 16, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 49f54b0

Macroscope's review found this PR approvable — This is a narrowly scoped usage-display bug fix that derives exhausted session/model rows from an exhausted weekly quota without changing stored provider data or quota enforcement. It includes targeted regression coverage for affected and unaffected providers, reset metadata, and refresh behavior.

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

@coderabbitai

coderabbitai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

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: 773aa476-777a-4c42-85a8-52bbc51878d3
📥 Commits

Reviewing files that changed from the base of the PR and between e58a485 and 49f54b0.

📒 Files selected for processing: 3
  • docs/user/usage.md
  • packages/shared/src/usageLimits.test.ts
  • packages/shared/src/usageLimits.ts

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

📝 Walkthrough

When a Claude Agent or Codex weekly limit is exhausted, covered session windows are pooled as fully used. Claude Agent model-specific weekly windows are also affected. The changes include tests for pooling and reset behavior, plus usage documentation.

Changes: Exhausted weekly quota pooling

Layer / File(s) Summary
Apply exhausted weekly limits to covered windows
packages/shared/src/usageLimits.ts, packages/shared/src/usageLimits.test.ts, docs/user/usage.md
poolWindows treats covered windows as 100% used when the applicable weekly limit reaches 100%. The weekly window’s reset time and duration are applied. Tests cover pooled values, unchanged source usage, and missing or invalid reset times. The documentation describes the displayed session and model limits.

Priority: ➖ Normal

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

Change: Bug fix · Severity of issue fixed: Medium

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to 49f54

The change makes pooled usage displays show empty sessions when the weekly quota is exhausted. No actionable merge risk was identified.

### Architecture Summary

Architecture risk: 🔵 Low · up to 49f54

The change affects 2 systems.

Changed systems: packages/shared, docs

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — packages/shared (library) was modified; 2 changed files map to changed impact.
  • observed — docs (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in docs/user/usage.md: Documents that Claude and Codex sessions display 0% remaining and the weekly reset time when an account has no weekly quota left; Claude’s model-specific weekly rows do likewise.
  • observed — Modified behavior in packages/shared/src/usageLimits.test.ts: Added a test expecting exhausted weekly limits sharing a reset time to count as empty in session and model rows, with pooled remaining values of 73, 13, and 57 and reset restoration of 25. It also checks that pooling does not mutate source usage and that refreshed zero-usage limits yield 100% remaining.
  • observed — Modified behavior in packages/shared/src/usageLimits.test.ts: Added cases expecting session remaining to use the exhausted weekly limit only for the specified driver and window combinations: Codex secondary at 100% yields 0; Claude seven_day at 99% and seven_day_fable at 100%, and Cursor seven_day at 100%, yield 60.
  • observed — Modified behavior in packages/shared/src/usageLimits.test.ts: Added cases for weekly reset values of undefined and "invalid"; both expect session remaining to be 0 and the reset list to be empty.
Pre-merge checks: Passed 3 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Linked Issues check Warning Issue [#19035] requires an exhausted account segment to show a lock and count down to the weekly reset. The implementation derives usedPercent: 100, resetsAt, and windowDurationMins in `poolWind… Add the required lock state or lock indicator for session and affected Claude model-weekly segments when the covering weekly quota is exhausted. Add regression coverage for the indicator and weekly countdown.
Passed Passed checks: 3 passed
Check name Status Explanation
Out of Scope Changes check Passed The changed files stay within issue [#19035]. The shared pooling change implements the exhausted-weekly rule. The tests cover the pooled values, reset inheritance, refreshed quota, provider boundaries…
Title check Passed The title clearly and concisely describes the primary change: showing empty sessions when the weekly quota is exhausted.
Description check Passed The description clearly explains the problem, implementation, scope, verification results, screenshots, and unverified environments. It does not use the template headings exactly and does not explicit…
Full details: Out of Scope Changes check

Explanation

The changed files stay within issue [#19035]. The shared pooling change implements the exhausted-weekly rule. The tests cover the pooled values, reset inheritance, refreshed quota, provider boundaries, and invalid resets. The usage guide documents the resulting behavior. No unrelated product or quota-enforcement changes are present.

Full details: Description check

Explanation

The description clearly explains the problem, implementation, scope, verification results, screenshots, and unverified environments. It does not use the template headings exactly and does not explicitly document maintainer approval or explain the approval exemption, but it is otherwise complete and directly related to the change.

Full details: Linked Issues check

Explanation

Issue [#19035] requires an exhausted account segment to show a lock and count down to the weekly reset. The implementation derives usedPercent: 100, resetsAt, and windowDurationMins in poolWindows, so the zero-remaining values and reset timing are covered. The diff adds no lock state or lock indicator, and the PR explicitly excludes lock indicators. This leaves one direct coding requirement unmet.

Resolution

Add the required lock state or lock indicator for session and affected Claude model-weekly segments when the covering weekly quota is exhausted. Add regression coverage for the indicator and weekly countdown.

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@juliusmarminge juliusmarminge self-assigned this Oct 19, 2026
@juliusmarminge

Copy link
Copy Markdown
Member

Taking over this one. I’ll keep the work on this PR, reduce the tests to the behaviors that matter, and check weekly exhaustion against session resets and model allowances before rebuilding it. Thanks @AlexChambers for the reproduction and proof.

@github-actions github-actions Bot added size:L 100-499 changed lines (additions + deletions). and removed size:S 10-29 changed lines (additions + deletions). labels Oct 19, 2026
@juliusmarminge
juliusmarminge merged commit 5b72385 into pingdotgg:main Oct 19, 2026
27 checks passed
@AlexChambers
AlexChambers deleted the fix/pooled-limits-empty-weekly branch October 19, 2026 10:20
juliusmarminge added a commit to RakshithBhat03/t3code that referenced this pull request Oct 19, 2026
Carries the weekly-exhaustion refillPercent hatch (pingdotgg#20349) through the
extracted SegmentTriggers so the shared popover segments draw the same
clamped refill stripe as main.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 19, 2026
## What's Changed
* fix(mobile): gallery images shrink back into their thumbnail on close by @flamboh in pingdotgg/t3code#21481
* fix(terminal): keep project script commands out of shell history by @otavio in pingdotgg/t3code#13903
* fix(shared): port checks no longer fail on hosts with IPv6 disabled by @mr-joom in pingdotgg/t3code#15044
* fix(mobile): load iOS device streams over HTTP on Android by @akhial in pingdotgg/t3code#14284
* fix(web): reveal folded imported responses when opening citations by @saphid in pingdotgg/t3code#18423
* fix(usage): show empty sessions when weekly quota is exhausted by @AlexChambers in pingdotgg/t3code#20349
* fix(web): keep device results in the thread that started them by @saphid in pingdotgg/t3code#16040
* fix(desktop): built-in browser sites can no longer post notifications without permission by @fixfon in pingdotgg/t3code#20237
* fix(mobile): Browser menu pastes the phone's clipboard into the page by @spiky02plateau in pingdotgg/t3code#19648
* fix(shared): terminal labels after non-BMP letters stay plain text by @kumar-karan in pingdotgg/t3code#19968
* fix(connect): stop reporting a loading cloud session as a sign-in change by @Project516 in pingdotgg/t3code#11013
* fix(terminal): fish no longer stalls 10s on startup by @t3dotgg in pingdotgg/t3code#19685
* fix(mobile): Android terminal input no longer triggers password autofill by @voida6 in pingdotgg/t3code#20051
* fix(shared): T3 Connect devices connect to hosts with a Latvian, Lithuanian, Basque or Azerbaijani locale by @shivamhwp in pingdotgg/t3code#19616
* fix(server): thread-bound scheduled tasks run on the thread's current provider by @otavio in pingdotgg/t3code#18467
* fix(server,mobile): a message you send resumes a held queue, and mobile can resume one by @juliusmarminge in pingdotgg/t3code#21473
* feat(web): choose the in-app browser's search engine by @bmdavis419 in pingdotgg/t3code#17688

## New Contributors
* @mr-joom made their first contribution in pingdotgg/t3code#15044
* @akhial made their first contribution in pingdotgg/t3code#14284
* @AlexChambers made their first contribution in pingdotgg/t3code#20349
* @kumar-karan made their first contribution in pingdotgg/t3code#19968
* @Project516 made their first contribution in pingdotgg/t3code#11013

**Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261019.3348...v0.1.1-nightly.20261019.3360

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261019.3360
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 19, 2026
## What's Changed
* fix(mobile): gallery images shrink back into their thumbnail on close by @flamboh in pingdotgg/t3code#21481
* fix(terminal): keep project script commands out of shell history by @otavio in pingdotgg/t3code#13903
* fix(shared): port checks no longer fail on hosts with IPv6 disabled by @mr-joom in pingdotgg/t3code#15044
* fix(mobile): load iOS device streams over HTTP on Android by @akhial in pingdotgg/t3code#14284
* fix(web): reveal folded imported responses when opening citations by @saphid in pingdotgg/t3code#18423
* fix(usage): show empty sessions when weekly quota is exhausted by @AlexChambers in pingdotgg/t3code#20349
* fix(web): keep device results in the thread that started them by @saphid in pingdotgg/t3code#16040
* fix(desktop): built-in browser sites can no longer post notifications without permission by @fixfon in pingdotgg/t3code#20237
* fix(mobile): Browser menu pastes the phone's clipboard into the page by @spiky02plateau in pingdotgg/t3code#19648
* fix(shared): terminal labels after non-BMP letters stay plain text by @kumar-karan in pingdotgg/t3code#19968
* fix(connect): stop reporting a loading cloud session as a sign-in change by @Project516 in pingdotgg/t3code#11013
* fix(terminal): fish no longer stalls 10s on startup by @t3dotgg in pingdotgg/t3code#19685
* fix(mobile): Android terminal input no longer triggers password autofill by @voida6 in pingdotgg/t3code#20051
* fix(shared): T3 Connect devices connect to hosts with a Latvian, Lithuanian, Basque or Azerbaijani locale by @shivamhwp in pingdotgg/t3code#19616
* fix(server): thread-bound scheduled tasks run on the thread's current provider by @otavio in pingdotgg/t3code#18467
* fix(server,mobile): a message you send resumes a held queue, and mobile can resume one by @juliusmarminge in pingdotgg/t3code#21473
* feat(web): choose the in-app browser's search engine by @bmdavis419 in pingdotgg/t3code#17688

## New Contributors
* @mr-joom made their first contribution in pingdotgg/t3code#15044
* @akhial made their first contribution in pingdotgg/t3code#14284
* @AlexChambers made their first contribution in pingdotgg/t3code#20349
* @kumar-karan made their first contribution in pingdotgg/t3code#19968
* @Project516 made their first contribution in pingdotgg/t3code#11013

**Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261019.3348...v0.1.1-nightly.20261019.3360

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261019.3360
joaoheusi added a commit to joaoheusi/t3code that referenced this pull request Oct 19, 2026
* fix(acp): request ids stay within signed 32-bit so Kotlin agents answer (pingdotgg#15374)

* fix(antigravity): keep the runtime version learned from ACP (pingdotgg#20980)

Co-authored-by: Paul <paul@local>

* perf(mobile): clean Android builds keep their Gradle and native caches (pingdotgg#20069)

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

* fix(server): clear automatic PRs from other branches (pingdotgg#20223)

* fix(server): Bitbucket threads settle after their pull request merges (pingdotgg#19937)

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

* fix(server): a steered send no longer leaves a subagent task running (pingdotgg#19019)

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

* fix(opencode): retry shared database locks during startup (pingdotgg#17922)

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

* fix(server): threads no longer settle after merging PRs they were asked to merge (pingdotgg#18232)

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

* fix(server): held assistant drafts keep their position when flushed at turn end (pingdotgg#19023)

* fix(ssh): keep draining tunnel diagnostics after readiness (pingdotgg#18832)

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

* fix(web): threads finishing together play one completion sound (pingdotgg#17540)

* fix(mobile): a failed draft save no longer blocks sending an uploaded attachment (pingdotgg#21101)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Tejas Rahane <17571323+trahane@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): move keyboard interaction out of the closing right panel (pingdotgg#14786)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): show math labels in Mermaid diagrams (pingdotgg#16198)

* fix(web): device tool update failures show the server error, not network advice (pingdotgg#17569)

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

* fix(web): prevent provider wizard footer overlap while loading (pingdotgg#18609)

* fix(mobile): Live Activities keep updating after iOS rotates their push token (pingdotgg#21134)

Co-authored-by: Aidid Haiqal <syafdo02@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): keep composer within folded screen without leaving the thread (pingdotgg#18574)

* fix(server): a branch on the only remote is not a fork when there is no origin (pingdotgg#20412)

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

* fix(mobile): Android PR filter chips no longer crowd the sheet corner (pingdotgg#20889)

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

* fix(web): refresh stale desktop endpoints when Connections reopens (pingdotgg#16026)

Co-authored-by: Arthur Katcher <192321283+arthurkatcher@users.noreply.github.com>

* fix(shared): preserve escaped quotes in launch arguments (pingdotgg#19525)

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

* fix(server): preserve explicit effort for unknown Claude models (pingdotgg#20849)

* fix(web): show No project in scratch thread breadcrumbs (pingdotgg#19721)

* fix(web): keep collapsed diff file headers reachable (pingdotgg#20333)

* fix(mobile): Chinese input no longer breaks before a skill pill on iOS (pingdotgg#17614)

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* fix(mobile): resize quota bars when filtering environments (pingdotgg#19031)

* fix(web): center composer control labels with their icons (pingdotgg#21241)

* fix(server): warn when connect unlink leaves the relay record (pingdotgg#17743)

Co-authored-by: macodev00 <macodev00@users.noreply.github.com>

* fix(mobile): sheet action buttons text alignment (pingdotgg#11260)

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

* fix(shared): match Windows home paths case-insensitively in file links (pingdotgg#19627)

Co-authored-by: hogeheer499-commits <267467744+hogeheer499-commits@users.noreply.github.com>

* fix(server): t3_preview_close reports the server browser's refusal (pingdotgg#17429)

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

* fix(desktop): reload the main renderer after it is killed (pingdotgg#20300)

* fix(mobile): preserve line counts for withheld pull request hunks (pingdotgg#18836)

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

* fix(server): SSH device-host tunnels no longer inherit ControlMaster (pingdotgg#17440)

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

* fix(provider-acp): stop claiming agents' own tools named like T3 tools (pingdotgg#20376)

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

* fix(client-runtime): a dropped session no longer reads as a failed connection (pingdotgg#18469)

* fix(server): slow OpenCode wrappers no longer show as unavailable (pingdotgg#16544)

* fix(web): let keyboard users reach why reviewer/label changes are unavailable (pingdotgg#14785)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>

* fix(server): desktop backend now exits when its launcher dies (pingdotgg#20277)

* fix(composer): paths such as /tmp/build.sh no longer open the slash menu (pingdotgg#19671)

* fix(mobile): preserve server matches in file search (pingdotgg#18388)

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

* fix(server): refresh local status after an automatic pull fails (pingdotgg#19686)

Co-authored-by: GPT-6.1-Sol at high effort <noreply@openai.com>

* fix(grok): preserve native question multi-select (pingdotgg#20881)

Co-authored-by: GPT-6.1 Sol <noreply@openai.com>

* perf(web): sidebar working timers share one clock (pingdotgg#21195)

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

* fix(scripts): leave type-only packages out of third-party notices (pingdotgg#14627)

* fix(web): handle Backspace when Android omits the key code (pingdotgg#18063)

* fix(server): allow restarts when a stale runtime record matches the server pid (pingdotgg#20336)

* fix(desktop): ignore snapshot shortcut repeats during flight (pingdotgg#11037)

* fix(client-runtime): queries stay pending while a connection hands off (pingdotgg#18155)

* fix(server): Muse turns stopped by the subscription quota are Limited, not failed (pingdotgg#18266)

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

* fix(server): load merge request diffs on older GitLab (pingdotgg#15886)

* fix(server): take a delegated task's result from its newest turn item (pingdotgg#19058)

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

* fix(server): logs print causes instead of [Object] (pingdotgg#16642)

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(web): keep font picker keyboard selection in sync (pingdotgg#9814)

* fix(mobile): prevent environment row taps from swallowing switches (pingdotgg#17677)

* fix(web): new project options scroll above the footer (pingdotgg#17064)

* fix(server): stop retrying saved checkpoints after refresh failures (pingdotgg#20195)

* fix(server): MCP thread reads skip the item scan they filter to nothing (pingdotgg#17038)

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

* fix(web): copied task lists keep their nested items and code blocks (pingdotgg#14778)

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

* fix(server): t3 run from a T3 terminal no longer trips on the service's launcher context (pingdotgg#14263)

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

* fix(server): keep a remote server update running when the client disconnects (pingdotgg#18980)

Co-authored-by: macodev00 <273427913+macodev00@users.noreply.github.com>
Co-authored-by: maco <macodev00@users.noreply.github.com>

* fix(relay): resolve cloudflared using the hydrated PATH (pingdotgg#19444)

* fix(mobile): branch naming text saves when you leave the screen (pingdotgg#18381)

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

* fix(web): custom model price cells take only numbers (pingdotgg#19245)

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

* fix(web): standalone auth pages scroll when the card is taller than the window (pingdotgg#19603)

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

* fix(server): discover Claude skills from add-dir launch args (pingdotgg#20167)

* fix(mobile): show assistant quotes as text in the queue sheet (pingdotgg#19007)

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

* perf(server): OpenCode 2 stops writing unchanged session status updates (pingdotgg#16775)

* fix(web): give archive actions more icon spacing (pingdotgg#19769)

* fix(server): checkpoints no longer expire a split index the repo still uses (pingdotgg#17074)

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

* fix(web): usage limit recovery errors no longer crush the composer banner (pingdotgg#17457)

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

* fix(desktop): local desktop builds no longer crash when a GitHub token is in the shell (pingdotgg#19277)

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

* fix(mobile): keep PR activity in place during pull-to-refresh (pingdotgg#20196)

* fix(web): a resumed subagent's notification row shows it running, not failed (pingdotgg#18099)

Co-authored-by: TinBane <363069+TinBane@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(preview): isolate tabs for threads sharing a provider session (pingdotgg#18146)

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

* fix(mobile): Android sheets scroll to the end and keep their buttons on screen (pingdotgg#20284)

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

* fix(shared): choose duration unit after rounding seconds (pingdotgg#20299)

* fix(mobile): the status pill label no longer flickers when it is truncated (pingdotgg#20724)

* fix(mobile): remove orphaned temp files after atomic write failures (pingdotgg#20736)

* fix(mcp): optional tool parameters accept the null their schema advertises (pingdotgg#20411)

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

* fix: database errors show actionable recovery guidance (pingdotgg#20748)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>

* fix(web): stored pull request details keep only the 20 most recent (pingdotgg#21245)

* fix(server): publishing explains why the first push failed (pingdotgg#19219)

* fix(server): the V1 transcript import no longer stalls on each thread's V1 events (pingdotgg#21050)

* fix(web): a comment under a composer quote no longer joins the quote (pingdotgg#19450)

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

* fix(usage): a CLIProxyAPI hub served under a path keeps its path (pingdotgg#19336)

* fix(server): agent-driven threads keep their recent rows when checkpoint data is large (pingdotgg#21187)

* fix(server): reverting a Claude thread to a subagent-only turn no longer breaks it (pingdotgg#21151)

* fix(server): forks no longer inherit pull request watches (pingdotgg#16623)

* fix(web): keep answered questions visible after a turn settles (pingdotgg#21086)

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

* fix(server): keep scheduled-task intervals on elapsed time across DST (pingdotgg#15768)

Co-authored-by: Sayf Fadil <313136901+Sypher760-gif@users.noreply.github.com>

* fix(source-control): compare check run timestamps by instant (pingdotgg#20094)

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

* fix(web): the Diff tab keeps its scope when you switch tabs (pingdotgg#20297)

* fix(provider-core): stop false updates for versionless casks (pingdotgg#20386)

* fix(server): honor configured remote diff bases (pingdotgg#16453)

* fix(client-runtime): Update clears the block on a host that is already compatible (pingdotgg#18563)

Signed-off-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com>
Co-authored-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com>

* fix(provider-cursor): a symlinked skills root is no longer scanned twice (pingdotgg#18664)

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

* fix(server): a disabled bootstrap provider no longer stops startup (pingdotgg#20035)

* fix(server): watching a pull request again no longer repeats news the thread already got (pingdotgg#21155)

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

* fix(server): tell users how to update an install T3 cannot update (pingdotgg#18110)

* fix(server): disabled providers no longer report missing executables (pingdotgg#18109)

* fix(server): keep workspace skills when provider health fails (pingdotgg#18309)

* fix(desktop): keypad shortcuts and Ctrl+wheel zoom the app (pingdotgg#21200)

Co-authored-by: Mnigos <56691628+Mnigos@users.noreply.github.com>

* fix(server): setup actions no longer run for threads in the main checkout (pingdotgg#18891)

* fix(web): thread drops land in the visible thread's draft (pingdotgg#20024)

Co-authored-by: Sinan <sinan@Mac-mini-von-Sinan.local>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(server): failed Cursor turns show Cursor's reason (pingdotgg#16146)

* fix(web): honor the send shortcut for follow-up actions (pingdotgg#20929)

* fix(web): image viewer close button stays clear of the window controls (pingdotgg#13919)

* fix(server): parent Stop clears orphaned delegated follow-ups (pingdotgg#20310)

* fix(opencode): OpenCode servers stop with a killed server on Windows (pingdotgg#21103)

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

* test(web): preview session sync and device tool update tests run in a real browser (pingdotgg#21274)

* fix(web): recognize Windows terminal file links (pingdotgg#21199)

* fix(shared): Windows saves no longer fail while a scanner holds the file (pingdotgg#21062)

Co-authored-by: yaacovcorcos <190350601+yaacovcorcos@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): recover after Claude capability probe failures (pingdotgg#21042)

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

* fix(browser): preserve native file pickers in desktop previews (pingdotgg#20994)

* fix(provider-core): pnpm-global updates approve the provider's build (pingdotgg#20796)

* fix(server): usage-limit sweep stops scanning every run each tick (pingdotgg#21191)

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

* fix(provider-grok): report model windows for handoff budgets (pingdotgg#20180)

* fix(server): cancel preparing runs when archiving threads (pingdotgg#20073)

* fix(desktop): a failed macOS test capture no longer blames the GNOME extension (pingdotgg#18857)

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

* fix(web): scrolling a huge thread's history no longer loops the message list (pingdotgg#21269)

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

* fix(web): keep compressed image chips in their original draft (pingdotgg#18393)

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

* fix(server): a Limits hub failure names its TLS, HTTP, or timeout cause (pingdotgg#18168)

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

* fix(server): Claude wake runs no longer end empty while Claude is still answering (pingdotgg#15816)

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

* fix(web): Compose input no longer adds stray quotes (pingdotgg#20350)

* fix(forgejo): wake PR watches for edited comments (pingdotgg#18120)

Signed-off-by: Marc Went <marc@went.io>

* fix(mobile): avoid nested dropdowns for single tools (pingdotgg#15674)

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

* fix(server): apps opened from T3 Code no longer inherit ELECTRON_RUN_AS_NODE (pingdotgg#20206)

* fix(web): show an empty result when file search finds no matches (pingdotgg#17132)

* fix(azure-devops): expose the latest source revision for review guides (pingdotgg#20977)

* fix(server): read Claude context usage from stream message deltas (pingdotgg#19416)

* fix(server): stop the branch rename before cancelling worktree setup (pingdotgg#18443)

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

* fix(server): find existing PR worktrees beyond the first branch page (pingdotgg#18407)

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

* fix(mobile): keep chat images visible when opening the viewer (pingdotgg#20188)

* fix(web): restore palette focus when no composer is mounted (pingdotgg#18850)

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

* fix(desktop): unregistering a WSL backend now stops its supervisor (pingdotgg#18575)

Signed-off-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com>
Co-authored-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com>

* fix(web,mobile): limit bars use each provider's chart color (pingdotgg#16936)

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

* fix(desktop): exclude unrelated VPN addresses from Tailscale pairing (pingdotgg#15753)

Co-authored-by: Arthur Katcher <192321283+arthurkatcher@users.noreply.github.com>

* fix(server): re-snoozing a woken thread to the same wake time hides it again (pingdotgg#14887)

* fix(server): t3_thread_send reports why the orchestrator refused a message (pingdotgg#21027)

Co-authored-by: dan <dan@bw-hq-linuxws01.bellwetherit.com>

* fix(web): render stored HEIC attachments (pingdotgg#10429)

* fix(web): truncate draft project names in the middle (pingdotgg#18858)

Co-authored-by: bentbrain <28818884+bentbrain@users.noreply.github.com>

* fix(server): report missing Node on SSH device hosts instead of a connection failure (pingdotgg#20377)

* fix(server): preserve unrelated branch upstreams when opening fork PRs (pingdotgg#18413)

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

* fix(server): a Claude hook that drops a prompt now shows its reason (pingdotgg#21231)

* fix(mobile): iOS builds on Xcode 27.0 no longer fail on 27.1-only hinge APIs (pingdotgg#18913)

Co-authored-by: Jeremiah Jordan <zanson@zanson.org>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): ACP agents that need no sign-in drop models they stopped advertising (pingdotgg#18807)

* fix(source-control): fix watch failures on large forgejo PRs (pingdotgg#18432)

* fix(server): explain root browser launch failures instead of pointing to setup (pingdotgg#19846)

* fix(server): reject thread.create for an existing id (pingdotgg#19704)

* fix(server): MCP thread list and read report every linked pull request (pingdotgg#17454)

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

* fix(markdown): Windows paths in messages keep their backslashes (pingdotgg#21069)

Co-authored-by: OhadC <4123639+OhadC@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* chore(lint): reject use* functions that call no hooks (pingdotgg#21260)

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

* fix(server): replace Claude sessions that never saved a message (pingdotgg#19637)

* fix(web): terminal drawer covers the turn minimap (pingdotgg#14383)

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

* fix(server): Claude subagents keep their model after a usage-limit notice (pingdotgg#17097)

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

* fix(web): collapsed composer centers drafts that start with a list (pingdotgg#17820)

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

* fix(server): a full Claude context window no longer shows as a usage limit (pingdotgg#19848)

* perf(server): skip unused diffs for user-written commit messages (pingdotgg#19605)

* test(server): drop the duplicate Path import in the Grok adapter test (pingdotgg#21308)

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

* test(server): a fork that stops its own PR watch keeps it as its ended watch (pingdotgg#21309)

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

* test(server): wait for a workflow member's late reply to reach the test's event log (pingdotgg#21310)

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

* test(web): file browser and attachment image tests run in a real browser (pingdotgg#21297)

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

* test(mobile): branch naming and server controls settings tests load again (pingdotgg#21293)

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

* test(mobile): a completed render splits the work log into lone-call rows (pingdotgg#21295)

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

* perf(mobile): settings screens compile with the React Compiler (pingdotgg#21119)

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

* perf(mobile): files, review and remaining settings screens compile with the React Compiler (pingdotgg#21124)

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

* perf(mobile): home, workspace layout and overlay pieces compile with the React Compiler (pingdotgg#21133)

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

* perf(mobile): pull request screens compile with the React Compiler (pingdotgg#21136)

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

* perf(mobile): composer, connections, add project and shared state compile with the React Compiler (pingdotgg#21137)

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

* perf(mobile): new task flow, git sheets, thread settings and work log compile with the React Compiler (pingdotgg#21141)

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

* perf(mobile): thread composer, route screen and queue control compile with the React Compiler (pingdotgg#21142)

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

* perf(mobile): thread detail screen and navigation sidebar compile with the React Compiler (pingdotgg#21145)

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

* perf(mobile): thread rows no longer re-render the list when another thread streams (pingdotgg#21255)

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

* perf(mobile): composer draft no longer re-renders the thread screen when typing (pingdotgg#21261)

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

* perf(mobile): ThreadFeed compiles with the React Compiler (pingdotgg#21268)

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

* feat(server): send telemetry through ingest.t3.codes (pingdotgg#15028)

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

* fix(devices): Android fold controls work over T3 Connect (pingdotgg#21156)

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

* test(web): burst-merged jsdom tests run in a real browser (pingdotgg#21318)

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

* fix(web): keep the composer chin below the input (pingdotgg#21345)

* fix(mobile): sheets close with an X and confirm with a checkmark (pingdotgg#21319)

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

* fix(tailscale): a slow tailscale status no longer hides Tailscale in Settings (pingdotgg#21057)

* chore(deps): web and mobile share React 19.3 from the catalog (pingdotgg#21376)

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

* fix(server): migrate legacy thread pull request links (pingdotgg#19129)

* fix(server): a failed Codex turn no longer traps the queue behind its subagents (pingdotgg#21366)

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

* feat(server): count which product features people use (pingdotgg#15921)

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

* feat(server): count which T3 MCP tools agents use (pingdotgg#15913)

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

* perf(web): HTML renders drop the loading skeleton (pingdotgg#21480)

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

* fix(mobile): sent steer and queued messages are marked like desktop (pingdotgg#21417)

* fix(server): keep queued subagent status in sync (pingdotgg#21487)

* perf(web): virtualize large changed-file trees (pingdotgg#21482)

* fix(pull-requests): distinguish skipped checks with a slash icon (pingdotgg#21498)

* fix(mobile): crash report shows the store build number (pingdotgg#16052)

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

* fix(files): load PDFs in browser previews (pingdotgg#21095)

* fix(server): device-host SSH tunnels exit when the server dies (pingdotgg#17448)

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

* fix(web): Open in → Finder in the file preview opened the file in its default app instead of revealing it (pingdotgg#16955)

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

* fix(web): project actions no longer reuse the right-panel terminal (pingdotgg#18340)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(web): the device screen keeps focus when typing or returning to the window (pingdotgg#14534)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(server): keep browser input responsive during slow navigation (pingdotgg#16691)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(grok): a Homebrew-installed Grok updates through brew and is compared against the cask (pingdotgg#18772)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(antigravity): read usage from each instance data directory (pingdotgg#17769)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(server): reconnecting no longer reopens a closed terminal (pingdotgg#18444)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(shared): preview addresses containing another URL open instead of searching (pingdotgg#17943)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(server): ACP Registry loads on networks with slow IPv4 connects (pingdotgg#15054)

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(preview): keep desktop-rendered tabs out of idle cleanup (pingdotgg#18147)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(server): auto-delivered messages queue between provider turns (pingdotgg#15691)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(server): OpenCode 2 threads keep T3's tools after an idle project is evicted (pingdotgg#16796)

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

* fix(server): install the advertised version for pnpm-global provider updates (pingdotgg#14295)

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

* fix(web): ignore right-clicks in the flat Device viewport (pingdotgg#17020)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(web): "No project" picker shows its full label on the new-thread screen (pingdotgg#21504)

* fix(web): up-arrow recall skips automation and agent messages (pingdotgg#21510)

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

* fix(desktop): reattach a browser tab whose debugger Chromium dropped (pingdotgg#17525)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(web): Integrations settings show one Browser section, not two (pingdotgg#18264)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(web): hide the empty reset badge on unstarted limit windows (pingdotgg#18579)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(cli): browser setup installs missing fonts (pingdotgg#17570)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(web,mobile): queued messages no longer say "From queue" once sent (pingdotgg#21474)

* fix(web): refresh embedded assets in markdown file previews (pingdotgg#18647)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(web,mobile): keep reporting client activity after an interrupted report (pingdotgg#15738)

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

* fix(web): paste terminal text once and clear the shortcut on release (pingdotgg#19366)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(server): fall back when checkpoint fsync is unsupported (pingdotgg#14411)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(preview): browser tabs no longer go blank when the tab list reorders (pingdotgg#13799)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(server): terminals no longer inherit the launching tmux session (pingdotgg#13359)

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

* fix(mobile): gallery images shrink back into their thumbnail on close (pingdotgg#21481)

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

* fix(terminal): keep project script commands out of shell history (pingdotgg#13903)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(shared): port checks no longer fail on hosts with IPv6 disabled (pingdotgg#15044)

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

* fix(mobile): load iOS device streams over HTTP on Android (pingdotgg#14284)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(web): reveal folded imported responses when opening citations (pingdotgg#18423)

Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(usage): show empty sessions when weekly quota is exhausted (pingdotgg#20349)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(web): keep device results in the thread that started them (pingdotgg#16040)

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>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(desktop): built-in browser sites can no longer post notifications without permission (pingdotgg#20237)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(mobile): Browser menu pastes the phone's clipboard into the page (pingdotgg#19648)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(shared): terminal labels after non-BMP letters stay plain text (pingdotgg#19968)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(connect): stop reporting a loading cloud session as a sign-in change (pingdotgg#11013)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(terminal): fish no longer stalls 10s on startup (pingdotgg#19685)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(mobile): Android terminal input no longer triggers password autofill (pingdotgg#20051)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(shared): T3 Connect devices connect to hosts with a Latvian, Lithuanian, Basque or Azerbaijani locale (pingdotgg#19616)

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

* fix(server): thread-bound scheduled tasks run on the thread's current provider (pingdotgg#18467)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(server,mobile): a message you send resumes a held queue, and mobile can resume one (pingdotgg#21473)

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

* feat(web): choose the in-app browser's search engine (pingdotgg#17688)

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

* fix(mobile): settings no longer tell you to update when you're up to date (pingdotgg#21688)

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

* test(web): fix the workflow script test that times out on busy CI runners (pingdotgg#21699)

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

* fix(mobile): a file shared into a new task shows in the composer before you send (pingdotgg#21659)

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

* fix(desktop): a cold WSL distro gets 30 seconds to boot instead of 10 (pingdotgg#21070)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(web): detect software keyboard before handling composer Enter (pingdotgg#21763)

* fix(mobile): the Git sheet uses the standard list rows (pingdotgg#21785)

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

* fix(fork): adapt fork code to upstream APIs from Oct 19 merge

* fix(fork): satisfy upstream lint rules and migration guard from Oct 19 merge

---------

Signed-off-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com>
Signed-off-by: Marc Went <marc@went.io>
Co-authored-by: Igor Makowski <56691628+Mnigos@users.noreply.github.com>
Co-authored-by: Paul Jones <32859666+pauljones0@users.noreply.github.com>
Co-authored-by: Paul <paul@local>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Aaron Queen <bompus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Rodrigo Brechard <rodrigobrechard@gmail.com>
Co-authored-by: Sebastian Pugliese <73218979+RealDoc06@users.noreply.github.com>
Co-authored-by: Scott Norteman <snorteman@gmail.com>
Co-authored-by: luke <97411838+luke2x@users.noreply.github.com>
Co-authored-by: Zeus-Deus <100132710+Zeus-Deus@users.noreply.github.com>
Co-authored-by: fixfon <12512757+fixfon@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: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Tejas Rahane <17571323+trahane@users.noreply.github.com>
Co-authored-by: Nikita Maximilian Grimm <github@nikitagrimm.de>
Co-authored-by: Akash Moradiya <64416825+akash3444@users.noreply.github.com>
Co-authored-by: Aidid Haiqal <aididhaiqal@users.noreply.github.com>
Co-authored-by: Aidid Haiqal <syafdo02@gmail.com>
Co-authored-by: Alex <me@pixp.cc>
Co-authored-by: Victor Vogel <thevictorvogel@gmail.com>
Co-authored-by: Nick Anisimov <n.anisimov.23@gmail.com>
Co-authored-by: Arthur Katcher <katcherarthur07@gmail.com>
Co-authored-by: Arthur Katcher <192321283+arthurkatcher@users.noreply.github.com>
Co-authored-by: Simone <lucenz@proton.me>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Yannic Charlon <52761674+JustYannicc@users.noreply.github.com>
Co-authored-by: Greg Woulfe <47796957+gjw4118@users.noreply.github.com>
Co-authored-by: Andrei Shenets <shenets.andrei@gmail.com>
Co-authored-by: IlyaL <ilyaliao324@gmail.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: Afonso Ferreira <99990310+Aforno@users.noreply.github.com>
Co-authored-by: maco <gosarmarcel7@gmail.com>
Co-authored-by: macodev00 <macodev00@users.noreply.github.com>
Co-authored-by: Cameron Chisholm <cam@camchis.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Jesse van Dijk <hogeheer499@gmail.com>
Co-authored-by: hogeheer499-commits <267467744+hogeheer499-commits@users.noreply.github.com>
Co-authored-by: ObliviousObserver <96266208+spencermorris04@users.noreply.github.com>
Co-authored-by: Killian Cazin <1305146+kcazin@users.noreply.github.com>
Co-authored-by: Joshua Whitley <josh@electrifiedautonomy.com>
Co-authored-by: Otavio Salvador <otavio@ossystems.com.br>
Co-authored-by: Joseph Vidal <135430578+josephv123@users.noreply.github.com>
Co-authored-by: Alb11747 <albertli_042@hotmail.com>
Co-authored-by: Alyx <256263590+Alyx-ML@users.noreply.github.com>
Co-authored-by: Leonel Rivas <encriptandost@gmail.com>
Co-authored-by: JIA <121747365+JIAFALSEDREAM@users.noreply.github.com>
Co-authored-by: Matthew Feroz <136640686+MatthewFeroz@users.noreply.github.com>
Co-authored-by: Tristan Knight <admin@snappeh.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
Co-authored-by: Arav Jain <aravhawk@gmail.com>
Co-authored-by: hinescreative <wes@hinescreative.xyz>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Adam Firestone <126423542+asfires@users.noreply.github.com>
Co-authored-by: Rohith Kadaveru <rohithkadaveru@gmail.com>
Co-authored-by: Kevin Bravo <79945749+0bkevin@users.noreply.github.com>
Co-authored-by: shshajek-cpu <shshajek@gmail.com>
Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com>
Co-authored-by: Soroush Baraouf <soroushraouf44@gmail.com>
Co-authored-by: Shawn <5414767+playcations@users.noreply.github.com>
Co-authored-by: macodev00 <273427913+macodev00@users.noreply.github.com>
Co-authored-by: James C <134711311+Exotic209093@users.noreply.github.com>
Co-authored-by: Aditya Vardhan Sharma <adityaradhika13@gmail.com>
Co-authored-by: Rakshith Bhat <88523594+RakshithBhat03@users.noreply.github.com>
Co-authored-by: Arham Mahajan <89351952+arhammahajan@users.noreply.github.com>
Co-authored-by: Nishchay M Chandra <130458023+GLDRoger@users.noreply.github.com>
Co-authored-by: Abdullah <ardudeisepic@outlook.com>
Co-authored-by: Lakshmi Tanmay <lakshmi@voltcrash.com>
Co-authored-by: Sheehan Munim <80079528+sheehanmunim@users.noreply.github.com>
Co-authored-by: Patryk Sztuczka <73931963+patryksztuczka@users.noreply.github.com>
Co-authored-by: Dominik Engelhardt <dominikengelhardt@ymail.com>
Co-authored-by: Claudesaul <139932571+Claudesaul@users.noreply.github.com>
Co-authored-by: TinBane <TinBane@users.noreply.github.com>
Co-authored-by: TinBane <363069+TinBane@users.noreply.github.com>
Co-authored-by: Tdanks2000 <40835340+TDanks2000@users.noreply.github.com>
Co-authored-by: Kevin Rajan <7121943+kvnloo@users.noreply.github.com>
Co-authored-by: voida6 <kainth.ravdeep@gmail.com>
Co-authored-by: tiliakoos <73005126+tiliakoos@users.noreply.github.com>
Co-authored-by: Salloxy <197323176+Salloxy@users.noreply.github.com>
Co-authored-by: Derek Trimm <275381468+derektrimm@users.noreply.github.com>
Co-authored-by: Quy Ngoc Nguyen <pipyakas@gmail.com>
Co-authored-by: Jake Leventhal <jakeleventhal@me.com>
Co-authored-by: Ivan Malison <IvanMalison@gmail.com>
Co-authored-by: Sypher760-gif <sayffadil@gmail.com>
Co-authored-by: Sayf Fadil <313136901+Sypher760-gif@users.noreply.github.com>
Co-authored-by: RVZO6 <66844656+RVZO6@users.noreply.github.com>
Co-authored-by: Pujitha Paladugu <pujitha.rathna@gmail.com>
Co-authored-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com>
Co-authored-by: Mantas Kantautas <mantas.kantautas@gmail.com>
Co-authored-by: Ranga Prasath S R <rangaprasath22@gmail.com>
Co-authored-by: Reda Hilal <155382825+0xKa@users.noreply.github.com>
Co-authored-by: Victor Ajibade <43748536+ViaxCo@users.noreply.github.com>
Co-authored-by: Sinan Turna <sinan.turna@yahoo.com>
Co-authored-by: Sinan <sinan@Mac-mini-von-Sinan.local>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Nikita Koynov <43469098+nkoynov@users.noreply.github.com>
Co-authored-by: David Atkins <david.atkins1998@gmail.com>
Co-authored-by: kuna <47035140+1kuna@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: yaacovcorcos <190350601+yaacovcorcos@users.noreply.github.com>
Co-authored-by: Gustavo Rosa <Gustav0ar@users.noreply.github.com>
Co-authored-by: Luís Miguel <quicksaver@gmail.com>
Co-authored-by: Johannes Bill <johannes.bill@gmail.com>
Co-authored-by: Marc Went <Dunky13@users.noreply.github.com>
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
Co-authored-by: Jord <650645+Jord-JD@users.noreply.github.com>
Co-authored-by: Tomas Johanovsky <94782578+johanovskyt@users.noreply.github.com>
Co-authored-by: Yukun Shan <92423096+nateEc@users.noreply.github.com>
Co-authored-by: Camilo Paez <camilopaez.dev@gmail.com>
Co-authored-by: Charlie Lockyer <97544360+charlielockyer-rice@users.noreply.github.com>
Co-authored-by: Jonas B. <122468993+JonasFocus@users.noreply.github.com>
Co-authored-by: Dan Donathan <1904043+ddonathan@users.noreply.github.com>
Co-authored-by: dan <dan@bw-hq-linuxws01.bellwetherit.com>
Co-authored-by: Guillermo Casanova <75276669+Gigioxx@users.noreply.github.com>
Co-authored-by: Liam Cullen <liamtc@icloud.com>
Co-authored-by: bentbrain <28818884+bentbrain@users.noreply.github.com>
Co-authored-by: Jeremiah Jordan <jeremiah@apache.org>
Co-authored-by: Jeremiah Jordan <zanson@zanson.org>
Co-authored-by: Robbie <robbiethewadley@gmail.com>
Co-authored-by: Madhav Gautam <63944499+mxdhavgautam@users.noreply.github.com>
Co-authored-by: OhadC <4123639+OhadC@users.noreply.github.com>
Co-authored-by: maria <maria@kuuro.net>
Co-authored-by: Sairaj <sairaj2119@gmail.com>
Co-authored-by: 洁月星 <jieyuexing@outlook.com>
Co-authored-by: Samuel Soeller <33049999+5knnbdwm@users.noreply.github.com>
Co-authored-by: Microck <contact@micr.dev>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com>
Co-authored-by: Mohamed Akef <1524321+mohamed-akef@users.noreply.github.com>
Co-authored-by: James Villarrubia <8172873+jamesvillarrubia@users.noreply.github.com>
Co-authored-by: Antony <97451137+TonybynMp4@users.noreply.github.com>
Co-authored-by: hayden <95017494+haydenkz@users.noreply.github.com>
Co-authored-by: Maxwell Young <maxtheyoung@gmail.com>
Co-authored-by: Raphael Fakhri <153192858+RaphaelFakhri@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Sebastián Maluk <samaluk@miuandes.cl>
Co-authored-by: tobymarks <150393460+tobymarks@users.noreply.github.com>
Co-authored-by: Adrian Las <adrilasar.dev@gmail.com>
Co-authored-by: Saikrishna Ambeti <saikrisha.ambeti1@gmail.com>
Co-authored-by: Sky Hong <sky9109@gmail.com>
Co-authored-by: mohammed shazeb <mohammedshazeb10@gmail.com>
Co-authored-by: Kiera <142857464+mkiera@users.noreply.github.com>
Co-authored-by: Uzair Sajid <uzee@uzeeinc.net>
Co-authored-by: mr-joom <mr.joom@gmail.com>
Co-authored-by: Adel Khial <adel.khial@gmail.com>
Co-authored-by: Alex Chambers <alexchambers91@gmail.com>
Co-authored-by: spiky02plateau <155588579+spiky02plateau@users.noreply.github.com>
Co-authored-by: Karan Kumar <karan.8080dev@gmail.com>
Co-authored-by: project516 <138796702+Project516@users.noreply.github.com>
Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants