Repository navigation
swift: parity with upstream aacefcd7e9..a908a7ac87 - #403
Merged
Merged
Conversation
…eam aacefcd7e9..a908a7ac87) Ports upstream 2a4ee33982. Settings → Microphone ranks microphone kinds (wired, Bluetooth, built-in, CarPlay) and wired/Bluetooth devices remembered by name after dictating with them. Voice capture now lists Bluetooth HFP inputs and routes the session to the first connected entry before the engine resolves its input format. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ial (parity with upstream aacefcd7e9..a908a7ac87) Ports upstream ec43786140. A superseded attempt whose last output is an assistant reply that completed before the steer stamped the attempt's completedAt stays in the timeline instead of folding as partial output, and a turn fold keeps that reply visible. The fold row now reads "Cut off by a steer". Decodes the run attempt's existing completedAt field. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…with upstream aacefcd7e9..a908a7ac87) Ports upstream 1cfd1c1a44. Expanding or collapsing a turn or superseded- attempt fold while reading the end of the transcript now keeps the end in view instead of anchoring the first visible row and leaving the reader stranded above the latest message. Toggles made higher up still hold the visible rows in place. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…acefcd7e9..a908a7ac87) Ports upstream a908a7ac87. Home search now matches the pull request the thread's branch has open (#number, owner/repo#number, URL) alongside explicitly linked ones, so a thread is found by its PR before anyone links it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…arity with upstream aacefcd7e9..a908a7ac87) Ports upstream 72fbad7b1a. New Task now decodes the server config's existing newProjectsRoot and, for a project directly inside it that has no thread yet, defaults to the project checkout instead of a new worktree even when the server's default is worktree. Only that default changes; a mode the user picks or a restored draft still wins. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… upstream aacefcd7e9..a908a7ac87) Ports upstream 0f36a11769. Diff counts in work rows, review, source control, checkpoints, PR rows, thread details, and the activity inspector all format through DiffCount.format, so 83065 reads 83,065 everywhere. Before, SwiftUI grouped digits in Text literals but verbatim labels and built strings showed raw numbers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…stream aacefcd7e9..a908a7ac87) Ports upstream a7223f3969. An agent-authored prompt whose creationSource is "server" (a restart continuation T3 Code sends itself) now reads "Sent by T3 Code" with no sender link, instead of "Sent by another agent". Older servers never send the field, so their messages render as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…h upstream aacefcd7e9..a908a7ac87)
Ports upstream 8c777fbfad. A Claude-native subagent whose projection row
carries a strong native task handle and a run id now offers Stop while its
task is live; Stop sends subagent.stop {threadId, runId, subagentId} to the
owning thread instead of interrupting the child thread, so the owner's run
keeps working. T3-owned subagents still stop by interrupting their child.
Decodes the subagent's existing runId and nativeTaskRef fields.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… upstream aacefcd7e9..a908a7ac87) Ports upstream c572cb71d2. A subagent edge now takes the child thread's status while it has a live run, or once its shell names a latest run of its own (a follow-up the parent sent after the delegated task settled), and a rolled-back child reads as interrupted. Without either, the task's status still speaks for the child, as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…th upstream aacefcd7e9..a908a7ac87) Ports the client half of upstream 477282263a. While the thread's live shell is preparing or starting, a follow-up goes out as a queue_after_active dispatch, even when the composer would steer, so the server can hold it if the setup ends without a worktree. The expectedEmpty branch guard has no iOS counterpart: iOS never writes an automatic branch default to an existing thread. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ith upstream aacefcd7e9..a908a7ac87) Ports upstream c727d1219f. The context window reads the newest live usage report by updatedAt rather than the last provider turn in snapshot order, and the compact-before-send offer uses the report's optional promptCacheTtlMs (1h or 5m) instead of the fixed 70-minute idle time, which stays the fallback for older servers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ws (parity with upstream aacefcd7e9..a908a7ac87) Ports upstream 0be20c86c2 and the client half of 716357cbba. Limit accounts are keyed by email plus the optional auth/source workspaceId, so one email in two workspaces counts as two accounts; a report without a workspace joins the only workspace known for its email, and stays separate when there are several. Codex windows pool by kind, since its ids are slots. Antigravity accounts list each model group's windows together, Gemini first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… upstream aacefcd7e9..a908a7ac87) Ports upstream 9b40d37463 and c3243f0508. Pull request list rows offer only the quick actions their host summary reports in the optional PullRequestProviderSummary.actions; servers without it keep GitHub's old set. A host's per-item answers now win where present: canEdit on comments and thread comments, editChangeRequest for the title and description, and a thread's canResolve, which can only narrow the repository-wide resolve permission. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings the native iOS app (
apps/swift-ios) up to the user-visible behavior thatsync: upstream aacefcd7e9..a908a7ac87 (122 commits)(#402) added on web and Expo. One commit per feature.Verification:
xcodebuild build-for-testing(schemeT3Code, Debug,generic/platform=iOS Simulator, Xcode-beta,CODE_SIGNING_ALLOWED=NO) compiles the app and theT3CodeTeststarget at every commit.generate-swift-contract-fixtures.ts --checkis up to date. Tests were not run locally (no simulator runs in this pass); the Native iOS CI job runs them.Implemented
a7223f3969Restart continuations read "Sent by T3 Code". Agent-sent messages whosecreationSourceisserverare attributed to T3 Code (no sender link), not to "another agent".8c777fbfadStop a Claude subagent without stopping its owner. Stop on a live Claude-native subagent sendssubagent.stopto the owning thread. The gate matches web'scanStopSubagent: Claude driver, a native task handle with an id, and a live task. T3-owned subagents still stop by interrupting their child thread.c572cb71d2Subagent rows follow the child's live work. A resumed follow-up shows as running again, and a rolled-back child shows as interrupted.477282263aMessages sent during worktree setup queue behind it instead of steering while the thread is preparing or starting.c727d1219fCompact-first follows Claude's real prompt cache TTL. It uses the newest usage report and the optionalpromptCacheTtlMs, with the 70-minute rule as the fallback for older servers.0be20c86c2+716357cbbaUsage limits. Accounts are keyed by email plus the optionalworkspaceId, so one email in two workspaces is two accounts. A report without a workspace joins its email's only workspace. Codex windows pool by kind. Antigravity's new quota groups stay together, Gemini first.9b40d37463+c3243f0508PR actions and edits follow the host. List quick actions offer only what the host reports (older servers keep GitHub's set). Per-itemcanEdit,editChangeRequestandcanResolvewin where present;canResolvecan only narrow.ec43786140A reply that finished before a steer replaced it isn't folded away as partial. The fold reads "Cut off by a steer".1cfd1c1a44Toggling a fold at the bottom keeps you at the bottom. iOS had the same bug.a908a7ac87Search finds threads by their branch PR (#n,owner/repo#n, or URL).72fbad7b1aA new project's first thread starts in its folder, not a worktree, when the server-wide default is worktree.0f36a11769Diff line counts use one formatter with digit grouping everywhere.2a4ee33982Settings → Microphone. Rank wired, Bluetooth, built-in and CarPlay mics, plus remembered devices. Recording picks the first connected one.Tests added:
MicrophonePriorityTests,ThreadTimelineStructureTests,DailyUXSidebarTests,DailyUXNewTaskTests,ThreadRelationshipRowsTests,ComposerRequestsParityTests,ClaudeResumeCompactionTests,UsageLimitsMergeTests,PullRequestQuickActionTests,PullRequestEditingTests.Skipped
02612c2856(image-only task): already works on iOS.d404a30118(iPad pairing QR): a React Native sheet remount bug; iOS has its own scanner.57b3780770(browser picture in picture): iOS has no browser preview stream.a1dee8b2b3,a2f4c7fb7c(usage reset icon, working pill bulge): the defects don't exist on iOS.91474e56f6(question auto-advance): iOS has no delay timer and re-checks the question before advancing.a70ee2a7a0(Resume model): iOS has no manual-continuation Resume.29e09df979,0ecb25a8d4,d02e292610: web dialog and selection layout fixes. iOS uses a system alert, a full-screen viewer, and per-row selection.477282263aauto-branchexpectedEmpty: iOS only picks a branch at thread creation, never as an automatic default on an existing thread.a4c8745abe(publish new projects to GitLab): iOS has no "new project from a name" flow.a8bdfdb541(Claude 5 task lists), subagentmodelSelection, andoom_killfailures: already rendered correctly.run.delegatedTaskId, Pi usage history: no iOS screen reads them. Providers decode as strings, so nothing breaks.0442f5bfcc(filesystem.getMetadatafile icons): would need a client metadata cache for little phone benefit.6c13016394(thread links wait for a live shell): iOS already holds a thread request until the thread arrives.7b09ac7e00("OpenCode Zen" label): iOS shows the sub-provider alone, so there's no duplication.Decision log
subagent.stop, and web gates only on the subagent's fields. An older server rejects the command and the existing "Couldn't Stop Subagent" alert shows.promptCacheTtlMs,workspaceId, PR permissions, hostactions, subagentrunId/nativeTaskRef), so older servers behave as before.status, which mirrors the run's state during a live run.swift/parity-2026-10-11.Follow-ups (issues are disabled on this repo, so they are tracked here)
#nlabel; iOS rows only show PR status.subagent.stop, gate Stop on it.🤖 Generated with Claude Code