Skip to content

fix: restore worktree follow-up sends and deferred spec checks - #3239

Merged
nonoqing merged 1 commit into
mainfrom
codex/fix-worktree-follow-up-workspace
Sep 28, 2026
Merged

nonoqing merged 1 commit into
mainfrom
codex/fix-worktree-follow-up-workspace

Conversation

@nonoqing

Copy link
Copy Markdown
Collaborator

Summary

Fix follow-up messages in worktree-isolated sessions. Backend readiness, empty-session recreation, and send retries now use the owning project's workspace ID; turn execution keeps the worktree ID and directory.

Update three tool-pipeline assertions left behind by the GetToolSpec wording change in #3238, which caused its Rust library tests and aggregate validation check to fail.

Type and Areas

Type: bug fix / regression test / CI test repair.

Areas: Web UI session lifecycle; Rust core tool-pipeline tests.

Motivation / Impact

The first message creates and binds the managed worktree after checking the original project. On the second message, readiness previously looked up the worktree's execution ID in the opened/recent workspace catalog and failed with Workspace ID is unavailable. The owning project is already the established address for session state, and the worktree execution record need not be open.

The same identity correction covers backend recreation and retry. Existing sessions retain their execution binding, and unavailable project records still produce an explicit error.

Verification

  • pnpm --dir src/web-ui exec vitest run --maxWorkers=50% src/flow_chat/services/flow-chat-manager/SessionModule.test.ts src/flow_chat/services/flow-chat-manager/MessageModule.test.ts src/flow_chat/session-drivers/local/LocalSessionDriver.test.ts src/flow_chat/utils/sessionOrdering.test.ts: 127 passed. The added readiness/recreation regressions failed on the original code. Coverage includes direct and queued follow-up submission, legacy config identities, Peer surface mocks, SSH routing mocks, and missing-project rejection.
  • cargo test --locked --offline -p openbitfun-core --no-default-features --features agent-runtime,git --lib agentic::tools::pipeline::tool_pipeline::tests: reproduced the same three failures as fix: handle compacted tool specs and paused cron badges #3238 before the assertion update; 49 passed afterward.
  • pnpm run check:web: passed after generating the standard Monaco assets and API bindings.
  • pnpm run fmt:rs, git diff --check, and node scripts/check-git-object-sizes.mjs --base upstream/main --head HEAD: passed.

Reviewer Notes

AI-assisted; tested with focused automated suites. No live desktop or remote end-to-end test was run. Remote workspace and Peer Device behavior are covered by mocks; Remote Control and Detached Dispatch were not exercised. No persisted format or wire-protocol change.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable (no copy changes).

@nonoqing
nonoqing merged commit a0d4437 into main Sep 28, 2026
12 checks passed
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