Skip to content

fix: clear the deterministic master CI failures - #1865

Merged
ScriptedAlchemy merged 4 commits into
masterfrom
ci/fix-master-red
Sep 19, 2026
Merged

ScriptedAlchemy merged 4 commits into
masterfrom
ci/fix-master-red

Conversation

@ScriptedAlchemy

Copy link
Copy Markdown
Owner

Summary

  • The npm publication checker required a GitHub release trigger after the workflow moved to a master workflow_dispatch, so the policy test never mutated the file and the checker rejected the live workflow.
  • Hold the reconcile worker before asserting that an expired source proof declines, so a fast renewal is not a fail-on-flake miss.
  • Report non-contract clone-warmup faults as generation_unverified instead of a permanent search_failed while a generation is still retiring.
  • Surface the remote-node provision error (status stays 409) so the SDK enrollment failure is no longer an empty conflict.

Test plan

  • python3 scripts/test-check-sdk-publish-workflow.py
  • python3 scripts/check-sdk-publish-workflow.py
  • cargo check -p tracedecay-code-index-runtime --lib
  • CI on this PR, especially SDK conformance production-router and Test Linux runtime/root-transport

The npm policy checker still required a tag trigger after publication
moved to a master dispatch. An expired source proof raced the reconcile
worker. Clone warmup faults that are not contract violations were a
permanent search failure while a generation was retiring.
@changeset-bot

changeset-bot Bot commented Sep 19, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 656cca9

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-19T19:00:03.910822Z eeb1ec1 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.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: eeb1ec1d1c

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 1512 to 1514
Err(_) => {
return unavailable(
code_search::CodeIndexSearchUnavailableReasonV1::GenerationUnverified,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve cancellation and timeout during clone warmup

When a similar or redundancy request is cancelled or reaches its deadline while finish_clone_similarity_warmup_for_request advances fingerprints, that function returns RetrievalPortError::Cancelled or BudgetExceeded; this catch-all now converts both into the retryable GenerationUnverified state. The executor therefore loses the requested Cancelled/TimedOut terminal outcome and clients may retry work the caller already ended, so handle those two variants before the transient catch-all, as the later query execution already does.

AGENTS.md reference: AGENTS.md:L152-L154

Useful? React with 👍 / 👎.

ScriptedAlchemy and others added 3 commits September 19, 2026 19:14
# Conflicts:
#	crates/tracedecay-code-index-runtime/src/code_index_scheduler/tests/reconcile.rs
`advance_text_serving_for_request` calls `mark_text_serving_failed` for
`CapabilityManifestRejected`, `GenerationMismatch`,
`IncompatibleProjection` and `Contract` (serving.rs:2589). Mapping every
non-`Contract` error to `GenerationUnverified` told callers to retry a
projection that the same call had just marked permanently failed, so the
three incompatibility variants became an unbounded retry on a terminal
state.

024364a already maps the observed retiring-staging fault
(`AuthorityUnavailable`) to `generation_unverified`, and cacf79a
root-caused the remaining clone-lane refusal as the head-open `Contract`
violation and fixed it at source, recording that a retryable verdict
would only have hidden it. No evidence names a further variant, so keep
master's mapping.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The policy now forbids the `release` trigger because a run on the release
tag cannot restore the previous release's Actions cache (3ac7ae1), but
no test covered that rule: the suite only checked that the master
dispatch is present. Re-adding `release: types: [published]` passed.

Add the mirror mutation, and rename `assert_release_trigger` to
`assert_master_dispatch_trigger` so the function no longer names the
trigger it rejects.

Verified by weakening the checker to accept `{release, workflow_dispatch}`
again: the new test is the only one that fails.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Reviewed and synced onto master 140b1de (fast-forward pushes, no force):

  • Kept: the npm publication checker fix (reproduced both the checker and its test failing on master) and the remote-node provision error body (route is behind local admission plus bearer auth; no test pinned the empty 409).
  • Dropped as duplicate: the reconcile-worker fence, byte-identical to cbb13c0 from fix(code-index): keep the park reason in progress; fence the load-sensitive scheduler tests #1864; reconcile.rs now matches master.
  • Reverted (ab0bd06): the clone-warmup catch-all. Widening Err(AuthorityUnavailable) to Err(_) would answer generation_unverified retryable=true for CapabilityManifestRejected, GenerationMismatch, IncompatibleProjection and Contract, which advance_text_serving_for_request marks permanently failed on the same call (serving.rs:2589), so callers would retry forever. The clone-lane refusal it targeted was the head-open race fixed in fix(code-index): hold the head-open claim across the clone successor copy #1863.
  • Added (656cca9): test_rejects_restoring_the_release_trigger, since the new no-release-trigger rule had no test; verified it is the only failing test when the checker is weakened.

CI dispatched on 656cca9; merging on green.

@ScriptedAlchemy
ScriptedAlchemy merged commit 094f5b4 into master Sep 19, 2026
25 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