Skip to content

perf(mobile): sends respond instantly, thread opens stop freezing - #4882

Merged
t3dotgg merged 3 commits into
mainfrom
t3code/investigate-mobile-performance-lag
Jul 30, 2026
Merged

perf(mobile): sends respond instantly, thread opens stop freezing#4882
t3dotgg merged 3 commits into
mainfrom
t3code/investigate-mobile-performance-lag

Conversation

@t3dotgg

@t3dotgg t3dotgg commented Jul 29, 2026

Copy link
Copy Markdown
Member

On iOS, sending a message did nothing for 3+ seconds before showing "queued", opening a thread locked the app for ~1s before the transition, and starting a new thread froze before the composer appeared. A multi-agent investigation traced each symptom; this PR takes the highest-impact fixes that were safe to make small.

Send: feedback on the tap frame. The "queued" state waited on a durable JSON file write (with attachments inlined as base64) before anything changed on screen, and the draft only cleared after that resolved. The outbox atom now publishes synchronously with the write happening behind it (rolled back on failure, content restored to the draft), and the lock-screen Live Activity arms after the send instead of before. Sending now clears the composer and shows "queued" immediately; the file write and relay round trip happen behind that feedback.

Thread open: linear feed derivation. groupAdjacentActivities copied the accumulated group array per activity — O(k²) on long tool runs. It now appends into a mutable trailing group. Isolated benchmark: 2,000 activities in one turn drops 1.47ms → 0.009ms per pass (~160x); at 5,000 activities ~1.8ms → 0.03ms. This runs on every thread open and every streaming update, and pending approvals/user inputs re-sorted the full activity array twice more per update — now sorted once and shared.

New thread: keyboard no longer races the sheet. The native composer's autoFocus fired becomeFirstResponder the moment the view attached, forcing iOS keyboard bring-up (300ms+ cold) during the formSheet present animation. The existing InteractionManager-deferred focus takes over, so the sheet animates immediately and the keyboard rises after it settles.

Re-render hygiene. The v2 home thread list passed a fresh extraData object literal every render, forcing all visible FlatList rows to re-render on any HomeScreen render — now memoized. useThreadOutboxDrain (subscribed to all threads, projects, connections, and the outbox) ran directly in the root navigation layout, re-rendering every screen on each enqueue/shell/connection change — now hosted in a null-rendering leaf. The Android-only shortcuts hook also subscribed the iOS root to the active thread shell — now gated.

Estimated impact (release builds; ranked by user-visible effect):

  • Send: perceived latency drops from 3+ seconds to instantaneous queued feedback (the transport round trip still runs, but behind visible state).
  • Thread open: eliminates the quadratic + duplicate-sort share of the pre-transition freeze (up to ~2ms per pass per 2k activities, × N re-runs during catch-up replay) and stops whole-list row re-renders on the way out; the remaining mount cost (markdown expansion, schema decode) is follow-up work.
  • New thread: removes the main-thread keyboard stall from the present animation, which was the dominant visible beat.
  • Streaming/idle: outbox and shell updates no longer re-render the root tree, cutting steady-state render fan-out during active turns.

Deeper follow-ups identified but out of scope here: client-side event-stream batching, using the existing granular thread-detail slice atoms, skipping re-decode of warm snapshots, dropping the drain's redundant pre-flight settings RPCs, and file-referenced (not base64) attachments.

Written by Claude Fable 5 in Claude Code.

🤖 Generated with Claude Code


Note

Medium Risk
Optimistic outbox + confirm-before-drain changes message delivery ordering and failure recovery; incorrect rollback or stale guard logic could drop or duplicate sends, though new tests cover write failure and same-id retry cases.

Overview
Makes send feel immediate and cuts main-thread work and root re-renders that were freezing thread open and new task flows.

Thread outbox: Queued messages update the in-memory atom before the durable write finishes; the composer clears on the tap frame. Failed writes roll back the queue entry and merge text back into the draft (attachments via uncapped append). The drain calls confirmThreadOutboxMessageQueued and re-checks edit/busy state after that await so rolled-back or stale messages are never delivered.

Re-render isolation: useThreadOutboxDrain moves into a null ThreadOutboxDrainWorker so outbox/shell/connection churn does not re-render RootStackLayout. On iOS, launcher shortcut sync no longer subscribes to the active thread shell. Home v2 FlatList extraData is memoized.

Feed derivation: groupAdjacentActivities appends into a mutable trailing group (avoids quadratic copies). sortThreadActivities runs once and feeds both pending-approval and pending-user-input derivations.

UX timing: New-task composer autoFocus is off on iOS; focus stays deferred until after the sheet animation. Live Activity arms after onSendMessage completes.

Reviewed by Cursor Bugbot for commit 1d87beb. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Make mobile send respond instantly and stop thread opens from freezing

  • Queued messages in thread-outbox-manager.ts are now published to state synchronously before the durable write, so the draft clears immediately on send; failed writes roll back the message and restore the draft with an error.
  • use-thread-outbox-drain.ts uses the new confirmQueued API to verify the durable write succeeded before dispatching, preventing dispatch of rolled-back or stale messages.
  • ThreadOutboxDrainWorker in Stack.tsx isolates outbox drain subscriptions to a leaf component, preventing outbox state updates from re-rendering RootStackLayout.
  • ComposerEditor in NewTaskDraftScreen.tsx defers auto-focus until after the iOS sheet presentation animation completes.
  • FlatList.extraData in HomeScreen.tsx is memoized to avoid unnecessary row re-renders, and useRecentThreadShortcutSync in useAppShortcuts.ts skips active thread subscription on iOS.
  • Behavioral Change: onSendMessage now resolves immediately with the new messageId without waiting for the durable write; callers previously relying on post-send resolution timing may see different behavior.

Macroscope summarized 1d87beb.

Sending a message did nothing for seconds because the queued state waited
on a durable file write, and thread opens stalled on quadratic feed
grouping plus duplicated activity sorts. New-thread froze mid-sheet while
native autoFocus forced the keyboard up during the present animation.

- Publish outbox enqueues to the atom synchronously, write behind, roll
  back on failure; clear the composer draft on the tap frame
- Arm the Live Activity after the send instead of before it
- Make groupAdjacentActivities linear; sort activities once for
  approvals + user inputs instead of twice
- Focus the new-task composer after interactions (iOS) instead of via
  native autoFocus during the transition
- Memoize the v2 thread list's FlatList extraData
- Host useThreadOutboxDrain in a null-rendering leaf so outbox/shell
  updates stop re-rendering the root navigation layout
- Skip the active-thread shell subscription on iOS in useAppShortcuts
  (Android-only feature)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Important

Review skipped

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

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: aeb7de55-944c-4d9f-8f69-5f29340ccb5f

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Jul 29, 2026
Comment thread apps/mobile/src/state/thread-outbox-manager.ts Outdated
Comment thread apps/mobile/src/state/use-thread-composer-state.ts

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 0b7c9d8. Configure here.

Comment thread apps/mobile/src/state/use-thread-composer-state.ts
@macroscopeapp

macroscopeapp Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR changes the timing and ordering semantics of message enqueueing with an optimistic publish + rollback pattern, and adds complex race condition handling in the drain logic. While performance-focused and well-tested, these architectural changes to message queuing behavior warrant human review.

You can customize Macroscope's approvability policy. Learn more.

Review findings on the optimistic outbox:
- Roll back a failed enqueue by reference, not messageId, so a same-id
  retry that replaced the attempt survives the first attempt's failure
- Drain confirms pending writes settled (confirmQueued) before
  dispatching, so a message whose write later fails can never have
  already been delivered
- Failure rollback restores attachments via the uncapped append instead
  of the truncating merge path

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Comment thread apps/mobile/src/state/use-thread-outbox-drain.ts
…tion

The drain's threadBusy and editing-state guards were evaluated before
awaiting write confirmation, so a thread going busy or the user opening
the message in the editor during a slow write could still dispatch a
stale payload. Re-read both from the registry after the await and defer
to the next drain pass instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@t3dotgg
t3dotgg merged commit f0f16e4 into main Jul 30, 2026
17 checks passed
@t3dotgg
t3dotgg deleted the t3code/investigate-mobile-performance-lag branch July 30, 2026 08:55
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Jul 30, 2026
## What's Changed
* fix(connect): suggest a serve command that matches how you ran connect by @t3dotgg in pingdotgg/t3code#4897
* fix(mobile): stop shared content errors in Personal Team builds by @t3dotgg in pingdotgg/t3code#4943
* perf(mobile): sends respond instantly, thread opens stop freezing by @t3dotgg in pingdotgg/t3code#4882
* fix(web): show Codex fast mode as a bolt by @t3dotgg in pingdotgg/t3code#4947
* docs: seed worktrees with a copy of real userdata instead of banning it by @t3dotgg in pingdotgg/t3code#4949


**Full Changelog**: pingdotgg/t3code@v0.0.32-nightly.20260730.954...v0.0.32-nightly.20260730.955

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.32-nightly.20260730.955
tarik02 added a commit to tarik02-org/t3code that referenced this pull request Jul 30, 2026
* fix(desktop): restore T3 Connect sign-in (pingdotgg#4809)

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

* Simplify files panel header (pingdotgg#4828)

* build(desktop): reduce installed app size by ~300MB (pingdotgg#4824)

* Update model version from claude-opus-4-8 to claude-opus-5 (pingdotgg#4832)

* Preserve the thread shell while detail loads (pingdotgg#4830)

* Reduce idle work and disk churn with native resource diagnostics (pingdotgg#2679)

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

* fix(server): detect repositories after initialization (pingdotgg#4848)

* perf(server): merge separate staged/unstaged numstat calls into single diff HEAD --numstat (pingdotgg#4843)

* fix(git): disable external diff for review diff previews (pingdotgg#4854)

* Fix editable file focus and live syntax highlighting (pingdotgg#3979)

* fix(web): remember the rendered-markdown choice across threads (pingdotgg#4853)

Co-authored-by: Simon Doba <simon.doba@orbit.de>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

* chore(release): prepare v0.0.31

* fix(mobile): reduce thread feed scroll jank (pingdotgg#4874)

* fix(web): restore sidebar v2 thread actions and terminal icon (pingdotgg#4712)

* fix(web): settle button now works on hover, not just right-click (pingdotgg#4905)

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

* fix(clients): disable add project while disconnected (pingdotgg#4834)

* fix(composer): hide default Codex service tier (pingdotgg#4784)

* docs: link iOS and Android app store downloads (pingdotgg#4902)

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

* fix(web): align remote server update action (pingdotgg#4731)

* fix(connect): suggest a serve command that matches how you ran connect (pingdotgg#4897)

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

* fix(mobile): stop shared content errors in Personal Team builds (pingdotgg#4943)

* perf(mobile): sends respond instantly, thread opens stop freezing (pingdotgg#4882)

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

* fix(web): show Codex fast mode as a bolt (pingdotgg#4947)

* docs: seed worktrees with a copy of real userdata instead of banning it (pingdotgg#4949)

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

* fix(mobile): support dragged images in the composer (pingdotgg#4953)

* fix(mobile): stop long iOS threads from jumping while scrolling up (pingdotgg#4867)

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

* fix(web): keep worktree default when switching a draft's machine (pingdotgg#4964)

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

* perf(mobile): reconnect environments immediately on resume (pingdotgg#4878)

* feat(web): pasting a huge screenshot now compresses it instead of erroring (pingdotgg#4967)

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

* feat(web): regenerate thread titles from sidebar (pingdotgg#4810)

* fix(web): show server update progress through reconnect (pingdotgg#4903)

---------

Co-authored-by: Alex <me@pixp.cc>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: wukko <me@wukko.me>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: ohbentos <72638975+ohbentos@users.noreply.github.com>
Co-authored-by: Jake Leventhal <jakeleventhal@me.com>
Co-authored-by: Simon Doba <simon.doba@hotmail.de>
Co-authored-by: Simon Doba <simon.doba@orbit.de>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com>
Co-authored-by: Jono Kemball <Noojuno@users.noreply.github.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Max Katz <me@maxkatz.me>
aaditagrawal pushed a commit to aaditagrawal/t3code that referenced this pull request Aug 1, 2026
…ngdotgg#4882)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit f0f16e4)
awtprod added a commit to awtprod/t3-code that referenced this pull request Aug 1, 2026
* Fix incorrect pluralization of “entry” (pingdotgg#3933)

* feat(server): title background-task work-log rows with the task name (pingdotgg#3751)

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

* fix: delegate OpenCode session titles to provider (pingdotgg#3720)

* Archive selected threads from the context menu (pingdotgg#3895)

* fix(cli): support force removing projects (pingdotgg#3922)

* fix: allow sidebar to be shrunk when wider than viewport (pingdotgg#2456)

Co-authored-by: Shoaib Ansari <shoaibansari@Shoaibs-Mac-mini.local>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(codex): show web search query and url in tool call details (pingdotgg#2093)

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

* Add Codex launch arguments setting (pingdotgg#2892)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Julius Marminge <jmarminge@gmail.com>
Co-authored-by: root <root@localhost.localdomain>

* [orchestration] Clear stale active turn when session becomes inactive (pingdotgg#3159)

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

* Regenerate Codex reset credit protocol bindings (pingdotgg#4173)

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

* fix(preview): preserve direct localhost navigation (pingdotgg#3939)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* Synchronize mobile threads with authoritative shell snapshots (pingdotgg#4163)

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

* Gate iOS glass layout on native support (pingdotgg#4032)

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

* fix(opencode): resume the OpenCode session on follow-ups instead of starting an empty one (pingdotgg#3617)

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

* fix(server): use CLI for OpenCode health check instead of spawning server (pingdotgg#4153)

* fix(web): scope timeline minimap hover target to the side gutter (pingdotgg#3869)

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

* [codex] show complete approval details (pingdotgg#4111)

* fix(web): paint text selection over composer chips (pingdotgg#4139)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>

* [codex] preserve custom model slugs (pingdotgg#4168)

* fix(web): preview workspace images in the file panel (pingdotgg#3996)

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

* feat(web): drag files from the explorer into the chat composer (pingdotgg#4140)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>

* fix(desktop): preserve main window bounds (pingdotgg#3851)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* perf(orchestration): speed up new-chat propagation and offline catch-up (pingdotgg#4177)

Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* Finale: upgrade changed files card to fix various UI issues (pingdotgg#4113)

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

* Pass CLI OAuth config to hosted web deploy (pingdotgg#4186)

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

* fix(web): always show environment chip for remote projects (pingdotgg#4217)

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

* fix(web): keep composer editable while disconnected (pingdotgg#4241)

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

* fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main (pingdotgg#4240)

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

* fix(claude): handle all SDK stream messages; stop spurious work-log warning rows (pingdotgg#4244)

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

* Sidebar v2 beta: flat thread list with a server-backed settled lifecycle (pingdotgg#4026)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>

* fix(settings): validate the add-provider wizard step before advancing (pingdotgg#2813) (pingdotgg#3100)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* fix(claude): isolate capability probe from user MCP servers (pingdotgg#4015)

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

* Preserve connecting status while a turn starts (pingdotgg#4101)

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

* fix(server): stop restoring stale OpenCode models (pingdotgg#4095)

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

* [codex] keep scoped package references as text (pingdotgg#4167)

Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(web): default provider selection for users without Codex (pingdotgg#4117)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* Unify temporary worktree branch naming (pingdotgg#4278)

* fix(web): use message-square icon for settled icon-less project threads in sidebar v2 (pingdotgg#4279)

* Stabilize sidebar settling animations (pingdotgg#4280)

* Restore Copy Link in chat link context menu (pingdotgg#4161)

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

* fix(desktop): handle EPIPE errors on stdout/stderr to prevent crash dialog (pingdotgg#4213)

* Preserve draft thread highlighting during promotion (pingdotgg#4283)

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

* Move mobile working timer into the thread timeline (pingdotgg#4285)

* Stabilize PR status lookups and provider session lifecycle (pingdotgg#4281)

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

* fix: open command palette instead of custom dialog for new thread picker in SidebarV2 (pingdotgg#4269)

* fix(server): don't drop sticky PR fallback when remote URL can't be resolved (pingdotgg#4289)

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

* feat(web): copy branch name via right-click in the branch selector (pingdotgg#4275)

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

* Add remote server updates and standalone service management (pingdotgg#4286)

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

* Refine light-mode sidebar surfaces (pingdotgg#4268)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* fix(mobile): don't mark Android VPN/Tailscale as offline when connected (pingdotgg#3949)

* improve and prevent silent thread branch drift and PR fetching (pingdotgg#2284)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* feat(web): refresh application surfaces

* style(web): polish dark mode dialogs

* fix(web): unify and tune glass surfaces

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

* fix(web): apply glass opacity to thread tooltip

* fix(web): override thread tooltip background

* fix(web): apply glass opacity to model picker

* style(web): polish glass opacity slider

* fix(web): apply glass opacity to command palette

* fix(web): add glass composer alerts

* fix(web): honor composer glass opacity

* test(web): stabilize timeline module setup

* style(web): fade settings content beneath navbar

* test(desktop): include glass opacity in settings fixture

* fix(web): address redesign review findings

* fix(web): sync provider banner dismissal

* fix(web): new-thread defaults ignored for remote environments (pingdotgg#4276)

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

* feat: add "Auto" runtime mode — AI-reviewed approvals for Codex and Claude (pingdotgg#4272)

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

* Add shared t3.json project configuration support (pingdotgg#4317)

* Restore light-mode surfaces and refine dialog styling

- Restore light-mode glass, dialog, dropdown, and composer colors
- Refine provider wizard, changed-file cards, sidebar controls, and buttons
- Update wizard step tests for the new list structure

* Unify dialog glass and fix composer overlays (pingdotgg#4365)

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

* fix(web): warn before silent Windows updates (pingdotgg#4350)

* [codex] Move project grouping to General settings (pingdotgg#4313)

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

* [codex] Group project scopes in mobile thread lists (pingdotgg#4314)

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

* [codex] Move mobile project grouping to General settings (pingdotgg#4315)

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

* [codex] Deduplicate connection failure messaging (pingdotgg#4367)

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

* Restore grouped project filtering in Sidebar V2 (pingdotgg#4282)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* [codex] restore Sidebar V2 project actions (pingdotgg#4373)

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

* [codex] Group projects in new-thread pickers (pingdotgg#4312)

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

* fix(web): restore dark composer toolbar styling

* Fix thread tooltip folder icon color (pingdotgg#4383)

* fix(server): parse CLI version in update preflight (pingdotgg#4389)

* fix(web): sidebar v2 polish — jump hints, working duration, in-flight fade, settled sort (pingdotgg#4274)

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

* Fix logical project grouping labels on mobile (pingdotgg#4391)

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

* Add preview color scheme controls and simplify project grouping (pingdotgg#4385)

Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(cli): publish nightly branded favicons (pingdotgg#4372)

* Fix thread loading flash (pingdotgg#4396)

* fix(client-runtime): keep a warm thread un-settled despite a merged/closed PR (pingdotgg#4309)

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

* Fix composer context strip alignment and glass shell (pingdotgg#4404)

* Polish iOS git progress overlay with glass effects (pingdotgg#4387)

* Improve composer glass fallbacks (pingdotgg#4406)

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

* feat(web): collapse large git diffs by default to make chat more readable (pingdotgg#4409)

* Stop new threads inheriting checkout/branch from viewed thread (pingdotgg#4411)

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

* fix: tone down branch-mismatch banner (pingdotgg#4416)

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

* fix: Claude Code skills discoverable for the composer $ picker (pingdotgg#4414)

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

* fix(web): keep settled threads reachable when opened directly (pingdotgg#4413)

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

* feat(sidebar-v2): thread snoozing (pingdotgg#4311)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: maria <maria@kuuro.net>

* Upgrade Clerk packages and Expo integration (pingdotgg#4440)

* Increase light-mode contrast for user message bubbles (pingdotgg#4441)

* Restore model picker layout and retain iterative test state (pingdotgg#4450)

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

* Color settled PR labels on hover (pingdotgg#4451)

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

* [codex] Fix glass hover compositing artifacts (pingdotgg#4446)

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

* Add Claude Opus 5 model (pingdotgg#4472)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Theo Browne <me@t3.gg>

* feat(web): add collapse-all toggle to diff panel (pingdotgg#4475)

* feat(web): show fast mode as a bolt instead of a "Normal" label (pingdotgg#4488)

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

* feat(dev): keep worktree dev state isolated on T3 Code dev servers (pingdotgg#4555)

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

* feat(dev): Make t3 code dev instances shareable over Tailscale (pingdotgg#4556)

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

* fix(dev): skip browser-blocked ports (pingdotgg#4608)

* fix: cut websocket throughput in half by pruning activity payloads (pingdotgg#4622)

* perf(mobile): defer work-log detail serialization (pingdotgg#4607)

* test: account for lazy thread feed details (pingdotgg#4628)

* feat(relay): limit managed tunnels per user (pingdotgg#4530)

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

* Add managed tunnel limits migration (pingdotgg#4635)

* Add background preview capture and picture-in-picture support (pingdotgg#4397)

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

* feat(web): prompt stash — cmd+S saves the composer to a per-provider queue (pingdotgg#4453)

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

* Upgrade Effect and Alchemy betas (pingdotgg#4643)

Prepare Relay production infrastructure for the PlanetScale PS_20 HA topology, upgrade Effect and Alchemy to compatible betas, reconcile migration state, and preserve patched MCP session termination behavior.\n\nCo-authored-by: codex <codex@users.noreply.github.com>

* feat: allow new thread creation through project breadcrumbs (pingdotgg#4638)

* fix(web): scope PR state to the thread branch (pingdotgg#4460)

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

* Drop redundant Relay user indexes (pingdotgg#4648)

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

* feat(connect): release the Cloudflare tunnel when the environment shuts down (pingdotgg#4531)

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

* Fix Relay Worker RuntimeContext wiring (pingdotgg#4653)

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

* Fix live sidebar resize limits and defer Alchemy runtime context (pingdotgg#4655)

* fix(web): constrain branch toolbar context (pingdotgg#4657)

* Keep MCP credentials alive across provider turns (pingdotgg#4659)

* fix: close actions dropdown when editing (pingdotgg#4660)

* fix(preview): stabilize PiP viewport identity (pingdotgg#4661)

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

* Add glass styling for thread tooltips and simplify preview tab handling (pingdotgg#4665)

* Use tarball archiving for hosted web deploys (pingdotgg#4669)

* fix(server): bound editor discovery during config loading (pingdotgg#4291)

* Prevent draft thread detail polling before shell registration (pingdotgg#4670)

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

* feat: add configurable source control writing settings (pingdotgg#4204)

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

* feat(diff-panel): show total line additions and deletions (pingdotgg#4674)

* Clear provider update actions while updating (pingdotgg#4676)

* Fix sidebar highlighting for draft threads (pingdotgg#4679)

* Use glass surfaces for web toasts (pingdotgg#4681)

* Show origin ref in branch trigger label (pingdotgg#4680)

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

* fix(mobile): match react version to react-native 0.85.3 vendored renderer (19.2.3) (pingdotgg#4675)

* chore(release): prepare v0.0.29

* Add OTA update checks to mobile settings (pingdotgg#4686)

* fix(mobile): threads load snapped to bottom on iOS (pingdotgg#4689)

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

* feat: default sidebar v2 on for nightly and dev builds (pingdotgg#4491)

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

* fix(web): 33 web UI fixes (pingdotgg#4700)

* Make mobile Thread List v2 the default (pingdotgg#4717)

* Fix mobile showcase workflow without Clerk (pingdotgg#4718)

* Fix relay credential lookup for unlinked environments (pingdotgg#4692)

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

* Settle merged PR threads immediately (pingdotgg#4704)

* feat(web): add maria's sidebar header artwork toggle (pingdotgg#4652)

* feat(web): add appearance settings category (pingdotgg#4715)

* fix(desktop): allow updater-controlled relaunch (pingdotgg#4721)

* fix(web): prevent diff panel scroll jumping (pingdotgg#4724)

* Link inline code file paths in chat markdown (pingdotgg#4726)

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

* Fix Android showcase capture and rebuild v2 queued rows (pingdotgg#4730)

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

* perf(server): negotiate permessage-deflate on the websocket (pingdotgg#4705)

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

* docs: overhaul agent guidance (pingdotgg#4782)

* Prevent sidebar row labels from truncating (pingdotgg#4789)

* perf(server): gzip large thread snapshots (pingdotgg#4788)

* fix(web): stashed prompts now survive switching providers (pingdotgg#4787)

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

* Fix Git ref refresh resource storms (pingdotgg#4727)

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

* perf(server): trim stale context-window rows and drop dead replay RPC (pingdotgg#4791)

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

* fix(web): defer command palette filesystem navigation (pingdotgg#2109)

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

* fix(release): skip scripts during Vercel installs (pingdotgg#4796)

* refactor(client): share filesystem browse navigation (pingdotgg#4797)

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

* fix(mobile): defer filesystem navigation (pingdotgg#4799)

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

* refactor(server): use native HTTP compression streams (pingdotgg#4798)

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

* Remove Connect waitlist and add GA announcement tooling (pingdotgg#4691)

* Fix Connect sign-in settings label (pingdotgg#4806)

* chore(release): prepare v0.0.30

* fix(desktop): restore T3 Connect sign-in (pingdotgg#4809)

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

* Simplify files panel header (pingdotgg#4828)

* build(desktop): reduce installed app size by ~300MB (pingdotgg#4824)

* Update model version from claude-opus-4-8 to claude-opus-5 (pingdotgg#4832)

* Preserve the thread shell while detail loads (pingdotgg#4830)

* Reduce idle work and disk churn with native resource diagnostics (pingdotgg#2679)

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

* fix(server): detect repositories after initialization (pingdotgg#4848)

* perf(server): merge separate staged/unstaged numstat calls into single diff HEAD --numstat (pingdotgg#4843)

* fix(git): disable external diff for review diff previews (pingdotgg#4854)

* Fix editable file focus and live syntax highlighting (pingdotgg#3979)

* fix(web): remember the rendered-markdown choice across threads (pingdotgg#4853)

Co-authored-by: Simon Doba <simon.doba@orbit.de>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

* chore(release): prepare v0.0.31

* fix(mobile): reduce thread feed scroll jank (pingdotgg#4874)

* fix(web): restore sidebar v2 thread actions and terminal icon (pingdotgg#4712)

* fix(web): settle button now works on hover, not just right-click (pingdotgg#4905)

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

* fix(clients): disable add project while disconnected (pingdotgg#4834)

* fix(composer): hide default Codex service tier (pingdotgg#4784)

* docs: link iOS and Android app store downloads (pingdotgg#4902)

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

* fix(web): align remote server update action (pingdotgg#4731)

* fix(connect): suggest a serve command that matches how you ran connect (pingdotgg#4897)

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

* fix(mobile): stop shared content errors in Personal Team builds (pingdotgg#4943)

* perf(mobile): sends respond instantly, thread opens stop freezing (pingdotgg#4882)

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

* fix(web): show Codex fast mode as a bolt (pingdotgg#4947)

* docs: seed worktrees with a copy of real userdata instead of banning it (pingdotgg#4949)

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

* fix(mobile): support dragged images in the composer (pingdotgg#4953)

* fix(mobile): stop long iOS threads from jumping while scrolling up (pingdotgg#4867)

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

* fix(web): keep worktree default when switching a draft's machine (pingdotgg#4964)

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

* perf(mobile): reconnect environments immediately on resume (pingdotgg#4878)

* feat(web): pasting a huge screenshot now compresses it instead of erroring (pingdotgg#4967)

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

* feat(web): regenerate thread titles from sidebar (pingdotgg#4810)

* fix(web): show server update progress through reconnect (pingdotgg#4903)

* feat(search): find threads by conversation content (pingdotgg#4959)

* fix: marketing site Vercel builds no longer die after ~100 deploys (pingdotgg#4975)

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

* docs: split user and maintainer docs, fix 100+ stale claims (pingdotgg#4807)

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

* fix(web): server updates no longer look like warnings (pingdotgg#4992)

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

* fix(connect): reboots no longer strand the relay link, 403s now say why (pingdotgg#4988)

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

* Add project file picker (⌘P) and project content search (⇧⌘F) (pingdotgg#4855)

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

* Check for mobile app updates on launch (pingdotgg#4958)

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

* fix(mobile): support pre-Liquid-Glass iOS bottom toolbar (pingdotgg#4984)

* fix(server): restore PR detection without HOME (pingdotgg#4985)

* fix(web): fill fast mode icon (pingdotgg#5004)

* fix: cache project favicons across web and mobile (pingdotgg#4767)

* perf(ci): cut stale runs and redundant setup (pingdotgg#4802)

* chore(mobile): bump app version to 1.0.1

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* style(web): make scroll-to-end pill translucent (pingdotgg#5036)

* fix(ci): drop sparse-checkout from EAS workflows

actions/checkout implements sparse-checkout with --filter=blob:none, so
the runner repo is a partial clone missing the .repos/ blobs. eas-cli
archives the project via `git clone --depth 1 file://<workspace>`,
which upload-pack cannot serve from a partial clone and exits 128
(pingdotgg#4802 broke both EAS build workflows this way).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(desktop): bump Clerk Electron SDK to 0.0.24 and register t3code:// scheme on Linux (pingdotgg#5015)

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

* perf(server): cache default branch name and origin existence across status refreshes (pingdotgg#5008)

* feat(shared): support shorthand (major-only) versions in the semver helpers (pingdotgg#5027)

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

* fix(mobile): remove unnecessary photo library permission (pingdotgg#4929)

* fix(shared): lenient JSON parser deletes commas inside string values (pingdotgg#5025)

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

* fix(mobile): default bare IP pairing to HTTP (pingdotgg#4990)

* fix(mobile): restore iOS Threads branding (pingdotgg#4862)

* chore: add mobile issue template area (pingdotgg#4895)

* fix(desktop): link release notes from the update downloaded toast (pingdotgg#4771)

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

* fix(mobile): accept Android clipboard images in composer (pingdotgg#4836)

* fix(mobile): show the correct build channel in Android's Threads page header (pingdotgg#4861)

* fix(contracts): decode growing config unions forward-compatibly (pingdotgg#5055)

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

* fix(mobile): server model, worktree, and origin preferences now apply to new tasks (pingdotgg#5064)

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

* fix(ci): repair the mobile showcase screenshots workflow (pingdotgg#5057)

* fix(ci): capture iPad App Store screenshots in landscape (pingdotgg#5065)

* fix(oxlint-plugin): Resolve the oxlint bin without assuming a pnpm layout (pingdotgg#5066)

* feat(cli): `npx t3 pair` - generate QR code from a running server (pingdotgg#4955)

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

* fix(server): self-update no longer rolls itself back on restart (pingdotgg#5095)

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

* fix(ci): rotate iPad showcase captures without Simulator UI scripting (pingdotgg#5094)

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

* feat(web): render terminals with libghostty-vt (pingdotgg#4860)

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

* refactor: move the canonical libghostty-vt vendor to the repository root (pingdotgg#5102)

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

* feat(mobile): add thread snoozing (pingdotgg#5053)

* feat(mobile): make settled threads collapsible (pingdotgg#5056)

* follow-up normalization after pingdotgg#4700. (pingdotgg#4498)

Co-authored-by: T3 Code Test <t3code-test@example.com>

* feat(web): search threads from the sidebar (pingdotgg#4769)

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

* feat(release): prepare Command Center desktop v1

* fix(ci): allow public release publisher identity

* fix(web): avoid Windows preview path collision

* test(release): reject Windows module path collisions

* fix(release): bundle command center core

* fix: audit preserved upstream history safely

* feat(providers): add Kimi, subagents, and usage analytics

* fix(ci): repair reconnects and PNG safety scanning

* test(desktop): update Clerk environment fixture

* fix(ci): align provider and server integration contracts

* perf(web): skip impossible image encodings

---------

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: mel <mcmelon@nodiumhosting.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Tristan Knight <tris203@gmail.com>
Co-authored-by: Christoph Herzog <a.github@omega-id.com>
Co-authored-by: Andrew Barnes <bortstheboat@gmail.com>
Co-authored-by: Shoaib <shoaib050326@gmail.com>
Co-authored-by: Shoaib Ansari <shoaibansari@Shoaibs-Mac-mini.local>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Guilherme Vieira <46866023+GuilhermeVieiraDev@users.noreply.github.com>
Co-authored-by: James <105842516+jamesx0416@users.noreply.github.com>
Co-authored-by: Julius Marminge <jmarminge@gmail.com>
Co-authored-by: root <root@localhost.localdomain>
Co-authored-by: Andrew Forster <76947376+Andrew-Forster@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Chris Michael Guzman <67719167+Chrrxs@users.noreply.github.com>
Co-authored-by: Vadym Kotai <vdmkotai@gmail.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: xxashxx-svg <xxanshxx9@gmail.com>
Co-authored-by: Maxwell Young <maxtheyoung@gmail.com>
Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: Rhiz3K <33246262+Rhiz3K@users.noreply.github.com>
Co-authored-by: Rhiz3K <rhiz3k@protonmail.com>
Co-authored-by: Anirudh Coontoor <me@anirudhs.net>
Co-authored-by: Rusiru Sadathana <rusirusadathana@gmail.com>
Co-authored-by: ss <69873514+sandersonstabo@users.noreply.github.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Leonel Rivas <encriptandost@gmail.com>
Co-authored-by: Jaret Bottoms <jaretbottoms@gmail.com>
Co-authored-by: Ishan <ishansachu1@gmail.com>
Co-authored-by: Yukun Shan <92423096+nateEc@users.noreply.github.com>
Co-authored-by: Miklós Fazekas <mfazekas@szemafor.com>
Co-authored-by: Henry Zhang <113233555+caezium@users.noreply.github.com>
Co-authored-by: Rushikesh Gaikwad <81632222+Wraient@users.noreply.github.com>
Co-authored-by: legs <145564979+justsomelegs@users.noreply.github.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: tomlit <tomlit@gmail.com>
Co-authored-by: jan <hi@4bs3nt.com>
Co-authored-by: Alex Southwell <saphid@gmail.com>
Co-authored-by: Max Katz <me@maxkatz.me>
Co-authored-by: Krzysztof Moch <krzysmoch.programs@gmail.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Alex <me@pixp.cc>
Co-authored-by: wukko <me@wukko.me>
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
Co-authored-by: ohbentos <72638975+ohbentos@users.noreply.github.com>
Co-authored-by: Jake Leventhal <jakeleventhal@me.com>
Co-authored-by: Simon Doba <simon.doba@hotmail.de>
Co-authored-by: Simon Doba <simon.doba@orbit.de>
Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com>
Co-authored-by: Jono Kemball <Noojuno@users.noreply.github.com>
Co-authored-by: Arham Amin <132888838+arhxam@users.noreply.github.com>
Co-authored-by: Elaine Lyons <elaine@lyons.app>
Co-authored-by: Simone <lucenz@proton.me>
Co-authored-by: Max Anderson <max.a.anderson95@gmail.com>
Co-authored-by: Aditya Vardhan Sharma <adityaradhika13@gmail.com>
Co-authored-by: Mike Olson <mwolson@member.fsf.org>
Co-authored-by: T3 Code Test <t3code-test@example.com>
Co-authored-by: atryan <atryan@users.noreply.github.com>
awtprod added a commit to awtprod/t3-code that referenced this pull request Aug 2, 2026
* fix: delegate OpenCode session titles to provider (pingdotgg#3720)

* Archive selected threads from the context menu (pingdotgg#3895)

* fix(cli): support force removing projects (pingdotgg#3922)

* fix: allow sidebar to be shrunk when wider than viewport (pingdotgg#2456)

Co-authored-by: Shoaib Ansari <shoaibansari@Shoaibs-Mac-mini.local>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(codex): show web search query and url in tool call details (pingdotgg#2093)

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

* Add Codex launch arguments setting (pingdotgg#2892)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Julius Marminge <jmarminge@gmail.com>
Co-authored-by: root <root@localhost.localdomain>

* [orchestration] Clear stale active turn when session becomes inactive (pingdotgg#3159)

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

* Regenerate Codex reset credit protocol bindings (pingdotgg#4173)

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

* fix(preview): preserve direct localhost navigation (pingdotgg#3939)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* Synchronize mobile threads with authoritative shell snapshots (pingdotgg#4163)

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

* Gate iOS glass layout on native support (pingdotgg#4032)

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

* fix(opencode): resume the OpenCode session on follow-ups instead of starting an empty one (pingdotgg#3617)

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

* fix(server): use CLI for OpenCode health check instead of spawning server (pingdotgg#4153)

* fix(web): scope timeline minimap hover target to the side gutter (pingdotgg#3869)

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

* [codex] show complete approval details (pingdotgg#4111)

* fix(web): paint text selection over composer chips (pingdotgg#4139)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>

* [codex] preserve custom model slugs (pingdotgg#4168)

* fix(web): preview workspace images in the file panel (pingdotgg#3996)

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

* feat(web): drag files from the explorer into the chat composer (pingdotgg#4140)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>

* fix(desktop): preserve main window bounds (pingdotgg#3851)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* perf(orchestration): speed up new-chat propagation and offline catch-up (pingdotgg#4177)

Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* Finale: upgrade changed files card to fix various UI issues (pingdotgg#4113)

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

* Pass CLI OAuth config to hosted web deploy (pingdotgg#4186)

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

* fix(web): always show environment chip for remote projects (pingdotgg#4217)

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

* fix(web): keep composer editable while disconnected (pingdotgg#4241)

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

* fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main (pingdotgg#4240)

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

* fix(claude): handle all SDK stream messages; stop spurious work-log warning rows (pingdotgg#4244)

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

* Sidebar v2 beta: flat thread list with a server-backed settled lifecycle (pingdotgg#4026)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>

* fix(settings): validate the add-provider wizard step before advancing (pingdotgg#2813) (pingdotgg#3100)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* fix(claude): isolate capability probe from user MCP servers (pingdotgg#4015)

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

* Preserve connecting status while a turn starts (pingdotgg#4101)

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

* fix(server): stop restoring stale OpenCode models (pingdotgg#4095)

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

* [codex] keep scoped package references as text (pingdotgg#4167)

Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(web): default provider selection for users without Codex (pingdotgg#4117)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* Unify temporary worktree branch naming (pingdotgg#4278)

* fix(web): use message-square icon for settled icon-less project threads in sidebar v2 (pingdotgg#4279)

* Stabilize sidebar settling animations (pingdotgg#4280)

* Restore Copy Link in chat link context menu (pingdotgg#4161)

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

* fix(desktop): handle EPIPE errors on stdout/stderr to prevent crash dialog (pingdotgg#4213)

* Preserve draft thread highlighting during promotion (pingdotgg#4283)

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

* Move mobile working timer into the thread timeline (pingdotgg#4285)

* Stabilize PR status lookups and provider session lifecycle (pingdotgg#4281)

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

* fix: open command palette instead of custom dialog for new thread picker in SidebarV2 (pingdotgg#4269)

* fix(server): don't drop sticky PR fallback when remote URL can't be resolved (pingdotgg#4289)

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

* feat(web): copy branch name via right-click in the branch selector (pingdotgg#4275)

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

* Add remote server updates and standalone service management (pingdotgg#4286)

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

* Refine light-mode sidebar surfaces (pingdotgg#4268)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* fix(mobile): don't mark Android VPN/Tailscale as offline when connected (pingdotgg#3949)

* improve and prevent silent thread branch drift and PR fetching (pingdotgg#2284)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* feat(web): refresh application surfaces

* style(web): polish dark mode dialogs

* fix(web): unify and tune glass surfaces

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

* fix(web): apply glass opacity to thread tooltip

* fix(web): override thread tooltip background

* fix(web): apply glass opacity to model picker

* style(web): polish glass opacity slider

* fix(web): apply glass opacity to command palette

* fix(web): add glass composer alerts

* fix(web): honor composer glass opacity

* test(web): stabilize timeline module setup

* style(web): fade settings content beneath navbar

* test(desktop): include glass opacity in settings fixture

* fix(web): address redesign review findings

* fix(web): sync provider banner dismissal

* fix(web): new-thread defaults ignored for remote environments (pingdotgg#4276)

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

* feat: add "Auto" runtime mode — AI-reviewed approvals for Codex and Claude (pingdotgg#4272)

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

* Add shared t3.json project configuration support (pingdotgg#4317)

* Restore light-mode surfaces and refine dialog styling

- Restore light-mode glass, dialog, dropdown, and composer colors
- Refine provider wizard, changed-file cards, sidebar controls, and buttons
- Update wizard step tests for the new list structure

* Unify dialog glass and fix composer overlays (pingdotgg#4365)

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

* fix(web): warn before silent Windows updates (pingdotgg#4350)

* [codex] Move project grouping to General settings (pingdotgg#4313)

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

* [codex] Group project scopes in mobile thread lists (pingdotgg#4314)

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

* [codex] Move mobile project grouping to General settings (pingdotgg#4315)

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

* [codex] Deduplicate connection failure messaging (pingdotgg#4367)

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

* Restore grouped project filtering in Sidebar V2 (pingdotgg#4282)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>

* [codex] restore Sidebar V2 project actions (pingdotgg#4373)

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

* [codex] Group projects in new-thread pickers (pingdotgg#4312)

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

* fix(web): restore dark composer toolbar styling

* Fix thread tooltip folder icon color (pingdotgg#4383)

* fix(server): parse CLI version in update preflight (pingdotgg#4389)

* fix(web): sidebar v2 polish — jump hints, working duration, in-flight fade, settled sort (pingdotgg#4274)

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

* Fix logical project grouping labels on mobile (pingdotgg#4391)

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

* Add preview color scheme controls and simplify project grouping (pingdotgg#4385)

Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(cli): publish nightly branded favicons (pingdotgg#4372)

* Fix thread loading flash (pingdotgg#4396)

* fix(client-runtime): keep a warm thread un-settled despite a merged/closed PR (pingdotgg#4309)

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

* Fix composer context strip alignment and glass shell (pingdotgg#4404)

* Polish iOS git progress overlay with glass effects (pingdotgg#4387)

* Improve composer glass fallbacks (pingdotgg#4406)

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

* feat(web): collapse large git diffs by default to make chat more readable (pingdotgg#4409)

* Stop new threads inheriting checkout/branch from viewed thread (pingdotgg#4411)

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

* fix: tone down branch-mismatch banner (pingdotgg#4416)

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

* fix: Claude Code skills discoverable for the composer $ picker (pingdotgg#4414)

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

* fix(web): keep settled threads reachable when opened directly (pingdotgg#4413)

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

* feat(sidebar-v2): thread snoozing (pingdotgg#4311)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: maria <maria@kuuro.net>

* Upgrade Clerk packages and Expo integration (pingdotgg#4440)

* Increase light-mode contrast for user message bubbles (pingdotgg#4441)

* Restore model picker layout and retain iterative test state (pingdotgg#4450)

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

* Color settled PR labels on hover (pingdotgg#4451)

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

* [codex] Fix glass hover compositing artifacts (pingdotgg#4446)

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

* Add Claude Opus 5 model (pingdotgg#4472)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Theo Browne <me@t3.gg>

* feat(web): add collapse-all toggle to diff panel (pingdotgg#4475)

* feat(web): show fast mode as a bolt instead of a "Normal" label (pingdotgg#4488)

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

* feat(dev): keep worktree dev state isolated on T3 Code dev servers (pingdotgg#4555)

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

* feat(dev): Make t3 code dev instances shareable over Tailscale (pingdotgg#4556)

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

* fix(dev): skip browser-blocked ports (pingdotgg#4608)

* fix: cut websocket throughput in half by pruning activity payloads (pingdotgg#4622)

* perf(mobile): defer work-log detail serialization (pingdotgg#4607)

* test: account for lazy thread feed details (pingdotgg#4628)

* feat(relay): limit managed tunnels per user (pingdotgg#4530)

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

* Add managed tunnel limits migration (pingdotgg#4635)

* Add background preview capture and picture-in-picture support (pingdotgg#4397)

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

* feat(web): prompt stash — cmd+S saves the composer to a per-provider queue (pingdotgg#4453)

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

* Upgrade Effect and Alchemy betas (pingdotgg#4643)

Prepare Relay production infrastructure for the PlanetScale PS_20 HA topology, upgrade Effect and Alchemy to compatible betas, reconcile migration state, and preserve patched MCP session termination behavior.\n\nCo-authored-by: codex <codex@users.noreply.github.com>

* feat: allow new thread creation through project breadcrumbs (pingdotgg#4638)

* fix(web): scope PR state to the thread branch (pingdotgg#4460)

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

* Drop redundant Relay user indexes (pingdotgg#4648)

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

* feat(connect): release the Cloudflare tunnel when the environment shuts down (pingdotgg#4531)

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

* Fix Relay Worker RuntimeContext wiring (pingdotgg#4653)

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

* Fix live sidebar resize limits and defer Alchemy runtime context (pingdotgg#4655)

* fix(web): constrain branch toolbar context (pingdotgg#4657)

* Keep MCP credentials alive across provider turns (pingdotgg#4659)

* fix: close actions dropdown when editing (pingdotgg#4660)

* fix(preview): stabilize PiP viewport identity (pingdotgg#4661)

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

* Add glass styling for thread tooltips and simplify preview tab handling (pingdotgg#4665)

* Use tarball archiving for hosted web deploys (pingdotgg#4669)

* fix(server): bound editor discovery during config loading (pingdotgg#4291)

* Prevent draft thread detail polling before shell registration (pingdotgg#4670)

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

* feat: add configurable source control writing settings (pingdotgg#4204)

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

* feat(diff-panel): show total line additions and deletions (pingdotgg#4674)

* Clear provider update actions while updating (pingdotgg#4676)

* Fix sidebar highlighting for draft threads (pingdotgg#4679)

* Use glass surfaces for web toasts (pingdotgg#4681)

* Show origin ref in branch trigger label (pingdotgg#4680)

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

* fix(mobile): match react version to react-native 0.85.3 vendored renderer (19.2.3) (pingdotgg#4675)

* chore(release): prepare v0.0.29

* Add OTA update checks to mobile settings (pingdotgg#4686)

* fix(mobile): threads load snapped to bottom on iOS (pingdotgg#4689)

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

* feat: default sidebar v2 on for nightly and dev builds (pingdotgg#4491)

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

* fix(web): 33 web UI fixes (pingdotgg#4700)

* Make mobile Thread List v2 the default (pingdotgg#4717)

* Fix mobile showcase workflow without Clerk (pingdotgg#4718)

* Fix relay credential lookup for unlinked environments (pingdotgg#4692)

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

* Settle merged PR threads immediately (pingdotgg#4704)

* feat(web): add maria's sidebar header artwork toggle (pingdotgg#4652)

* feat(web): add appearance settings category (pingdotgg#4715)

* fix(desktop): allow updater-controlled relaunch (pingdotgg#4721)

* fix(web): prevent diff panel scroll jumping (pingdotgg#4724)

* Link inline code file paths in chat markdown (pingdotgg#4726)

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

* Fix Android showcase capture and rebuild v2 queued rows (pingdotgg#4730)

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

* perf(server): negotiate permessage-deflate on the websocket (pingdotgg#4705)

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

* docs: overhaul agent guidance (pingdotgg#4782)

* Prevent sidebar row labels from truncating (pingdotgg#4789)

* perf(server): gzip large thread snapshots (pingdotgg#4788)

* fix(web): stashed prompts now survive switching providers (pingdotgg#4787)

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

* Fix Git ref refresh resource storms (pingdotgg#4727)

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

* perf(server): trim stale context-window rows and drop dead replay RPC (pingdotgg#4791)

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

* fix(web): defer command palette filesystem navigation (pingdotgg#2109)

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

* fix(release): skip scripts during Vercel installs (pingdotgg#4796)

* refactor(client): share filesystem browse navigation (pingdotgg#4797)

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

* fix(mobile): defer filesystem navigation (pingdotgg#4799)

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

* refactor(server): use native HTTP compression streams (pingdotgg#4798)

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

* Remove Connect waitlist and add GA announcement tooling (pingdotgg#4691)

* Fix Connect sign-in settings label (pingdotgg#4806)

* chore(release): prepare v0.0.30

* fix(desktop): restore T3 Connect sign-in (pingdotgg#4809)

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

* Simplify files panel header (pingdotgg#4828)

* build(desktop): reduce installed app size by ~300MB (pingdotgg#4824)

* Update model version from claude-opus-4-8 to claude-opus-5 (pingdotgg#4832)

* Preserve the thread shell while detail loads (pingdotgg#4830)

* Reduce idle work and disk churn with native resource diagnostics (pingdotgg#2679)

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

* fix(server): detect repositories after initialization (pingdotgg#4848)

* perf(server): merge separate staged/unstaged numstat calls into single diff HEAD --numstat (pingdotgg#4843)

* fix(git): disable external diff for review diff previews (pingdotgg#4854)

* Fix editable file focus and live syntax highlighting (pingdotgg#3979)

* fix(web): remember the rendered-markdown choice across threads (pingdotgg#4853)

Co-authored-by: Simon Doba <simon.doba@orbit.de>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

* chore(release): prepare v0.0.31

* fix(mobile): reduce thread feed scroll jank (pingdotgg#4874)

* fix(web): restore sidebar v2 thread actions and terminal icon (pingdotgg#4712)

* fix(web): settle button now works on hover, not just right-click (pingdotgg#4905)

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

* fix(clients): disable add project while disconnected (pingdotgg#4834)

* fix(composer): hide default Codex service tier (pingdotgg#4784)

* docs: link iOS and Android app store downloads (pingdotgg#4902)

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

* fix(web): align remote server update action (pingdotgg#4731)

* fix(connect): suggest a serve command that matches how you ran connect (pingdotgg#4897)

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

* fix(mobile): stop shared content errors in Personal Team builds (pingdotgg#4943)

* perf(mobile): sends respond instantly, thread opens stop freezing (pingdotgg#4882)

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

* fix(web): show Codex fast mode as a bolt (pingdotgg#4947)

* docs: seed worktrees with a copy of real userdata instead of banning it (pingdotgg#4949)

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

* fix(mobile): support dragged images in the composer (pingdotgg#4953)

* fix(mobile): stop long iOS threads from jumping while scrolling up (pingdotgg#4867)

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

* fix(web): keep worktree default when switching a draft's machine (pingdotgg#4964)

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

* perf(mobile): reconnect environments immediately on resume (pingdotgg#4878)

* feat(web): pasting a huge screenshot now compresses it instead of erroring (pingdotgg#4967)

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

* feat(web): regenerate thread titles from sidebar (pingdotgg#4810)

* fix(web): show server update progress through reconnect (pingdotgg#4903)

* feat(search): find threads by conversation content (pingdotgg#4959)

* fix: marketing site Vercel builds no longer die after ~100 deploys (pingdotgg#4975)

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

* docs: split user and maintainer docs, fix 100+ stale claims (pingdotgg#4807)

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

* fix(web): server updates no longer look like warnings (pingdotgg#4992)

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

* fix(connect): reboots no longer strand the relay link, 403s now say why (pingdotgg#4988)

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

* Add project file picker (⌘P) and project content search (⇧⌘F) (pingdotgg#4855)

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

* Check for mobile app updates on launch (pingdotgg#4958)

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

* fix(mobile): support pre-Liquid-Glass iOS bottom toolbar (pingdotgg#4984)

* fix(server): restore PR detection without HOME (pingdotgg#4985)

* fix(web): fill fast mode icon (pingdotgg#5004)

* fix: cache project favicons across web and mobile (pingdotgg#4767)

* perf(ci): cut stale runs and redundant setup (pingdotgg#4802)

* chore(mobile): bump app version to 1.0.1

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* style(web): make scroll-to-end pill translucent (pingdotgg#5036)

* fix(ci): drop sparse-checkout from EAS workflows

actions/checkout implements sparse-checkout with --filter=blob:none, so
the runner repo is a partial clone missing the .repos/ blobs. eas-cli
archives the project via `git clone --depth 1 file://<workspace>`,
which upload-pack cannot serve from a partial clone and exits 128
(pingdotgg#4802 broke both EAS build workflows this way).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(desktop): bump Clerk Electron SDK to 0.0.24 and register t3code:// scheme on Linux (pingdotgg#5015)

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

* perf(server): cache default branch name and origin existence across status refreshes (pingdotgg#5008)

* feat(shared): support shorthand (major-only) versions in the semver helpers (pingdotgg#5027)

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

* fix(mobile): remove unnecessary photo library permission (pingdotgg#4929)

* fix(shared): lenient JSON parser deletes commas inside string values (pingdotgg#5025)

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

* fix(mobile): default bare IP pairing to HTTP (pingdotgg#4990)

* fix(mobile): restore iOS Threads branding (pingdotgg#4862)

* chore: add mobile issue template area (pingdotgg#4895)

* fix(desktop): link release notes from the update downloaded toast (pingdotgg#4771)

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

* fix(mobile): accept Android clipboard images in composer (pingdotgg#4836)

* fix(mobile): show the correct build channel in Android's Threads page header (pingdotgg#4861)

* fix(contracts): decode growing config unions forward-compatibly (pingdotgg#5055)

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

* fix(mobile): server model, worktree, and origin preferences now apply to new tasks (pingdotgg#5064)

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

* fix(ci): repair the mobile showcase screenshots workflow (pingdotgg#5057)

* fix(ci): capture iPad App Store screenshots in landscape (pingdotgg#5065)

* fix(oxlint-plugin): Resolve the oxlint bin without assuming a pnpm layout (pingdotgg#5066)

* feat(cli): `npx t3 pair` - generate QR code from a running server (pingdotgg#4955)

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

* fix(server): self-update no longer rolls itself back on restart (pingdotgg#5095)

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

* fix(ci): rotate iPad showcase captures without Simulator UI scripting (pingdotgg#5094)

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

* feat(web): render terminals with libghostty-vt (pingdotgg#4860)

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

* refactor: move the canonical libghostty-vt vendor to the repository root (pingdotgg#5102)

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

* feat(mobile): add thread snoozing (pingdotgg#5053)

* feat(mobile): make settled threads collapsible (pingdotgg#5056)

* follow-up normalization after pingdotgg#4700. (pingdotgg#4498)

Co-authored-by: T3 Code Test <t3code-test@example.com>

* feat(web): search threads from the sidebar (pingdotgg#4769)

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

* feat(release): prepare Command Center desktop v1

* fix(ci): allow public release publisher identity

* fix(web): avoid Windows preview path collision

* test(release): reject Windows module path collisions

* fix(release): bundle command center core

* fix: audit preserved upstream history safely

* feat(providers): add Kimi, subagents, and usage analytics

* fix(ci): repair reconnects and PNG safety scanning

* test(desktop): update Clerk environment fixture

* fix(ci): align provider and server integration contracts

* perf(web): skip impossible image encodings

* fix command center chats on native desktop hosts

---------

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: Tristan Knight <tris203@gmail.com>
Co-authored-by: Christoph Herzog <a.github@omega-id.com>
Co-authored-by: Andrew Barnes <bortstheboat@gmail.com>
Co-authored-by: Shoaib <shoaib050326@gmail.com>
Co-authored-by: Shoaib Ansari <shoaibansari@Shoaibs-Mac-mini.local>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Guilherme Vieira <46866023+GuilhermeVieiraDev@users.noreply.github.com>
Co-authored-by: James <105842516+jamesx0416@users.noreply.github.com>
Co-authored-by: Julius Marminge <jmarminge@gmail.com>
Co-authored-by: root <root@localhost.localdomain>
Co-authored-by: Andrew Forster <76947376+Andrew-Forster@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Chris Michael Guzman <67719167+Chrrxs@users.noreply.github.com>
Co-authored-by: Vadym Kotai <vdmkotai@gmail.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: xxashxx-svg <xxanshxx9@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Maxwell Young <maxtheyoung@gmail.com>
Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: Rhiz3K <33246262+Rhiz3K@users.noreply.github.com>
Co-authored-by: Rhiz3K <rhiz3k@protonmail.com>
Co-authored-by: Anirudh Coontoor <me@anirudhs.net>
Co-authored-by: Rusiru Sadathana <rusirusadathana@gmail.com>
Co-authored-by: ss <69873514+sandersonstabo@users.noreply.github.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Leonel Rivas <encriptandost@gmail.com>
Co-authored-by: Jaret Bottoms <jaretbottoms@gmail.com>
Co-authored-by: Ishan <ishansachu1@gmail.com>
Co-authored-by: Yukun Shan <92423096+nateEc@users.noreply.github.com>
Co-authored-by: Miklós Fazekas <mfazekas@szemafor.com>
Co-authored-by: Henry Zhang <113233555+caezium@users.noreply.github.com>
Co-authored-by: Rushikesh Gaikwad <81632222+Wraient@users.noreply.github.com>
Co-authored-by: legs <145564979+justsomelegs@users.noreply.github.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: tomlit <tomlit@gmail.com>
Co-authored-by: jan <hi@4bs3nt.com>
Co-authored-by: Alex Southwell <saphid@gmail.com>
Co-authored-by: Max Katz <me@maxkatz.me>
Co-authored-by: Krzysztof Moch <krzysmoch.programs@gmail.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Alex <me@pixp.cc>
Co-authored-by: wukko <me@wukko.me>
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
Co-authored-by: ohbentos <72638975+ohbentos@users.noreply.github.com>
Co-authored-by: Jake Leventhal <jakeleventhal@me.com>
Co-authored-by: Simon Doba <simon.doba@hotmail.de>
Co-authored-by: Simon Doba <simon.doba@orbit.de>
Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com>
Co-authored-by: Jono Kemball <Noojuno@users.noreply.github.com>
Co-authored-by: Arham Amin <132888838+arhxam@users.noreply.github.com>
Co-authored-by: Elaine Lyons <elaine@lyons.app>
Co-authored-by: Simone <lucenz@proton.me>
Co-authored-by: Max Anderson <max.a.anderson95@gmail.com>
Co-authored-by: Aditya Vardhan Sharma <adityaradhika13@gmail.com>
Co-authored-by: Mike Olson <mwolson@member.fsf.org>
Co-authored-by: T3 Code Test <t3code-test@example.com>
Co-authored-by: atryan <atryan@users.noreply.github.com>
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Aug 7, 2026
## What's Changed
* fix(mobile): reduce thread feed scroll jank by @gabrielelpidio in pingdotgg/t3code#4874
* fix(web): restore sidebar v2 thread actions and terminal icon by @Noojuno in pingdotgg/t3code#4712
* fix(web): settle button now works on hover, not just right-click by @t3dotgg in pingdotgg/t3code#4905
* fix(clients): disable add project while disconnected by @StiensWout in pingdotgg/t3code#4834
* fix(composer): hide default Codex service tier by @maxktz in pingdotgg/t3code#4784
* docs: link iOS and Android app store downloads by @t3dotgg in pingdotgg/t3code#4902
* fix(web): align remote server update action by @StiensWout in pingdotgg/t3code#4731
* fix(connect): suggest a serve command that matches how you ran connect by @t3dotgg in pingdotgg/t3code#4897
* fix(mobile): stop shared content errors in Personal Team builds by @t3dotgg in pingdotgg/t3code#4943
* perf(mobile): sends respond instantly, thread opens stop freezing by @t3dotgg in pingdotgg/t3code#4882
* fix(web): show Codex fast mode as a bolt by @t3dotgg in pingdotgg/t3code#4947
* docs: seed worktrees with a copy of real userdata instead of banning it by @t3dotgg in pingdotgg/t3code#4949
* fix(mobile): support dragged images in the composer by @t3dotgg in pingdotgg/t3code#4953
* fix(mobile): stop long iOS threads from jumping while scrolling up by @t3dotgg in pingdotgg/t3code#4867
* fix(web): keep worktree default when switching a draft's machine by @t3dotgg in pingdotgg/t3code#4964
* perf(mobile): reconnect environments immediately on resume by @t3dotgg in pingdotgg/t3code#4878
* feat(web): pasting a huge screenshot now compresses it instead of erroring by @t3dotgg in pingdotgg/t3code#4967
* feat(web): regenerate thread titles from sidebar by @t3dotgg in pingdotgg/t3code#4810
* fix(web): show server update progress through reconnect by @t3dotgg in pingdotgg/t3code#4903
* feat(search): find threads by conversation content by @t3dotgg in pingdotgg/t3code#4959
* fix: marketing site Vercel builds no longer die after ~100 deploys by @t3dotgg in pingdotgg/t3code#4975
* docs: split user and maintainer docs, fix 100+ stale claims by @t3dotgg in pingdotgg/t3code#4807
* fix(web): server updates no longer look like warnings by @t3dotgg in pingdotgg/t3code#4992
* fix(connect): reboots no longer strand the relay link, 403s now say why by @t3dotgg in pingdotgg/t3code#4988
* Add project file picker (⌘P) and project content search (⇧⌘F) by @jakeleventhal in pingdotgg/t3code#4855
* Check for mobile app updates on launch by @juliusmarminge in pingdotgg/t3code#4958
* fix(mobile): support pre-Liquid-Glass iOS bottom toolbar by @gabrielelpidio in pingdotgg/t3code#4984
* fix(server): restore PR detection without HOME by @StiensWout in pingdotgg/t3code#4985
* fix(web): fill fast mode icon by @maria-rcks in pingdotgg/t3code#5004
* fix: cache project favicons across web and mobile by @gabrielelpidio in pingdotgg/t3code#4767
* perf(ci): cut stale runs and redundant setup by @t3dotgg in pingdotgg/t3code#4802
* style(web): make scroll-to-end pill translucent by @maria-rcks in pingdotgg/t3code#5036
* fix(desktop): bump Clerk Electron SDK to 0.0.24 and register t3code:// scheme on Linux by @juliusmarminge in pingdotgg/t3code#5015
* perf(server): cache default branch name and origin existence across status refreshes by @UtkarshUsername in pingdotgg/t3code#5008
* feat(shared): support shorthand (major-only) versions in the semver helpers by @arhxam in pingdotgg/t3code#5027
* fix(mobile): remove unnecessary photo library permission by @skjiisa in pingdotgg/t3code#4929
* fix(shared): lenient JSON parser deletes commas inside string values by @arhxam in pingdotgg/t3code#5025
* fix(mobile): default bare IP pairing to HTTP by @Lucenx9 in pingdotgg/t3code#4990
* fix(mobile): restore iOS Threads branding by @PixPMusic in pingdotgg/t3code#4862
* chore: add mobile issue template area by @MaxAnderson95 in pingdotgg/t3code#4895
* fix(desktop): link release notes from the update downloaded toast by @Sy-D in pingdotgg/t3code#4771
* fix(mobile): accept Android clipboard images in composer by @adityavardhansharma in pingdotgg/t3code#4836
* fix(mobile): show the correct build channel in Android's Threads page header by @PixPMusic in pingdotgg/t3code#4861
* fix(contracts): decode growing config unions forward-compatibly by @juliusmarminge in pingdotgg/t3code#5055
* fix(mobile): server model, worktree, and origin preferences now apply to new tasks by @t3dotgg in pingdotgg/t3code#5064
* fix(ci): repair the mobile showcase screenshots workflow by @juliusmarminge in pingdotgg/t3code#5057
* fix(ci): capture iPad App Store screenshots in landscape by @PixPMusic in pingdotgg/t3code#5065
* fix(oxlint-plugin): Resolve the oxlint bin without assuming a pnpm layout by @mwolson in pingdotgg/t3code#5066
* feat(cli): `npx t3 pair` - generate QR code from a running server by @t3dotgg in pingdotgg/t3code#4955
* fix(server): self-update no longer rolls itself back on restart by @t3dotgg in pingdotgg/t3code#5095
* fix(ci): rotate iPad showcase captures without Simulator UI scripting by @juliusmarminge in pingdotgg/t3code#5094
* feat(web): render terminals with libghostty-vt by @StiensWout in pingdotgg/t3code#4860
* refactor: move the canonical libghostty-vt vendor to the repository root by @StiensWout in pingdotgg/t3code#5102
* feat(mobile): add thread snoozing by @gabrielelpidio in pingdotgg/t3code#5053
* feat(mobile): make settled threads collapsible by @PixPMusic in pingdotgg/t3code#5056
* follow-up normalization after #4700. by @shivamhwp in pingdotgg/t3code#4498
* feat(web): search threads from the sidebar by @shivamhwp in pingdotgg/t3code#4769
* feat(web): add settings sidebar search by @shivamhwp in pingdotgg/t3code#4682
* fix: threads with open PRs no longer auto-settle by @t3dotgg in pingdotgg/t3code#5151
* fix(server): bound thread catch-up replay and stop full-DB snapshot hydration by @t3dotgg in pingdotgg/t3code#5147
* fix(server): follow branch drift in dedicated worktrees so PRs link to their thread by @t3dotgg in pingdotgg/t3code#5159
* fix(server): make remote updates rollback-safe by @t3dotgg in pingdotgg/t3code#5181
* fix(web): stop settle controls overlapping the status label by @ipanasenko in pingdotgg/t3code#4574
* fix: normalize app icon glyph sizing by @t3-code[bot] in pingdotgg/t3code#5202
* fix(server): surface cloudflared FTL/PNC relay logs as warnings, not debug by @arhxam in pingdotgg/t3code#5076
* fix(server): stop npx service updates from silently leaving the old server running by @t3dotgg in pingdotgg/t3code#5217
* feat: fold legacy models into separate menus by @t3dotgg in pingdotgg/t3code#5190
* fix(desktop): claim the t3code:// scheme default on Linux at startup by @juliusmarminge in pingdotgg/t3code#5054
* fix(web): polish interface spacing by @maria-rcks in pingdotgg/t3code#5252
* fix(desktop): Niri/Hyprland - Linux secret storage backend by @mwolson in pingdotgg/t3code#2916
* fix(web): match loading screen to dark theme by @t3-code[bot] in pingdotgg/t3code#5303
* fix(web): blink the terminal cursor again by @StiensWout in pingdotgg/t3code#5314
* fix(terminal): protect held Ctrl/Cmd+W close shortcut by @StiensWout in pingdotgg/t3code#5322
* fix(server): strip replayable terminal queries from history by @StiensWout in pingdotgg/t3code#5319
* fix(contracts): decode ServerProviders forward-compatibly by @Brechard in pingdotgg/t3code#5327
* fix(web): simplify chat code blocks by @t3-code[bot] in pingdotgg/t3code#5301
* fix(web): align multiline error alert controls by @t3-code[bot] in pingdotgg/t3code#5304
* Upgrade Effect to beta.103 by @juliusmarminge in pingdotgg/t3code#5331
* fix(web): increase tooltip z-index to overlay popovers and menus by @naMqe-h in pingdotgg/t3code#5326
* fix(server): use a Cursor todo's title when its content is blank by @arhxam in pingdotgg/t3code#5073
* fix(ssh): isolate managed tunnel processes by @nateEc in pingdotgg/t3code#4347
* fix(server): scrub AppImage XDG_DATA_DIRS and GSETTINGS_SCHEMA_DIR from terminals by @arhxam in pingdotgg/t3code#5075
* fix(mobile): show correct provider icons for Grok, Cursor, and OpenCode by @Wraient in pingdotgg/t3code#4586
* fix(web): stop the chat timeline reading through the provider status banner by @Bil0000 in pingdotgg/t3code#5353
* fix(desktop,web): contain renderer memory growth and recover from renderer OOM crashes by @t3dotgg in pingdotgg/t3code#5148
* fix(server): generate durable thread titles by @t3dotgg in pingdotgg/t3code#5357
* fix(web): better right panel (new diffs styling) by @maria-rcks in pingdotgg/t3code#5260
* fix(server): keep regenerated titles on topic by @t3dotgg in pingdotgg/t3code#5365
* refactor(server): make title prompts plaintext by @t3dotgg in pingdotgg/t3code#5368
* feat(web): configurable fonts and sizes under Settings → Appearance by @StiensWout in pingdotgg/t3code#5103
* feat(sidebar-v2): bring back thread pinning by @t3dotgg in pingdotgg/t3code#5312
* feat(web): make pairing QR codes actually scannable, with endpoint choice by @t3dotgg in pingdotgg/t3code#5360
* fix(desktop,web): improve in-app browser shortcuts and URL behavior by @t3dotgg in pingdotgg/t3code#4703
* fix(web): prevent legacy model picker layout shift by @FllipEis in pingdotgg/t3code#5349
* fix(server): allow remote updates with database migrations by @t3dotgg in pingdotgg/t3code#5374
* fix(mcp): unblock Kimi models in OpenCode with preview tools by @hwanseoc in pingdotgg/t3code#5128
* fix(web): clear main branch lint warnings by @t3dotgg in pingdotgg/t3code#5384
* fix(mobile): preserve grouped project workspaces by @shivamhwp in pingdotgg/t3code#4642
* fix(mobile): prevent Android thread search crash by @shivamhwp in pingdotgg/t3code#5386
* fix(web): truncate long project switcher names by @FllipEis in pingdotgg/t3code#5348
* fix(mobile): avoid double dividers between thread sections by @shivamhwp in pingdotgg/t3code#5391
* fix(web): keep the composer command menu anchored to the composer by @StiensWout in pingdotgg/t3code#5336
* fix(web): restore terminal link hover styles by @StiensWout in pingdotgg/t3code#5382
* fix(ci): isolate releases from shared API rate limits by @t3dotgg in pingdotgg/t3code#5394
* fix(web): keep model picker shortcuts in sync by @t3dotgg in pingdotgg/t3code#5400
* fix(web): keep terminal font settings reliable by @StiensWout in pingdotgg/t3code#5397
* Enrich terminal font previews by @juliusmarminge in pingdotgg/t3code#5428
* fix(web): preserve terminal font size when splitting by @t3-code[bot] in pingdotgg/t3code#5444
* Prevent terminal loading flash by @juliusmarminge in pingdotgg/t3code#5432
* fix: reconnect faster after remote server updates by @t3dotgg in pingdotgg/t3code#5404
* feat: native subagent & workflow observability by @t3dotgg in pingdotgg/t3code#5219
* perf(server): stop shipping full MCP tool results in thread payloads by @t3dotgg in pingdotgg/t3code#5482
* fix(web): closed plan sidebar stays closed when returning to a thread by @t3dotgg in pingdotgg/t3code#5484
* fix: respect time format for sidebar snooze by @huxcrux in pingdotgg/t3code#4438
* fix: smooth remote server updates by @t3dotgg in pingdotgg/t3code#5470
* fix(server): drop superseded tool updates from snapshots by @t3dotgg in pingdotgg/t3code#5483
* fix(web): clarify auto permission fallback by @t3-code[bot] in pingdotgg/t3code#5431
* fix(acp): keep unknown approvals actionable by @t3-code[bot] in pingdotgg/t3code#5430
* fix(mobile): stop thread messages reading through pending cards by @carlosricojr in pingdotgg/t3code#5450
* fix(web): align composer inline chips with prompt text by @StiensWout in pingdotgg/t3code#5495
* fix(web): clear woke state on explicit thread actions by @StiensWout in pingdotgg/t3code#5486
* fix(server): skip origin fetch when creating worktrees in repos without an origin remote by @t3dotgg in pingdotgg/t3code#5556
* fix(web): update tooltip no longer dismisses when scrolling release notes by @t3dotgg in pingdotgg/t3code#5547
* fix(server): stop showing commit/push/PR notices as errors in the work log by @t3dotgg in pingdotgg/t3code#5559
* fix(web): show remote environment for non-Git projects by @t3dotgg in pingdotgg/t3code#5555
* fix(server): stopping a Claude thread no longer shows an ede_diagnostic error by @t3dotgg in pingdotgg/t3code#5557
* fix(web): show one toast when snoozing threads in bulk by @t3dotgg in pingdotgg/t3code#5560
* fix(server): let stopped threads settle immediately by @t3dotgg in pingdotgg/t3code#5553
* feat: paginate thread loading with user-anchored turn windows by @t3dotgg in pingdotgg/t3code#5493
* fix: prevent reconnect loops during server stalls by @gfsaaser24 in pingdotgg/t3code#5561
* fix(server): settle stopped Claude subagents by @t3dotgg in pingdotgg/t3code#5568
* fix: scrolling up during a running thread no longer snaps back to the bottom by @t3dotgg in pingdotgg/t3code#5566
* fix(server): one disconnecting client no longer blocks every reconnect by @t3dotgg in pingdotgg/t3code#5572
* test(server): catch client transfer regressions in CI by @t3dotgg in pingdotgg/t3code#5350
* fix(web): stop the "requests are slow" warning from firing on every provider update by @t3dotgg in pingdotgg/t3code#5570
* fix(web): keep agent panel rows stable by @t3dotgg in pingdotgg/t3code#5569
* docs: ship production T3 Connect public config in .env.example by @t3dotgg in pingdotgg/t3code#5573
* fix(web): plans stop hijacking the UI, fold into chat instead by @t3dotgg in pingdotgg/t3code#5558
* feat(web): remove Build/Plan toggle from the composer by @t3dotgg in pingdotgg/t3code#5551
* feat(web): per-device provider settings by @t3dotgg in pingdotgg/t3code#4479
* fix(mobile): invisible T3 Connect devices can now be seen and removed by @t3dotgg in pingdotgg/t3code#5563
* fix: add missing space before 'GitHub releases page' link on download page by @Mateleo in pingdotgg/t3code#4511
* fix(web): stop the sidebar "Working" label from pulsing by @t3dotgg in pingdotgg/t3code#5580
* feat(web): add modular theme library by @StiensWout in pingdotgg/t3code#5226
* fix(web): reading a thread clears Done; Woke is dismissible by @t3dotgg in pingdotgg/t3code#5579
* perf(dev): faster cold-start for dev web serving by @t3dotgg in pingdotgg/t3code#5584
* fix(dev): agents get --share right on the first try by @t3dotgg in pingdotgg/t3code#5586
* fix(mobile): improve keyboard avoiding by @jmeistrich in pingdotgg/t3code#5451
* fix(web): live background-work banner no longer hides behind the update notice by @t3dotgg in pingdotgg/t3code#5595
* fix(web): stabilize chat timeline positioning by @jmeistrich in pingdotgg/t3code#5449
* feat(server): record runtime mode per turn and on mode changes by @t3dotgg in pingdotgg/t3code#5593
* feat(web): thread actions from the chat header title by @t3dotgg in pingdotgg/t3code#5592
* fix(mobile): avoid iOS terminal reset on clear by @justynleung in pingdotgg/t3code#5440
* fix(mobile): pad scroll views above Android nav bar by @StoneCotton in pingdotgg/t3code#5415
* fix(mobile): keep Android chat text from showing through the composer by @PollyGlot in pingdotgg/t3code#5582
* fix(mobile): repair Clerk auth navigation headers by @gabrielelpidio in pingdotgg/t3code#5140
* Bump mobile app version to 1.0.2 by @juliusmarminge in pingdotgg/t3code#5588
* feat(web): click the pin icon to unpin a thread by @UtkarshUsername in pingdotgg/t3code#5578
* fix(web): show the correctly matching shortcut in new thread button's tooltip by @UtkarshUsername in pingdotgg/t3code#5594

## New Contributors
* @gabrielelpidio made their first contribution in pingdotgg/t3code#4874
* @arhxam made their first contribution in pingdotgg/t3code#5027
* @skjiisa made their first contribution in pingdotgg/t3code#4929
* @Lucenx9 made their first contribution in pingdotgg/t3code#4990
* @MaxAnderson95 made their first contribution in pingdotgg/t3code#4895
* @t3-code[bot] made their first contribution in pingdotgg/t3code#5202
* @Brechard made their first contribution in pingdotgg/t3code#5327
* @naMqe-h made their first contribution in pingdotgg/t3code#5326
* @Bil0000 made their first contribution in pingdotgg/t3code#5353
* @gfsaaser24 made their first contribution in pingdotgg/t3code#5561
* @Mateleo made their first contribution in pingdotgg/t3code#4511
* @jmeistrich made their first contribution in pingdotgg/t3code#5451
* @justynleung made their first contribution in pingdotgg/t3code#5440
* @StoneCotton made their first contribution in pingdotgg/t3code#5415
* @PollyGlot made their first contribution in pingdotgg/t3code#5582

**Full Changelog**: pingdotgg/t3code@v0.0.31...v0.0.32

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.32
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: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.

1 participant