Skip to content

Generate and verify seven cmux-tui SDKs - #8991

Merged
lawrencecchen merged 18 commits into
mainfrom
feat-tui-sdk-stack
Aug 10, 2026
Merged

lawrencecchen merged 18 commits into
mainfrom
feat-tui-sdk-stack

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Jul 27, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Generate exact protocol-10 types, codecs, commands, events, compatibility metadata, and manifests for Python, TypeScript, Rust, Go, Java, C++, and Zig.
  • Keep transport, concurrency, lifecycle, stream, error, and convenience APIs handwritten and idiomatic per language.
  • Add deterministic atomic generation with manifest-owned stale cleanup and two-pass output comparison.
  • Add seven independent consumers: agent dashboard, watchdog, CI orchestrator, terminal bot, terminal frontend, browser controller, and provider controller.
  • Preserve omitted, explicit-null, and concrete-value semantics across every generated model.
  • Add package, consumer, publishing, and shared conformance CI for SDK version 0.4.0.

This is stacked on PR 8856 by Lawrence Chen, which remains open and unmerged.

Verification

  • 27 inventory tests and exact 83-command, 44-event parity
  • 9 schema tests and exact 74-type schema parity
  • 44 generator tests plus clean deterministic generation for all seven SDKs
  • Seven package matrices, including race, lint, documentation, installed-package, and external-consumer checks
  • Seven independent application simulations using only public SDK APIs
  • 11 conformance-harness tests
  • 266/266 shared checks: 34 fake cases, metadata coverage, and 3 live TUI cases per language
  • Exact headless cmux-tui build with Rust 1.95
  • actionlint and diff checks

Dependencies

Python, TypeScript, Go, Java, C++, and Zig use only standard-library or platform runtime facilities. Rust uses serde, serde_json, and libc. Generation is a repository build tool and is not a consumer dependency.

Protocol follow-ups

Agent state events, typed terminal completion, mutation idempotency and revision guards, resumable stream checkpoints, stable machine-readable error codes, and browser frame encoding require protocol additions rather than SDK-only helpers.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

Generates exact protocol-10 wire layers and manifests for seven cmux-tui SDKs and verifies them with a deterministic cross-language suite; CI builds, tests, and publishes 0.4.0. Replaces sleep-based timing with readiness hooks and selector-driven I/O so timeouts, partial-frame assembly, and close-unblock behavior are consistent; Java now uses separate read/write selectors, one per-command deadline across send/receive and stream reads, interrupt-aware writes, and closes on write failure.

  • New Features

    • Deterministic SDK generator with IR validation and drift checks; cross-language conformance runner and clean, portable SDK consumers with cmux-client bumped to 0.4.0.
    • Unified CI workflows build all SDKs, run per-language conformance, and publish with a shared version checker.
  • Bug Fixes

    • Deterministic wait hooks across SDKs: Java JsonLineConnection.receive(…, Runnable), CmuxStream.next(timeout, Runnable) with a preserved Deadline across messages, and CmuxClient.rawRequest(…, Runnable); Python transport _recv(before_wait=…) and stream _next(before_wait=…); C++ UnixTransport::set_before_receive_wait_for_testing with a waiting-receivers counter and idempotent signal.
    • Java transport uses read/write selectors with selector-driven writes, wakeups on close, explicit interrupted-write handling, closes on write failure, and binds commands and stream reads to one computed deadline across send/receive.
    • Tests replace sleeps with latches/promises and mocked timers; add deterministic partial/oversized frame checks; fix Java lifecycle tests.

Written for commit 1a0aeac. Summary will update on new commits.

Review in cubic


Note

Medium Risk
Changes core socket read/write and deadline behavior in Java and shared transport layers across bindings; scope is bounded by expanded lifecycle tests but incorrect deadline or selector handling could affect timeouts and close semantics in production clients.

Overview
Replaces sleep-based timing in C++, Java, Python, and TypeScript SDK tests with readiness hooks so lifecycle tests can assert close-unblock, partial frames, and timeouts without flakes.

Java JsonLineConnection now uses separate read and write selectors, a shared Deadline across send and receive for one command, selector-driven writes (no Thread.sleep spin), wakeups on close, and closes the connection on write failure. CmuxClient.rawRequest and CmuxStream.next gain package-private beforeWait runnables invoked immediately before blocking on the socket.

C++ UnixTransport adds a CMUX_CPP_TESTING hook before poll on receive; fake transports count waiting receivers. Python mirrors this with _recv / _next(before_wait=…) on the transport and stream paths.

TypeScript client tests use mock timers and deferred promises instead of racing real timeouts on stream idle behavior.

Reviewed by Cursor Bugbot for commit 1a0aeac. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • Bug Fixes

    • Improved connection read and write coordination across C++, Java, and Python bindings.
    • Improved timeout and deadline handling for complete requests and responses.
    • Improved handling of partial messages, stream closure, interrupted waits, and connection shutdown.
    • Preserved unbounded stream behavior by default while maintaining explicit idle timeouts.
  • Tests

    • Replaced timing-dependent lifecycle checks with deterministic synchronization.
    • Expanded coverage for blocked reads, cancellation, partial frames, oversized requests, and close behavior.

@greptile-apps

greptile-apps Bot commented Jul 27, 2026 •

Copy link
Copy Markdown
Contributor

Too many files changed for review (591 files, 100 file limit).

@coderabbitai

coderabbitai Bot commented Jul 27, 2026 •

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The change adds pre-receive-wait hooks, separates Java read and write selectors, replaces timing-based waits with deadline-aware selection, and updates lifecycle tests across C++, Java, Python, and TypeScript to use deterministic synchronization.

Changes

Receive synchronization

Layer / File(s) Summary
C++ receive hooks and synchronization
cmux-tui/bindings/cpp/include/cmux/transport.hpp, cmux-tui/bindings/cpp/src/unix_transport.cpp, cmux-tui/bindings/cpp/tests/*
UnixTransport exposes a testing-only pre-wait hook. C++ tests synchronize on blocked receives, partial writes, and transport closure.
Java selector and pre-wait flow
cmux-tui/bindings/java/src/com/cmux/raw/*
JsonLineConnection uses separate read and write selectors, shared deadlines, pre-wait callbacks, and selector-based write waits. Client and stream operations pass callbacks into receive operations.
Java lifecycle synchronization
cmux-tui/bindings/java/tests/com/cmux/raw/LifecycleTest.java
Lifecycle tests use latches and request-receipt signals instead of fixed delays.
Python receive callbacks and lifecycle tests
cmux-tui/bindings/python/cmux/raw/*, cmux-tui/bindings/python/tests/test_lifecycle.py
Streams pass optional pre-wait callbacks to JsonLineConnection.recv. The reader lifecycle test synchronizes on reader startup.
TypeScript deterministic client tests
cmux-tui/bindings/typescript/test/client.test.ts
Client tests use deferred promises, settlement tracking, mocked timers, and request signals instead of event-loop delays.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CmuxStream
  participant JsonLineConnection
  participant readSelector
  participant Socket
  CmuxStream->>JsonLineConnection: receive(deadline, beforeWait)
  JsonLineConnection->>JsonLineConnection: invoke beforeWait
  JsonLineConnection->>readSelector: select(deadline)
  readSelector->>Socket: wait for readable data
  Socket-->>readSelector: readable data
  readSelector-->>JsonLineConnection: readiness
  JsonLineConnection-->>CmuxStream: decoded event
Loading
🚥 Pre-merge checks | ✅ 24 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (24 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Swift Actor Isolation ✅ Passed The PR diff contains only C++, Java, Python, and TypeScript binding changes; no production Swift files are changed, so the Swift actor-isolation check is not applicable.
Cmux Swift Blocking Runtime ✅ Passed The PR diff contains no changed Swift files; all changes are in cmux-tui C++, Java, Python, and TypeScript files, so it adds no Swift blocking or timing primitive.
Cmux Browser Automation Off-Main ✅ Passed The PR diff changes only cmux-tui binding files; TerminalController, worker policy, and policy tests are unchanged. No browser socket automation routing change is present.
Cmux Expensive Synchronous Load ✅ Passed The PR diff from origin/main contains no Swift files or Swift hunks; it changes only C++, Java, Python, TypeScript, and C++ header binding files.
Cmux Cache Substitution Correctness ✅ Passed The PR diff contains no production Swift, TypeScript, or JavaScript files; its only TypeScript change is the test file cmux-tui/bindings/typescript/test/client.test.ts.
Cmux No Hacky Sleeps ✅ Passed The only changed TS/JS/shell/build path is a TypeScript test; its mock timers and deferred promises are deterministic test scaffolding allowed by the rule.
Cmux Algorithmic Complexity ✅ Passed The full PR diff has no production Swift/TypeScript/JavaScript/shell changes; runtime edits add socket wait hooks and deadlines, not nested or repeated scalable-collection scans.
Cmux Swift Concurrency ✅ Passed The complete PR diff changes only C++, Java, Python, and TypeScript files; it introduces no cmux-owned Swift code or Swift concurrency patterns.
Cmux Swift @Concurrent ✅ Passed The PR diff contains 12 changed files, all in C++, Java, Python, or TypeScript; it contains no Swift changes, so this Swift-specific check is not applicable.
Cmux Swift Package Boundaries ✅ Passed The PR-range diff contains no Swift paths or app-target Swift logic; its only related change is a vendored Ghostty submodule pointer, which the rule allows.
Cmux Swiftpm Lockfiles ✅ Passed The merge-base diff changes only C++, Java, Python, and TypeScript transport/tests; no Package.swift, Package.resolved, .gitignore, Xcode project, workflow, or dependency paths changed.
Cmux Swift Logging ✅ Passed The full origin/main...HEAD diff changes 12 C++, Java, Python, and TypeScript files, with no Swift files or Swift logging lines added or materially changed.
Cmux User-Facing Error Privacy ✅ Passed The production diff adds only generic transport/deadline messages and test hooks; it adds no vendor names, secrets, headers, payload dumps, or raw upstream text, and existing command-error propagat...
Cmux Full Internationalization ✅ Passed The PR changes only C++, Java, Python, and TypeScript transport/test code; it adds no Swift UI/catalog or web UI, metadata, markdown, changelog, or locale-message changes.
Cmux Swiftui State Layout ✅ Passed The PR diff against its target-branch base contains only C++, Java, Python, and TypeScript files; it has no Swift or SwiftUI changes, so this check is not applicable.
Cmux Architecture Rethink ✅ Passed The full PR diff changes only C++, Java, Python, and TypeScript files; it contains no Swift files or Swift architectural changes covered by this rule.
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed The PR diff from base contains 12 files, all under cmux-tui; no Swift, NSWindow, NSPanel, WindowGroup, or shortcut changes are present.
Cmux Source Artifacts ✅ Passed The PR changes 12 intentional C++, Java, Python, and TypeScript source/test files under cmux-tui/bindings; no artifact directories, logs, media, caches, build output, or copied artifacts enter the...
Cmux No Test Or Debug Seam In Production Source ✅ Passed The aggregate PR diff contains no Swift files under any production Sources path, so this Swift-specific check is not applicable.
Cmux No Ambient Global State ✅ Passed The PR diff contains no Swift files or Swift declarations; all listed changes are C++, Java, Python, or TypeScript, so the Swift-only rule does not apply.
Title check ✅ Passed The title clearly summarizes the primary objective: generating and verifying seven cmux-tui SDKs.
Description check ✅ Passed The description provides a detailed summary and extensive verification results, but omits the template checklist, review trigger, and demo video sections.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat-tui-sdk-stack

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.

@cubic-dev-ai

cubic-dev-ai Bot commented Jul 27, 2026

Copy link
Copy Markdown

This PR has 56,219 reviewable changed lines after ignored/generated files are excluded, above cubic's default 50,000-changed-line automatic review limit. The raw diff is 118,899 lines before ignored/generated files are excluded.

Most of the diff comes from:

  • cmux-tui/bindings/go/generated_commands.go (~9,338 changed lines)
  • cmux-tui/bindings/go/generated_types.go (~3,361 changed lines)
  • cmux-tui/bindings/python/cmux/_generated/models.py (~2,069 changed lines)
  • cmux-tui/bindings/codegen/emit_go.py (~1,881 changed lines)
  • cmux-tui/bindings/go/generated_events.go (~1,721 changed lines)

Comment @cubic-dev-ai review this to review it anyway. If the largest files are generated or fixture data, add them to your ignored files in review settings or ignorePatterns in cubic.yaml - cubic will then review the rest automatically. You can also raise this limit in review settings.

@blacksmith-sh

This comment has been minimized.

Comment thread cmux-tui/bindings/codegen/emit_go.py Outdated
@lawrencecchen
lawrencecchen changed the base branch from task-cmux-tui-spec-completeness to main August 9, 2026 23:54
# Conflicts:
#	.github/workflows/cmux-tui-sdks.yml
#	.github/workflows/cmux-tui-spec.yml
#	.github/workflows/sdk-publish-crates.yml
#	.github/workflows/sdk-publish-go.yml
#	.github/workflows/sdk-publish-java.yml
#	.github/workflows/sdk-publish-npm.yml
#	.github/workflows/sdk-publish-python.yml
#	cmux-tui/Cargo.lock
#	cmux-tui/bindings/ERGONOMICS.md
#	cmux-tui/bindings/RELEASING.md
#	cmux-tui/bindings/check-versions.py
#	cmux-tui/bindings/codegen/emit_cpp.py
#	cmux-tui/bindings/codegen/emit_go.py
#	cmux-tui/bindings/codegen/emit_java.py
#	cmux-tui/bindings/codegen/emit_python.py
#	cmux-tui/bindings/codegen/emit_typescript.py
#	cmux-tui/bindings/codegen/emit_zig.py
#	cmux-tui/bindings/codegen/tests/test_emit_cpp.py
#	cmux-tui/bindings/codegen/tests/test_emit_go.py
#	cmux-tui/bindings/codegen/tests/test_generate.py
#	cmux-tui/bindings/codegen/tests/test_ir.py
#	cmux-tui/bindings/conformance/README.md
#	cmux-tui/bindings/conformance/adapter-protocol.md
#	cmux-tui/bindings/conformance/adapters/cpp/CMakeLists.txt
#	cmux-tui/bindings/conformance/adapters/cpp/main.cpp
#	cmux-tui/bindings/conformance/adapters/go/main.go
#	cmux-tui/bindings/conformance/adapters/java/build.sh
#	cmux-tui/bindings/conformance/adapters/python/adapter.py
#	cmux-tui/bindings/conformance/adapters/rust/Cargo.lock
#	cmux-tui/bindings/conformance/adapters/rust/Cargo.toml
#	cmux-tui/bindings/conformance/adapters/rust/src/main.rs
#	cmux-tui/bindings/conformance/adapters/typescript/adapter.mjs
#	cmux-tui/bindings/conformance/adapters/zig/build.zig
#	cmux-tui/bindings/conformance/adapters/zig/main.zig
#	cmux-tui/bindings/conformance/fixtures.json
#	cmux-tui/bindings/conformance/runner.py
#	cmux-tui/bindings/conformance/test_runner.py
#	cmux-tui/bindings/cpp/.cmux-sdk-manifest.json
#	cmux-tui/bindings/cpp/CMakeLists.txt
#	cmux-tui/bindings/cpp/README.md
#	cmux-tui/bindings/cpp/include/cmux/client.hpp
#	cmux-tui/bindings/cpp/include/cmux/result.hpp
#	cmux-tui/bindings/cpp/include/cmux/transport.hpp
#	cmux-tui/bindings/cpp/include/cmux/version.hpp
#	cmux-tui/bindings/cpp/src/json.cpp
#	cmux-tui/bindings/cpp/src/unix_transport.cpp
#	cmux-tui/bindings/cpp/tests/consumer/CMakeLists.txt
#	cmux-tui/bindings/cpp/tests/consumer/main.cpp
#	cmux-tui/bindings/cpp/tests/test_attachment.cpp
#	cmux-tui/bindings/cpp/tests/test_client.cpp
#	cmux-tui/bindings/cpp/tests/test_generated.cpp
#	cmux-tui/bindings/cpp/tests/test_macro_collision.cpp
#	cmux-tui/bindings/cpp/tests/test_unix_transport.cpp
#	cmux-tui/bindings/examples/cpp-terminal-frontend/CMakeLists.txt
#	cmux-tui/bindings/examples/cpp-terminal-frontend/FRICTION.md
#	cmux-tui/bindings/examples/cpp-terminal-frontend/README.md
#	cmux-tui/bindings/examples/cpp-terminal-frontend/include/cmux_example/frontend.hpp
#	cmux-tui/bindings/examples/cpp-terminal-frontend/src/frontend.cpp
#	cmux-tui/bindings/examples/cpp-terminal-frontend/src/main.cpp
#	cmux-tui/bindings/examples/cpp-terminal-frontend/tests/frontend_test.cpp
#	cmux-tui/bindings/examples/go-terminal-bot/FRICTION.md
#	cmux-tui/bindings/examples/go-terminal-bot/README.md
#	cmux-tui/bindings/examples/go-terminal-bot/bot.go
#	cmux-tui/bindings/examples/go-terminal-bot/bot_integration_test.go
#	cmux-tui/bindings/examples/go-terminal-bot/cmd/go-terminal-bot/main.go
#	cmux-tui/bindings/examples/go-terminal-bot/config.go
#	cmux-tui/bindings/examples/go-terminal-bot/fake_server_test.go
#	cmux-tui/bindings/examples/go-terminal-bot/result.go
#	cmux-tui/bindings/examples/java-ci-orchestrator/FRICTION.md
#	cmux-tui/bindings/examples/java-ci-orchestrator/README.md
#	cmux-tui/bindings/examples/java-ci-orchestrator/src/com/cmux/examples/ci/CiOrchestrator.java
#	cmux-tui/bindings/examples/java-ci-orchestrator/tests/com/cmux/examples/ci/CiOrchestratorIntegrationTest.java
#	cmux-tui/bindings/examples/java-ci-orchestrator/tests/com/cmux/examples/ci/FakeCmuxServer.java
#	cmux-tui/bindings/examples/python-agent-watchdog/FRICTION.md
#	cmux-tui/bindings/examples/python-agent-watchdog/README.md
#	cmux-tui/bindings/examples/python-agent-watchdog/tests/test_watchdog.py
#	cmux-tui/bindings/examples/python-agent-watchdog/watchdog.py
#	cmux-tui/bindings/examples/rust-agent-dashboard/Cargo.lock
#	cmux-tui/bindings/examples/rust-agent-dashboard/Cargo.toml
#	cmux-tui/bindings/examples/rust-agent-dashboard/FRICTION.md
#	cmux-tui/bindings/examples/rust-agent-dashboard/README.md
#	cmux-tui/bindings/examples/rust-agent-dashboard/src/lib.rs
#	cmux-tui/bindings/examples/rust-agent-dashboard/src/main.rs
#	cmux-tui/bindings/examples/rust-agent-dashboard/src/model.rs
#	cmux-tui/bindings/examples/rust-agent-dashboard/tests/fake_server.rs
#	cmux-tui/bindings/examples/typescript-browser-controller/FRICTION.md
#	cmux-tui/bindings/examples/typescript-browser-controller/README.md
#	cmux-tui/bindings/examples/typescript-browser-controller/package-lock.json
#	cmux-tui/bindings/examples/typescript-browser-controller/package.json
#	cmux-tui/bindings/examples/typescript-browser-controller/scripts/verify-clean-linked-sdk.mjs
#	cmux-tui/bindings/examples/typescript-browser-controller/scripts/verify-packaged-consumer.mjs
#	cmux-tui/bindings/examples/typescript-browser-controller/src/controller.ts
#	cmux-tui/bindings/examples/typescript-browser-controller/src/node-demo.ts
#	cmux-tui/bindings/examples/typescript-browser-controller/src/websocket.ts
#	cmux-tui/bindings/examples/typescript-browser-controller/test/controller.test.ts
#	cmux-tui/bindings/examples/typescript-browser-controller/test/websocket.test.ts
#	cmux-tui/bindings/go/README.md
#	cmux-tui/bindings/go/client.go
#	cmux-tui/bindings/go/client_test.go
#	cmux-tui/bindings/java/README.md
#	cmux-tui/bindings/java/consumer-tests/com/cmux/consumer/ExternalJarConsumerTest.java
#	cmux-tui/bindings/java/pom.xml
#	cmux-tui/bindings/java/scripts/test.sh
#	cmux-tui/bindings/java/src/com/cmux/CmuxClient.java
#	cmux-tui/bindings/java/src/com/cmux/CmuxCommandException.java
#	cmux-tui/bindings/java/src/com/cmux/CmuxDecodeException.java
#	cmux-tui/bindings/java/src/com/cmux/JsonException.java
#	cmux-tui/bindings/java/src/com/cmux/Pane.java
#	cmux-tui/bindings/java/src/com/cmux/Screen.java
#	cmux-tui/bindings/java/src/com/cmux/Tab.java
#	cmux-tui/bindings/java/src/com/cmux/Workspace.java
#	cmux-tui/bindings/python/README.md
#	cmux-tui/bindings/python/cmux/__init__.py
#	cmux-tui/bindings/python/cmux/client.py
#	cmux-tui/bindings/python/cmux/errors.py
#	cmux-tui/bindings/python/cmux/transport.py
#	cmux-tui/bindings/python/pyproject.toml
#	cmux-tui/bindings/python/tests/support.py
#	cmux-tui/bindings/python/tests/test_consumer.py
#	cmux-tui/bindings/python/tests/test_convenience.py
#	cmux-tui/bindings/python/tests/test_events.py
#	cmux-tui/bindings/python/tests/test_lifecycle.py
#	cmux-tui/bindings/python/tests/test_protocol.py
#	cmux-tui/bindings/python/tests/test_schema_roundtrip.py
#	cmux-tui/bindings/rust/Cargo.toml
#	cmux-tui/bindings/rust/README.md
#	cmux-tui/bindings/rust/examples/e2e.rs
#	cmux-tui/bindings/rust/src/client.rs
#	cmux-tui/bindings/rust/src/codec.rs
#	cmux-tui/bindings/rust/src/convenience.rs
#	cmux-tui/bindings/rust/src/generated/.cmux-sdk-manifest.json
#	cmux-tui/bindings/rust/src/generated/commands.rs
#	cmux-tui/bindings/rust/src/generated/events.rs
#	cmux-tui/bindings/rust/src/generated/metadata.rs
#	cmux-tui/bindings/rust/src/generated/mod.rs
#	cmux-tui/bindings/rust/src/generated/types.rs
#	cmux-tui/bindings/rust/src/lib.rs
#	cmux-tui/bindings/rust/src/presence.rs
#	cmux-tui/bindings/rust/src/topology.rs
#	cmux-tui/bindings/rust/tests/mock_server.rs
#	cmux-tui/bindings/rust/tests/public_api.rs
#	cmux-tui/bindings/typescript/README.md
#	cmux-tui/bindings/typescript/e2e/e2e.ts
#	cmux-tui/bindings/typescript/package-lock.json
#	cmux-tui/bindings/typescript/package.json
#	cmux-tui/bindings/typescript/scripts/verify-packaged-consumer.mjs
#	cmux-tui/bindings/typescript/src/browser.ts
#	cmux-tui/bindings/typescript/src/client.ts
#	cmux-tui/bindings/typescript/src/errors.ts
#	cmux-tui/bindings/typescript/src/index.ts
#	cmux-tui/bindings/typescript/src/node-client.ts
#	cmux-tui/bindings/typescript/src/node-transport.ts
#	cmux-tui/bindings/typescript/src/protocol/index.ts
#	cmux-tui/bindings/typescript/src/transport-limits.ts
#	cmux-tui/bindings/typescript/src/websocket-transport.ts
#	cmux-tui/bindings/typescript/test/authority.test.ts
#	cmux-tui/bindings/typescript/test/client.test.ts
#	cmux-tui/bindings/typescript/test/field-compatibility.test.ts
#	cmux-tui/bindings/typescript/test/generated.test.ts
#	cmux-tui/bindings/typescript/test/package-consumer.test.ts
#	cmux-tui/bindings/typescript/test/presence.test.ts
#	cmux-tui/bindings/typescript/test/protocol-types.ts
#	cmux-tui/bindings/typescript/test/websocket-transport.test.ts
#	cmux-tui/bindings/zig/README.md
#	cmux-tui/bindings/zig/build.zig
#	cmux-tui/bindings/zig/build.zig.zon
#	cmux-tui/bindings/zig/examples/watch.zig
#	cmux-tui/bindings/zig/src/cmux.zig
#	cmux-tui/scripts/check-sdk-schema.py
#	cmux-tui/scripts/test_check_sdk_schema.py
#	cmux-tui/spec/README.md
#	cmux-tui/spec/bindings.md
#	cmux-tui/spec/sdk-schema.json
Comment thread cmux-tui/bindings/cpp/tests/test_unix_transport.cpp Outdated
Comment thread cmux-tui/bindings/java/src/com/cmux/raw/JsonLineConnection.java

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 8220a78. Configure here.

Comment thread cmux-tui/bindings/cpp/tests/test_client.cpp Outdated
Comment thread cmux-tui/bindings/java/tests/com/cmux/raw/LifecycleTest.java Outdated
@lawrencecchen
lawrencecchen merged commit dfe324d into main Aug 10, 2026
45 of 49 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