Skip to content

fix(session): surface cross-process writer conflicts - #1854

Merged
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/session-conflict-ux
Jul 29, 2026
Merged

fix(session): surface cross-process writer conflicts#1854
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/session-conflict-ux

Conversation

@limityan

Copy link
Copy Markdown
Collaborator

Summary

  • present the existing cross-process session writer conflict consistently in Embedded/Shared TUI, Desktop, Peer Host, and headless output
  • keep session history readable while a different BitFun instance owns writes, with an explicit one-shot Retry action in the GUI
  • preserve newer sends, turns, and composer edits when an older request or retry completes late
  • document the existing ownership boundary without changing ACP, SDK, Runtime IPC, or session storage contracts

Product boundary

  • no automatic waiting, retry loop, writer takeover, or controller transfer
  • no new session ownership protocol or error envelope
  • no change to read-only session history
  • no ACP or Agent SDK behavior change

Verification

Area Result
Workspace compile cargo check --workspace passed
Desktop cargo test -p bitfun-desktop - 194 passed
Session writer lock cargo test -p bitfun-services-core --test session_write_lock_contracts - 10 passed
CLI conflict contracts Embedded/Shared diagnostics, JSON, stream-json, and Runtime IPC conflict tests passed
Headless CLI integration cargo test -p bitfun-cli --test exec_cli_contracts - 15 passed
Web focused paths 78 passed across message/session/draft/error/notification/Peer tests
Web type and lint type-check:web and lint:web passed
i18n contract 37 passed; audit passed with 0 warnings
Architecture/repository guards core boundaries and repository hygiene passed

Two current-main Windows baseline issues remain outside this diff:

  • full CLI: 412 passed and 4 tests from feat(dispatch): add detached SSH task execution (#1850) failed; the first failing test was reproduced by itself on an independent clean gcwing/main@6e3d0ef59 worktree with the same os error 5
  • full Web: 2346 passed and the unchanged RemoteConnectDialog.contract.test.ts failed because it hard-codes LF while the Windows checkout source uses CRLF

This PR does not modify either failing area.

@limityan
limityan merged commit ca56631 into GCWing:main Jul 29, 2026
7 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