Skip to content

merge: sync upstream through 08c715ed93 (v0.0.39 prepare) - #458

Merged
patroza merged 2 commits into
fork/devfrom
sync/upstream-08c715ed93
Sep 7, 2026
Merged

merge: sync upstream through 08c715ed93 (v0.0.39 prepare)#458
patroza merged 2 commits into
fork/devfrom
sync/upstream-08c715ed93

Conversation

@patroza

@patroza patroza commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Summary

Classic-merge upstream/main through 08c715ed93 (chore(release): prepare v0.0.39) into fork/dev.

This is the one commit that landed on upstream while #457 was merging. Version bump only (apps/desktop, apps/server, apps/web, packages/contracts0.0.39). No Blacksmith; origin/main stays branch-protected.

Land with gh pr merge --merge, never squash.

Test plan

  • Local changed-file vp check + vpr typecheck on push
  • Full ship gate via pnpm pr:ready
  • Required Fork CI green (Check, Test, Mobile Native Static Analysis, Release Smoke)

t3-code Bot and others added 2 commits September 7, 2026 06:53
Fold the release version bump onto fork/dev so the tree matches
current upstream/main.
@patroza
patroza marked this pull request as ready for review September 7, 2026 06:58
@patroza
patroza merged commit 1454613 into fork/dev Sep 7, 2026
8 of 11 checks passed
patroza added a commit that referenced this pull request Sep 7, 2026
## Problem

After a deploy/restart, `reconcileProviderSessions` resumes interrupted
threads by preparing the orchestration session as `starting` with
`activeTurnId: null`, then calling `sendTurn`. It previously left the
session in that starting state until the provider emitted
`turn.started`.

Codex resume (`thread/resume`) often does not emit `turn.started` until
the replacement turn finishes. Meanwhile `thread.queue.steer` refuses
with “still starting a turn”, so queued messages and Send now stay
blocked for the whole recovered turn.

This showed up after the #457/#458 upgrade: upstream `pingdotgg#10421` made
restart resume fire without requiring the directory `activeTurnId` to
match the projection turn, so more in-flight threads recover after a
service restart. The stuck-in-starting gap was already in fork recovery;
the update just made resume kick in.

## Fix

After a successful recovery `sendTurn`, dispatch `thread.session.set`
with `status: "running"` and `activeTurnId: result.turnId`. Prepare
still uses starting/null (short window). Failed `sendTurn` still settles
error.

## Test

`serverRuntimeStartup.reconcile.test.ts` now asserts both the prepare
`starting` sets and the post-`sendTurn` `running` sets with the admitted
turn ids.

---------

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant