Skip to content

feat(swift-ios): rewind conversations without restoring files - #11690

Merged
t3dotgg merged 10 commits into
t3code/rebuild-mobile-app-swiftfrom
t3code/swift-parity-history-rewind
Sep 14, 2026
Merged

t3dotgg merged 10 commits into
t3code/rebuild-mobile-app-swiftfrom
t3code/swift-parity-history-rewind

Conversation

@t3dotgg

@t3dotgg t3dotgg commented Sep 14, 2026 •

Copy link
Copy Markdown
Member

SwiftUI could not edit an earlier prompt while keeping file changes.

Add "Edit from here" to completed user messages and "Edit last prompt" to the thread menu. The confirmation keeps workspace files unchanged. A separate conversation-revert command lets older servers reject the action safely.

Save the prompt and copied attachments before rewind deletes their server copies. Wait for a completion event after command acceptance and confirm the final history with a server read. Then append the recovered input to the existing draft. Block sends for that thread during rewind, including across navigation. Keep the selected model and workspace.

Keep captured context and pasted-text attachment sources through recovery and resend. Context links stay unchanged, while their records point to the new attachment copies. Check the combined context limit before changing history.

If the reply is lost, keep a durable recovery draft across app restart. "Recover saved prompt" restores that input locally without sending another rewind. Recovery cannot consume a backup with missing attachment files.

The central native run passed 117 tests with no failures, covering conversation rewind, root state, and draft storage. Tests include command and checkpoint boundaries, failure events, send locking, app restart recovery, context and attachment sources on resend, and missing or incomplete attachment files. CI passes. UI evidence is being collected centrally with the other SwiftUI parity changes. No real thread was used for rewind verification.

Created with Codex.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Sep 14, 2026
Comment thread apps/swift-ios/App/NativeConversationRewind.swift Outdated
Comment thread apps/swift-ios/Features/Root/FeatureRootModel.swift
Comment thread apps/swift-ios/Features/Root/FeatureRootModel.swift
Comment thread apps/swift-ios/Features/Shared/FeatureConversationRewind.swift Outdated
@github-actions

github-actions Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire — 13.6 KiB — 15.1 KiB ✅
Codex Thread snapshot wire — 7.1 KiB — 7.3 KiB ✅
Codex Live turn WebSocket wire — 6.5 KiB — 7.8 KiB ✅
Codex Live turn WebSocket decoded — 57.0 KiB — 66.4 KiB ✅
Codex Live turn messages — 8 — 21 ✅
Claude Total thread wire — 13.6 KiB — 15.1 KiB ✅
Claude Thread snapshot wire — 7.1 KiB — 7.3 KiB ✅
Claude Live turn WebSocket wire — 6.5 KiB — 7.8 KiB ✅
Claude Live turn WebSocket decoded — 57.9 KiB — 66.4 KiB ✅
Claude Live turn messages — 10 — 21 ✅

Baseline: unavailable · PR result: a777440 · Source CI: success

Scenario and decoded snapshot size

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

  • Codex decoded thread snapshot: 113.9 KiB
  • Claude decoded thread snapshot: 114.6 KiB

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

Comment thread apps/swift-ios/App/NativeFeatureClient.swift Outdated
@macroscopeapp

macroscopeapp Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new iOS workflow that rewinds server conversation history, copies attachments for recovery, and coordinates asynchronous command confirmation and draft restoration. Its production-side effects and cross-layer state management are substantial enough to require human review.

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

@t3dotgg
t3dotgg force-pushed the t3code/swift-parity-history-rewind branch from ca3fafe to fabe2b0 Compare September 14, 2026 04:37
Comment thread apps/swift-ios/Features/Shared/FeatureComposerDraftStore.swift Outdated
@cursor

cursor Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@github-actions github-actions Bot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Sep 14, 2026
Comment thread apps/swift-ios/Features/Shared/FeatureComposerDraftStore.swift Outdated
@cursor

cursor Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@t3dotgg
t3dotgg force-pushed the t3code/swift-parity-history-rewind branch 2 times, most recently from 84dfa1b to cea8809 Compare September 14, 2026 04:56
@t3dotgg
t3dotgg force-pushed the t3code/swift-parity-history-rewind branch from cea8809 to a777440 Compare September 14, 2026 05:08
@t3dotgg
t3dotgg merged commit dedef8d into t3code/rebuild-mobile-app-swift Sep 14, 2026
24 checks passed
@t3dotgg
t3dotgg deleted the t3code/swift-parity-history-rewind branch September 14, 2026 05:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant