Repository navigation
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused mobile Live Activity presentation change that improves compact active-agent readability and accessibility without changing data contracts, workflows, or configuration. Existing attention, completed, failed, and stale states retain their prior labels. You can add or adjust custom eligibility rules. Learn more. |
Keep compact status labels on one line and show active counts in a phase-colored circle capped at 99+. Preserve the actual count in the native accessibility label. Fixes pingdotgg#15682.
8eee65f to
00640fd
Compare
… Activities (#23327) Fixes #15682. Takes over #23035. Co-authored-by: Taylor Dolezal <[email protected]> Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
Note 🤖 Claude Opus 5.5 responding on behalf of Theo Merged as part of #23327, with your commit rebased onto current |
* refactor(web): timeline user message rows and context chips live in their own files (pingdotgg#22676) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): timeline assistant and orchestration event rows live in their own files (pingdotgg#22677) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): timeline row derivation, position restore and find reader live in hooks (pingdotgg#22682) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the command palette's theme items live in their own file (pingdotgg#22679) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the command palette's thread items come from their own hook (pingdotgg#22687) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the command palette's project items and pure helpers live in their own files (pingdotgg#22699) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the command palette's add-project views are components (pingdotgg#22707) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(cli): start, message, and read threads from the terminal with t3 thread (pingdotgg#22732) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer attachment tiles live in their own component (pingdotgg#22689) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): resting image previews and queued attachments are their own components (pingdotgg#22719) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer mode controls and footer actions live in ComposerFooterControls (pingdotgg#22720) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): typing no longer re-renders the composer model picker (pingdotgg#22721) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer suggestion lists are built by useComposerMenuItems (pingdotgg#22722) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the sidebar's thread rows live in their own file (pingdotgg#22696) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): sidebar list markers and draft rows live in their own files (pingdotgg#22729) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(dev): first dev start seeds real data and warms deps (pingdotgg#22744) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull requests column lives in its own component (pingdotgg#22671) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull request header's crumbs, title editor and base branch live in their own components (pingdotgg#22672) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull request header's actions live in their own components (pingdotgg#22702) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull request detail loader lives in its own hook (pingdotgg#22703) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull request list's rows read the speed-mode modifier themselves (pingdotgg#22704) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull requests page's scope and grouping hooks live in their own module (pingdotgg#22705) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull requests route only validates its search; the page lives under components (pingdotgg#22706) Co-authored-by: Claude Opus 5.5 <[email protected]> * perf(web): Shift re-renders only each row's quick-action group (pingdotgg#22726) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull request list's grouping helper lives in a logic module (pingdotgg#22727) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): chat markdown code blocks live in their own module (pingdotgg#22690) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the Mermaid code block lives in its own component file (pingdotgg#22691) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): chat markdown tables and details live in their own components (pingdotgg#22692) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): chat markdown links and file chips live in their own modules (pingdotgg#22693) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): chat markdown images and videos live in their own module (pingdotgg#22694) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's module-level helpers live in their own files (pingdotgg#22665) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's persistent terminal drawers live in their own component (pingdotgg#22680) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's right panel lives in its own component (pingdotgg#22700) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's timeline follow and anchoring lives in useTimelineFollow (pingdotgg#22701) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's machine and server-update banners live in useSystemComposerBanners (pingdotgg#22710) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's subagent, goal, background-work and branch banners are built in ThreadActivityBanners (pingdotgg#22725) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's draft machine routing lives in useDraftEnvironmentRouting (pingdotgg#22728) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's send preparation is pure functions in ChatView.logic (pingdotgg#22734) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the archived threads settings page lives in its own file (pingdotgg#22666) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the typography settings section lives in its own file (pingdotgg#22667) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the appearance settings page lives in its own file (pingdotgg#22668) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the background activity setting and its dialog live in their own file (pingdotgg#22669) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the connections page's pure helpers live in ConnectionsSettings.logic (pingdotgg#22683) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): authorized clients and endpoint rows live in their own file (pingdotgg#22684) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): saved and T3 Connect environment rows live in their own file (pingdotgg#22685) Co-authored-by: Claude Opus 5.5 <[email protected]> * perf(server): skip the macOS xcrun git shim (pingdotgg#22759) Co-authored-by: Claude Opus 5.5 <[email protected]> * docs(agents): read vendored .repos with git show when sparse-excluded (pingdotgg#22764) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): ⌘Z undoes a settle even when the composer has focus (pingdotgg#22607) Co-authored-by: ishaanko <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(scripts): one command checks what the branch changed (pingdotgg#22767) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(scripts): check:changed no longer skips knip after a removed import (pingdotgg#22784) Co-authored-by: Claude Opus 5.5 <[email protected]> * perf(dev): faster first load for shared dev servers (pingdotgg#22776) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): stalled clones say "Stalled" instead of a frozen speed (pingdotgg#22780) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): steers split a finished turn's work instead of stacking under it (pingdotgg#22783) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): images on their own line no longer sit beside their label (pingdotgg#22787) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(release): include pnpm hook in Vercel uploads (pingdotgg#22813) * fix(release): keep Vercel warnings out of deployment URLs (pingdotgg#22817) * fix(queue): send selected held messages when a thread is stopped (pingdotgg#22790) * fix(server): delegated Claude children follow your subagent cache TTL setting (pingdotgg#22841) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): t3 pair in a worktree no longer falls back to the live install (pingdotgg#22855) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): avoid expensive diff minimization in status refreshes (pingdotgg#21872) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(codex): keep every path of a multi-file patch (pingdotgg#22541) Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: GPT-6.1 Sol <[email protected]> * fix(gitlab): merge request diffs page 30 files at a time so GitLab 15.7 to 17.10 answer (pingdotgg#21909) * fix(server): keep Antigravity question options and no-custom-answer flag in V2 (pingdotgg#22019) * fix(server): commit prompts no longer repeat CLAUDE.md when it matches AGENTS.md (pingdotgg#22848) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mcp): point a bare thread uuid at its mcp: thread in thread_not_found (pingdotgg#22452) * fix(opencode): out-of-funds failures show OpenCode's message instead of a usage limit (pingdotgg#22596) * fix(shared): accept a pasted ChatGPT callback URL that is missing http:// (pingdotgg#21750) * fix(server): the background service picks up JAVA_HOME from the login shell (pingdotgg#22856) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): answered questions say "already answered" instead of "not found" (pingdotgg#22850) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(desktop): an abandoned browser sign-in no longer blocks T3 Connect for 3 minutes (pingdotgg#22903) On desktop, an abandoned browser sign-in blocked every T3 Connect sign-in for 3 minutes. A new attempt now replaces the stale Clerk flow, and a Cancel bar resets the sheet. Takeover of pingdotgg#22708. Co-authored-by: steve-ai-vibe <[email protected]> Co-Authored-By: Claude Opus 5.5 <[email protected]> * fix(server): agents get a short, current model list instead of a 55k-character catalog dump (pingdotgg#22889) Co-authored-by: Claude Opus 5.5 <[email protected]> * docs(agents): proof for a bug fix depends on the bug (pingdotgg#23008) Co-authored-by: Claude Fable 5.1 <[email protected]> * fix(server): removing a worktree on Windows no longer deletes what its junctions point to (pingdotgg#21099) Co-authored-by: sheehanmunim <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: Julius Marminge <[email protected]> * perf(web): a streaming thread re-renders only its own sidebar row (pingdotgg#22730) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the add environment dialog owns its form state (pingdotgg#22686) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(desktop): use Clerk's upstream fix for abandoned browser sign-ins (pingdotgg#23038) * feat: show automation messages as compact timeline rows (pingdotgg#22638) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(server,web,mobile): approvals in full access say why Claude asked (pingdotgg#22546) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(claude): idle compaction has a global default and per-instance overrides (pingdotgg#23037) Co-authored-by: Claude Opus 5.5 <[email protected]> * perf(web): typing no longer re-renders the traits picker or attach button (pingdotgg#23040) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the composer's layout and provider hooks live in their own files (pingdotgg#23042) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the prompt stash lives in useComposerStash (pingdotgg#23046) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer context imports live in useComposerContextImport (pingdotgg#23048) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer file intake lives in useComposerAttachmentIntake (pingdotgg#23049) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the composer's footer controls render in ComposerControlsBar (pingdotgg#23058) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer key handling lives in useComposerCommandKey (pingdotgg#23060) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's send paths live in useComposerSend (pingdotgg#23062) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's terminal actions live in useChatTerminalActions (pingdotgg#23063) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's right panel actions live in useRightPanelActions (pingdotgg#23064) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's snooze, settle, and checkout actions live in useThreadLifecycle (pingdotgg#23065) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's revert, rollback, and fork live in useTimelineRewind (pingdotgg#23066) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's attachment preview handoff lives in useAttachmentPreviewHandoff (pingdotgg#23067) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's project clone banner lives in useProjectCloneBanner (pingdotgg#23068) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's model, mode, and workspace choices live in useComposerSelection (pingdotgg#23069) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's pull request checkout lives in usePullRequestDraftThread (pingdotgg#23070) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's thread derivations are tested functions in ChatView.logic (pingdotgg#23071) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's paste-to-focus, titlebar controls, and timeline overlays move out (pingdotgg#23072) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(cursor): a closed-stream write in the Cursor SDK no longer stops the server (pingdotgg#22897) Co-authored-by: MarMarLabs <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): Codex no longer offers a one-click update for installs it can't detect (pingdotgg#22504) * fix(pi): declare properties on MCP tool schemas that omit them (pingdotgg#21822) Co-authored-by: Claude Sonnet 5.5 <[email protected]> * fix(server): a desktop backend whose launcher died shuts down cleanly instead of crashing (pingdotgg#22471) * fix(mobile): chat feed no longer re-derives on every render (pingdotgg#22913) Co-authored-by: flamboh <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * docs(user): the outside agents guide says which addresses agents can sign in over (pingdotgg#22377) Co-authored-by: Claude Sonnet 5.5 <[email protected]> * fix(server): HTML preview reports a browser start error instead of an internal error (pingdotgg#22895) Co-authored-by: ScottN-PV <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(tailscale): a timed-out tailscale probe no longer outlives its call (pingdotgg#22900) Co-authored-by: fixfon <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * docs(composer): queued messages follow the Follow-up behavior setting (pingdotgg#22857) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): failed provider updates say why (pingdotgg#22506) * test(telemetry): keep fixture PIDs from colliding with the test worker (pingdotgg#21446) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): server tests resolve the macOS temp dir symlink (pingdotgg#21442) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(scripts): mobile lint fails instead of passing when ktlint or detekt is missing (pingdotgg#22896) Co-authored-by: Shubh <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): t3_thread_read clamps oversized page sizes instead of failing (pingdotgg#22901) Co-authored-by: fixfon <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: grey-tsosie <[email protected]> * fix(mobile): opening a pull request no longer crashes with "Maximum update depth exceeded" (pingdotgg#22600) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): PR Code tab keeps its files after a refresh with an unchanged diff (pingdotgg#22917) Co-authored-by: Rodrigo Brechard <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): finished provider updates no longer leave a hidden spinner in the sidebar (pingdotgg#22912) Co-authored-by: 1kuna <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(composer): mentions of files like `posts.$postId.tsx` or `[id].tsx` stay chips (pingdotgg#22922) Co-authored-by: Victor Vogel <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): resuming an interrupted run lives in its own hook (pingdotgg#23087) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): proposed-plan follow-ups and implement-in-new-thread live in their own hooks (pingdotgg#23091) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): multiple-model sends live in their own hook (pingdotgg#23094) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the composer send reads its own settings and draft instead of taking them from ChatView (pingdotgg#23095) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ComposerControlsBar renders without a memo() wrapper (pingdotgg#23093) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): chat shortcuts live with the hooks that own their actions (pingdotgg#23097) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's timeline banners render in ChatBannerLane (pingdotgg#23101) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): the branch toolbar and thread details panel stay cached while a reply streams (pingdotgg#23103) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): scheduled tasks no longer jump to the top when toggled (pingdotgg#22899) Co-authored-by: Victor Vogel <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): Forgejo and GitCafe pull requests link to their threads again (pingdotgg#22937) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): pushes the remote refuses say why instead of a generic failure (pingdotgg#22904) Co-authored-by: fixfon <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(composer): typing a price no longer opens the skill menu (pingdotgg#21519) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): thread details PR merge uses the last selected merge method (pingdotgg#22399) * fix(web): a Usage toggle shortcut now goes back instead of staying on Usage (pingdotgg#22905) Co-authored-by: Victor Vogel <[email protected]> Co-authored-by: GPT-6.1 Sol <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): quote comment box stays on screen for long code lines (pingdotgg#22149) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): right panel launcher letters open their surface instead of typing into the composer (pingdotgg#22898) Co-authored-by: fixfon <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): ../ file links outside the workspace open as host files (pingdotgg#22853) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(shared): recognize relative folder links with trailing slash (pingdotgg#22188) Co-authored-by: macodev00 <[email protected]> * fix(client): usage limits skip disabled connections (pingdotgg#22936) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): imported VS Code themes keep destructive buttons red (pingdotgg#21924) * fix(shared): Azure DevOps repositories with a space in the name list their pull requests (pingdotgg#22782) * fix(opencode): cancelled todos no longer keep the todo list running (pingdotgg#22938) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): copy to machine clones the fork, not its upstream (pingdotgg#22492) * fix(server): JetBrains IDEs open file links at the right column (pingdotgg#22826) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): sync pull request draft status changes (pingdotgg#22832) * test(web): chat shortcut test types through the composer handle (pingdotgg#23126) Co-authored-by: Claude Opus 5.5 <[email protected]> * Merge commit from fork A markdown image such as , or a raw \\host\share path, was classified as a host file. Rendering it asked the server for a signed asset URL, and the server's realpath on the resulting UNC path made Windows open an SMB session and send the user's NetNTLMv2 response to the attacker's host, with no click and no tool call. File-link chips did the same through filesystem.getMetadata, which stats every absolute path, and storage cleanup stats the store paths in a worktree's pnpm manifest, which an agent can write. Network paths (two leading separators, as Windows reads them: \\h, //h, /\h) now only resolve inside the thread's project, so projects on a share keep working: - clients block them in markdown images and stop treating them as file links - the web stops asking for their metadata - the server refuses them for media assets and file reads outside the project, never stats one for metadata, and storage cleanup ignores a pnpm manifest that names one - each check hands the filesystem the resolved path it approved, since Windows reads a `\\?\` path as written, `..` included Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(source-control): merge messages drop Claude Code's current claude.com footer (pingdotgg#23133) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(build): pin Node 26.12.1 for development and standalone releases (pingdotgg#23165) * fix(mobile): keep Duo toolbar actions clear of workspace tabs (pingdotgg#22976) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): respect Duo safe areas in overlays (pingdotgg#22977) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): retain resting scroll offsets through Duo inset changes (pingdotgg#22978) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): deliver the first tab selection after Duo folding (pingdotgg#22979) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): use native full-width sheets on iPhone Duo (pingdotgg#22980) Co-authored-by: Pixel Perfect <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the pull requests tab's empty detail asks for a pull request (pingdotgg#23143) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the iPhone Duo keeps list titles through folds and unfolds with its sidebar (pingdotgg#23144) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the iPhone Duo searches from a field at the bottom of its list (pingdotgg#23145) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): a closed search no longer risks freezing the app (pingdotgg#23146) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): folding the Duo keeps the thread's end or the reader's line in place (pingdotgg#23147) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the iPhone Duo's search field and composer line up with its tab bar (pingdotgg#23148) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): Screens 5.0.0-t3.36 stops an iPhone Duo unfold crash (pingdotgg#23149) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the iPhone Duo's inspector panes use the full column (pingdotgg#23150) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(gitcafe): show line counts on linked and listed pull requests (pingdotgg#22633) * docs(import): correct conversation size and batch limits (pingdotgg#23226) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): stop abandoned turns before continuing threads (pingdotgg#23169) * feat(server): export how long runs take and how they end (pingdotgg#22094) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): new-thread heading clears the iPad header (pingdotgg#23206) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(pi): fork completed turns while the next turn is running (pingdotgg#23052) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): drafts swipe to discard and every row move animates (pingdotgg#23205) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(server): webhook filters fan out over arrays with a [] path wildcard (pingdotgg#23282) Co-authored-by: Claude Fable 5.1 <[email protected]> * fix(web): Arabic and Hebrew text reads and navigates right to left (pingdotgg#22777) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(client-runtime): refresh Git refs when the RPC session changes (pingdotgg#23314) * fix(web): cap list layout passes to prevent React error 185 (pingdotgg#23315) * fix(mobile): align iPad composer without shifting on keyboard focus (pingdotgg#23355) * feat(gitcafe): request reviewers and apply labels on GitCafe pull requests (pingdotgg#23034) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(source-control): clones retry over HTTPS when the SSH key is refused (pingdotgg#23170) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the iOS composer reopens where you left a long draft (pingdotgg#23096) Co-authored-by: Vishal <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Vishal Doshi <[email protected]> * fix(mobile): preserve new-thread drafts and native header layout (pingdotgg#23366) * feat: ChatGPT Business usage limits offer a copyable admin request (pingdotgg#23361) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): paused sidebar videos stop reloading after every command (pingdotgg#23106) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Nikita Maximilian Grimm <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * chore(typecheck): typescript is the tsc-rs drop-in, no effect-tsgo patch (pingdotgg#23023) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): Dynamic Island status no longer wraps next to other Live Activities (pingdotgg#23327) Fixes pingdotgg#15682. Takes over pingdotgg#23035. Co-authored-by: Taylor Dolezal <[email protected]> Co-Authored-By: Claude Opus 5.5 <[email protected]> * perf(web): streamed reply text no longer re-renders ChatView (pingdotgg#23117) Co-authored-by: Claude Opus 5.5 <[email protected]> * perf(web): visit marks during a reply no longer re-render ChatView (pingdotgg#23124) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): a Claude agent stops when the server that started it dies (pingdotgg#23389) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): SSH hosts no longer keep every old 300 MB runtime after desktop updates (pingdotgg#23113) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(settings): older clients connect again after idle compaction modes (pingdotgg#23454) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): unify draft and thread navigation and composer behavior (pingdotgg#23467) * ci: setup survives npm registry outages (pingdotgg#23582) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(web,mobile): messages from other agents fold into one-line rows (pingdotgg#23135) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): subagent bar keeps model and status readable in narrow chat columns (pingdotgg#23502) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(chat): mark tool images beyond the preview limit (pingdotgg#23595) Co-authored-by: GPT-6.1 Sol <[email protected]> * fix(web): provider updates no longer pop toasts on launch (pingdotgg#23233) * fix(server): probe the Windows startup environment asynchronously (pingdotgg#21720) * fix(usage): count initial Codex requests with inherited totals (pingdotgg#23729) * chore(mobile): bump app version to 2.1.0 Co-authored-by: codex <[email protected]> * fix(web): let toast content use the full accordion width (pingdotgg#23777) * fix(web): sidebar follows the active thread after history navigation (pingdotgg#23519) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): keep subagent transcript updates off shell stream (pingdotgg#23783) * fix(deps): pin all patched package versions (pingdotgg#23798) * docs: document the GitCafe mirror and refresh the dev setup (pingdotgg#23808) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix: no more em dashes in product copy (pingdotgg#23799) Co-authored-by: Claude Opus 5.5 <[email protected]> * chore(release): prepare v0.1.2 * chore(mobile): bump Clerk Expo SDKs to the new native client sync (pingdotgg#23047) Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Claude Haiku 5.5 <[email protected]> * fix(mobile): capture folded and unfolded Duo store screenshots (pingdotgg#23849) * fix(server): preserve typed requirements as the RPC group grows (pingdotgg#23813) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): wake PR watches when no checks report (pingdotgg#23863) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): resume Codex parents after native children finish (pingdotgg#23840) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(gitcafe): authored lists, merge progress, and author reviews match git.cafe (pingdotgg#23887) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(forgejo): merges follow the repository's delete-branch setting (pingdotgg#23471) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): keep PR check counts in sync (pingdotgg#23548) * fix(server): speed up shell snapshots on large databases (pingdotgg#23751) Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): keep managed Codex token renewal in the server (pingdotgg#21786) * fix(server): renew active managed Codex turns through native auth (pingdotgg#21787) * feat(web): telemetry export settings show where the running endpoint came from (pingdotgg#23713) Co-authored-by: Julius Marminge <[email protected]> Signed-off-by: Yordis Prieto <[email protected]> * fix(ui): preserve tool icon detail in light mode (pingdotgg#23896) * fix(mcp): accept GitCafe pull request URLs in link/unlink/watch tools (pingdotgg#23899) Co-authored-by: Claude Fable 5.1 <[email protected]> * feat(settings): add thread title instructions (pingdotgg#21882) Co-authored-by: Yash Singh <[email protected]> * fix(mobile): undo toasts keep their action on one row (pingdotgg#23910) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <[email protected]> * docs(connect): correct the relay webhook endpoint key (pingdotgg#23526) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): center Android composer text and pad wrapped drafts (pingdotgg#23829) * fix(server): wake PR watches when remaining CI checks finish (pingdotgg#23904) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the empty composer row shows only the provider icon (pingdotgg#23570) * fix(server): route SQLite reads around writer contention (pingdotgg#23902) * fix(claude): route approval feedback to the requesting agent (pingdotgg#23657) * fix(web): align pull request file counts with diff stats (pingdotgg#23905) * fix(web): task durations over an hour no longer wrap in the tasks panel (pingdotgg#13472) Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]> Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Julius Marminge <[email protected]> * fix(server): preserve Codex sign-in guidance in usage notices (pingdotgg#17055) Co-authored-by: Codex (gpt-6-astra) <[email protected]> Co-authored-by: Julius Marminge <[email protected]> * fix(server): restore Claude subscription usage through proxies (pingdotgg#12069) Co-authored-by: Julius Marminge <[email protected]> * fix(server): Forgejo skipped jobs no longer keep a pull request watch pending (pingdotgg#16668) Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Claude Fable 5.1 <[email protected]> * fix(mobile): move Android undo toasts above bottom navigation (pingdotgg#23928) * perf(server): skip unused Git output line parsing (pingdotgg#23953) Co-authored-by: Jet <[email protected]> Co-authored-by: Claude Fable 5.1 <[email protected]> * fix(server): abort interrupted ACP MCP fetches (pingdotgg#23955) Co-authored-by: kiiwee <[email protected]> Co-authored-by: Claude Fable 5.1 <[email protected]> * fix(web): new threads no longer hang when a project's machine is offline (pingdotgg#23967) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(pi): stop blank input placeholders from failing the run (pingdotgg#23235) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(cursor): fail turns that end in a transport error after commentary (pingdotgg#23273) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(forgejo): answer the base branch read in the skipped-checks test (pingdotgg#23952) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(opencode): retry failed model catalogs until they recover (pingdotgg#23939) * fix(server): avoid full shell read on resume (pingdotgg#23987) * test: delete low-value tests and dead test-only exports (pingdotgg#24058) * test(server): restore DST scheduling tests deleted in the test snap (pingdotgg#23991) * test(web): restore project settings permission tests deleted in the test snap (pingdotgg#24011) * test(mobile): restore clipboard secret-redaction test deleted in the test snap (pingdotgg#23980) * fix(web): Cmd+B toggles the sidebar unless text is selected (pingdotgg#24063) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): agent-browser and Chrome no longer outlive the agent that started them (pingdotgg#21299) Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Theo Browne <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * test(client-runtime): restore render scheduler tests deleted in the test snap (pingdotgg#23977) * fix(web): cmd+k search hides subagents and favors recent, whole-word matches (pingdotgg#24032) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(lint): new polling loops in tests now fail lint (pingdotgg#23983) * ci: unused dependency patches fail in check:changed, not after push (pingdotgg#23988) * fix(desktop): PDFs in the preview can be annotated (pingdotgg#24022) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): instructed compact runs without a bare compaction first (pingdotgg#24008) Co-authored-by: fixfon <[email protected]> Co-authored-by: Claude Fable 5.1 <[email protected]> * fix(desktop): reduce app crashes when a preview tab's renderer dies during agent screenshots (pingdotgg#24056) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): Stop stops a thread's subagents again (pingdotgg#23886) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(desktop): a stuck quit no longer leaves the app unkillable (pingdotgg#23873) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> --------- Signed-off-by: Yordis Prieto <[email protected]> Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: Theo Browne <[email protected]> Co-authored-by: ishaanko <[email protected]> Co-authored-by: Yash Singh <[email protected]> Co-authored-by: Lakshmi Tanmay <[email protected]> Co-authored-by: Victor Vogel <[email protected]> Co-authored-by: GPT-6.1 Sol <[email protected]> Co-authored-by: Igor Makowski <[email protected]> Co-authored-by: fixfon <[email protected]> Co-authored-by: project516 <[email protected]> Co-authored-by: steve-ai-vibe <[email protected]> Co-authored-by: Dara Adedeji <[email protected]> Co-authored-by: sheehanmunim <[email protected]> Co-authored-by: Robert Soriano <[email protected]> Co-authored-by: MarMarLabs <[email protected]> Co-authored-by: Koushik_xd <[email protected]> Co-authored-by: Taissa <[email protected]> Co-authored-by: flamboh <[email protected]> Co-authored-by: Gourav Kumar Dhiman <[email protected]> Co-authored-by: ScottN-PV <[email protected]> Co-authored-by: tatsuaki watanabe <[email protected]> Co-authored-by: Shubh <[email protected]> Co-authored-by: grey-tsosie <[email protected]> Co-authored-by: Rodrigo Brechard <[email protected]> Co-authored-by: 1kuna <[email protected]> Co-authored-by: MarcoDotIO <[email protected]> Co-authored-by: Tristan Knight <[email protected]> Co-authored-by: Etan Heyman <[email protected]> Co-authored-by: maco <[email protected]> Co-authored-by: macodev00 <[email protected]> Co-authored-by: M4NU5 <[email protected]> Co-authored-by: Louis Gollut <[email protected]> Co-authored-by: Pavel Kroupa <[email protected]> Co-authored-by: AKolenda <[email protected]> Co-authored-by: Lev Poznyakov <[email protected]> Co-authored-by: Alex <[email protected]> Co-authored-by: maria <[email protected]> Co-authored-by: يزن حمزه <[email protected]> Co-authored-by: shivam <[email protected]> Co-authored-by: Vishal <[email protected]> Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Vishal Doshi <[email protected]> Co-authored-by: Nikita Maximilian Grimm <[email protected]> Co-authored-by: Taylor Dolezal <[email protected]> Co-authored-by: oliver <[email protected]> Co-authored-by: Utkarsh Patil <[email protected]> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: codex <[email protected]> Co-authored-by: Yordis Prieto <[email protected]> Co-authored-by: Caden Elrod <[email protected]> Co-authored-by: Alex Southwell <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: James Villarrubia <[email protected]> Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: 洁月星 <[email protected]> Co-authored-by: Nand <[email protected]> Co-authored-by: Jet <[email protected]> Co-authored-by: kiiwee <[email protected]> Co-authored-by: Joseph Vidal <[email protected]> Co-authored-by: Theo Browne <[email protected]>
* fix(mobile): thread rows show wake status and elapsed time (pingdotgg#21394) * fix(web,mobile): list database space for all machines in one notice (pingdotgg#22575) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(lint): ban per-test timeouts and unreasoned skips (pingdotgg#22560) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(web): ban frame and transition waits in browser tests (pingdotgg#22561) Co-authored-by: Claude Opus 5.5 <[email protected]> * test: ban wall-clock readings in tests (pingdotgg#22562) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(server): ban real-clock waits in tests (pingdotgg#22564) Co-authored-by: Claude Opus 5.5 <[email protected]> * test: warn on polling loops in tests and make adapter test harnesses event-driven (pingdotgg#22565) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): iOS new-thread skill picker stops shifting the screen (pingdotgg#22121) * fix(web): dialogs keep their content while they close (pingdotgg#21960) * ci(release): build Windows x64 on Linux like arm64 (pingdotgg#22584) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): idle orphaned follow-ups can be cancelled without a running parent (pingdotgg#22581) Co-authored-by: syberia <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * chore(web): remove "use client" directives (pingdotgg#22587) * test(mobile): prune low-value tests in mobile (second pass) (pingdotgg#22588) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(desktop): prune low-value tests in desktop (second pass) (pingdotgg#22589) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(web): prune low-value tests in apps/web (second pass) (pingdotgg#22591) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(server): prune low-value tests in apps/server (second pass) (pingdotgg#22592) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(packages): prune low-value tests in packages (second pass) (pingdotgg#22593) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(server): prune low-value tests in orchestration-v2 (second pass) (pingdotgg#22599) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(web): every browser test starts with the mouse off the page (pingdotgg#22556) Co-authored-by: Claude Opus 5.5 <[email protected]> * chore(tailscale): drop parseTailscaleMagicDnsName, which nothing imports (pingdotgg#22602) Co-authored-by: Claude Fable 5.1 <[email protected]> * fix(server): make the remaining flaky server tests deterministic (pingdotgg#22559) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): composer chips match chat chips (pingdotgg#22518) * fix(mobile): show each turn's diffstat on its work row (pingdotgg#21392) * chore(release): prepare v0.1.1 * fix(web): silence notifications when stopping a watch (pingdotgg#22615) * ci(release): build macOS desktop on Blacksmith runners again (pingdotgg#22613) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(usage): Codex compaction and resumed sessions no longer show skipped-usage warnings (pingdotgg#22558) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): thread search shows the same PR badge as the sidebar (pingdotgg#22627) * Delete .github/workflows/cursor-hygiene-webhook.yml * fix(desktop): bump Electron to 44.9.3 to block compromised eMudhra CA keys (pingdotgg#22645) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(web): ChatView's React Compiler check no longer times out on slow CI runners (pingdotgg#22649) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): thread links render as chips, and thread chips show the project icon (pingdotgg#22621) * fix(server): Stop on a delegate always clears it, even when it is stuck (pingdotgg#22653) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(web): composer stays usable during approvals, and sending declines and redirects (pingdotgg#21503) * docs(agents): name the fast commands and stop polling (pingdotgg#22711) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(desktop): new worktrees install Electron from the local download cache (pingdotgg#22712) Co-authored-by: Claude Opus 5.5 <[email protected]> * test(server): split replay fixtures into per-provider files (pingdotgg#22717) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): delegates finish when their leftover work settles, and Grok commands stop holding runs open (pingdotgg#22709) Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: Fuksss <[email protected]> * fix(server): storage cleanup no longer counts pnpm clones as freed space (pingdotgg#22713) Co-authored-by: Claude Opus 5.5 <[email protected]> * build: upgrade Vite+ to 1.3 and cache typecheck (pingdotgg#22716) Co-authored-by: Claude Opus 5.5 <[email protected]> * test: local test runs use package configs and a clean env (pingdotgg#22714) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): restore low-latency decoding for simulator streams (pingdotgg#22733) * fix(marketing): typecheck cache no longer misses when the shell env changes (pingdotgg#22735) Co-authored-by: Claude Opus 5.5 <[email protected]> * build(setup): leaner installs on Mac and Linux, cross-device store warning, setup-done marker (pingdotgg#22718) Co-authored-by: Claude Opus 5.5 <[email protected]> * build: upgrade pnpm to 12 for 4x faster installs (pingdotgg#22738) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the timeline minimap lives in its own file (pingdotgg#22662) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): timeline work entry rows and tool icons live in their own files (pingdotgg#22674) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): timeline work group and live activity rows live in their own file (pingdotgg#22675) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): timeline user message rows and context chips live in their own files (pingdotgg#22676) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): timeline assistant and orchestration event rows live in their own files (pingdotgg#22677) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): timeline row derivation, position restore and find reader live in hooks (pingdotgg#22682) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the command palette's theme items live in their own file (pingdotgg#22679) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the command palette's thread items come from their own hook (pingdotgg#22687) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the command palette's project items and pure helpers live in their own files (pingdotgg#22699) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the command palette's add-project views are components (pingdotgg#22707) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(cli): start, message, and read threads from the terminal with t3 thread (pingdotgg#22732) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer attachment tiles live in their own component (pingdotgg#22689) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): resting image previews and queued attachments are their own components (pingdotgg#22719) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer mode controls and footer actions live in ComposerFooterControls (pingdotgg#22720) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): typing no longer re-renders the composer model picker (pingdotgg#22721) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer suggestion lists are built by useComposerMenuItems (pingdotgg#22722) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the sidebar's thread rows live in their own file (pingdotgg#22696) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): sidebar list markers and draft rows live in their own files (pingdotgg#22729) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(dev): first dev start seeds real data and warms deps (pingdotgg#22744) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull requests column lives in its own component (pingdotgg#22671) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull request header's crumbs, title editor and base branch live in their own components (pingdotgg#22672) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull request header's actions live in their own components (pingdotgg#22702) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull request detail loader lives in its own hook (pingdotgg#22703) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull request list's rows read the speed-mode modifier themselves (pingdotgg#22704) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull requests page's scope and grouping hooks live in their own module (pingdotgg#22705) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull requests route only validates its search; the page lives under components (pingdotgg#22706) Co-authored-by: Claude Opus 5.5 <[email protected]> * perf(web): Shift re-renders only each row's quick-action group (pingdotgg#22726) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the pull request list's grouping helper lives in a logic module (pingdotgg#22727) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): chat markdown code blocks live in their own module (pingdotgg#22690) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the Mermaid code block lives in its own component file (pingdotgg#22691) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): chat markdown tables and details live in their own components (pingdotgg#22692) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): chat markdown links and file chips live in their own modules (pingdotgg#22693) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): chat markdown images and videos live in their own module (pingdotgg#22694) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's module-level helpers live in their own files (pingdotgg#22665) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's persistent terminal drawers live in their own component (pingdotgg#22680) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's right panel lives in its own component (pingdotgg#22700) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's timeline follow and anchoring lives in useTimelineFollow (pingdotgg#22701) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's machine and server-update banners live in useSystemComposerBanners (pingdotgg#22710) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's subagent, goal, background-work and branch banners are built in ThreadActivityBanners (pingdotgg#22725) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's draft machine routing lives in useDraftEnvironmentRouting (pingdotgg#22728) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's send preparation is pure functions in ChatView.logic (pingdotgg#22734) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the archived threads settings page lives in its own file (pingdotgg#22666) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the typography settings section lives in its own file (pingdotgg#22667) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the appearance settings page lives in its own file (pingdotgg#22668) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the background activity setting and its dialog live in their own file (pingdotgg#22669) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the connections page's pure helpers live in ConnectionsSettings.logic (pingdotgg#22683) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): authorized clients and endpoint rows live in their own file (pingdotgg#22684) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): saved and T3 Connect environment rows live in their own file (pingdotgg#22685) Co-authored-by: Claude Opus 5.5 <[email protected]> * perf(server): skip the macOS xcrun git shim (pingdotgg#22759) Co-authored-by: Claude Opus 5.5 <[email protected]> * docs(agents): read vendored .repos with git show when sparse-excluded (pingdotgg#22764) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): ⌘Z undoes a settle even when the composer has focus (pingdotgg#22607) Co-authored-by: ishaanko <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(scripts): one command checks what the branch changed (pingdotgg#22767) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(scripts): check:changed no longer skips knip after a removed import (pingdotgg#22784) Co-authored-by: Claude Opus 5.5 <[email protected]> * perf(dev): faster first load for shared dev servers (pingdotgg#22776) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): stalled clones say "Stalled" instead of a frozen speed (pingdotgg#22780) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): steers split a finished turn's work instead of stacking under it (pingdotgg#22783) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): images on their own line no longer sit beside their label (pingdotgg#22787) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(release): include pnpm hook in Vercel uploads (pingdotgg#22813) * fix(release): keep Vercel warnings out of deployment URLs (pingdotgg#22817) * fix(queue): send selected held messages when a thread is stopped (pingdotgg#22790) * fix(server): delegated Claude children follow your subagent cache TTL setting (pingdotgg#22841) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): t3 pair in a worktree no longer falls back to the live install (pingdotgg#22855) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): avoid expensive diff minimization in status refreshes (pingdotgg#21872) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(codex): keep every path of a multi-file patch (pingdotgg#22541) Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: GPT-6.1 Sol <[email protected]> * fix(gitlab): merge request diffs page 30 files at a time so GitLab 15.7 to 17.10 answer (pingdotgg#21909) * fix(server): keep Antigravity question options and no-custom-answer flag in V2 (pingdotgg#22019) * fix(server): commit prompts no longer repeat CLAUDE.md when it matches AGENTS.md (pingdotgg#22848) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mcp): point a bare thread uuid at its mcp: thread in thread_not_found (pingdotgg#22452) * fix(opencode): out-of-funds failures show OpenCode's message instead of a usage limit (pingdotgg#22596) * fix(shared): accept a pasted ChatGPT callback URL that is missing http:// (pingdotgg#21750) * fix(server): the background service picks up JAVA_HOME from the login shell (pingdotgg#22856) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): answered questions say "already answered" instead of "not found" (pingdotgg#22850) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(desktop): an abandoned browser sign-in no longer blocks T3 Connect for 3 minutes (pingdotgg#22903) On desktop, an abandoned browser sign-in blocked every T3 Connect sign-in for 3 minutes. A new attempt now replaces the stale Clerk flow, and a Cancel bar resets the sheet. Takeover of pingdotgg#22708. Co-authored-by: steve-ai-vibe <[email protected]> Co-Authored-By: Claude Opus 5.5 <[email protected]> * fix(server): agents get a short, current model list instead of a 55k-character catalog dump (pingdotgg#22889) Co-authored-by: Claude Opus 5.5 <[email protected]> * docs(agents): proof for a bug fix depends on the bug (pingdotgg#23008) Co-authored-by: Claude Fable 5.1 <[email protected]> * fix(server): removing a worktree on Windows no longer deletes what its junctions point to (pingdotgg#21099) Co-authored-by: sheehanmunim <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: Julius Marminge <[email protected]> * perf(web): a streaming thread re-renders only its own sidebar row (pingdotgg#22730) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the add environment dialog owns its form state (pingdotgg#22686) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(desktop): use Clerk's upstream fix for abandoned browser sign-ins (pingdotgg#23038) * feat: show automation messages as compact timeline rows (pingdotgg#22638) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(server,web,mobile): approvals in full access say why Claude asked (pingdotgg#22546) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(claude): idle compaction has a global default and per-instance overrides (pingdotgg#23037) Co-authored-by: Claude Opus 5.5 <[email protected]> * perf(web): typing no longer re-renders the traits picker or attach button (pingdotgg#23040) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the composer's layout and provider hooks live in their own files (pingdotgg#23042) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the prompt stash lives in useComposerStash (pingdotgg#23046) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer context imports live in useComposerContextImport (pingdotgg#23048) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer file intake lives in useComposerAttachmentIntake (pingdotgg#23049) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the composer's footer controls render in ComposerControlsBar (pingdotgg#23058) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): composer key handling lives in useComposerCommandKey (pingdotgg#23060) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's send paths live in useComposerSend (pingdotgg#23062) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's terminal actions live in useChatTerminalActions (pingdotgg#23063) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's right panel actions live in useRightPanelActions (pingdotgg#23064) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's snooze, settle, and checkout actions live in useThreadLifecycle (pingdotgg#23065) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's revert, rollback, and fork live in useTimelineRewind (pingdotgg#23066) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's attachment preview handoff lives in useAttachmentPreviewHandoff (pingdotgg#23067) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's project clone banner lives in useProjectCloneBanner (pingdotgg#23068) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's model, mode, and workspace choices live in useComposerSelection (pingdotgg#23069) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's pull request checkout lives in usePullRequestDraftThread (pingdotgg#23070) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's thread derivations are tested functions in ChatView.logic (pingdotgg#23071) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's paste-to-focus, titlebar controls, and timeline overlays move out (pingdotgg#23072) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(cursor): a closed-stream write in the Cursor SDK no longer stops the server (pingdotgg#22897) Co-authored-by: MarMarLabs <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): Codex no longer offers a one-click update for installs it can't detect (pingdotgg#22504) * fix(pi): declare properties on MCP tool schemas that omit them (pingdotgg#21822) Co-authored-by: Claude Sonnet 5.5 <[email protected]> * fix(server): a desktop backend whose launcher died shuts down cleanly instead of crashing (pingdotgg#22471) * fix(mobile): chat feed no longer re-derives on every render (pingdotgg#22913) Co-authored-by: flamboh <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * docs(user): the outside agents guide says which addresses agents can sign in over (pingdotgg#22377) Co-authored-by: Claude Sonnet 5.5 <[email protected]> * fix(server): HTML preview reports a browser start error instead of an internal error (pingdotgg#22895) Co-authored-by: ScottN-PV <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(tailscale): a timed-out tailscale probe no longer outlives its call (pingdotgg#22900) Co-authored-by: fixfon <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * docs(composer): queued messages follow the Follow-up behavior setting (pingdotgg#22857) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): failed provider updates say why (pingdotgg#22506) * test(telemetry): keep fixture PIDs from colliding with the test worker (pingdotgg#21446) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): server tests resolve the macOS temp dir symlink (pingdotgg#21442) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(scripts): mobile lint fails instead of passing when ktlint or detekt is missing (pingdotgg#22896) Co-authored-by: Shubh <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): t3_thread_read clamps oversized page sizes instead of failing (pingdotgg#22901) Co-authored-by: fixfon <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: grey-tsosie <[email protected]> * fix(mobile): opening a pull request no longer crashes with "Maximum update depth exceeded" (pingdotgg#22600) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): PR Code tab keeps its files after a refresh with an unchanged diff (pingdotgg#22917) Co-authored-by: Rodrigo Brechard <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): finished provider updates no longer leave a hidden spinner in the sidebar (pingdotgg#22912) Co-authored-by: 1kuna <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(composer): mentions of files like `posts.$postId.tsx` or `[id].tsx` stay chips (pingdotgg#22922) Co-authored-by: Victor Vogel <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): resuming an interrupted run lives in its own hook (pingdotgg#23087) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): proposed-plan follow-ups and implement-in-new-thread live in their own hooks (pingdotgg#23091) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): multiple-model sends live in their own hook (pingdotgg#23094) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): the composer send reads its own settings and draft instead of taking them from ChatView (pingdotgg#23095) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ComposerControlsBar renders without a memo() wrapper (pingdotgg#23093) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): chat shortcuts live with the hooks that own their actions (pingdotgg#23097) Co-authored-by: Claude Opus 5.5 <[email protected]> * refactor(web): ChatView's timeline banners render in ChatBannerLane (pingdotgg#23101) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): the branch toolbar and thread details panel stay cached while a reply streams (pingdotgg#23103) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): scheduled tasks no longer jump to the top when toggled (pingdotgg#22899) Co-authored-by: Victor Vogel <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): Forgejo and GitCafe pull requests link to their threads again (pingdotgg#22937) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): pushes the remote refuses say why instead of a generic failure (pingdotgg#22904) Co-authored-by: fixfon <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(composer): typing a price no longer opens the skill menu (pingdotgg#21519) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): thread details PR merge uses the last selected merge method (pingdotgg#22399) * fix(web): a Usage toggle shortcut now goes back instead of staying on Usage (pingdotgg#22905) Co-authored-by: Victor Vogel <[email protected]> Co-authored-by: GPT-6.1 Sol <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): quote comment box stays on screen for long code lines (pingdotgg#22149) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): right panel launcher letters open their surface instead of typing into the composer (pingdotgg#22898) Co-authored-by: fixfon <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): ../ file links outside the workspace open as host files (pingdotgg#22853) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(shared): recognize relative folder links with trailing slash (pingdotgg#22188) Co-authored-by: macodev00 <[email protected]> * fix(client): usage limits skip disabled connections (pingdotgg#22936) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): imported VS Code themes keep destructive buttons red (pingdotgg#21924) * fix(shared): Azure DevOps repositories with a space in the name list their pull requests (pingdotgg#22782) * fix(opencode): cancelled todos no longer keep the todo list running (pingdotgg#22938) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): copy to machine clones the fork, not its upstream (pingdotgg#22492) * fix(server): JetBrains IDEs open file links at the right column (pingdotgg#22826) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): sync pull request draft status changes (pingdotgg#22832) * test(web): chat shortcut test types through the composer handle (pingdotgg#23126) Co-authored-by: Claude Opus 5.5 <[email protected]> * Merge commit from fork A markdown image such as , or a raw \\host\share path, was classified as a host file. Rendering it asked the server for a signed asset URL, and the server's realpath on the resulting UNC path made Windows open an SMB session and send the user's NetNTLMv2 response to the attacker's host, with no click and no tool call. File-link chips did the same through filesystem.getMetadata, which stats every absolute path, and storage cleanup stats the store paths in a worktree's pnpm manifest, which an agent can write. Network paths (two leading separators, as Windows reads them: \\h, //h, /\h) now only resolve inside the thread's project, so projects on a share keep working: - clients block them in markdown images and stop treating them as file links - the web stops asking for their metadata - the server refuses them for media assets and file reads outside the project, never stats one for metadata, and storage cleanup ignores a pnpm manifest that names one - each check hands the filesystem the resolved path it approved, since Windows reads a `\\?\` path as written, `..` included Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(source-control): merge messages drop Claude Code's current claude.com footer (pingdotgg#23133) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(build): pin Node 26.12.1 for development and standalone releases (pingdotgg#23165) * fix(mobile): keep Duo toolbar actions clear of workspace tabs (pingdotgg#22976) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): respect Duo safe areas in overlays (pingdotgg#22977) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): retain resting scroll offsets through Duo inset changes (pingdotgg#22978) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): deliver the first tab selection after Duo folding (pingdotgg#22979) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): use native full-width sheets on iPhone Duo (pingdotgg#22980) Co-authored-by: Pixel Perfect <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the pull requests tab's empty detail asks for a pull request (pingdotgg#23143) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the iPhone Duo keeps list titles through folds and unfolds with its sidebar (pingdotgg#23144) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the iPhone Duo searches from a field at the bottom of its list (pingdotgg#23145) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): a closed search no longer risks freezing the app (pingdotgg#23146) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): folding the Duo keeps the thread's end or the reader's line in place (pingdotgg#23147) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the iPhone Duo's search field and composer line up with its tab bar (pingdotgg#23148) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): Screens 5.0.0-t3.36 stops an iPhone Duo unfold crash (pingdotgg#23149) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the iPhone Duo's inspector panes use the full column (pingdotgg#23150) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(gitcafe): show line counts on linked and listed pull requests (pingdotgg#22633) * docs(import): correct conversation size and batch limits (pingdotgg#23226) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): stop abandoned turns before continuing threads (pingdotgg#23169) * feat(server): export how long runs take and how they end (pingdotgg#22094) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): new-thread heading clears the iPad header (pingdotgg#23206) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(pi): fork completed turns while the next turn is running (pingdotgg#23052) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): drafts swipe to discard and every row move animates (pingdotgg#23205) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(server): webhook filters fan out over arrays with a [] path wildcard (pingdotgg#23282) Co-authored-by: Claude Fable 5.1 <[email protected]> * fix(web): Arabic and Hebrew text reads and navigates right to left (pingdotgg#22777) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(client-runtime): refresh Git refs when the RPC session changes (pingdotgg#23314) * fix(web): cap list layout passes to prevent React error 185 (pingdotgg#23315) * fix(mobile): align iPad composer without shifting on keyboard focus (pingdotgg#23355) * feat(gitcafe): request reviewers and apply labels on GitCafe pull requests (pingdotgg#23034) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(source-control): clones retry over HTTPS when the SSH key is refused (pingdotgg#23170) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): the iOS composer reopens where you left a long draft (pingdotgg#23096) Co-authored-by: Vishal <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Vishal Doshi <[email protected]> * fix(mobile): preserve new-thread drafts and native header layout (pingdotgg#23366) * feat: ChatGPT Business usage limits offer a copyable admin request (pingdotgg#23361) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): paused sidebar videos stop reloading after every command (pingdotgg#23106) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Nikita Maximilian Grimm <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * chore(typecheck): typescript is the tsc-rs drop-in, no effect-tsgo patch (pingdotgg#23023) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): Dynamic Island status no longer wraps next to other Live Activities (pingdotgg#23327) Fixes pingdotgg#15682. Takes over pingdotgg#23035. Co-authored-by: Taylor Dolezal <[email protected]> Co-Authored-By: Claude Opus 5.5 <[email protected]> * perf(web): streamed reply text no longer re-renders ChatView (pingdotgg#23117) Co-authored-by: Claude Opus 5.5 <[email protected]> * perf(web): visit marks during a reply no longer re-render ChatView (pingdotgg#23124) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): a Claude agent stops when the server that started it dies (pingdotgg#23389) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(server): SSH hosts no longer keep every old 300 MB runtime after desktop updates (pingdotgg#23113) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(settings): older clients connect again after idle compaction modes (pingdotgg#23454) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(mobile): unify draft and thread navigation and composer behavior (pingdotgg#23467) * ci: setup survives npm registry outages (pingdotgg#23582) Co-authored-by: Claude Opus 5.5 <[email protected]> * feat(web,mobile): messages from other agents fold into one-line rows (pingdotgg#23135) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(web): subagent bar keeps model and status readable in narrow chat columns (pingdotgg#23502) Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(chat): mark tool images beyond the preview limit (pingdotgg#23595) Co-authored-by: GPT-6.1 Sol <[email protected]> * fix(web): provider updates no longer pop toasts on launch (pingdotgg#23233) * fix(server): probe the Windows startup environment asynchronously (pingdotgg#21720) * fix(usage): count initial Codex requests with inherited totals (pingdotgg#23729) * chore(mobile): bump app version to 2.1.0 Co-authored-by: codex <[email protected]> * fix(web): let toast content use the full accordion width (pingdotgg#23777) * fix(web): sidebar follows the active thread after history navigation (pingdotgg#23519) Co-authored-by: Claude Opus 5.5 <[email protected]> * fix(safe): preserve sync policy gates and bound dependency reviews * chore(safe): create and babysit sync PRs without another approval * fix(safe): separate online release ages from reviewed baseline drift * fix(safe): preserve the reviewed pnpm hook in frozen install stages * fix(desktop): use lint-compliant Node import names * fix(safe): reject commented YAML document separators * fix(safe): record reviewed v0.1.2 artifact contexts --------- Co-authored-by: maria <[email protected]> Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: oliver <[email protected]> Co-authored-by: Theo Browne <[email protected]> Co-authored-by: syberia <[email protected]> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: Yash Singh <[email protected]> Co-authored-by: Fuksss <[email protected]> Co-authored-by: ishaanko <[email protected]> Co-authored-by: Lakshmi Tanmay <[email protected]> Co-authored-by: Victor Vogel <[email protected]> Co-authored-by: GPT-6.1 Sol <[email protected]> Co-authored-by: Igor Makowski <[email protected]> Co-authored-by: fixfon <[email protected]> Co-authored-by: project516 <[email protected]> Co-authored-by: steve-ai-vibe <[email protected]> Co-authored-by: Dara Adedeji <[email protected]> Co-authored-by: sheehanmunim <[email protected]> Co-authored-by: Robert Soriano <[email protected]> Co-authored-by: MarMarLabs <[email protected]> Co-authored-by: Koushik_xd <[email protected]> Co-authored-by: Taissa <[email protected]> Co-authored-by: flamboh <[email protected]> Co-authored-by: Gourav Kumar Dhiman <[email protected]> Co-authored-by: ScottN-PV <[email protected]> Co-authored-by: tatsuaki watanabe <[email protected]> Co-authored-by: Shubh <[email protected]> Co-authored-by: grey-tsosie <[email protected]> Co-authored-by: Rodrigo Brechard <[email protected]> Co-authored-by: 1kuna <[email protected]> Co-authored-by: MarcoDotIO <[email protected]> Co-authored-by: Tristan Knight <[email protected]> Co-authored-by: Etan Heyman <[email protected]> Co-authored-by: maco <[email protected]> Co-authored-by: macodev00 <[email protected]> Co-authored-by: M4NU5 <[email protected]> Co-authored-by: Louis Gollut <[email protected]> Co-authored-by: Pavel Kroupa <[email protected]> Co-authored-by: AKolenda <[email protected]> Co-authored-by: Lev Poznyakov <[email protected]> Co-authored-by: Alex <[email protected]> Co-authored-by: يزن حمزه <[email protected]> Co-authored-by: shivam <[email protected]> Co-authored-by: Vishal <[email protected]> Co-authored-by: PR Batch Tester <[email protected]> Co-authored-by: Vishal Doshi <[email protected]> Co-authored-by: Nikita Maximilian Grimm <[email protected]> Co-authored-by: Taylor Dolezal <[email protected]> Co-authored-by: Utkarsh Patil <[email protected]> Co-authored-by: codex <[email protected]>
… Activities (pingdotgg#23327) Fixes pingdotgg#15682. Takes over pingdotgg#23035. Co-authored-by: Taylor Dolezal <[email protected]> Co-Authored-By: Claude Opus 5.5 <[email protected]> (cherry picked from commit 96bae54) Upstream-PR: 23327
Problem
When another Live Activity shares the Dynamic Island, compact trailing status text wraps inside its narrow slot.
Inputbreaks intoInpu/t, and3 activewraps across two lines.Fixes #15682.
Change
Show the active count as bold black digits in a 28 pt circle using the existing phase tint. The circle separates the count from the T3 mark. Cap the visible count at
99+while retaining the actual total and singular/plural wording in its native accessibility label. Keep action and outcome labels such asInput,Approval,Done, andFailedon one line, with scaling when needed.Apple's Dynamic Island design session recommends essential compact information, rounded inset shapes with even margins, and an uncontained app mark. The count badge applies that guidance to the compact slot.
Scope and approval
This addresses the compact-slot rendering defect established in the issue's maintainer triage, which also identifies shorter compact copy as an option. The one-file change is local to iOS
compactTrailingand uses provider-independent activity props.Verification
A full iOS prebuild, pod install, Xcode build, and simulator install passed. Final layout changes kept the native fingerprint unchanged, and
mobile-native-client ensureaccepted the installed binary. Fresh ActivityKit activities verified the final native extension's pixels and accessibility labels.The native check used an iPhone 18 Pro simulator running iOS 27.0, with Xcode 27.1 and an actual second Live Activity from a disposable companion app. That activity is labeled
Testwith a timer glyph. The rebuilt app paired to an isolated backend. Controlled activity props test rendering rather than network delivery.Counts 1, 3, 12, 99, 123, and 1000 rendered in the final design. Both 123 and 1000 display
99+; native accessibility retains their full totals. Count 1 uses1 active agent. Input, Approval, Done, and Failed stayed on one line.node_modules/.bin/vp run check:changedpassed formatting, lint, knip, and mobile/scripts typechecks on the final one-file diff. This visual fix uses native captures as regression proof, as the repository requests for visual bugs. Temporary fixtures are absent from the diff.Physical iOS 27.0.1, single-activity visual behavior, landscape, reduced-luminance/tinted presentations, VoiceOver speech, and relay/APNs delivery remain unverified. The immediately stale fixture did not remain visible, so
Out of datewas not visually checked.All images and the recording are status-bar crops reviewed for personal information. They exclude personal paths, device/session IDs, connection details, credentials, full-screen captures, and original phone attachments.
The final capped count for 123 active agents displays
99+. Its native accessibility label remains123 active agents.This six-second continuous native recording shows the final circle with the second activity present. It has a constant 30 fps and contains no cuts or app switching. All 180 frames have the same circle bounds.
t3-15682-final-steady.mp4
Final native accessibility results
Each case has two native Live Activity roots. Matching text nodes and bounds are retained; runtime identifiers are omitted.
[ { "case": "count-1", "liveActivityCount": 2, "nativeText": [ { "type": "Other", "label": "1 active agent", "rect": { "height": 42, "x": 183, "width": 35, "y": 0 } } ], "displayedCount": "1" }, { "case": "count-3", "liveActivityCount": 2, "nativeText": [ { "type": "Other", "label": "3 active agents", "rect": { "width": 35, "height": 42, "y": 0, "x": 183 } } ], "displayedCount": "3" }, { "case": "count-12", "liveActivityCount": 2, "nativeText": [ { "type": "Other", "label": "12 active agents", "rect": { "x": 183, "y": 0, "height": 42, "width": 35 } } ], "displayedCount": "12" }, { "case": "count-99", "liveActivityCount": 2, "nativeText": [ { "type": "Other", "label": "99 active agents", "rect": { "x": 183, "y": 0, "height": 42, "width": 35 } } ], "displayedCount": "99" }, { "case": "count-123", "liveActivityCount": 2, "nativeText": [ { "type": "Other", "label": "123 active agents", "rect": { "y": 0, "x": 183, "width": 35, "height": 42 } } ], "displayedCount": "99+" }, { "case": "count-1000", "liveActivityCount": 2, "nativeText": [ { "type": "Other", "label": "1000 active agents", "rect": { "x": 183, "y": 0, "height": 42, "width": 35 } } ], "displayedCount": "99+" }, { "case": "input", "liveActivityCount": 2, "nativeText": [ { "type": "Other", "label": "Input", "rect": { "width": 35, "y": 0, "height": 42, "x": 183 } } ] }, { "case": "approval", "liveActivityCount": 2, "nativeText": [ { "type": "Other", "label": "Approval", "rect": { "x": 183, "width": 35, "y": 0, "height": 42 } } ] }, { "case": "done", "liveActivityCount": 2, "nativeText": [ { "type": "Other", "label": "Done", "rect": { "y": 0, "height": 42, "x": 183, "width": 35 } } ] }, { "case": "failed", "liveActivityCount": 2, "nativeText": [ { "type": "Other", "label": "Failed", "rect": { "x": 183, "y": 0, "height": 42, "width": 35 } } ] } ]Reproduce the native check
node scripts/mobile-native-client.ts ensure ios <simulator-id>, start Metro, and pair to an isolated worktree backend.apps/mobile/src/compactStatusFixture.tsand import it from the mobile entry point. Run the companion build script, install the resulting app, and start its second activity.t3code-dev://compact-status-fixture?phase=running&count=3, then return to SpringBoard. Repeat for 1, 12, 99, 123, and 1000. Usephase=input,approval,done, orfailedfor the labels. The disposable fixture URL can show Route not found in the app; its native activity is still created.phase=clear, end and uninstall the companion, remove the temporary source/import and simulator connection, and stop only your test processes.Disposable reproduction fixtures
These files stay outside the code diff. Use them only in a disposable simulator checkout, then remove them as described above.
compactStatusFixture.tsShared.swiftApp.swiftWidget.swiftApp-Info.plistWidget-Info.plistbuild-companion.shFinal focused check output
Made with GPT-6.1 Sol through the Codex harness in T3 Code.