Skip to content

Converge workspace RPC handlers and streams onto upstream (phase d) - #106

Merged
henrychu04 merged 1 commit into
coder-onlyfrom
t3code/converge-upstream-ws-handlers
Oct 6, 2026
Merged

henrychu04 merged 1 commit into
coder-onlyfrom
t3code/converge-upstream-ws-handlers

Conversation

@henrychu04

Copy link
Copy Markdown
Owner

The workspace RPC handlers had drifted from upstream in bootstrap sequencing, archive cleanup, clone identity, server-generated command attribution, and stream behavior. This converges coderWs.ts, its stream contracts, and client consumers on upstream 024d49520e, while preserving the helper stdio transport and CoderWsRpcGroup method set.

Restores upstream shell/thread coalescing, persisted replay validation and byte limits, optional completion markers, capability negotiation, full providerStatuses updates, gated environment themes, and client reducers. Bootstrap now records setup activities and preparing state, archiving closes thread terminals, clone completion refreshes repository identity, and helper-generated commands use upstream server: IDs.

Retained Coder seams are marked in code and documented in docs/internals/coder-only.md: workspace-owned stdio execution, GitLab-only routing and write policy, bounded snapshots and file/media operations, API-only config, omitted telemetry/auth/desktop protocols, and memory-only idle retention capped at 24 threads / 64 MiB. Unsupported upstream methods remain omitted. Shared behavior follows upstream, including preserving a worktree after a non-cancel bootstrap failure.

PR #105 is already merged; this PR explicitly targets coder-only. Its latest GitLab write-probe header change is preserved by the clean merge preview. No code from Orchestrator v2 or later was used.

Validation

  • Independent handler-by-handler comparison against 024d49520e; live budget and thread coalescer match upstream byte-for-byte.
  • Server, helper, web, gateway, contracts, shared, and client-runtime typechecks passed.
  • Server: 185 files / 2,168 tests passed. Client-runtime: 55 files / 1,127 tests passed. Wire contracts: 3 tests passed.
  • Helper/web production build, changed-file formatting, and git diff --check passed.
  • Differential real-helper stdio E2E against parent 88af4b2bdc, using real Git and an SSH-served bare remote with scripted glab/Claude: original harness has 30 observations with zero differences; extended harness has 16 observations with ten expected upstream-parity differences.

The ten extended differences cover three config observations (advertised capabilities, themes excluded from snapshots, full provider arrays), three bootstrap observations (sequence 7 to 10 from additional durable records, upstream checkout/submodule progress, requested/started setup activities), buffered live events draining before the synchronization marker, terminal cleanup on archive, refreshed clone identity, and server command IDs/actors. The temporary baseline worktree was removed.

Live Windows gateway / Linux Coder smoke testing remains a follow-up. The separately queued cache-layer audit is outside this PR.

@coderabbitai

coderabbitai Bot commented Oct 6, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 9e7c077a-4349-4994-bb20-0a326c9e4ad1
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@henrychu04
henrychu04 merged commit f92a28e into coder-only Oct 6, 2026
1 check 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