# fix: reconcile main's round-10 features after the rebase · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/commit/fca1f3dab227a5dc2b1ff52522031e5adf84a516)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

Requested revision: fca1f3dab227a5dc2b1ff52522031e5adf84a516

Requested commit: fca1f3dab227a5dc2b1ff52522031e5adf84a516

Commit: fca1f3dab227a5dc2b1ff52522031e5adf84a516

Tree: 88f920a6558c2f3c003babb0bad39afa03f5a85f

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
fix: reconcile main's round-10 features after the rebase

Ten days of main (194 commits, 640 files) re-integrated with the v2
re-architecture. The headline mechanics:

- migrations: main added 041-043 (AuthSessionClientConnection,
  ProjectionThreadLinkedPullRequest, ProjectionThreadsUnsettledAt), so the
  v2 block renumbers 041-049 → 044-052 with the migration tests shifted to
  match
- contracts: OrchestrationClientOrigin (#7774) and the origin metadata
  field live in applicationEvent.ts and re-export through the legacy
  path; ProviderApprovalOption + acceptAlways + mcp-elicitation (#8058)
  land in providerPolicy.ts; OrchestrationDispatchCommandError (#8824)
  added; the send-turn image-mime home stays chatAttachment.ts
- threadSettled: main's settle-once-on-merge semantics (#7454) and
  un-settle re-anchor (#8231) hand-merged onto the v2 duck-typed shells
  (latestRun ?? latestTurn reads); web callers pass the new
  ChangeRequestSettleSource shape
- timeline anchoring: main's #7897 (follow-up sends no longer push to the
  top) ported by scanning user rows only; the branch test now encodes the
  new semantics, as does mobile's #7969 settled-pinned shelf behavior
- vcs: branch's deleteLocalBranch coexists with main's pruneWorktrees and
  the #7674 submodule checkout tests
- ws: v2 RPC surface keeps its dispatch path; main's attachment upload
  RPCs (#8048) and client-connection analytics recording are wired;
  providerUploadFeedback (#7949) fails explicitly pending a v2 route
- approvals: main's option-driven approval buttons (#8058) render through
  the v2 canRespond gate on web and mobile
- ChatView/ChatComposer/MessagesTimeline/Sidebar/session-logic/
  threadActivity keep the branch's v2 architecture; main's v1-coupled
  deltas to those files are recorded for follow-up rather than
  force-fitted

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

```

## Parents

- [002c96295f742d043c4484f078e3c96fb7a9c6c3](https://git.cafe/pingdotgg/t3code/commit/002c96295f742d043c4484f078e3c96fb7a9c6c3?format=markdown)

[Source at this commit](https://git.cafe/pingdotgg/t3code/tree/fca1f3dab227a5dc2b1ff52522031e5adf84a516?format=markdown)
