Skip to content

Windows: cargo test --workspace --locked fails on main with workspace, PTY, and Claude stream-mode tests #178

@GalaxyRuler

Description

@GalaxyRuler

Summary

On Windows, the contributor validation loop from CONTRIBUTING.md does not fully pass on current main. The build, doctor, fmt, clippy, and secret guard pass, but the locked workspace test suite fails with a deterministic cluster around workspace resolution, PTY handle behavior, and Claude stream-mode chat tests.

Related to the Windows/CI hardening track in #147, but this records concrete local failure evidence from a fresh checkout.

Environment

  • Repo: OpenCoven/coven
  • Commit: b98c7c967867a92ca24c01cbacaeb2fc78525f5a
  • OS: Windows
  • Rust/Cargo: 1.95.0
  • Node: v24.16.0
  • pnpm: available through Corepack as corepack pnpm, version 10.33.2
  • Python: 3.12.12
  • Working tree: clean

Commands run

cargo build --workspace
cargo run -p coven-cli -- doctor
cargo test -p coven-cli --test smoke -- --nocapture
cargo fmt --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace --locked
python scripts/check-secrets.py

Passing checks

  • cargo build --workspace
  • cargo run -p coven-cli -- doctor
    • Codex ready
    • Claude Code ready
  • cargo fmt --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • python scripts/check-secrets.py
    • Secret guard passed: no current-tree or history findings.

Failing check

cargo test --workspace --locked

Result:

716 passed; 10 failed; 1 ignored

Failures reported by the full suite:

eval_loop::workspace_resolution_tests::uses_toml_workspace_field_when_set
pty_runner::tests::spawn_detached_starts_pty_and_returns_input_and_kill_handles
tui::chat::app::tests::clear_transcript_drops_stream_json_buffers_too
tui::chat::app::tests::clear_transcript_suppresses_the_orphan_kill_event_so_it_doesnt_echo_after_chat_cleared
tui::chat::app::tests::first_claude_chat_turn_launches_in_stream_mode_and_tracks_the_daemon_session_id
tui::chat::app::tests::second_claude_chat_turn_reuses_the_stream_session_via_send_input_not_launch
tui::chat::app::tests::shutdown_kills_tracked_stream_sessions_and_clears_state
tui::chat::app::tests::stream_json_assistant_output_renders_as_chat_message
tui::chat::app::tests::stream_send_failure_drops_tracking_so_next_turn_cold_starts
tui::chat::app::tests::stream_session_exit_event_also_drops_the_per_session_json_buffer

Focused reruns

These focused reruns failed deterministically with one test thread:

cargo test -p coven-cli --bin coven eval_loop::workspace_resolution_tests::uses_toml_workspace_field_when_set -- --nocapture --test-threads=1
cargo test -p coven-cli --bin coven pty_runner::tests::spawn_detached_starts_pty_and_returns_input_and_kill_handles -- --nocapture --test-threads=1
cargo test -p coven-cli --bin coven tui::chat::app::tests::first_claude_chat_turn_launches_in_stream_mode_and_tracks_the_daemon_session_id -- --nocapture --test-threads=1

Observed assertions/errors:

assertion `left == right` failed: should use TOML workspace path
  left: "...\\familiars\\sage"
 right: "...\\custom-ws"

Error: The handle is invalid. (os error 6)

assertion `left == right` failed: claude chat turns must take the stream path
  left: NonInteractive
 right: Stream

Smoke test note

cargo test -p coven-cli --test smoke -- --nocapture exits 0, but currently reports:

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

That means the contributor-safe smoke command is not providing meaningful smoke coverage on this checkout/platform.

Expected behavior

The documented contributor validation loop should either pass on Windows or clearly document any currently unsupported/skipped Windows checks. Since #147 includes adding Windows CI, this failure set may be useful as the first regression target for that matrix leg.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions