v0.41.49: PHP namespace paths, settled answers, validated configuration, rules files removed #567

Merged
buildagent merged 200 commits from integration-1110 into master 2026-11-11 16:41:02 +01:00
Member

Release train on top of v0.41.48. The version bump and the PHP package host floor ride in this branch, so the qualified head is the tag candidate.

Breaking changes

  • Rules files removed. code-index init writes .code-index.toml and nothing else. The rules command, init --no-rules and the hook installer are gone. Blocks that earlier versions wrote into a repository stay there. The skill remains served over MCP, and code-index skill install writes an on-disk copy on request. Follow-up: #571.
  • Invalid .code-index.toml is refused at daemon start, indexing, the walker and watch. Before, the daemon warned and used defaults.

Changes

  • PHP resolution (#531, #566): qualified calls and constructors resolve by the written namespace path; parent:: binds to the superclass; a leading-backslash name binds only to the global symbol it names. PHP package 0.1.6 carries the extractor side and requires this host.
  • Readiness (#562, #546 item 3): no negative answer before the index and language eligibility have settled; one-shot calls wait for startup and dispatch once; a degraded session answers non-retryable with its repair instruction.
  • Script importers (#543): importers resolved by path and the importing row's language; named imports bind exported constants and statics.
  • Conformance (#563): grant coverage is checked before the verdict outcome; bridge authority is reported as not_graded.
  • State directory (#514): state reads and writes go through the state-directory guard.
  • code-index query (#561): one JSON document on stdout, with every content_in pointer re-inlined.
  • Configuration: a config that becomes invalid during a session refuses tools with index_unavailable / invalid_configuration instead of answering empty results, and the session recovers after repair without a restart. Four keys that nothing reads are reported as ineffective. watch --debounce-ms wins over the config. Ignore patterns are validated.
  • languages.enabled: entries are checked for form only. A malformed entry is refused with the accepted form and a suggestion; a well-formed name that no builtin and no installed package declares is accepted and reported (at load, in doctor, and as a project_overview.language_ownership row), so a config can name a language before its package is installed. languages enable <name> still refuses an unknown name.
  • Configuration diagnostics print the user-facing path form (no \\?\ prefix on Windows).
  • MCP arguments: schemas state the ranges the handlers enforce; resolution_gaps(limit: 0) is count-only; an unknown CODE_INDEX_ENVELOPE value is diagnosed and disclosed.
  • stats releases its database reader before surveying installed packages (a polling client could exhaust the readers; already present in v0.41.48).
  • Dependency: rustix 1.1.6 for RUSTSEC-2026-0486.
  • Documentation: the audit of every user-visible item this train changed (7 blockers, 10 gaps) is closed; docs/package-profiles.md is the complete profile-key reference, checked against the registry by a test.

Bind account

Against v0.41.48 on all nine pinned repositories only php-guzzle moved: 55 binds removed (all audited wrong), 57 added and 5 retargeted (all audited correct), no correct bind lost, 1,632 retagged. The corpus, stage and cost baselines are blessed with that account.

Qualification

  • CI on the head 2296b2f2: all 44 jobs green on Linux and Windows (runs 2549–2552), including cargo test, the daemon transport leg, OSS corpus tier 1, cargo deny, all eleven package suites with their corpus legs, and pilot compatibility.
  • Earlier CI rounds were red and are fixed: a test helper that exhausted the database readers by polling stats; a Windows file-replace collision in a fixture; three tests that depended on which packages the machine has installed (local runs on a machine with packages installed did not show them); a Windows path-form mismatch in configuration diagnostics; a one-shot test that depended on machine speed.
  • Local full gate run (42 steps) on 37c76ee2: 39 green. Workspace and daemon-leg steps failed in the same two tests (a doc size reserve and a pinned test population, where lanes met at the merge); the packages-only acceptance showed that a config naming a not-installed language was refused. All fixed; the last is the languages.enabled change above.
  • Partial local re-run on f73682d5 with an empty user package store: formatting, lints for both targets, docs, timing, doctests, fast gates, packages-only and shipped-build acceptance green; workspace 5,570 of 5,571 and daemon leg 1,049 of 1,050. The one failure (a harness rule about how a new test starts the CLI) is fixed in 2296b2f2; that rule and the affected suite were re-run on both legs.
  • Not repeated locally after 37c76ee2: the corpus, precision and package suites; CI ran them on the head. The Windows behaviour of the last fixes was verified by CI only.

Not in this train

The file-isolation rules for #566 (branch codex-r2) are deferred. The shared argument and settings registry is #570.

🤖 Generated with Claude Code

https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W

Release train on top of v0.41.48. The version bump and the PHP package host floor ride in this branch, so the qualified head is the tag candidate. ## Breaking changes - **Rules files removed.** `code-index init` writes `.code-index.toml` and nothing else. The `rules` command, `init --no-rules` and the hook installer are gone. Blocks that earlier versions wrote into a repository stay there. The skill remains served over MCP, and `code-index skill install` writes an on-disk copy on request. Follow-up: #571. - **Invalid `.code-index.toml` is refused** at daemon start, indexing, the walker and `watch`. Before, the daemon warned and used defaults. ## Changes - **PHP resolution (#531, #566):** qualified calls and constructors resolve by the written namespace path; `parent::` binds to the superclass; a leading-backslash name binds only to the global symbol it names. PHP package 0.1.6 carries the extractor side and requires this host. - **Readiness (#562, #546 item 3):** no negative answer before the index and language eligibility have settled; one-shot calls wait for startup and dispatch once; a degraded session answers non-retryable with its repair instruction. - **Script importers (#543):** importers resolved by path and the importing row's language; named imports bind exported constants and statics. - **Conformance (#563):** grant coverage is checked before the verdict outcome; bridge authority is reported as `not_graded`. - **State directory (#514):** state reads and writes go through the state-directory guard. - **`code-index query` (#561):** one JSON document on stdout, with every `content_in` pointer re-inlined. - **Configuration:** a config that becomes invalid during a session refuses tools with `index_unavailable` / `invalid_configuration` instead of answering empty results, and the session recovers after repair without a restart. Four keys that nothing reads are reported as ineffective. `watch --debounce-ms` wins over the config. Ignore patterns are validated. - **`languages.enabled`:** entries are checked for form only. A malformed entry is refused with the accepted form and a suggestion; a well-formed name that no builtin and no installed package declares is accepted and reported (at load, in `doctor`, and as a `project_overview.language_ownership` row), so a config can name a language before its package is installed. `languages enable <name>` still refuses an unknown name. - **Configuration diagnostics** print the user-facing path form (no `\\?\` prefix on Windows). - **MCP arguments:** schemas state the ranges the handlers enforce; `resolution_gaps(limit: 0)` is count-only; an unknown `CODE_INDEX_ENVELOPE` value is diagnosed and disclosed. - **`stats`** releases its database reader before surveying installed packages (a polling client could exhaust the readers; already present in v0.41.48). - **Dependency:** `rustix` 1.1.6 for RUSTSEC-2026-0486. - **Documentation:** the audit of every user-visible item this train changed (7 blockers, 10 gaps) is closed; `docs/package-profiles.md` is the complete profile-key reference, checked against the registry by a test. ## Bind account Against v0.41.48 on all nine pinned repositories only php-guzzle moved: 55 binds removed (all audited wrong), 57 added and 5 retargeted (all audited correct), no correct bind lost, 1,632 retagged. The corpus, stage and cost baselines are blessed with that account. ## Qualification - **CI on the head `2296b2f2`:** all 44 jobs green on Linux and Windows (runs 2549–2552), including `cargo test`, the daemon transport leg, OSS corpus tier 1, `cargo deny`, all eleven package suites with their corpus legs, and pilot compatibility. - **Earlier CI rounds were red and are fixed:** a test helper that exhausted the database readers by polling `stats`; a Windows file-replace collision in a fixture; three tests that depended on which packages the machine has installed (local runs on a machine with packages installed did not show them); a Windows path-form mismatch in configuration diagnostics; a one-shot test that depended on machine speed. - **Local full gate run (42 steps) on `37c76ee2`:** 39 green. Workspace and daemon-leg steps failed in the same two tests (a doc size reserve and a pinned test population, where lanes met at the merge); the packages-only acceptance showed that a config naming a not-installed language was refused. All fixed; the last is the `languages.enabled` change above. - **Partial local re-run on `f73682d5` with an empty user package store:** formatting, lints for both targets, docs, timing, doctests, fast gates, packages-only and shipped-build acceptance green; workspace 5,570 of 5,571 and daemon leg 1,049 of 1,050. The one failure (a harness rule about how a new test starts the CLI) is fixed in `2296b2f2`; that rule and the affected suite were re-run on both legs. - **Not repeated locally after `37c76ee2`:** the corpus, precision and package suites; CI ran them on the head. The Windows behaviour of the last fixes was verified by CI only. ## Not in this train The file-isolation rules for #566 (branch `codex-r2`) are deferred. The shared argument and settings registry is #570. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
Bind named calls to exact exported constant values while retaining module, visibility, contribution, capability and uniqueness checks. Resolve JS/TS reverse imports through relative or configured paths with script extension and index rules instead of file stems.

Add fixture and daemon regressions with private exports, alias imports, pagination and same-package stem decoys. Both fixture/e2e pairs fail their corresponding mutations. Corpus binds are unchanged; the importer account audits 22 correct additions and 2463 wrong removals across ts-zod and js-express.

Refs #543 (arrow constants and importer identity only).
Use one lifecycle predicate for eligibility claims, absence notes and
reply-wide qualification. Keep the gate above tool and JSON resource
dispatch, including context_pack's budget reservation, so new builders
inherit the same settlement rule.

Serve cold source paths as pending while language routing is unsettled.
Derive retryability from the existing durable-queue/daemon convergence
measurement, and disclose the observed lifecycle instead of guessing
that a daemon is older. Preserve genuine settled zeros and exclusions.

Add portable cold-start, reconciliation, convergence and settled-control
e2e coverage plus a dispatch-placement registry. Extend the existing
package-only activation test to inspect the first text answer. Eight
mutations were caught and restored with verified snapshots.

Validation: targeted unit/e2e/registry checks pass on both legs; normal
build cold Rust read passes. Full daemon suite, workspace Clippy, fmt and
strict private-item rustdoc pass. The full default run found two test
expectations requiring updates (suite census 64 -> 65, startup extension
refusal); both affected suites pass their targeted reruns.
Classify path refusals centrally and retain fixed walk and byte reasons
while language eligibility settles. Give byte refusals precedence over
an unclaimed old generation. Restrict settlement traversal to response
containers, preserve existing notes and basis values, and pin the rewrite
sites for every tool and JSON resource. Operational process counters keep
their measured populations.

One-shot queries use the project's approved packages without scanning
other projects for automatic grants before publishing their reader.
Disclose the exhausted startup wait and a bounded override instead of
prescribing another index pass for an already complete database.
Document measurement floors, retry convergence and refusal stability;
align CLI assertions with the measured convergence value.

Validation: targeted tests on both legs; mutation checks fail as intended;
full code-index-mcp suite on snapshot and daemon legs; query_cli; workspace
clippy with warnings denied; fmt; workspace private-item rustdoc with
warnings denied. All restored-code checks pass.
Carry global roots, namespace-relative names and static-call shape through the PHP guest. Resolve qualified calls from lexical owners, declared bases and expanded imports, and clear unsupported dynamic scopes.

Rebuild PHP package 0.1.5 with reproducible records. Add shipped-package fixture and daemon coverage, and source-checked parity deltas. The corpus bind audit removes 55 wrong targets, adds 57 correct targets and retargets five parent calls; corpus baselines are left for lead review. Precision gate remains 7/7 with zero phantoms.
The seven original suites were measured against the new activation contract. Their synthetic activation packages fail real C1, so those paths retain explicit input metadata. Restore metadata-free verdicts for registry rendering, and exercise measured variants through the same assertions. The legacy upgrade fixture is captured from the installed release after bundled Rust adoption.
#561: `code-index query` re-inlines every content_in pointer, including batch entries, and keeps unreferenced items.
#563: a conformance verdict records the capability set it was measured under; enable and automatic activation
re-measure on a mismatch or a legacy verdict instead of refusing or skipping.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
Validate global paths in a generic final pass for PHP, Ruby and C#.
Preserve an inherited member only with exact receiver identity and a
positive local lineage proof. Preserve global markers in type refs and
Ruby root-only declaration scopes; rebuild the three affected packages.

A qualified flag no longer overrides origin by itself: rule 11 needs
exact written target identity. The full release account records both
precision gains and 132 correct Python/TypeScript removals; retaining
those correct targets remains incomplete, rather than claiming an
ambient import proves a receiver type.

Targeted fixtures and six executed mutations, precision, fmt, clippy,
and private-item docs verified. Ratchet and cost report real movement;
Ruby cost conditions and corpus parity remain red. No baselines blessed.
Keep the final root identity and lineage check separate from the qualified fallback. Preserve unknown non-rooted receivers, including the two audited Python false targets outside this change. The focused preservation test passes and disabling rule eleven makes its target assertion fail (exit 101); snapshot restored with matching MD5.
Restore the extractor, shipped WASM, manifest, digest, provenance, registry entry and parity deltas from before P4. Remove its added fixture and parity allowances; no shipped profile uses global_alias. The audited C sharp targets were already correct.
Restore the complete released Ruby package and walker rather than ship a package with red suite, parity and cost evidence. Remove its profile activation, fixtures and parity allowances. The three audited Ruby rule-eleven wrong targets remain known and out of scope for this reduced train.
In isolated CODE_INDEX_HOME q4-state, /usr/local/bin/code-index inspected and installed PHP package digest 5558aa47ef3a77d7cdaac3c78c64f4758c123cc145b722a02a050ea3d899b6ce and indexed one PHP file with zero parse errors. Its manifest declares extends=php only, so no new profile key ships and the existing host floor remains applicable. Ruby was withdrawn.

Explicit global_root and php_path_semantics declarations each fail on the released binary with manifest.unknown_field (exit 1), rather than being ignored. Packages declaring either key must set requires_host to the first core release supporting it and follow that core. Existing policy: crates/package/src/manifest.rs module docs (deny_unknown_fields); profile_spec::an_unreadable_declaration_is_refused_by_name. Logs: /tmp/claude-1000/codex-r3/q4-release-*.log.
The two accepted new profile fields bring the complete declaration to 35 traits. The existing full-vocabulary gate failed with 35 versus 33; updating its explicit census and the canonical-declaration documentation makes all five profile schema tests pass. No package manifest declares the new fields.
Return after the bounded root selection if it has no rows. This avoids
loading and decoding profiles and preparing unused candidate statements.
Per-statement attribution over all nine pinned repositories measured the
profile-load aggregate on cs-dapper at 392 -> 357 VM steps (12 -> 11 calls),
with the same 35-step saving on js-express. PHP's root scan remains 515896
steps and its qualified-decision update accounts for 870 of 919 sorts.

Final release comparison: all nine producer/language populations match.
The 132 previously lost correct targets are restored. Eight repositories
have zero target changes. PHP has 55 removals, 57 additions and 5 retargets,
identical site-for-site to the accepted PHP account. Fifty removals have a
written global root and a wrong namespaced target (42 from rule 11, eight
from rule 10); five are accepted parent corrections. No correct target lost.
Rule changes: 11 -42, 10 -8, 41 -1642, 50 +1694, including 1632 retags.
The 75 retained-target audit samples and all 117 PHP movements are recorded
under /tmp/claude-1000/codex-r3/q5-*.json.

Targeted preservation mutation exits 101 at its target assertion. The root
and inherited-member mutants each fail their own fixture, and all restored
targeted tests pass. Every snapshot/restore has matching MD5 and a touch.
Final PHP package suite, profile schema suite, precision (7/7 with population
and zero declared phantoms), clippy, fmt and private-item docs pass.

corpus_ratchet remains RED (exit 101): php-guzzle resolved/calls +2, edges
-29; all other dimensions/repos unchanged. Calls reconcile as 57-55=2;
distinct edges as 7 added minus 36 removed. The narrowed P4 adds no corpus
target movement beyond the accepted PHP work.
corpus_cost remains RED (exit 101): PHP sorts 2561 -> 919, below its lower
band. Both assertions were last touched by 31820ebf. Neither baseline was
changed or blessed. Final statement attribution exits 0 across all nine repos.
Final logs: q5-final-{gates,attribution,php}.log; q5-exits.txt records clippy
and RUSTDOCFLAGS=-D warnings cargo doc --workspace --no-deps
--document-private-items. Released-host checks accept the actual key-free
PHP manifest and refuse a candidate-built explicit-key CIP by field name.
Under --no-daemon --db <elsewhere>, db::open skips <root>/.code-index/, so languages::first_start_enablement and languages::load_state were the first touches of that directory. first_start_enablement probed marker.exists() and fell back to raw create_dir_all + fs::write when enabled came from .code-index.toml or was unchanged, following a repository-planted dangling symlink at .code-index/languages-enabled; load_state also read .code-index/languages.toml without check_state_dir. Route languages marker/state reads and writes, cli::doctor probe writes (.doctor-write-test, .doctor-disk-probe), and core::workspace::read_workspace_id through code_index_core::state_fs so links are refused in state_fs's vocabulary and never followed.
Released host comparison on php-guzzle: 38,733 reference sites on both sides; 37,039 identical, 1,694 lost binds, no retargets or additions. Full comparison: /tmp/claude-1000/codex-r3/z3-comparison.json. The lead must set [package].requires_host to >=CORE_RELEASE_WITH_NEW_PASSES at release time before repacking; no release version is guessed here.
Extend scoped_pass_equivalence::binds over the PHP fixture and staged php-guzzle. After a base declaration edit, an alias caller edit, and a duplicate path declaration, compare every reference target and deciding rule by source site and occurrence. Require Scoped resolution and cold-answer changes, with explicit path-binding and ambiguity controls.

Mutation: truncate scoped declaration traversal before the source-to-path hop. Both new tests fail with missing rule-50 cross-file binds; restore via cp and touch with matching MD5s. Both restored tests pass.

Verification: both new tests; PHP package suite across first-party-tests, plugin-host, CLI and indexer; cargo clippy --workspace --all-targets -- -D warnings; cargo fmt --all -- --check; RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps --document-private-items. All green. Logs: /tmp/claude-1000/codex-r3/z-gate-exits.txt.
Extraction keeps the written global root and the path-call shape; one resolver pass decides qualified PHP calls by
the written path (self/static/parent, aliases, namespace-relative), and a generic global-root pass binds an
absolute reference only to the symbol whose qualified name it writes. PHP package rebuilt.
php-guzzle against the last release: 55 wrong binds removed, 57 correct added, 5 retargets; no movement in the
other eight corpus repos. C# and Ruby package changes were tried and withdrawn.
The rebuilt PHP package loses 1,694 binds on the previous host, so it needs a requires_host floor at this release.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
narrow_the_grant_through_the_shipped_cli writes a synthetic passing C1 verdict for its fixtureless XAML package before running shipped plugin enable --grant none. Record that verdict via save_measured with MeasuredGrant::new(false, &[], &[]), matching the other activation suites updated in a3f3af3e.
This reverts commit 4ede1dba9f.
This reverts commit 6d27a01d91.
This reverts commit 94a577fa1c.
This reverts commit 566ac92f8c.
This reverts commit a3f3af3e5a.
#514: language state, the enablement marker, the doctor probes and the workspace-id read go through state_fs, so a
repository-planted link never decides where this process reads or writes state.
#563: the exact-grant verdict design merged with codex-r4 is reverted (it broke the covering rule of #103 and the
explicit-check step before widening a grant). The fix is the order inside require_loaded_verdict: authority coverage
is decided before the outcome, so a failed verdict measured without the requested authority answers
conformance_not_run with the flags to run, and only a covering verdict can answer conformance_failed.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
One predicate above the tool dispatch gates refusals, empty results and count floors while a project's index or
language eligibility is unsettled; refusals that do not depend on eligibility stay measured and carry
coverage_reason. Durable readers are published before the cross-project grant survey, and a project is settled by
its own reconcile, language decision and package set, so true negatives answer in about the time positives do in
one-shot, snapshot and daemon modes. One-shot calls await startup (bounded) and dispatch once; the remedy is chosen
from what is pending. A cancelled startup wait closes its RPC channel.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
Named imports bind exported constants and exported mutable variables. get_dependencies importers are decided by the
resolved import target for JavaScript/TypeScript rows, whatever the target's language, through the one candidate rule
the resolver uses; an unresolved import that could name the requested file is disclosed as a lower bound.
ts-zod: 2,408 wrong importers removed, 4 correct added; js-express: 55 removed, 18 added; none lost.
The file-isolation rules of #566 class 3 are not part of this merge.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
Register global-root and PHP namespace-path ref-kind stances. Restrict global-root identity to use kinds so an ambiguous rooted import cannot acquire a new target and TYPE_FQN rule.

Compare PHP class and ambiguous function imports with the installed release. The regression fails when the kind restriction is removed; restore verified with snapshot checksums.

Validation: ref-kind registry, global_roots, php_namespace_paths, scoped_pass_equivalence (28 passed, missing corpus fixture retried successfully with COSI_CORPUS_DIR), workspace clippy, and fmt check.
PHP import refs are qualified and can carry a leading backslash, so the global-root pass could rewrite their target.
It now names the reference kinds it decides. Both new resolver passes are registered in ref_kind_stance_registry.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
The version bump rides in the source branch because the rebuilt PHP package requires this core: on the previous host
it loses 1,694 binds on php-guzzle. Only the PHP manifest, its digest and its registry row changed; the extractor
binary and the ten other packages are byte-identical.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
Only php-guzzle moved against v0.41.48 on all nine pinned repos: 55 binds
removed (all audited wrong), 57 added and 5 retargeted (all audited
correct), no correct bind lost, 1632 retagged from the same-file relative
rule to the fully qualified type rule. The cost rise is attributed per
statement: the two new linear passes carry 91 percent of it.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
4de65155 added script_import_review for Vue importer resolution. Its two util.ts files each add one source-backed binding value on line 1; they are not extraction fixtures. Preserve the TypeScript pin at 114. The full abi_projection binary passes all eight tests; restoring the broad walk reproduced 116 versus 114.
Merge codex-r9: real-schema daemon fixtures, timing registration, PHP projection pins
Some checks failed
Package CI / package (svelte) (pull_request) Successful in 9m23s
Package CI / package (vue) (pull_request) Successful in 8m56s
Package CI / package-corpus (svelte) (pull_request) Successful in 16s
Package CI / package (rust) (pull_request) Successful in 9m53s
Package CI / package-corpus (timeline) (pull_request) Successful in 16s
Package CI / package-corpus (vue) (pull_request) Successful in 13s
CI / cargo test (abi, 32-bit + wasm32) (pull_request) Successful in 16m18s
Package CI / package-corpus (xaml) (pull_request) Successful in 15s
Package CI / package (php) (pull_request) Successful in 13m38s
Package CI / package (xaml) (pull_request) Successful in 10m35s
CI / cargo check (MSRV 1.99.1) (pull_request) Successful in 17m37s
CI / cargo check (windows-gnu) (pull_request) Successful in 19m40s
Package CI / package (ruby) (pull_request) Successful in 14m49s
Package CI / package (python) (pull_request) Successful in 15m8s
Package CI / package (javascript) (pull_request) Failing after 21m56s
Package CI / package (typescript) (pull_request) Failing after 20m3s
Package CI / package (csharp) (pull_request) Successful in 23m4s
CI (Windows) / fmt + clippy + build + test (windows) (pull_request) Failing after 35m4s
Package CI / package-corpus (php) (pull_request) Successful in 28m54s
Package CI / package-corpus (rust) (pull_request) Successful in 22m39s
Package CI / package-corpus (python) (pull_request) Successful in 29m14s
Package CI / package-corpus (javascript) (pull_request) Successful in 32m37s
Package CI / package-corpus (typescript) (pull_request) Successful in 25m8s
Package CI / package-corpus (csharp) (pull_request) Successful in 35m6s
Package CI / package-corpus (ruby) (pull_request) Successful in 36m27s
Package CI / package overhead budgets (nightly, one package at a time) (pull_request) Has been skipped
CI / OSS corpus (tier 1) (pull_request) Successful in 1h8m39s
CI / cargo test (pull_request) Successful in 1h1m51s
CI / cargo test (daemon transport) (pull_request) Successful in 6m31s
CI / Plugin path cost + pool throughput (nightly) (pull_request) Has been skipped
8f262802ed
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
Under CPU contention the named script daemon settled at 102 seconds, but stats probes occupied the read pool and readiness failed at 120 seconds. Use the lifecycle-only path_claims probe; retain full stats only for timeout diagnostics. The wire regression rejects stats and was verified red with that mutation.
Build the database portion of stats under its original read epoch, then
return the reader before the cached extension walk, language census and
activation-offer survey. Concurrent offer misses now share the existing
fingerprint memo rather than independently parsing every installed package.

The startup regression holds the actual offer memo and proves another
query can acquire the sole reader while stats waits. Moving drop(conn)
back below offers made that exact test fail with "an offer survey must
not exhaust the reader pool". Restored the cp snapshot and verified MD5.

Validated extension-census unit tests, activation_offer_memo,
diagnostic_census and reader_epoch_e2e. Measurements are recorded outside
the repository under /tmp/claude-1000/codex-r13/measurement.
Same four-file script fixture, signed package bytes, approvals, cold state
and taskset -c 0,1 for both optimized daemons and their sibling hosts.
Ready seconds, installed: 6.324 / 6.169 / 4.041; candidate: 3.936 / 3.850 / 3.648.
No observed startup regression; do not attribute host-load noise to speedup.
Stats median of 50 calls, startup/settled ms: installed 1.955/2.504;
candidate 2.313/2.371. No errors in the 200 final sampled stats calls.
Cold misses still take 354ms on the candidate, but no longer own readers.

The original 84.6s debug-plus-CPU-hogs reproduction spent 80.0s in
package loading/compilation; ordinary resolution was 0.182s. Existing
logs bound walk and pre-resolve indexing together, not separately.
All logs, scripts, source audit, limitations and dogfood findings remain
outside the repository at /tmp/claude-1000/codex-r13/.

Targeted tests, explicit reader-lifetime mutation, fmt, and daemon
all-targets Clippy with -D warnings passed. No package fixtures changed.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
# Conflicts:
#	crates/mcp-server/src/docs/envelope.md
#	docs/operations.md
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
test: account for config session suite in settle barrier population
Some checks failed
Package CI / package (rust) (pull_request) Successful in 11m43s
Package CI / package-corpus (svelte) (pull_request) Successful in 16s
Package CI / package (timeline) (pull_request) Successful in 8m24s
Package CI / package-corpus (timeline) (pull_request) Successful in 19s
Package CI / package-corpus (vue) (pull_request) Successful in 18s
Package CI / package (vue) (pull_request) Successful in 9m8s
Package CI / package-corpus (xaml) (pull_request) Successful in 17s
CI / cargo test (abi, 32-bit + wasm32) (pull_request) Successful in 17m20s
Package CI / package (xaml) (pull_request) Successful in 10m31s
Package CI / package (php) (pull_request) Successful in 14m35s
CI / cargo check (MSRV 1.99.1) (pull_request) Successful in 18m58s
CI / cargo test (pull_request) Has been skipped
CI / cargo test (daemon transport) (pull_request) Has been skipped
Package CI / package (ruby) (pull_request) Successful in 16m24s
Package CI / package (python) (pull_request) Successful in 17m2s
CI / cargo check (windows-gnu) (pull_request) Successful in 20m34s
Package CI / package (javascript) (pull_request) Successful in 21m51s
Package CI / package (typescript) (pull_request) Successful in 18m26s
Package CI / package (csharp) (pull_request) Successful in 23m0s
CI (Windows) / fmt + clippy + build + test (windows) (pull_request) Has been cancelled
CI / Plugin path cost + pool throughput (nightly) (pull_request) Has been cancelled
CI / OSS corpus (tier 1) (pull_request) Has been cancelled
Package CI / package overhead budgets (nightly, one package at a time) (pull_request) Has been cancelled
Package CI / package-corpus (typescript) (pull_request) Has been cancelled
Package CI / package-corpus (php) (pull_request) Has been cancelled
Package CI / package-corpus (python) (pull_request) Has been cancelled
Package CI / package-corpus (ruby) (pull_request) Has been cancelled
Package CI / package-corpus (javascript) (pull_request) Has been cancelled
Package CI / package-corpus (csharp) (pull_request) Has been cancelled
Package CI / package-corpus (rust) (pull_request) Has been cancelled
7c7eff5e30
buildagent changed title from PHP namespace paths, settled first-contact answers, script importers, query output (v0.41.49) to v0.41.49: PHP namespace paths, settled answers, validated configuration, rules files removed 2026-11-11 11:22:47 +01:00
chore(deps): rustix 1.1.6 for RUSTSEC-2026-0486
Some checks failed
Package CI / package (svelte) (pull_request) Successful in 8m26s
Package CI / package-corpus (svelte) (pull_request) Successful in 17s
Package CI / package-corpus (timeline) (pull_request) Successful in 17s
Package CI / package (rust) (pull_request) Successful in 11m55s
Package CI / package (vue) (pull_request) Successful in 8m5s
Package CI / package-corpus (vue) (pull_request) Successful in 20s
Package CI / package-corpus (xaml) (pull_request) Successful in 16s
CI / cargo test (abi, 32-bit + wasm32) (pull_request) Successful in 16m20s
CI / cargo check (MSRV 1.99.1) (pull_request) Successful in 17m25s
Package CI / package (php) (pull_request) Successful in 14m45s
CI / cargo check (windows-gnu) (pull_request) Successful in 19m42s
Package CI / package (ruby) (pull_request) Successful in 16m28s
Package CI / package (xaml) (pull_request) Successful in 10m10s
Package CI / package (python) (pull_request) Successful in 17m6s
Package CI / package (javascript) (pull_request) Successful in 23m20s
Package CI / package (typescript) (pull_request) Successful in 20m56s
Package CI / package (csharp) (pull_request) Successful in 24m50s
CI (Windows) / fmt + clippy + build + test (windows) (pull_request) Failing after 40m58s
Package CI / package-corpus (php) (pull_request) Successful in 30m37s
Package CI / package-corpus (rust) (pull_request) Successful in 27m49s
Package CI / package-corpus (python) (pull_request) Successful in 33m53s
Package CI / package-corpus (javascript) (pull_request) Successful in 34m21s
Package CI / package-corpus (typescript) (pull_request) Successful in 29m49s
Package CI / package-corpus (csharp) (pull_request) Successful in 36m37s
Package CI / package-corpus (ruby) (pull_request) Successful in 40m48s
Package CI / package overhead budgets (nightly, one package at a time) (pull_request) Has been skipped
CI / OSS corpus (tier 1) (pull_request) Successful in 1h11m55s
CI / cargo test (pull_request) Failing after 1h3m10s
CI / cargo test (daemon transport) (pull_request) Has been skipped
CI / Plugin path cost + pool throughput (nightly) (pull_request) Has been skipped
4f869010c4
The advisory (xattr functions mark unwritten bytes as initialized for a
zero-length buffer) was published on 2026-11-11 and fails cargo deny.
Only the rustix entry moves; every other lockfile entry is unchanged.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
The Linux CI runner parsed the queried file inside the 300 ms one-shot wait,
so the reply was a disclosed partial answer (rows, floor basis,
reconcile_pending) where the test demanded the miss error. The unsettled
window is now staged with the discovery-delay hook, and one helper asserts the
shared contract for both unsettled shapes.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
Config load refused every languages.enabled name that no builtin and no
package installed on this machine declares. That made validity depend on
install state: enable-then-install, a committed config shared by a team and
an uninstalled package each refused the whole index (packages-only acceptance,
three older tests on both CI platforms). Load now checks the name's form only;
an undeclared name is reported at load, in doctor and as an ownership row.
Config diagnostics print the user-facing path form.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
test(mcp): spawn the CLI through the store-isolated constructor
All checks were successful
Package CI / package (svelte) (pull_request) Successful in 9m49s
Package CI / package-corpus (svelte) (pull_request) Successful in 16s
Package CI / package (vue) (pull_request) Successful in 9m7s
Package CI / package-corpus (timeline) (pull_request) Successful in 17s
CI / cargo test (abi, 32-bit + wasm32) (pull_request) Successful in 16m17s
Package CI / package-corpus (vue) (pull_request) Successful in 17s
Package CI / package-corpus (xaml) (pull_request) Successful in 16s
Package CI / package (rust) (pull_request) Successful in 11m23s
Package CI / package (xaml) (pull_request) Successful in 11m1s
CI / cargo check (MSRV 1.99.1) (pull_request) Successful in 18m5s
Package CI / package (php) (pull_request) Successful in 14m43s
CI / cargo check (windows-gnu) (pull_request) Successful in 19m47s
Package CI / package (ruby) (pull_request) Successful in 15m7s
Package CI / package (python) (pull_request) Successful in 15m25s
Package CI / package (javascript) (pull_request) Successful in 23m0s
Package CI / package (typescript) (pull_request) Successful in 21m25s
Package CI / package (csharp) (pull_request) Successful in 24m29s
Package CI / package-corpus (php) (pull_request) Successful in 26m35s
Package CI / package-corpus (rust) (pull_request) Successful in 23m31s
Package CI / package-corpus (javascript) (pull_request) Successful in 32m57s
Package CI / package-corpus (python) (pull_request) Successful in 30m4s
Package CI / package-corpus (typescript) (pull_request) Successful in 25m42s
Package CI / package-corpus (csharp) (pull_request) Successful in 35m48s
Package CI / package-corpus (ruby) (pull_request) Successful in 37m24s
Package CI / package overhead budgets (nightly, one package at a time) (pull_request) Has been skipped
CI (Windows) / fmt + clippy + build + test (windows) (pull_request) Successful in 56m23s
CI / OSS corpus (tier 1) (pull_request) Successful in 1h10m29s
CI / cargo test (pull_request) Successful in 1h10m24s
CI / cargo test (daemon transport) (pull_request) Successful in 6m32s
CI / Plugin path cost + pool throughput (nightly) (pull_request) Has been skipped
2296b2f2b2
The ownership regression test built a Command over the CLI binary directly,
which harness_store_isolation forbids: such a process inherits the developer's
package store unless every call site remembers to override it. The test keeps
its own populated store; its override is applied after the default.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XLNPtTbPwnHBYfKMb3f1W
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!567
No description provided.