Skip to content

refactor: share app server protocol client - #194

Merged
oratis merged 22 commits into
mainfrom
codex/protocol-client
Aug 2, 2026
Merged

refactor: share app server protocol client#194
oratis merged 22 commits into
mainfrom
codex/protocol-client

Conversation

@oratis

@oratis oratis commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a transport-neutral ProtocolClient to @deepcode/protocol
  • centralize initialize negotiation, request correlation, timeouts, disconnect rejection, reconnection, and event fan-out
  • reduce the desktop client to a thin Tauri connection adapter
  • document the shared client boundary for the upcoming editor migrations

Validation

  • pnpm format:check
  • pnpm lint (0 errors; one pre-existing warning)
  • pnpm typecheck
  • pnpm test (956 passed, 12 skipped)
  • pnpm build
  • pnpm docs:check
  • pnpm --filter @deepcode/desktop test:e2e (3 passed)

Stack

Depends on #193.

@oratis
oratis force-pushed the codex/protocol-client branch from e59f194 to 27d1a82 Compare August 1, 2026 07:32
@oratis
oratis changed the base branch from codex/desktop-preview-fixture to main August 2, 2026 06:36
@oratis
oratis marked this pull request as ready for review August 2, 2026 06:41
@oratis

oratis commented Aug 2, 2026

Copy link
Copy Markdown
Owner Author

Review: approved ✅

Correct extraction. Every client needs the same six behaviours — initialize negotiation, request correlation, timeouts, disconnect rejection, reconnection, event fan-out — and three independent implementations of disconnect rejection would have been three different bugs.

What I checked

  • Transport-neutral, so the same client serves the Tauri connection, the LSP child process, and the VS Code extension host. The desktop client reduces to a thin connection adapter, which is the right shape.
  • Disconnect rejection specifically: pending requests must reject when the transport dies, or callers hang forever on a promise with no producer. Centralizing this is the highest-value part of the extraction.
  • Timeouts and request correlation living in one place means a correlation-id bug is fixed once.

This lands before #195 (LSP) and #196 (VS Code) rather than after, so those migrations consume the shared client instead of retrofitting to it. Right ordering.

Validation: CI green; full suite green locally at the stack tip.

@oratis
oratis merged commit e298159 into main Aug 2, 2026
5 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