v0.41.53: restart and update behaviour a session can rely on; link add keeps the language decision; skill command removed #587

Merged
buildagent merged 101 commits from integration-1114 into master 2026-11-14 11:54:08 +01:00
Member

Release train after v0.41.52: seventeen lanes on top of master, three gate-fix commits and the version bump.

What changes for a user

  • Daemon restarts and filters (#584, a customer report). A filter is no longer refused as "the running daemon predates the … filter" after one call met a starting daemon. A call that arrives while a replacement daemon starts waits for it (at most 10 s, never longer than the call's budget) instead of being refused at once; a call that still gives up gets a retryable daemon_restarting with waited_ms and startup_phase in every case.
  • Background update (#586, #520). With nothing to update, the update that runs after every daemon start no longer installs and conformance-checks every catalog package again: 43 s → 1.4 s and 584 → 7 complete archive reads on a store with 45 packages. It holds the project's plugin lock only to publish, so approve and link add are no longer refused for minutes; a writer that finds the lock held waits up to 120 s and a refusal names the holder.
  • link add (#585). It no longer writes enabled = [] into a new .code-index.toml (which stopped all indexing of the project), and records relationship = "worktree" for another checkout of the same repository.
  • Answers while the index settles. search_text, search_symbols, file_outline, read_code and the other tools that do not depend on resolved references answer while references are still being resolved.
  • Resolution (#531, step 1). A declaration inside a function body is no longer a target for a reference outside that body (Rust, C#, JavaScript, TypeScript).
  • Removed (#571): the code-index skill command. The skill is the MCP resource skill://code-index/SKILL.md.
  • Announced (#570): six configuration keys without effect are refused from the next release on; the warning says so.

CI and measurement (#582)

  • A red scheduled run of ci.yml or package-ci.yml comments on #582 (job report-red-schedule; report_dry_run input for a dispatched proof).
  • An overhead measurement that ends on a saturated runner is repeated once, otherwise NOT MEASURED (contended).
  • The quiet-runner check reads the CPU limits of the process's own cgroup hierarchy, so the measurement also runs outside a container.
  • Test harness diagnostics for a settle timeout; cargo test no longer waits for cargo deny; downloads retry.

Gate

One full local gate run on the integrated tree cf2d3ee4 (67 steps: every PR job and every nightly-only job of the four workflows except the i686 qemu ABI test). 54 steps passed at once. What it found, all fixed on this branch and re-run:

finding fix
five tests red in suites no lane had run: pinned ref counts and walker deltas for the new precision-gate decoy fixtures (+2 refs per language, each read at source), the profile vocabulary count, a bare fs::copy of an executable in a new test, a JSON key-order assertion that depends on the build's feature set 6df6e93e
tier-3 baseline: one bind fewer on rust-analyzer verified at source as a wrong bind the body-local rule removes (mir/pretty.rs:181, a closure parameter f bound to a function f nested in another method); recorded with that reason, d5cbf6b7
no package overhead budget could be measured on a plain host lane r45, c1dd8d3c

Re-run green after the fixes: fast gates, clippy, the workspace tests (5,701), the C#, JavaScript and TypeScript package legs, the CI script tests and the tier-3 step; after the version bump again the format check, fast gates, script tests, guest gates and tier-3. Six of the seven package overhead budgets pass on a quiet machine; the seventh is Ruby, below. No cost record, corpus baseline or budget was changed; the tier-3 record is the one exception named above.

CI on the PR: four rounds

round head result cause and action
1 6384f9a6 one test red on Linux and Windows a new assertion counted an info line in the log of a daemon respawned without --log; CI's jobs set CODE_INDEX_LOG=warn. Test fixed in 6fd699c1; the local gate script now exports the jobs' environment.
2 6fd699c1 Windows and pilot green; one test red in cargo test, one in package (typescript) cargo test: a 60 s settle deadline in a test, while the scheduled nightly ran on the same runner (job 147 min against 82, 104 slow tests against 14). No change. package (typescript): an empty answer right after ready; the log could not say why, so 838cc557 makes the assertion print the daemon's state.
3 838cc557 Windows and pilot green; cargo deny and package (javascript) red cargo deny: this branch had put cargo install cargo-deny, a build, behind the new 600 s download-retry helper; on a slow runner it timed out three times. Fixed in 8ff34387 with a guard test. package (javascript): the printed state shows the TypeScript package refused at start as extractor.malformed, the 30 s precompile wall-clock budget on a slow runner. Present before this branch; #589.
4 8ff34387 all four workflows green, 44 jobs

Dispatched runs on 8ff34387, one after the other, for the nightly-only jobs:

  • ci.yml (run 8726): all 17 jobs green, among them the tier-3 scale run, the grammar rebuild from source, path cost and pool throughput, and the report job.
  • package-ci.yml (run 8725): all 69 package and corpus jobs green. The overhead job measured every package after waiting for a quiet runner; six of the seven measured budgets pass (C#, JavaScript, PHP, Python, Rust, TypeScript), Ruby is red at a warm ratio of 1.100 against 1.10 (see below). The report job, in dry-run mode, printed the comment a red scheduled run would post, naming that job and its log.

Known, not changed here

  • Ruby overhead budget. The warm ratio of ruby-sinatra measured 1.115, 1.041, 1.116 and 1.063 in four runs on a quiet machine against a limit of 1.10: the verdict depends on the run. On earlier releases ruby-sinatra was red in seven of the eight nightly CI runs inspected for #582; in five of those its cold budget passed, so the warm ratio was what failed. Nothing in this branch touches Ruby's warm path. The other six budgets pass: C# at 1.127 against its limit of 1.15, the rest at 1.06 or lower against 1.10 or 1.20 (PHP and TypeScript, red on the loaded runner in run 8657, measure 1.04 here).
  • #586: languages enable, plugin add and languages list still read installed archives more often than needed.
  • #589, found by this PR's CI. A precompile that exceeds 30 s of wall-clock time refuses a valid package as extractor.malformed for the daemon's lifetime. On a slow runner this reddens named_script_imports_follow_configuration_exports_and_daemon_restart (two of four rounds here). Fix prepared on a lane (CPU-time budget on Linux and macOS, truthful reason everywhere), not in this branch.
  • #588, found while investigating the same test. A worker deadline during a file's first extraction leaves the file empty until it is edited. Reproduced by suspending a worker; not seen in CI. Fix prepared on a lane, not in this branch.
  • #570: test timing hooks become debug-only in the next release (lane finished, not in this branch).

🤖 Generated with Claude Code

https://claude.ai/code/session_014XLNPso9cCvzGq5Kt72PSr

Release train after v0.41.52: seventeen lanes on top of master, three gate-fix commits and the version bump. ## What changes for a user - **Daemon restarts and filters (#584, a customer report).** A filter is no longer refused as "the running daemon predates the … filter" after one call met a starting daemon. A call that arrives while a replacement daemon starts waits for it (at most 10 s, never longer than the call's budget) instead of being refused at once; a call that still gives up gets a retryable `daemon_restarting` with `waited_ms` and `startup_phase` in every case. - **Background update (#586, #520).** With nothing to update, the update that runs after every daemon start no longer installs and conformance-checks every catalog package again: 43 s → 1.4 s and 584 → 7 complete archive reads on a store with 45 packages. It holds the project's plugin lock only to publish, so `approve` and `link add` are no longer refused for minutes; a writer that finds the lock held waits up to 120 s and a refusal names the holder. - **`link add` (#585).** It no longer writes `enabled = []` into a new `.code-index.toml` (which stopped all indexing of the project), and records `relationship = "worktree"` for another checkout of the same repository. - **Answers while the index settles.** `search_text`, `search_symbols`, `file_outline`, `read_code` and the other tools that do not depend on resolved references answer while references are still being resolved. - **Resolution (#531, step 1).** A declaration inside a function body is no longer a target for a reference outside that body (Rust, C#, JavaScript, TypeScript). - **Removed (#571):** the `code-index skill` command. The skill is the MCP resource `skill://code-index/SKILL.md`. - **Announced (#570):** six configuration keys without effect are refused from the next release on; the warning says so. ## CI and measurement (#582) - A red scheduled run of `ci.yml` or `package-ci.yml` comments on #582 (job `report-red-schedule`; `report_dry_run` input for a dispatched proof). - An overhead measurement that ends on a saturated runner is repeated once, otherwise `NOT MEASURED (contended)`. - The quiet-runner check reads the CPU limits of the process's own cgroup hierarchy, so the measurement also runs outside a container. - Test harness diagnostics for a settle timeout; `cargo test` no longer waits for `cargo deny`; downloads retry. ## Gate One full local gate run on the integrated tree `cf2d3ee4` (67 steps: every PR job and every nightly-only job of the four workflows except the i686 qemu ABI test). 54 steps passed at once. What it found, all fixed on this branch and re-run: | finding | fix | |---|---| | five tests red in suites no lane had run: pinned ref counts and walker deltas for the new precision-gate decoy fixtures (+2 refs per language, each read at source), the profile vocabulary count, a bare `fs::copy` of an executable in a new test, a JSON key-order assertion that depends on the build's feature set | `6df6e93e` | | tier-3 baseline: one bind fewer on rust-analyzer | verified at source as a wrong bind the body-local rule removes (`mir/pretty.rs:181`, a closure parameter `f` bound to a function `f` nested in another method); recorded with that reason, `d5cbf6b7` | | no package overhead budget could be measured on a plain host | lane r45, `c1dd8d3c` | Re-run green after the fixes: fast gates, clippy, the workspace tests (5,701), the C#, JavaScript and TypeScript package legs, the CI script tests and the tier-3 step; after the version bump again the format check, fast gates, script tests, guest gates and tier-3. Six of the seven package overhead budgets pass on a quiet machine; the seventh is Ruby, below. No cost record, corpus baseline or budget was changed; the tier-3 record is the one exception named above. ### CI on the PR: four rounds | round | head | result | cause and action | |---|---|---|---| | 1 | `6384f9a6` | one test red on Linux and Windows | a new assertion counted an `info` line in the log of a daemon respawned without `--log`; CI's jobs set `CODE_INDEX_LOG=warn`. Test fixed in `6fd699c1`; the local gate script now exports the jobs' environment. | | 2 | `6fd699c1` | Windows and pilot green; one test red in `cargo test`, one in `package (typescript)` | `cargo test`: a 60 s settle deadline in a test, while the scheduled nightly ran on the same runner (job 147 min against 82, 104 slow tests against 14). No change. `package (typescript)`: an empty answer right after `ready`; the log could not say why, so `838cc557` makes the assertion print the daemon's state. | | 3 | `838cc557` | Windows and pilot green; `cargo deny` and `package (javascript)` red | `cargo deny`: this branch had put `cargo install cargo-deny`, a build, behind the new 600 s download-retry helper; on a slow runner it timed out three times. Fixed in `8ff34387` with a guard test. `package (javascript)`: the printed state shows the TypeScript package refused at start as `extractor.malformed`, the 30 s precompile wall-clock budget on a slow runner. Present before this branch; #589. | | 4 | `8ff34387` | all four workflows green, 44 jobs | | Dispatched runs on `8ff34387`, one after the other, for the nightly-only jobs: - `ci.yml` (run 8726): all 17 jobs green, among them the tier-3 scale run, the grammar rebuild from source, path cost and pool throughput, and the report job. - `package-ci.yml` (run 8725): all 69 package and corpus jobs green. The overhead job measured every package after waiting for a quiet runner; six of the seven measured budgets pass (C#, JavaScript, PHP, Python, Rust, TypeScript), Ruby is red at a warm ratio of 1.100 against 1.10 (see below). The report job, in dry-run mode, printed the comment a red scheduled run would post, naming that job and its log. ## Known, not changed here - **Ruby overhead budget.** The warm ratio of `ruby-sinatra` measured 1.115, 1.041, 1.116 and 1.063 in four runs on a quiet machine against a limit of 1.10: the verdict depends on the run. On earlier releases `ruby-sinatra` was red in seven of the eight nightly CI runs inspected for #582; in five of those its cold budget passed, so the warm ratio was what failed. Nothing in this branch touches Ruby's warm path. The other six budgets pass: C# at 1.127 against its limit of 1.15, the rest at 1.06 or lower against 1.10 or 1.20 (PHP and TypeScript, red on the loaded runner in run 8657, measure 1.04 here). - #586: `languages enable`, `plugin add` and `languages list` still read installed archives more often than needed. - **#589, found by this PR's CI.** A precompile that exceeds 30 s of wall-clock time refuses a valid package as `extractor.malformed` for the daemon's lifetime. On a slow runner this reddens `named_script_imports_follow_configuration_exports_and_daemon_restart` (two of four rounds here). Fix prepared on a lane (CPU-time budget on Linux and macOS, truthful reason everywhere), not in this branch. - **#588, found while investigating the same test.** A worker deadline during a file's first extraction leaves the file empty until it is edited. Reproduced by suspending a worker; not seen in CI. Fix prepared on a lane, not in this branch. - #570: test timing hooks become debug-only in the next release (lane finished, not in this branch). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_014XLNPso9cCvzGq5Kt72PSr
Use the language profile for lexical item visibility. Drive the refusal from indexed enclosing functions and their child symbols, then refs.target_id; empty locals reach no reference rows. Use declaration spans instead of parsing signatures. Keep local impl identity for the source-judged #579 fixture: generic V::Value must not bind owner::V::Value.
The refusal is kind blind; type refs alone establish local impl self identity. LexicalScope.cs proves C# local functions are emitted as function rows, so promote the producer stance to Emitted.
A local type name is lexical, but trait dispatch can reach its methods outside the declaring function. Exercise a Debug implementation returned as an opaque value; admitting methods to lexical refusal makes this fixture fail. Keep receiver and impl identity gaps separate from name containment.
The tools whose absence no longer waits for resolution still carry
reference-derived counts in their rows; the state semantics and the
envelope reference now say so.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
A refused runner admission ends the measurement step with its own exit
status and the line NOT MEASURED; green would make an absent measurement
look like a passed one. The steps that read the report still skip.
The download retry helper needs Python, which no step of the Windows
runner uses today, so the Windows bootstrap in ci-windows.yml and
release.yml keeps its direct commands.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
A wait of up to the limit with no output reads as a hang.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The lane made room for the startup phase vocabulary by deleting documented
facts from the envelope reference (the per-call refusal, the schema enum note,
the batching advice). The reference is restored unchanged; the phase names are
listed in docs/operations.md and the payload names the phase in plain words.

The daemon takes its census after it is ready, so it no longer records a
startup phase no reader can see. StartupPhase::ALL is the one list the
vocabulary test iterates.

The harness now captures the child's stderr in a file; a failing test prints
its tail on drop, so failures outside the settle wait keep the output they had
when stderr was inherited.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Leave enabled commented in the shared template; init alone renders its detected decision. Audit manifest writers against scratch CLI fixtures and discover new callers of the writing sinks. Reproduction and registry both fail when enabled=[] is restored; the registry also rejects an added unregistered writer. Clarify missing-key precedence and existing package-list writers.
Compare canonical per-checkout and common Git directories after resolving the target. Infer worktree only without --relationship; preserve explicit choices. Suppress overlap warnings for nested checkouts using the walker policy. A real git-worktree CLI test catches mutations of inference, explicit-flag precedence and nested warnings.
Print the stored name, path, relationship and config file in the same form as link add. Preserve approval-withdrawal output. The real-worktree CLI test fails when removal is reduced to the former name-only message.
The writer inventory parsed the workspace with tree-sitter through the builtin
Rust plugin, which added a dev-dependency to the CLI crate and tied the test to
a crate that is to be retired. A line scan finds the same twelve call sites;
the new-writer mutation is still caught.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The reporter looked for the newest comment of its own author. That needs a
user lookup the job token may not be allowed to make, and it splits a series
whenever the other nightly workflow or a person comments in between: two red
workflows would have posted a new comment every night. A report is now found
by its hidden marker, and the newest report of the same workflow decides.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The lane rewrote two historical records to drop the on-disk skill door. They
describe what that mission built; the removal is recorded where it happened
(this lane's commit and the release notes). The citation gate passes with the
records unchanged.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
(cherry picked from commit 84447ee34d232bc18d8e275300ceb3cf565a29ed)
(cherry picked from commit 74fe3fd56cc1623ba11d206ad80314f52312d923)
(cherry picked from commit 0e2d0e0213f981801962b3640b16e46f6a403364)
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
None of these suites was run by a lane; the full gate run on cf2d3ee4 was
their first run on this tree.

- abi_projection: +2 refs per language (C#, JavaScript, Rust, TypeScript)
  from the precision-gate decoy fixtures added in 16844bf0, each read at
  source (two calls or two instantiations per fixture).
- Walker parity deltas on host_fixtures, same fixtures: C# call-arity
  25 -> 27 (a fact on every call), JavaScript scope-verdict 1 -> 2 and
  TypeScript 6 -> 7 (the instantiation outside the declaring function).
- profile_spec: the vocabulary has 36 fields; body_local_names is the
  twenty-fifth boolean.
- automatic_plugin_update: the two executable copies go through
  install_executable and every child of the suite is spawned through the
  fork lock (exec_copy_registry).
- The restart-refusal render test compared the JSON key ORDER, which is
  insertion order in a workspace build (the CLI enables serde_json's
  preserve_order) and alphabetical when the crate is built alone. It now
  compares the sorted key set.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
rust-analyzer: rule.tier1a_unique_own_file 32825 -> 32824, with the three
counts that follow from it (resolved, resolved_call, edges, -1 each).

The one bind, found by diffing the previous release's index against this
tree joined on (path, line, col, kind, occurrence) and read at source:
crates/hir-ty/src/mir/pretty.rs:181 calls `f`, the closure parameter of
`with_block`. It was bound to the function `f` nested in the body of
`place` (line 323), which nothing outside that body can name. Step 1 of
#531 removes exactly this class; py-django did not move.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPso9cCvzGq5Kt72PSr
The bump script rewrites every spelled release version, which would have
turned the reason into a statement about the wrong release.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPso9cCvzGq5Kt72PSr
release: v0.41.53
Some checks failed
Package CI / package (vue) (pull_request) Successful in 10m16s
Package CI / package (xaml) (pull_request) Successful in 10m29s
CI / cargo check (MSRV 1.99.1) (pull_request) Successful in 21m2s
CI / cargo test (abi, 32-bit + wasm32) (pull_request) Successful in 21m7s
Package CI / package (php) (pull_request) Successful in 16m40s
Package CI / package-corpus (svelte) (pull_request) Successful in 19s
Package CI / package-corpus (timeline) (pull_request) Successful in 18s
Package CI / package-corpus (vue) (pull_request) Successful in 17s
Package CI / package-corpus (xaml) (pull_request) Successful in 18s
Package CI / package (ruby) (pull_request) Successful in 19m6s
CI / cargo check (windows-gnu) (pull_request) Successful in 24m26s
Package CI / package (python) (pull_request) Successful in 20m33s
Package CI / package (javascript) (pull_request) Successful in 27m19s
Package CI / package (typescript) (pull_request) Successful in 23m55s
Package CI / package (csharp) (pull_request) Successful in 29m48s
CI (Windows) / fmt + clippy + build + test (windows) (pull_request) Failing after 40m43s
Package CI / package-corpus (php) (pull_request) Successful in 33m5s
Package CI / package-corpus (rust) (pull_request) Successful in 31m21s
Package CI / package-corpus (python) (pull_request) Successful in 37m42s
Package CI / package-corpus (javascript) (pull_request) Successful in 39m8s
Package CI / package-corpus (typescript) (pull_request) Successful in 35m54s
Package CI / package-corpus (csharp) (pull_request) Successful in 44m38s
Package CI / package-corpus (ruby) (pull_request) Successful in 45m1s
Package CI / package overhead budgets (nightly, one package at a time) (pull_request) Has been skipped
Package CI / Report scheduled failures (pull_request) Has been skipped
CI / OSS corpus (tier 1) (pull_request) Successful in 1h31m8s
CI / cargo test (pull_request) Failing after 1h21m49s
CI / cargo test (daemon transport) (pull_request) Has been skipped
CI / Plugin path cost + pool throughput (nightly) (pull_request) Has been skipped
CI / Report scheduled failures (pull_request) Has been skipped
6384f9a658
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPso9cCvzGq5Kt72PSr
test(daemon): pin the log level of the respawned daemon in the probe-count test
Some checks failed
Package CI / package (rust) (pull_request) Successful in 11m34s
Package CI / package-corpus (svelte) (pull_request) Successful in 21s
Package CI / package-corpus (timeline) (pull_request) Successful in 19s
Package CI / package-corpus (vue) (pull_request) Successful in 20s
CI / cargo test (abi, 32-bit + wasm32) (pull_request) Successful in 20m13s
Package CI / package-corpus (xaml) (pull_request) Successful in 18s
Package CI / package (xaml) (pull_request) Successful in 12m12s
CI / cargo check (MSRV 1.99.1) (pull_request) Successful in 21m2s
Package CI / package (php) (pull_request) Successful in 15m18s
CI / cargo check (windows-gnu) (pull_request) Successful in 24m33s
Package CI / package (ruby) (pull_request) Successful in 18m6s
Package CI / package (python) (pull_request) Successful in 19m21s
Package CI / package (csharp) (pull_request) Successful in 30m15s
Package CI / package (typescript) (pull_request) Failing after 26m49s
Package CI / package (javascript) (pull_request) Successful in 33m12s
Package CI / package-corpus (php) (pull_request) Successful in 40m9s
Package CI / package-corpus (rust) (pull_request) Successful in 37m34s
CI (Windows) / fmt + clippy + build + test (windows) (pull_request) Successful in 56m50s
Package CI / package-corpus (javascript) (pull_request) Successful in 45m38s
Package CI / package-corpus (python) (pull_request) Successful in 39m43s
Package CI / package-corpus (typescript) (pull_request) Successful in 41m15s
Package CI / package-corpus (csharp) (pull_request) Successful in 53m4s
Package CI / package-corpus (ruby) (pull_request) Successful in 52m33s
Package CI / package overhead budgets (nightly, one package at a time) (pull_request) Has been skipped
Package CI / Report scheduled failures (pull_request) Has been skipped
CI / OSS corpus (tier 1) (pull_request) Successful in 2h16m14s
CI / cargo test (pull_request) Failing after 2h27m38s
CI / cargo test (daemon transport) (pull_request) Has been skipped
CI / Plugin path cost + pool throughput (nightly) (pull_request) Has been skipped
CI / Report scheduled failures (pull_request) Has been skipped
6fd699c12f
`respawn_cfg_brings_back_an_exited_daemon` counts `info` lines in the
daemon log. The respawned daemon gets no `--log`, so it took
`CODE_INDEX_LOG=warn` from the CI job and wrote none: 0 instead of 1 on
Linux and Windows (PR runs 2616, 2617), 1 on every developer machine.
The body now runs in a child process with the level set, the pattern
`two_existing_clients_wait_for_one_real_respawn` already uses, and the
failure prints the log.

Reproduced with `CODE_INDEX_LOG=warn cargo test` before the change
(same panic) and green after; mutation run: without the pinned level
the test is red with the CI message.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPso9cCvzGq5Kt72PSr
test: print the daemon's state when a ready daemon answers no callers
Some checks failed
CI / cargo test (abi, 32-bit + wasm32) (pull_request) Successful in 21m32s
Package CI / package (xaml) (pull_request) Successful in 11m54s
Package CI / package-corpus (svelte) (pull_request) Successful in 20s
Package CI / package-corpus (timeline) (pull_request) Successful in 17s
CI / cargo check (MSRV 1.99.1) (pull_request) Successful in 22m11s
Package CI / package-corpus (vue) (pull_request) Successful in 21s
Package CI / package-corpus (xaml) (pull_request) Successful in 21s
Package CI / package (php) (pull_request) Successful in 17m41s
Package CI / package (ruby) (pull_request) Successful in 20m27s
CI / cargo check (windows-gnu) (pull_request) Successful in 25m41s
Package CI / package (python) (pull_request) Successful in 20m55s
CI / cargo deny (pull_request) Failing after 30m47s
Package CI / package (javascript) (pull_request) Failing after 27m56s
Package CI / package (typescript) (pull_request) Successful in 24m18s
Package CI / package (csharp) (pull_request) Successful in 31m16s
Package CI / package-corpus (php) (pull_request) Successful in 32m17s
Package CI / package-corpus (rust) (pull_request) Successful in 33m19s
CI (Windows) / fmt + clippy + build + test (windows) (pull_request) Successful in 55m6s
Package CI / package-corpus (python) (pull_request) Successful in 36m37s
Package CI / package-corpus (javascript) (pull_request) Successful in 39m10s
Package CI / package-corpus (typescript) (pull_request) Successful in 35m17s
Package CI / package-corpus (csharp) (pull_request) Successful in 45m25s
CI / cargo test (daemon transport) (pull_request) Has been cancelled
CI / Plugin path cost + pool throughput (nightly) (pull_request) Has been cancelled
CI / Report scheduled failures (pull_request) Has been cancelled
CI / OSS corpus (tier 1) (pull_request) Has been cancelled
CI / cargo test (pull_request) Has been cancelled
Package CI / package overhead budgets (nightly, one package at a time) (pull_request) Has been cancelled
Package CI / Report scheduled failures (pull_request) Has been cancelled
Package CI / package-corpus (ruby) (pull_request) Has been cancelled
838cc557bc
PR 587's CI read `left: []` at the first assertion of
`named_script_imports_follow_configuration_exports_and_daemon_restart`
and nothing else. The assertion after each daemon start now prints the
symbols, caller counts, stats and daemon log on a mismatch.

Observed red (worker suspended by exact PID until the product's own
30 s extraction deadline): `parse_errors: 1`, `test/calls.test.js`
`package refused: host.deadline_exceeded (process)`, `refs: 0`, daemon
`ready`. The product defect behind it is tracked separately.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPso9cCvzGq5Kt72PSr
ci: install cargo-deny outside the download-retry helper
All checks were successful
Package CI / package (rust) (pull_request) Successful in 11m2s
Package CI / package (xaml) (pull_request) Successful in 11m20s
Package CI / package-corpus (svelte) (pull_request) Successful in 16s
Package CI / package-corpus (timeline) (pull_request) Successful in 15s
CI / cargo test (abi, 32-bit + wasm32) (pull_request) Successful in 20m44s
CI / cargo check (MSRV 1.99.1) (pull_request) Successful in 20m54s
Package CI / package-corpus (vue) (pull_request) Successful in 22s
Package CI / package-corpus (xaml) (pull_request) Successful in 19s
Package CI / package (php) (pull_request) Successful in 16m43s
CI / cargo check (windows-gnu) (pull_request) Successful in 23m15s
Package CI / package (ruby) (pull_request) Successful in 18m28s
Package CI / package (python) (pull_request) Successful in 19m18s
Package CI / package (javascript) (pull_request) Successful in 24m37s
Package CI / package (typescript) (pull_request) Successful in 21m44s
Package CI / package (csharp) (pull_request) Successful in 27m43s
Package CI / package-corpus (php) (pull_request) Successful in 27m28s
Package CI / package-corpus (rust) (pull_request) Successful in 27m17s
Package CI / package-corpus (javascript) (pull_request) Successful in 35m8s
Package CI / package-corpus (python) (pull_request) Successful in 30m6s
Package CI / package-corpus (csharp) (pull_request) Successful in 39m18s
Package CI / package-corpus (typescript) (pull_request) Successful in 29m42s
CI (Windows) / fmt + clippy + build + test (windows) (pull_request) Successful in 57m40s
Package CI / package-corpus (ruby) (pull_request) Successful in 38m41s
Package CI / package overhead budgets (nightly, one package at a time) (pull_request) Has been skipped
Package CI / Report scheduled failures (pull_request) Has been skipped
CI / OSS corpus (tier 1) (pull_request) Successful in 1h23m20s
CI / cargo test (pull_request) Successful in 1h15m41s
CI / cargo test (daemon transport) (pull_request) Successful in 9m5s
CI / Plugin path cost + pool throughput (nightly) (pull_request) Has been skipped
CI / Report scheduled failures (pull_request) Has been skipped
8ff343872e
The helper ends an attempt after 600 s and starts the next from
scratch. `cargo install cargo-deny --locked --force` is a build; on
PR 587's run 2626 it did not finish in 600 s on a busy runner, three
times, and the job went red after 30 minutes without checking anything.
The line is back to what master runs.

`test_only_downloads_go_through_the_helper` scans every workflow and
allows the helper only in front of rustup and curl downloads.
MUTATION (RUN): wrap the install again. RED:
`[('ci.yml', 'cargo install cargo-deny --locked --force')] != []`.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPso9cCvzGq5Kt72PSr
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
h-dv/code-index!587
No description provided.