Skip to content

test(ci): close three master-tip readiness races - #1794

Merged
ScriptedAlchemy merged 4 commits into
masterfrom
cursor/fix-master-tip-ci-races-0baa
Sep 19, 2026
Merged

ScriptedAlchemy merged 4 commits into
masterfrom
cursor/fix-master-tip-ci-races-0baa

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Sep 19, 2026

Copy link
Copy Markdown
Owner

Summary

Rebased onto green master tip 9520d75f3612016653d90f667c57bd5a7514e454 (42 commits). Head is 30dbebab5e9f8c6600a0e2afdb48b71b2fe81556. .github/workflows/ci.yml is untouched: no pull_request trigger, hotpath stays crates.io.

  • HTTP, MCP, and SDK reset-required checks ride out a still-warming project open (unavailable / after_delay / pre_admission) for the same 15s grace the CLI already uses, then assert reset_required.
  • Test daemon shutdown signals the child's process group so helper processes cannot keep the listen socket alive after the leader is reaped. Master already waits up to 10s for that socket to stop accepting.
  • Packaged-host advisory ingest keeps polling through accepted_for_replay; only committed or exact_duplicate proves the transcript.
  • Master's generation-store lock already closes the ignored-dependency coalesced-publication race. The extra background-admission hold this branch used to layer on top is gone, so flight_tests.rs matches master.

Test plan

  • cargo clippy -p tracedecay-cli --tests --locked -- -D warnings
  • cargo clippy -p tracedecay --features test-helpers --test runtime_acceptance_suite --test daemon_suite --locked -- -D warnings
  • cargo clippy -p tracedecay --features test-transport --test transport_acceptance_suite --locked -- -D warnings
  • cli_non_interactive_test::branch_search_serves_a_committed_generation_behind_dirty_worktree_state — 1 passed
  • advisory_runtime_acceptance::packaged_host_ingest_delivers_a_registered_advisory_cycle — 1 passed
  • code_index_ignored_dependencies_test::flight_tests::coalesced_publication_failure_preserves_the_scheduler_error_family — 1 passed
  • typed_terminal_restart_acceptance::transport_boundaries::reset_required_survives_http_mcp_and_rust_sdk_across_restart — 1 passed
  • Push CI does not run on this branch. Dispatch CI (workflow_dispatch) on 30dbebab5e9f8c6600a0e2afdb48b71b2fe81556.

Checklist

  • No secrets, credentials, or .env files included
  • CHANGELOG.md updated (test harness only; no user-facing change)
  • Breaking changes documented (none)
Open in Web Open in Cursor 

@changeset-bot

changeset-bot Bot commented Sep 19, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 30dbeba

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 19, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-19T03:51:54.371935Z eaff2e6 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Heads-up from the master-repair sweep: the three races this PR closes landed on master today via #1792, so this branch now conflicts with master on all three files and its CI run 35421292205 is red on the old base:

  • daemon teardown / next spawn racing a still-open socket → d2b57e4ad7 (bounded wait in spawn_tracedecay_daemon_process, same refusal message);
  • coalesced_publication_failure_preserves_the_scheduler_error_family pointer corruption racing the text-artifact attach's rename → 0d328fa0a9 (corruption now takes the generation-store lock, so no writer can be mid read-modify-write);
  • HTTP reset/partial-effect first observation after restart answered with a retryable pre-admission unavailable63f23d163d and e2c8b592cd (honour the typed retry: after_delay directive).

One idea here is worth keeping: killing the daemon's process group so helper children cannot hold the listener fd. If you want it, it composes with the bounded wait; happy to fold it into the next fix PR (#1797) rather than rebase this one.

@cursor
cursor Bot force-pushed the cursor/fix-master-tip-ci-races-0baa branch from 6985dea to 37d6bc0 Compare September 19, 2026 06:23
ScriptedAlchemy added a commit that referenced this pull request Sep 19, 2026
advisory_runtime_acceptance.rs keeps #1794's deadline-bounded wait for a
durable Codex stop terminal (committed or exact_duplicate), which already
carries #1838's assertion; #1838's production change (admission-owned
commit status) merged cleanly.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
cursoragent and others added 4 commits September 19, 2026 11:29
HTTP reset checks ride out a still-warming project open instead of
treating the first after_delay answer as the terminal. Ignored-dependency
publication faults a pointer a background pass cannot rename over. Killing
a test daemon now signals its process group, and the next spawn waits out
a socket that is still closing.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
The nested reconciling if trips clippy::collapsible_if under -D warnings.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
A completed accepted_for_replay is not a durable commit. Keep polling
until committed or exact_duplicate, or the deadline fails closed.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Master's coalesced_publication_failure fix (0d328fa) takes the
generation-store lock before corrupting the active pointer, and its own
comment records why the background admission permit is not the proof:
the racer releases that permit before it finishes attaching the
generation's text artifact, so holding it does not mean the store is
quiet. Being granted the store lock does. The extra permit hold this
branch layered on top adds a second 5s spin for a race the landed fix
already closes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@cursor
cursor Bot force-pushed the cursor/fix-master-tip-ci-races-0baa branch from 8715742 to 30dbeba Compare September 19, 2026 11:29
@ScriptedAlchemy
ScriptedAlchemy merged commit 1e4ab8a into master Sep 19, 2026
25 checks passed
cursor Bot pushed a commit that referenced this pull request Sep 19, 2026
Fold master tip including #1855, #1857, #1794, and #1795 into the
batch while keeping folded PR ancestry.

# Conflicts:
#	crates/tracedecay/tests/common/mod.rs
#	crates/tracedecay/tests/mcp_suite/git_correlation_test.rs
#	crates/tracedecay/tests/mcp_suite/mcp_handler_test.rs

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
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.

2 participants