diff --git a/Cargo.lock b/Cargo.lock index 36ebdd00..4463acb1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1118,9 +1118,9 @@ dependencies = [ [[package]] name = "pulldown-cmark" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e" +checksum = "278e9268c93b9e498a2da46c34d90ba93a3255eb99009646398f34bc73ab36eb" dependencies = [ "bitflags", "memchr", diff --git a/Cargo.toml b/Cargo.toml index da8bd2fc..f929cbe5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,6 +36,7 @@ panic = "unwind" name = "codebase_graph" [features] +default = ["bundled-windows-extensions"] bundled-windows-extensions = [] [dependencies] diff --git a/crates/k-wiki/Cargo.toml b/crates/k-wiki/Cargo.toml index c6e56b9e..a8a46a78 100644 --- a/crates/k-wiki/Cargo.toml +++ b/crates/k-wiki/Cargo.toml @@ -25,7 +25,7 @@ bundled-windows-extensions = ["codebase-graph/bundled-windows-extensions"] ammonia = "~4.1.8" axum = { version = "0.8", default-features = false, features = ["http1", "json", "tokio"] } codebase-graph = { version = "4.0.2", path = "../.." } -pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] } +pulldown-cmark = { version = "0.13.5", default-features = false, features = ["html"] } serde = { version = "1", features = ["derive"] } serde_json = "1" sha2 = "0.10.9" diff --git a/docs/release.md b/docs/release.md index 7034e740..5004989c 100644 --- a/docs/release.md +++ b/docs/release.md @@ -117,6 +117,41 @@ package-owned fixture smoke results. Templates and assets must be loaded from the packaged artifact; a smoke run that relies on the repository checkout is not sufficient. Generated `.kwiki/` state is never included in an archive. +## Windows Cargo source installs + +For Windows x86_64, ordinary `cargo install codebase-graph` uses the default +`bundled-windows-extensions` feature. The binary carries the existing Ladybug +0.19.0 JSON and FTS extension bytes; no extension feature flag or runtime +extension download is needed. Explicit `--no-default-features` opts out of these +bytes. The workspace `k-wiki` build inherits the root dependency's defaults; +`k-wiki` is not published as a separate crates.io package. + +Cargo is still a native source build, not a self-contained Windows distribution. +It needs Rust and an MSVC C/C++ build environment, including the Windows SDK, +for the vendored grammar. Ladybug's source-build fallback additionally uses +CMake and Ninja and needs compatible native headers/libraries. The final +native link needs OpenSSL libraries; runtime extension loading needs compatible +OpenSSL 3 (`libssl-3-x64.dll`, `libcrypto-3-x64.dll`) and the required Visual C++ +runtime libraries. Bundled extension bytes do not supply those DLLs. Missing +compiler, native-library or DLL prerequisites are errors, not permission to +download extensions or switch installation routes silently. + +The default-feature change is tracked by [COD-53](https://linear.app/codebasegraph/issue/COD-53) +under [CBG-PLAT-01 revision 0.10, R02/A16](https://github.com/rabii-chaarani/codebaseGraph/blob/1a9db7b558b60248888408daa6268a3b45f2f0df/docs/specs/CBG-PLAT-01/spec.md#a16). +Before claiming source-install qualification, execute the plain install on a +documented supported Windows 11 x86_64 build environment. Record the exact +source/package, compiler, native-library and DLL prerequisites. Then use an +isolated empty extension cache with runtime extension downloads disabled and +verify real JSON/FTS loading, graph build, reopen and search. A prepared Windows +Server CI build or a feature-selection check alone is not this qualification. + +Prefer the official prebuilt route if you do not want a native build environment. +The separate D01 prebuilt-runtime work remains gated on permitted compatible +runtime supply and controlled loading. This source-install guidance neither +replaces that policy nor claims that the current prebuilt archive is qualified. +No exact Windows source-build recipe or clean-consumer execution is claimed by +the default-feature change alone. + Each native archive must contain: - `codebase-graph` / `codebase-graph.exe` diff --git a/docs/specs/CBG-PLAT-01/approvals/cod53-windows-native-runtimes.md b/docs/specs/CBG-PLAT-01/approvals/cod53-windows-native-runtimes.md new file mode 100644 index 00000000..791854ff --- /dev/null +++ b/docs/specs/CBG-PLAT-01/approvals/cod53-windows-native-runtimes.md @@ -0,0 +1,12 @@ +# COD-53 — exact S02 implementation approval + +- **Work:** CBG-PLAT-01/S02; [Linear COD-53](https://linear.app/codebasegraph/issue/COD-53), Maintenance P-COD-2, team COD. COD-51 clears its implementation prerequisite for this slice only. +- **Canonical specification:** `docs/specs/CBG-PLAT-01/spec.md`, revision **0.10**, full approved Git SHA **`1a9db7b558b60248888408daa6268a3b45f2f0df`**; [immutable approved content](https://github.com/rabii-chaarani/codebaseGraph/blob/1a9db7b558b60248888408daa6268a3b45f2f0df/docs/specs/CBG-PLAT-01/spec.md). Git blob `3e3bc03546607c4d6cc558fa34699f4349688640` was verified against the remote file. +- **User decision reference:** 2026-10-27, Prime Agent session `01a17b9c-1a65-77b0-bcc9-caa7c08f4b98`. The assistant asked: “Approve this scope, or keep it preparation-only?” after recommending “COD-53 only under spec rev0.10: R02, A03/A04/A16—bundled Windows runtimes, default Cargo JSON/FTS extension bytes, and required verification.” The user replied **“approved”**. +- **Approved scope:** S02/COD-53 only, requirement **R02**, criteria **A03, A04, A16**. Bundle compatible required redistributable Windows prebuilt native runtime sidecars, licenses/checksums and controlled DLL loading. Include JSON/FTS extension bytes by default in plain Windows Cargo installs; document and verify source-build/runtime prerequisites separately. Execute applicable success/failure checks and required reviews, record actual native/desktop/source-install evidence and limitations, and deliver a reviewed commit/branch/PR under repository procedure. +- **Settled policies reused:** D01, D05b, D05c and D05d. Exact versions/layout/secure loading are implementation details within these constraints; no Ladybug/extension ABI or dependency-version upgrade is approved. +- **Excluded:** other maintenance slices; package/release publication; merge, deployment or service restart; global PATH widening or arbitrary DLL fallback; changes to containment/COPY/cleanup contracts; aggregate qualification or milestone closure. Maintainer/user retains closure ownership. No implicit two-file installer rollback redesign. +- **Starting source baseline:** main `7038e66ff8271ffddc511f879cf8d28353a09b2d` (4.0.0), isolated branch `fix/cod-53-windows-runtimes`; preserve the existing dirty user checkout. Revalidate exact source and graph evidence before dependent implementation. +- **Scryer:** `chg-56s373`; existing Graph Store `resp-113` and Release Gate `resp-16`, `resp-17`, `resp-255`–`resp-258`. Detailed execution briefs/prerequisites/ownership belong in Scryer. This approval record does not assert model changes or passing execution. + +Approval, local implementation, native build/test evidence, clean Windows 11 desktop/source-install/shell qualification and aggregate closure remain distinct. Unavailable environments leave applicable acceptance pending; Windows Server CI alone is not desktop evidence. This file deliberately does not embed its own containing commit SHA. diff --git a/docs/specs/CBG-PLAT-01/decisions/cod53-vc-runtime-licence.md b/docs/specs/CBG-PLAT-01/decisions/cod53-vc-runtime-licence.md new file mode 100644 index 00000000..b7da860e --- /dev/null +++ b/docs/specs/CBG-PLAT-01/decisions/cod53-vc-runtime-licence.md @@ -0,0 +1,30 @@ +# COD-53 — Visual C++ runtime redistribution licence route + +## Decision and scope + +- Work: **CBG-PLAT-01/S02**, [COD-53](https://linear.app/codebasegraph/issue/COD-53), R02 / A03, A04, A16. Canonical [specification revision0.10](https://github.com/rabii-chaarani/codebaseGraph/blob/1a9db7b558b60248888408daa6268a3b45f2f0df/docs/specs/CBG-PLAT-01/spec.md), full approved SHA `1a9db7b558b60248888408daa6268a3b45f2f0df`; [exact S02 approval](https://github.com/rabii-chaarani/codebaseGraph/blob/eaa430c849094078bb4c228ea03136dde5587e91/docs/specs/CBG-PLAT-01/approvals/cod53-windows-native-runtimes.md). +- **Selected applicable licence route: Microsoft Visual Studio Community 2022**, subject to its eligibility, acquisition/use and redistribution terms. A paid Professional/Enterprise licence is not required if the distributor qualifies for Community and complies with its terms. +- **User decision reference:** 2026-10-27, Prime Agent session `01a17b9c-1a65-77b0-bcc9-caa7c08f4b98`. After the assistant explained the Community2022 route and linked official eligibility/licence/REDIST terms, the user replied: **“Yes then, record the applicable licence for VC”**. This authorizes recording and using that route within the existing D01 bundling policy. It is not a statement that the agent acquired/installed Visual Studio or accepted terms on the user's behalf. +- Existing D01 app-local bundling, compatibility, checksums/licences and controlled-loading requirements remain unchanged. No manual-runtime prerequisite substitute, ABI/dependency upgrade, release/publication, merge/deployment/restart or aggregate closure is approved by this record. + +## Governing Microsoft terms + +Primary sources inspected directly2026-10-27: + +1. [Visual Studio Community2022 licence terms](https://visualstudio.microsoft.com/license-terms/vs2022-ga-community/) — official embedded [English licence document](https://visualstudio.microsoft.com/wp-content/uploads/2021/11/Visual-Studio-2022-Community-License-EN.docx). Section1 permits an individual working on their own applications and permits organizational development/testing of applications released under OSI-approved open-source licences, subject to the complete terms. Other organizational scenarios have separate limits; no assumption of eligibility outside the applicable route is made. +2. Section4, **Distributable Code**, permits distribution of object code listed in the referenced Distributable List within applications developed under the licence and permits application distributors to distribute it as part of those applications. Conditions include significant primary application functionality, terms protecting Distributable Code at least as much as Microsoft's agreement, and the listed restrictions. Do not present the Microsoft DLLs as licensed under the project's MIT licence or remove their notices. +3. [Visual Studio2022 REDIST list](https://learn.microsoft.com/en-us/visualstudio/releases/2022/redistribution) explicitly names Community2022 alongside Professional/Enterprise, conditions redistribution on a validly licensed copy and the governing terms, and lists eligible **unmodified** files under `[VisualStudioFolder]\VC\redist`, with stated exclusions. Preview/pre-release/beta and debug/nonredistributable files are not supplied by this authorization. +4. [Microsoft redistribution guidance](https://learn.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?view=msvc-170) applies the licence requirement to packages, merge modules and individual runtime binaries. Merely finding DLLs on a GitHub-hosted VS Enterprise runner is not evidence of distributor entitlement or an exact permitted file source. + +The official Community2022 English DOCX was fetched successfully; SHA256 **`41a207b10c8ab91d0d2f10a854715f73dca54509581692d2fe179aa3ffcb8540`**. This is an evidence identifier for the inspected terms, not a Microsoft DLL licence file or proof of acquisition. Read the complete applicable terms; this record is an engineering compliance handoff, not a substitute agreement or legal opinion. + +## Packaging evidence still required + +Before any VC DLLs are distributed: + +- The distribution owner must have an eligible, validly licensed Community2022 copy and comply with its applicable terms. No actual installation/acquisition/acceptance has been observed or performed by the agent. This decision selects the licence route; it does not invent those facts. +- Identify the exact eligible unmodified release x64 runtime files, their official source/toolset version, names, hashes and applicable notices/terms. Current extension import tables require `MSVCP140.dll`, `VCRUNTIME140.dll` and `VCRUNTIME140_1.dll`; actual final transitive import/export closure can require more. Names alone are not byte/provenance or licence proof. +- Preserve Microsoft component notices and licence restrictions separately from project MIT/OpenSSL Apache terms. Check exact selected files against the REDIST list and applicable distribution conditions; no copying arbitrary developer/debug DLLs. +- Execute the specified archive integrity, safe-loader and real installed/native success/failure checks. This licence selection is not passing Windows11 consumer/source-install qualification or proof of compatible DLLs. + +The publisher/user retains responsibility for eligibility and compliance. Implementation within the selected route may proceed through the approved technical review gates; copying/shipping depends on the actual applicable entitlement and permitted-byte evidence above. No credentials, activation keys or purchase records are requested or stored. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/default-feature-resolved-metadata.json b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/default-feature-resolved-metadata.json new file mode 100644 index 00000000..f8120c24 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/default-feature-resolved-metadata.json @@ -0,0 +1,14 @@ +{ + "command": "cargo metadata --locked --format-version 1 (no --features)", + "target": "host macOS, not Windows byte execution", + "features_declared": { + "bundled-windows-extensions": [], + "default": [ + "bundled-windows-extensions" + ] + }, + "features_resolved": [ + "bundled-windows-extensions", + "default" + ] +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/default-feature-tree.txt b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/default-feature-tree.txt new file mode 100644 index 00000000..09d6edff --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/default-feature-tree.txt @@ -0,0 +1,4 @@ +codebase-graph v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes) +├── codebase-graph feature "bundled-windows-extensions" +│ └── codebase-graph feature "default" (command-line) +└── codebase-graph feature "default" (command-line) diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/explicit-optout-feature-tree.txt b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/explicit-optout-feature-tree.txt new file mode 100644 index 00000000..268a6223 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/explicit-optout-feature-tree.txt @@ -0,0 +1 @@ +codebase-graph v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes) diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/final-review.md b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/final-review.md new file mode 100644 index 00000000..9b08c31e --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/final-review.md @@ -0,0 +1,60 @@ +# COD-53 final review — D05d default-extension subset + +## Verdict + +**PROCEED for the reviewed subset as a draft PR. No confirmed introduced P0–P3 defects were found.** This is a source/configuration/test/docs review, not S02 completion or Windows runtime/source-install qualification. A03/A04/A16 and full COD-53 closure remain pending. No product fixes were needed, so there is no fix-verification round to report. + +## Reviewer and exact snapshot + +- Fresh independent reviewer: **GPT-6.1 Sol**, actual resolved model **`openai-codex/gpt-6.1-sol`**, **`thinking="max"`**, fresh session with no implementation-history fork; spawn settings confirmed by coordinator. +- Applied `/Users/rabii/.codex/skills/adversarial-review-engineer/SKILL.md` and its engineering lenses. Reviewed approval/spec, fresh Sol High proposal review, actual baseline/current source and frozen diff, adjacent feature/call paths, package and executed evidence. +- Worktree: `/private/tmp/codebasegraph-cod53-windows-runtimes`. +- Source baseline: **`7038e66ff8271ffddc511f879cf8d28353a09b2d`**. +- Approved canonical spec: `docs/specs/CBG-PLAT-01/spec.md`, **rev0.10**, **`1a9db7b558b60248888408daa6268a3b45f2f0df`**, S02/R02/A03/A04/A16; this implementation/review covers only the separable D05d R02/A16 configuration/test/docs subset. +- Approval record: **`eaa430c849094078bb4c228ea03136dde5587e91`**:`docs/specs/CBG-PLAT-01/approvals/cod53-windows-native-runtimes.md`. +- Latest docs-only HEAD during final recheck: **`389f86f58a03f71d81b0a2aeb44e7cc49a58f4ce`** (Community2022 route record). Its additional docs do not change the frozen product diff. Pending execution-doc additions are not an expansion of this product review. +- Frozen 3-file diff SHA256: **`fee7b0a6122950e952eb79758d3dadf58ecceea9389e7bffc4869090da096d82`**. Independently reproduced the exact patch against the baseline. All eight file identities in `subset-source-snapshot.json` matched, including unchanged lock/wiki/xtask/installer/setup files; rechecked at the end. + +| Reviewed file | SHA256 | +| --- | --- | +| `Cargo.toml` | `455a508cf5a3d4ac664af80133bafebe1c8b4c4f721d3ca3e52ab65f822b298e` | +| `docs/release.md` | `6343cbe12df65148254a057cd65572631d8f3b2c0a49029eaef5c696729740d9` | +| `src/db_writer/extensions.rs` | `fdaad58193a79b94345a88237efe452938f643ee9c45b8c6e8548c36b760a69d` | + +## Consequential paths checked + +1. **Default inclusion and opt-out.** `Cargo.toml:38–40` adds only `default = ["bundled-windows-extensions"]`. The unchanged Windows/x86_64/feature predicate at `src/db_writer/extensions.rs:98–124` selects the existing two `include_bytes!` assets. Other platform predicates, Ladybug/cache version0.19.0, dependency versions and bytes are unchanged. The feature's globally enabled name does not broaden compiled platform assets or supported targets. The root-only `--no-default-features` invocation still excludes the feature. +2. **Wiki dependency propagation.** `crates/k-wiki/Cargo.toml:18–27` retains forwarding and its root dependency without `default-features = false`; its build inherits root defaults. It remains `publish = false`, as the docs state. Workspace feature unification can reactivate root defaults through wiki: a workspace metadata run with `--no-default-features` is **not** proof of an isolated root opt-out. The supplied opt-out metadata note correctly says this; the root-selected tree provides the separate check. +3. **Regression assertion.** `src/db_writer/extensions.rs:142–155` now fails if either JSON or FTS returns `None` on feature-enabled Windows x86_64, then uses the existing real XZ decompression and length check. Explicit Windows opt-out remains legal. This catches silent absence inside the enabled branch; by itself it does not detect removal of the Cargo default, and the current forced-feature Windows CI cannot supply that proof. Default resolution and a future no-extra-feature Windows execution are separate evidence. +4. **Runtime scope/failures.** Writer preparation still propagates preseed errors (`src/db_writer/write.rs:173–184`), and search propagates preseed/`LOAD fts` failures (`src/api/graph_read.rs:88–95`). No production extension loader/cache write, DLL policy, installer, archive inventory, NativeTarget, setup or ABI code changed. Missing-runtime behavior and clean-consumer safety are not newly demonstrated. +5. **Documentation.** `docs/release.md:119–152` distinguishes bundled bytes from compiler/OpenSSL/VC prerequisites, identifies unpublished wiki correctly, requires real supported Windows11 source-install/empty-cache/offline JSON/FTS/build/reopen/search evidence, and expressly declines current prebuilt or exact-source-recipe qualification. Its named DLL prerequisites match both existing Windows PE import tables. lbug0.19.0's published `build.rs` confirms Windows CMake/Ninja fallback; current root `build.rs` requests the OpenSSL link libraries. No new source-build recipe is asserted. + +## Verification evidence + +**Reviewer-executed read-only checks:** offline locked Windows-filtered Cargo metadata (no `--features`) resolved root `default` and `bundled-windows-extensions`; isolated `cargo tree --offline --locked -p codebase-graph --no-default-features -e features -i codebase-graph` showed neither feature. Inspected the actual final `.crate`, its normalized default features, included final test source and four XZ files. All four XZ hashes match both worktree and baseline. Independently decompressed both Windows XZ files and read x64 PE/import headers: this is static artifact inspection, **not Windows execution**. + +**Coordinator-executed results inspected in logs/JUnit, not rerun by reviewer:** + +| Check | Actual result and limit | +| --- | --- | +| Default macOS ARM64 extension/JSON COPY/FTS search cohort | 4/4 passed; 838 filtered; root compile line names target worktree | +| Root explicit-no-default extension cohort | 2/2 passed; 840 filtered; macOS does not execute the Windows branch | +| xtask | 42/42 passed; zero skipped; JUnit inspected | +| `cargo fmt --all --check` | Passed | +| `cargo clippy --locked --workspace --all-targets --all-features -- -D warnings` | Passed; no warnings in log | +| `cargo package --locked --allow-dirty` | Normal extracted root package compile passed on macOS with supplied verified0.19 native library; not Windows source install or a fresh native-library source build | + +Final archive independently rehashed: **8,451,673 bytes**, below **10,485,760**, SHA256 **`e843e817b7c9da071d1983d756c1eb90e7034a96f886bcfeafd15e2fe0a73132`**. It matches `subset-final-package-measure.json`; extracted source hash matches the frozen final test file. Earlier partial archive evidence is not substituted for this final artifact. The final archive checks establish package inventory/size and macOS extracted compilation only. + +Evidence: `/private/tmp/codebasegraph-cod53-analysis/subset-verification-evidence.json`, final package measure/log, focused/opt-out/xtask logs and JUnit. Coordinator has copied these under `docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/` for durable delivery. + +## Remaining gates / limitations — not introduced defects + +- No Windows native default-build test or plain Windows11 source install ran. The Windows assertion is reviewed statically; metadata and macOS tests do not establish A16. A no-extra-feature Windows test plus the specified real source-install/offline behavior remains required before qualification. +- No clean Windows11 prebuilt/installer/DLL success/failure execution or final runtime artifact closure was reviewed. A03/A04 and full S02 remain OPEN; this is not a release, merge, publication or aggregate-closure recommendation. +- The user has now selected the **Visual Studio Community2022** licence route in `389f86f58a03f71d81b0a2aeb44e7cc49a58f4ce:docs/specs/CBG-PLAT-01/decisions/cod53-vc-runtime-licence.md`; it is **not an unanswered route question or a paid-licence requirement**. Eligible acquisition/use and exact permitted unmodified DLL provenance/notices, compatibility and controlled-loading evidence remain necessary before copying/shipping VC files. This subset adds no VC DLLs. +- Root AGENTS was supplied/read; the isolated worktree has no AGENTS file. Recalled repository memory, read wiki release context, fetched Scryer rules/orientation and `chg-p08sev`; `resp-113` is the existing claim. Configured graph/wiki/Scryer bind the older main checkout: graph discovery/context supplied orientation, while actual hashes/source/package supplied revision evidence. TOML manifests are absent from graph File nodes; graph-discovered xtask evidence identifies their paths. Linear connection is pending/unavailable; no tracking or Scryer verdict/closure mutation was made. Stale four-target wiki prose was not treated as current scope. +- No product/tracking/Git edits, builds, tests or CI executions were performed by this reviewer. Only this report was written. Additional independent primary references opened2026-10-27: [Cargo default features](https://doc.rust-lang.org/cargo/reference/features.html#the-default-feature), [cargo install feature options](https://doc.rust-lang.org/cargo/commands/cargo-install.html#feature-selection), [published lbug0.19.0 build script](https://docs.rs/crate/lbug/0.19.0/source/build.rs) (matches installed dependency source). +- Reusable-knowledge assessment: no new durable memory warranted. This is a task-specific incomplete qualification state; existing Cargo-feature/package/native-profile knowledge already covers the reusable mechanics. + +The only production setting changed is the root default feature. No numeric constants changed. This recommendation assumes delivery remains explicitly labelled as this reviewed subset; it does not assume runtime entitlement, supported-platform execution or full acceptance. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/junit-case-audit.json b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/junit-case-audit.json new file mode 100644 index 00000000..ebe017a1 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/junit-case-audit.json @@ -0,0 +1,23 @@ +{ + "subset-focused.junit.xml": { + "cases": 4, + "failures": 0, + "errors": 0, + "skipped": 0, + "sha256": "4d1dec5d6e51c9a7a45fa5c2be3940800e35587a8c16240511d15bf579335643" + }, + "subset-optout.junit.xml": { + "cases": 2, + "failures": 0, + "errors": 0, + "skipped": 0, + "sha256": "ad43e4875ae1f383f6ac18962a43396d47a77809afb1e8ac0b9b63ce6baad86b" + }, + "subset-xtask.junit.xml": { + "cases": 42, + "failures": 0, + "errors": 0, + "skipped": 0, + "sha256": "29c08310d66e54d3aa91710b7544f51c3ce6ed662687f61f7753c5790f6770dc" + } +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/proposal-review.md b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/proposal-review.md new file mode 100644 index 00000000..27fac312 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/proposal-review.md @@ -0,0 +1,64 @@ +# COD-53 proposal review — bounded D05d/A16 byte-default subset + +## Recommendation: proceed with specified conditions for this subset only + +The independent proposal gate is satisfied for the concrete minimal mechanism below. The full S02 prebuilt-runtime/loader/installer gate remains OPEN. This recommendation does not qualify A16, complete COD-53, authorize release/publication, or replace D01 with external prebuilt prerequisites. Missing Windows11 execution is a later qualification gate, not a reason this bounded source-default implementation is technically unviable. + +**Reviewed concrete implementation:** add root `[features]` `default = ["bundled-windows-extensions"]` in `Cargo.toml`; retain the existing empty feature and Windows-x86_64 `cfg` around the existing JSON/FTS `include_bytes!` branches. Retain `k-wiki` forwarding and existing typed native build/test arguments. Make only focused tests/documentation/evidence needed to establish this default and its limits. No ABI/dependency/extension-byte changes, runtime supply/loader/installer/archive changes, PATH changes, new opt-out semantics, or broader compatibility mechanism. A different target-cfg-only implementation has not been reviewed as the chosen proposal; return for a focused delta review if chosen instead. + +This is within the exact approval's express allowance that the Cargo feature mechanism is an implementation detail. Both ordinary root Cargo builds and `k-wiki`'s existing dependency enable the root default; the asset branch remains Windows-x86_64-only, so a globally named default feature does not compile Windows bytes on Mac or expand supported targets. Explicit `--no-default-features` is not the approved plain-install scenario and can retain its existing opt-out behavior. Do not remove the current feature to tidy up typed test contracts. + +## Concrete proposal recheck — approved for bounded implementation + +Reviewed `/private/tmp/codebasegraph-cod53-analysis/default-extensions-proposal.md`, SHA256 `0a497945e24f12df589f3b218788a79c3cd40d09cd3d9998f772743885a88161`, on2026-10-27. **Verdict: PROCEED for that bounded proposal with its stated evidence limits.** No blocking proposal revision is required. The root default-feature route, feature-enabled Windows-specific non-None/decompression assertion, and truthful source-prerequisite docs match the mechanism reviewed above. Re-read actual root/wiki manifests and extension-source hashes: unchanged baseline. Read actual docs/release.md after supplied graph discovery. Loader-design.md is NOT a prerequisite for this separable feature/docs/test change because it deliberately leaves loader/runtime supply/distribution unchanged; full S02 remains gated. + +Clarifications for execution (not new scope): +- `cargo metadata --no-deps` establishes the declared default mapping, not target inclusion or resolved dependency activation. Attribute it exactly that way. Windows non-None/decompression tests must subsequently run through a no-extra-feature build to establish default behavior; existing forced-feature native tests alone cannot. +- It is correct to put the Windows non-None assertion behind Windows-x64 plus the existing feature: explicit no-default opt-out need not fail that assertion. The default-mapping evidence and default-build invocation provide the other half of the proof. No new manifest parser, magic-string xtask hook, new dependency or command-contract layer is required. +- Lack of an actual Windows11 host/source install prevents A16 qualification, not this implementation start. Preserve the planned/pending distinction already in the concrete proposal and verification matrix. +- A documented external-runtime prerequisite applies only to source installs. Do not imply the current prebuilt archive satisfies D01 or replace D01 with that source route. Exact compiler/library/DLL recipe remains unverified until executed; keep docs explicit about that limitation. + +The one authored feature default is the only production setting changed. No numeric constants, dependency versions, asset bytes or ABI values should change. Coordinator Scryer brief/ownership remains a before-edit procedure; final code review and executed checks remain delivery gates. PR-01/PR-02 below apply only to the full packaging/loader-dependent work and do not block this subset. + +## Evidence and reasoning + +- Actual baseline `Cargo.toml:38–39` has no default and an empty opt-in feature. `src/db_writer/extensions.rs:98–124` already gates inclusion by Windows/x86_64 plus that feature. `crates/k-wiki/Cargo.toml` has a root dependency without `default-features = false`; its forwarding feature need not change. +- Root `Cargo.toml:18` already includes all compressed0.19.0 extension assets independent of the feature. Supplied package-only evidence is8,451,625 compressed bytes (<10,485,760), leaving2,034,135bytes. Adding the feature default does not itself add new source assets. Recheck the actual final archive because docs/tests/source growth can consume headroom. Package --no-verify is not an extracted compile/source-install result. +- Baseline `crates/xtask/src/main.rs:252–266,385–405,2397–2410` explicitly passes the feature for Windows native tests/releases. Preserve this typed contract/profile. Those existing feature-enabled checks cannot by themselves demonstrate a *default* feature, so include a distinct no-feature-flags check rather than merely rerun them. +- Official Cargo reference confirms a package's `default` feature activates its listed features unless explicitly disabled. Primary source independently opened2026-10-27: https://doc.rust-lang.org/cargo/reference/features.html#the-default-feature +- Supply report's exact-byte inspection confirms the existing compressed Windows assets and direct OpenSSL/VC imports. Enabling them by default neither redistributes new VC DLLs nor supplies the missing runtime DLLs. It preserves approved A16's separate documented compiler/native-library/runtime prerequisites. This subset cannot claim self-contained Windows runtimes or A03/A04 satisfaction. + +## Proceed conditions and acceptance evidence + +1. Coordinator records this exact bounded file ownership/brief and approval linkage in Scryer before coding, preserving the existing change/claim identities. No invented architecture nodes are required merely to restore `resp-113`. +2. Keep product change to the root feature default plus focused tests/docs. Leave runtime procurement, licence files/redistribution, loading, installer, archive inventory, build/setup recipes, and dependencies unchanged. If implementation needs any of those, stop at that dependency and return for the full proposal gate. +3. Add/execute a check that actually exercises default selection without `--features`. A narrow Cargo metadata/resolved-feature assertion can establish selection; a Windows default-build extension presence/decompression test establishes target byte inclusion. A Mac-only decompression pass or a feature-enabled native suite does not establish Windows default inclusion. Preserve `native-tests` profile/debug-assertion coverage and existing feature forwarding. +4. Recheck final `.crate` inclusion/exact compressed size, normal extracted-package compilation where available, format/Clippy/affected tests. Record what ran and its exact source/toolchain. No new dependency or asset needed for the feature mechanism. +5. Keep A16's real plain Windows11 source install with documented runtime prerequisites, isolated empty extension cache and downloads disabled as PENDING until actually executed. Do not infer success from static metadata, Mac tests, Server CI, or unchanged assets. Do not claim `cargo install k-wiki` is registry-supported: current k-wiki is `publish = false`; its workspace native build/feature propagation is relevant, while A16's named plain install is `cargo install codebase-graph`. + +No established blocking defect was found in this narrow mechanism. The condition about a no-feature-flags check addresses an otherwise misleading proof strategy, not a demonstrated implementation failure. + +## Full proposal findings retained + +### PR-01 — VC runtime redistribution entitlement is unverified +**Type:** decision-critical permission evidence gap. **Priority:** blocks packaging/distribution commitment dependent on VC DLL copying, not the above source-feature work. + +The supply report proposes eligible unmodified files under VS2022 VC redist and correctly avoids claiming that a GitHub-hosted Enterprise installation establishes the publisher's rights. Independently opened Microsoft's VS2022 REDIST list and redistribution guidance. The REDIST page expressly conditions copying on a validly licensed copy and governing licence terms, allows eligible unmodified VC/redist files, and excludes debug_nonredist. The applicable facts about the distributor are not supplied. This is not a finding that app-local redistribution is prohibited or that the publisher lacks a licence. + +**Resolution:** user/distribution owner confirms the applicable entitlement/terms or supplies an authorized in-policy route. Keep D01 unchanged. Do not copy/package VC sidecars on the strength of build-host availability alone. +Sources: https://learn.microsoft.com/en-us/visualstudio/releases/2022/redistribution ("Distributable Code Files"/"Visual C++ Runtime Files"); https://learn.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?view=msvc-170 . Accessed2026-10-27. + +### PR-02 — Exact runtime artifact and controlled-loader evidence still required +**Type:** decision-critical design/evidence gap. **Priority:** blocks full loader/installer/prebuilt implementation commitment, not the narrow subset. + +The source-built OpenSSL3.5.9 provider is technically plausible. I independently opened its tagged VERSION.dat (SHLIB_VERSION=3), Apache2.0 LICENSE.txt and MSVC naming logic, plus OpenSSL3.5's same-major API/ABI statement. I also opened pinned Ladybug extension.cpp confirming LoadLibraryW of the extension. These support pursuing an in-policy provider without Ladybug/extension ABI change; they do not prove final DLL exports, transitive imports, native loading or permission for VC files. The report correctly makes those final artifact checks explicit. Exact source archive checksum and all44 import-to-export names have not been independently rederived by this reviewer; the supply worker's PE/source inspection remains attributed research evidence. + +Microsoft's DLL search-order reference confirms dependencies resolve by name even for an absolute parent path and that existing modules can satisfy names regardless of their origin. Full design still needs the concrete loader/entrypoint/lifetime policy and candidate sidecar installer flow; loader-design.md and settled coordinator proposal have not yet been received. No unsupported guarantee or observed native security failure is asserted. + +**Resolution:** final concrete loader proposal plus final artifact import/export checks and native test plan, with fail-before-either-EXE-replacement behavior kept inside A04 and no COD-56/pair-rollback expansion. Windows execution subsequently verifies the implementation; actual Windows11 desktop A03/A16 qualification may remain pending honestly. +Sources: https://docs.openssl.org/3.5/man7/ossl-guide-migration/ ; https://raw.githubusercontent.com/openssl/openssl/openssl-3.5.9/VERSION.dat ; https://raw.githubusercontent.com/openssl/openssl/openssl-3.5.9/LICENSE.txt ; https://raw.githubusercontent.com/openssl/openssl/openssl-3.5.9/Configurations/platform/Windows/MSVC.pm ; https://raw.githubusercontent.com/LadybugDB/ladybug/c934f673b6b1c5b680bdae3295cbd909b5855cef/src/extension/extension.cpp ; https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order . Accessed2026-10-27. + +## Reviewer, authority and limits +Fresh independent read-only GPT-6.1 Sol, actual `openai-codex/gpt-6.1-sol`, coordinator-confirmed `thinking="high"`. Applied adversarial-proposal-review-engineer skill/references. Spec0.10 approved SHA `1a9db7b558b60248888408daa6268a3b45f2f0df`; source baseline `7038e66ff8271ffddc511f879cf8d28353a09b2d`; approval docs `eaa430c849094078bb4c228ea03136dde5587e91`. Read approval, proposal-review-input.md, runtime-supply.md, verification-matrix.md and baseline source after graph discovery, plus repository memory/wiki and Scryer rules/claims. All supplied baseline source hashes matched. Graph/wiki remain root-bound orientation, not exact-worktree evidence (wiki's old four-target prose does not expand approved scope). + +No product edits, Git, builds, tests, CI or tracking mutations by reviewer. Only review artifacts written. Supplied coordinator test results remain attributed. No desktop/native-load/source-install qualification claimed. No reusable durable memory recorded: this is an incomplete task-specific proposal decision, not a verified runbook. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-clippy.log b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-clippy.log new file mode 100644 index 00000000..9b8eb6cb --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-clippy.log @@ -0,0 +1,169 @@ + Checking cfg-if v1.0.4 + Checking itoa v1.0.18 + Compiling serde_core v1.0.228 + Checking memchr v2.8.2 + Checking libc v0.2.189 + Checking tree-sitter-language v0.1.8 + Checking typenum v1.20.1 + Compiling syn v2.0.117 + Checking bitflags v2.13.0 + Compiling serde_json v1.0.150 + Checking zmij v1.0.21 + Checking log v0.4.32 + Compiling syn v3.0.3 + Checking regex-syntax v0.8.11 + Checking powerfmt v0.2.0 + Checking aho-corasick v1.1.4 + Checking deranged v0.3.11 + Checking cpufeatures v0.2.17 + Checking generic-array v0.14.7 + Checking num-traits v0.2.19 + Checking link-cplusplus v1.0.12 + Checking crc-catalog v2.5.0 + Checking same-file v1.0.6 + Checking time-core v0.1.2 + Checking arrayvec v0.7.6 + Checking cty v0.2.2 + Checking foldhash v0.1.5 + Checking num-conv v0.1.0 + Checking time v0.3.36 + Checking libmimalloc-sys v0.1.49 + Checking rust_decimal v1.42.1 + Checking walkdir v2.5.0 + Checking block-buffer v0.10.4 + Checking crypto-common v0.1.7 + Checking crc v3.4.0 + Checking digest v0.10.7 + Checking fsevent-sys v4.1.0 + Compiling codebase-graph v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes) + Checking notify-types v2.0.0 + Checking sha2 v0.10.9 + Checking streaming-iterator v0.1.9 + Checking uuid v1.18.1 + Checking byteorder v1.5.0 + Checking notify v8.2.0 + Checking tree-sitter-css v0.25.0 + Checking lzma-rs v0.3.0 + Checking tree-sitter-rust v0.24.2 + Checking tree-sitter-fortran v0.6.0 + Checking tree-sitter-javascript v0.25.0 + Checking tree-sitter-typescript v0.23.2 + Checking tree-sitter-c v0.24.2 + Checking tree-sitter-python v0.25.0 + Checking tree-sitter-cpp v0.23.4 + Checking tree-sitter-html v0.23.2 + Compiling tree-sitter v0.25.10 + Checking tree-sitter-go v0.25.0 + Checking mimalloc v0.1.52 + Checking getrandom v0.3.4 + Checking fs2 v0.4.3 + Checking smallvec v1.15.2 + Checking stable_deref_trait v1.2.1 + Checking errno v0.3.14 + Compiling siphasher v1.0.3 + Compiling fastrand v2.5.0 + Checking bytes v1.12.1 + Checking litemap v0.8.2 + Checking futures-core v0.3.32 + Compiling phf_shared v0.13.1 + Compiling parking_lot_core v0.9.12 + Checking pin-project-lite v0.2.17 + Checking regex-automata v0.4.14 + Checking writeable v0.6.3 + Compiling phf_generator v0.13.1 + Checking utf8_iter v1.0.4 + Checking scopeguard v1.2.0 + Compiling icu_normalizer_data v2.2.0 + Compiling icu_properties_data v2.2.0 + Checking lock_api v0.4.14 + Checking http v1.5.0 + Compiling phf_codegen v0.13.1 + Compiling string_cache_codegen v0.6.1 + Checking new_debug_unreachable v1.0.6 + Checking http-body v1.1.0 + Checking signal-hook-registry v1.4.8 + Checking parking_lot v0.12.5 + Checking mio v1.2.1 + Compiling web_atoms v0.2.6 + Checking socket2 v0.6.5 + Compiling httparse v1.10.1 + Checking precomputed-hash v0.1.1 + Checking phf v0.13.1 + Checking string_cache v0.9.0 + Compiling cxx-build v1.0.138 + Compiling synstructure v0.13.2 + Checking regex v1.12.4 + Checking percent-encoding v2.3.2 + Checking hashbrown v0.15.5 + Checking equivalent v1.0.2 + Checking tower-service v0.3.3 + Checking tendril v0.5.1 + Checking futures-channel v0.3.32 + Checking futures-task v0.3.32 + Checking slab v0.4.12 + Checking httpdate v1.0.3 + Checking ryu v1.0.23 + Compiling displaydoc v0.2.7 + Compiling tokio-macros v2.7.2 + Checking indexmap v2.7.1 + Checking atomic-waker v1.1.2 + Checking dtoa v1.0.11 + Checking sync_wrapper v1.0.2 + Checking tower-layer v0.3.3 + Checking libyaml-rs v0.3.0 + Checking dtoa-short v0.3.5 + Checking futures-util v0.3.32 + Checking form_urlencoded v1.2.2 + Checking http-body-util v0.1.4 + Compiling pulldown-cmark v0.13.4 + Checking tokio v1.53.1 + Checking mime v0.3.17 + Checking cssparser v0.37.0 + Checking axum-core v0.5.6 + Compiling serde_derive v1.0.228 + Compiling cxxbridge-macro v1.0.138 + Compiling zerofrom-derive v0.1.7 + Compiling yoke-derive v0.8.2 + Compiling zerovec-derive v0.11.3 + Checking markup5ever v0.39.0 + Compiling lbug v0.19.0 + Checking serde_path_to_error v0.1.20 + Checking html5ever v0.39.0 + Checking pulldown-cmark-escape v0.11.0 + Checking matchit v0.8.4 + Checking maplit v1.0.2 + Checking zerofrom v0.1.8 + Checking unicase v2.9.0 + Checking rustix v1.1.4 + Checking simd-adler32 v0.3.10 + Checking adler2 v2.0.1 + Checking crc32fast v1.5.0 + Checking miniz_oxide v0.9.1 + Checking filetime v0.2.29 + Checking flate2 v1.1.10 + Checking yoke v0.8.3 + Checking xattr v1.6.1 + Checking tar v0.4.46 + Checking serde v1.0.228 + Checking cxx v1.0.138 + Checking zerovec v0.11.6 + Checking zerotrie v0.2.4 + Checking hyper v1.11.0 + Checking tower v0.5.3 + Checking hyper-util v0.1.20 + Checking axum v0.8.9 + Checking yaml_serde v0.10.7 + Checking xtask v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes/crates/xtask) + Checking tinystr v0.8.3 + Checking potential_utf v0.1.5 + Checking icu_collections v2.2.0 + Checking icu_locale_core v2.2.0 + Checking icu_provider v2.2.0 + Checking icu_properties v2.2.0 + Checking icu_normalizer v2.2.0 + Checking idna_adapter v1.2.2 + Checking idna v1.1.0 + Checking url v2.5.8 + Checking ammonia v4.1.8 + Checking k-wiki v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes/crates/k-wiki) + Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.28s diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-final-package-measure.json b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-final-package-measure.json new file mode 100644 index 00000000..a79f257e --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-final-package-measure.json @@ -0,0 +1,8 @@ +{ + "bytes": 8451673, + "sha256": "e843e817b7c9da071d1983d756c1eb90e7034a96f886bcfeafd15e2fe0a73132", + "source_snapshot": "subset-source-snapshot.json", + "command": "cargo package --locked --allow-dirty", + "result": 0, + "scope": "exact changed subset extracted source compiled on macOS0.19pinnednative notWindowsqualification" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-final-package-verify.log b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-final-package-verify.log new file mode 100644 index 00000000..cca6a65f --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-final-package-verify.log @@ -0,0 +1,6 @@ + Packaging codebase-graph v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes) + Updating crates.io index + Packaged 205 files, 14.0MiB (8.1MiB compressed) + Verifying codebase-graph v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes) + Compiling codebase-graph v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes/target/package/codebase-graph-4.0.0) + Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.48s diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-focused-tests.log b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-focused-tests.log new file mode 100644 index 00000000..4ef2fd65 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-focused-tests.log @@ -0,0 +1,11 @@ + Compiling codebase-graph v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes) + Finished `test` profile [unoptimized + debuginfo] target(s) in 23.37s +──────────── + Nextest run ID b6b28c99-6afd-48ee-8d80-8de2218e2e0f with nextest profile: cod53 + Starting 4 tests across 1 binary (838 tests skipped) + PASS [ 10.208s] (1/4) codebase-graph adapters::cli::tests::graph::graph_search_reads_native_fts_indexes + PASS [ 0.321s] (2/4) codebase-graph db_writer::extensions::tests::bundled_extension_archives_decompress_before_cache_seed + PASS [ 0.018s] (3/4) codebase-graph db_writer::extensions::tests::supports_prebuilt_and_source_built_ladybug_extension_cache_versions + PASS [ 0.233s] (4/4) codebase-graph db_writer::tests::native_writer_loads_json_staging_through_ladybug_copy +──────────── + Summary [ 10.781s] 4 tests run: 4 passed, 838 skipped diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-focused.junit.xml b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-focused.junit.xml new file mode 100644 index 00000000..93d7d5eb --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-focused.junit.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-format.log b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-format.log new file mode 100644 index 00000000..e69de29b diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-integrated.patch.gz b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-integrated.patch.gz new file mode 100644 index 00000000..bc41e0bc Binary files /dev/null and b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-integrated.patch.gz differ diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-optout-tests.log b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-optout-tests.log new file mode 100644 index 00000000..f1d283d0 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-optout-tests.log @@ -0,0 +1,9 @@ + Compiling codebase-graph v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes) + Finished `test` profile [unoptimized + debuginfo] target(s) in 6.02s +──────────── + Nextest run ID 6b2274ab-c61d-4796-a352-a52cb554289a with nextest profile: cod53 + Starting 2 tests across 1 binary (840 tests skipped) + PASS [ 0.319s] (1/2) codebase-graph db_writer::extensions::tests::bundled_extension_archives_decompress_before_cache_seed + PASS [ 0.020s] (2/2) codebase-graph db_writer::extensions::tests::supports_prebuilt_and_source_built_ladybug_extension_cache_versions +──────────── + Summary [ 0.340s] 2 tests run: 2 passed, 840 skipped diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-optout.junit.xml b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-optout.junit.xml new file mode 100644 index 00000000..10e31fed --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-optout.junit.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-package-asset-audit.json b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-package-asset-audit.json new file mode 100644 index 00000000..bddaedd2 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-package-asset-audit.json @@ -0,0 +1,27 @@ +{ + "archive_sha256": "e843e817b7c9da071d1983d756c1eb90e7034a96f886bcfeafd15e2fe0a73132", + "entries": { + "assets/ladybug-extensions/0.19.0/win_amd64/fts/libfts.lbug_extension.xz": { + "present": true, + "sha256": "a8a9d74be93a54482b6bb6df7c44ead6cb751f398b87b10c990d63e2da77910d", + "expected": "a8a9d74be93a54482b6bb6df7c44ead6cb751f398b87b10c990d63e2da77910d" + }, + "assets/ladybug-extensions/0.19.0/win_amd64/json/libjson.lbug_extension.xz": { + "present": true, + "sha256": "adf5e05d5a63c181a1be3e1e6c90a8ffb9901118171e7caf8f860af055868ada", + "expected": "adf5e05d5a63c181a1be3e1e6c90a8ffb9901118171e7caf8f860af055868ada" + }, + "assets/ladybug-extensions/0.19.0/osx_arm64/fts/libfts.lbug_extension.xz": { + "present": true, + "sha256": "e34b00df38ced0b09993112a6d3a2d76735ecea639bb7deaf4e804351343f891", + "expected": "e34b00df38ced0b09993112a6d3a2d76735ecea639bb7deaf4e804351343f891" + }, + "assets/ladybug-extensions/0.19.0/osx_arm64/json/libjson.lbug_extension.xz": { + "present": true, + "sha256": "7d39d0ba2fe3eb41364febc09fb45aca02b37bb64a06e3a3666bfb70f49792cd", + "expected": "7d39d0ba2fe3eb41364febc09fb45aca02b37bb64a06e3a3666bfb70f49792cd" + } + }, + "all_unchanged": true, + "limits": "No Windows binary compile/runtime; original compressedXz bytes retained" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-source-snapshot.json b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-source-snapshot.json new file mode 100644 index 00000000..5cd5a4f1 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-source-snapshot.json @@ -0,0 +1,16 @@ +{ + "base": "7038e66ff8271ffddc511f879cf8d28353a09b2d", + "approval": "eaa430c849094078bb4c228ea03136dde5587e91", + "files": { + "Cargo.toml": "455a508cf5a3d4ac664af80133bafebe1c8b4c4f721d3ca3e52ab65f822b298e", + "docs/release.md": "6343cbe12df65148254a057cd65572631d8f3b2c0a49029eaef5c696729740d9", + "src/db_writer/extensions.rs": "fdaad58193a79b94345a88237efe452938f643ee9c45b8c6e8548c36b760a69d", + "Cargo.lock": "b99948cf1027f1609cbec7f7c43b796743ce4523550e95ce860cfe5dbd4d7d84", + "crates/k-wiki/Cargo.toml": "40e75f1823566efb2d999059ad6cc83e6d407dfab1fbbfd96abd82a9a1d86fcd", + "crates/xtask/src/main.rs": "d8561f5d8ba107e599890c825522f0fc518581bd52702c2115822f0f661d7099", + "release/install/install.ps1": "bdd6f0eace6fbd4ea25c9e09d2c6cb6c0b54a05955d024aa97d76443c58ae308", + ".github/actions/setup-native/action.yml": "2a2a840860e85ca7b0a67a8e27a3ccaf1b074fffb92f6dc118e70bf8009d1665" + }, + "diff_sha256": "fee7b0a6122950e952eb79758d3dadf58ecceea9389e7bffc4869090da096d82", + "scope": "D05d defaultbytesonly; not wholeS02" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-verification-evidence.json b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-verification-evidence.json new file mode 100644 index 00000000..2c3d0ae7 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-verification-evidence.json @@ -0,0 +1,79 @@ +{ + "base": "7038e66ff8271ffddc511f879cf8d28353a09b2d", + "approval": "eaa430c849094078bb4c228ea03136dde5587e91", + "source_snapshot": "subset-source-snapshot.json", + "checks": [ + { + "command": "cargo nextest run --locked -p codebase-graph --lib --config-file /private/tmp/codebasegraph-cod53-analysis/nextest.toml --profile cod53 -E 'test(db_writer::extensions::) | test(native_writer_loads_json_staging_through_ladybug_copy) | test(graph_search_reads_native_fts_indexes)' --test-threads 1", + "exit": 0, + "passed": 4, + "filtered": 838, + "log": "subset-focused-tests.log", + "junit": "subset-focused.junit.xml", + "limits": "macOS ARM64 default feature build, not Windows" + }, + { + "command": "cargo nextest run --locked -p codebase-graph --lib --no-default-features --config-file /private/tmp/codebasegraph-cod53-analysis/nextest.toml --profile cod53 -E 'test(db_writer::extensions::)' --test-threads 1", + "exit": 0, + "passed": 2, + "filtered": 840, + "log": "subset-optout-tests.log", + "junit": "subset-optout.junit.xml", + "limits": "macOS explicit no-default; Windows cfg remains unexecuted" + }, + { + "command": "cargo fmt --all --check", + "exit": 0, + "log": "subset-format.log" + }, + { + "command": "cargo metadata --locked --filter-platform x86_64-pc-windows-msvc --format-version 1", + "exit": 0, + "limits": "feature resolution only" + }, + { + "command": "cargo tree --locked -p codebase-graph -e features -i codebase-graph", + "exit": 0, + "log": "default-feature-tree.txt" + }, + { + "command": "cargo tree --locked -p codebase-graph --no-default-features -e features -i codebase-graph", + "exit": 0, + "log": "explicit-optout-feature-tree.txt" + }, + { + "command": "cargo tree --locked -p k-wiki -e features -i codebase-graph", + "exit": 0, + "log": "wiki-default-feature-tree.txt" + }, + { + "command": "cargo clippy --locked --workspace --all-targets --all-features -- -D warnings", + "exit": 0, + "log": "subset-clippy.log", + "warnings": "none" + }, + { + "command": "cargo nextest run --locked -p xtask --config-file /private/tmp/codebasegraph-cod53-analysis/nextest.toml --profile cod53 --test-threads 1", + "exit": 0, + "passed": 42, + "filtered": 0, + "log": "subset-xtask-tests.log", + "junit": "subset-xtask.junit.xml" + }, + { + "command": "cargo package --locked --allow-dirty", + "exit": 0, + "log": "subset-final-package-verify.log", + "measure": "subset-final-package-measure.json" + } + ], + "partial_package_evidence": { + "bytes": 8451643, + "sha256": "8615dd48a7abcfbf1dd38770d52769edd49ea8fcb5a72384898cd7bcc0666bd2", + "command": "cargo package --locked --allow-dirty", + "result": 0, + "scope": "normal extracted compile on macOS with verified0.19native library; not Windows source install; may precede pending testworker final edits" + }, + "full_scope_blockers": "full-scope-blockers.json", + "junit_ingest_limit": "MCP Scryer root older checkout; resp-113 no attached tests, no exactworktree verdict fabricated. Global unrelated stale radius retained." +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-xtask-tests.log b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-xtask-tests.log new file mode 100644 index 00000000..b29cbf56 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-xtask-tests.log @@ -0,0 +1,48 @@ + Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s +──────────── + Nextest run ID c1c04cb7-5a0e-4c66-9c22-be8edfe59aa5 with nextest profile: cod53 + Starting 42 tests across 1 binary + PASS [ 0.011s] ( 1/42) xtask::bin/xtask native_tests::shards::tests::empty_shard_never_runs_an_unfiltered_suite + PASS [ 0.015s] ( 2/42) xtask::bin/xtask native_tests::shards::tests::selected_exact_filters_execute_the_expected_real_harness_cases + PASS [ 0.017s] ( 3/42) xtask::bin/xtask native_tests::shards::tests::shards_cover_every_listed_case_once_and_bound_windows_arguments + PASS [ 0.010s] ( 4/42) xtask::bin/xtask native_tests::tests::captured_cli_survives_cargo_replacing_its_output + PASS [ 0.008s] ( 5/42) xtask::bin/xtask native_tests::tests::partitions_every_test_target_and_keeps_new_integration_targets + PASS [ 0.008s] ( 6/42) xtask::bin/xtask native_tests::tests::windows_regressions_precede_the_complete_unfiltered_suite + PASS [ 0.019s] ( 7/42) xtask::bin/xtask release::tests::metadata_rejects_inconsistent_versions + PASS [ 0.008s] ( 8/42) xtask::bin/xtask release::tests::notes_only_include_the_exact_release + PASS [ 0.008s] ( 9/42) xtask::bin/xtask release::tests::notes_reject_missing_duplicate_and_empty_sections + PASS [ 0.599s] (10/42) xtask::bin/xtask release::workflow_tests::ci_run_recovery_dry_run_validates_without_authorizing_publication + PASS [ 0.583s] (11/42) xtask::bin/xtask release::workflow_tests::ordinary_commit_cannot_authorize_release_and_tagged_retry_still_can + PASS [ 0.285s] (12/42) xtask::bin/xtask release::workflow_tests::proposal_reports_pending_release_then_proceeds_after_finalization + PASS [ 0.314s] (13/42) xtask::bin/xtask release::workflow_tests::publisher_rejects_conflicting_tags_and_does_not_regress_latest + PASS [ 0.352s] (14/42) xtask::bin/xtask release::workflow_tests::publisher_targets_original_sha_and_is_idempotent + PASS [ 0.042s] (15/42) xtask::bin/xtask release::workflow_tests::recovery_requires_one_target_and_forbids_ci_run_rebuilds + PASS [ 1.763s] (16/42) xtask::bin/xtask release::workflow_tests::verified_release_rejects_failed_ci_and_untrusted_run_identity + PASS [ 2.069s] (17/42) xtask::bin/xtask release::workflow_tests::verified_release_rejects_untrusted_prs_and_removed_history + PASS [ 0.256s] (18/42) xtask::bin/xtask release::workflow_tests::verified_release_survives_main_advancing_and_ignores_other_pending_releases + PASS [ 0.013s] (19/42) xtask::bin/xtask tests::archive_contract_rejects_unexpected_entries + PASS [ 0.018s] (20/42) xtask::bin/xtask tests::complete_artifact_set_rejects_mixed_provenance + PASS [ 0.009s] (21/42) xtask::bin/xtask tests::crate_size_validation_enforces_the_registry_limit + PASS [ 0.455s] (22/42) xtask::bin/xtask tests::installer_rejects_removed_hosts_before_reading_archives_or_writing_destinations + PASS [ 0.010s] (23/42) xtask::bin/xtask tests::native_capture_requires_unique_source_bound_normal_cli_artifact + PASS [ 0.009s] (24/42) xtask::bin/xtask tests::native_capture_reuses_the_exact_test_profile_and_features + PASS [ 0.008s] (25/42) xtask::bin/xtask tests::native_target_contract_maps_names_and_binaries + PASS [ 0.022s] (26/42) xtask::bin/xtask tests::native_test_failure_cannot_authorize_artifact_production + PASS [ 0.009s] (27/42) xtask::bin/xtask tests::release_identity_validation_is_strict + PASS [ 0.009s] (28/42) xtask::bin/xtask tests::windows_native_tests_forward_bundled_extensions + PASS [ 0.016s] (29/42) xtask::bin/xtask tests::workflow_policy_rejects_automatic_rebuild_recovery + PASS [ 0.018s] (30/42) xtask::bin/xtask tests::workflow_policy_rejects_direct_release_push_trigger + PASS [ 0.017s] (31/42) xtask::bin/xtask tests::workflow_policy_rejects_github_sha_for_release_identity + PASS [ 0.016s] (32/42) xtask::bin/xtask tests::workflow_policy_rejects_missing_ci_success_guard + PASS [ 0.030s] (33/42) xtask::bin/xtask tests::workflow_policy_rejects_missing_crate_publish_retry + PASS [ 0.022s] (34/42) xtask::bin/xtask tests::workflow_policy_rejects_missing_crate_size_gates + PASS [ 0.016s] (35/42) xtask::bin/xtask tests::workflow_policy_rejects_missing_triggering_run_binding + PASS [ 0.016s] (36/42) xtask::bin/xtask tests::workflow_policy_rejects_release_queue_replacement + PASS [ 0.016s] (37/42) xtask::bin/xtask tests::workflow_policy_rejects_unconditional_release_publication + PASS [ 0.029s] (38/42) xtask::bin/xtask tests::workflow_policy_rejects_unvalidated_publishers + PASS [ 0.016s] (39/42) xtask::bin/xtask tests::workflow_policy_requires_ci_completion_release_trigger + PASS [ 0.029s] (40/42) xtask::bin/xtask tests::workflow_policy_requires_publication_revalidation + PASS [ 0.008s] (41/42) xtask::bin/xtask tests::workflow_yaml_validation_rejects_unindented_heredoc_body + PASS [ 0.022s] (42/42) xtask::bin/xtask tests::workflows_reject_removed_platform_targets +──────────── + Summary [ 7.202s] 42 tests run: 42 passed, 0 skipped diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-xtask.junit.xml b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-xtask.junit.xml new file mode 100644 index 00000000..805af547 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/subset-xtask.junit.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/unchanged-extension-assets.json b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/unchanged-extension-assets.json new file mode 100644 index 00000000..1623305f --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/unchanged-extension-assets.json @@ -0,0 +1,6 @@ +{ + "assets/ladybug-extensions/0.19.0/win_amd64/fts/libfts.lbug_extension.xz": "a8a9d74be93a54482b6bb6df7c44ead6cb751f398b87b10c990d63e2da77910d", + "assets/ladybug-extensions/0.19.0/win_amd64/json/libjson.lbug_extension.xz": "adf5e05d5a63c181a1be3e1e6c90a8ffb9901118171e7caf8f860af055868ada", + "assets/ladybug-extensions/0.19.0/osx_arm64/fts/libfts.lbug_extension.xz": "e34b00df38ced0b09993112a6d3a2d76735ecea639bb7deaf4e804351343f891", + "assets/ladybug-extensions/0.19.0/osx_arm64/json/libjson.lbug_extension.xz": "7d39d0ba2fe3eb41364febc09fb45aca02b37bb64a06e3a3666bfb70f49792cd" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/wiki-default-feature-tree.txt b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/wiki-default-feature-tree.txt new file mode 100644 index 00000000..b3231dbc --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/wiki-default-feature-tree.txt @@ -0,0 +1,6 @@ +codebase-graph v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes) +├── codebase-graph feature "bundled-windows-extensions" +│ └── codebase-graph feature "default" +│ └── k-wiki v4.0.0 (/private/tmp/codebasegraph-cod53-windows-runtimes/crates/k-wiki) +│ └── k-wiki feature "default" (command-line) +└── codebase-graph feature "default" (*) diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/windows-default-feature-resolved-metadata.json b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/windows-default-feature-resolved-metadata.json new file mode 100644 index 00000000..4f23b47b --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions-evidence/windows-default-feature-resolved-metadata.json @@ -0,0 +1,14 @@ +{ + "command": "cargo metadata --locked --filter-platform x86_64-pc-windows-msvc --format-version 1", + "limits": "resolved feature selection only, no Windows compilation/native execution", + "features_declared": { + "bundled-windows-extensions": [], + "default": [ + "bundled-windows-extensions" + ] + }, + "features_resolved": [ + "bundled-windows-extensions", + "default" + ] +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions.md b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions.md new file mode 100644 index 00000000..46e60832 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-default-extensions.md @@ -0,0 +1,41 @@ +# COD-53 — D05d default Windows extension bytes, partial implementation + +## Identity and status + +- Work: **CBG-PLAT-01/S02**, [COD-53](https://linear.app/codebasegraph/issue/COD-53), Maintenance P-COD-2. **Partial local implementation**, not whole-slice closure. +- Canonical [specification revision 0.10](https://github.com/rabii-chaarani/codebaseGraph/blob/1a9db7b558b60248888408daa6268a3b45f2f0df/docs/specs/CBG-PLAT-01/spec.md): approved **R02 / A03, A04, A16**. [Exact approval](https://github.com/rabii-chaarani/codebaseGraph/blob/eaa430c849094078bb4c228ea03136dde5587e91/docs/specs/CBG-PLAT-01/approvals/cod53-windows-native-runtimes.md) at `eaa430c849094078bb4c228ea03136dde5587e91`. +- Base: main `7038e66ff8271ffddc511f879cf8d28353a09b2d` (4.0.0). Changed source hashes: [snapshot](cod53-default-extensions-evidence/subset-source-snapshot.json); exact [losslessly compressed three-file diff](cod53-default-extensions-evidence/subset-integrated.patch.gz). This file does not embed its own containing commit SHA. +- Existing Graph Store `resp-113` is restored; no new topology/claims. Scryer `chg-56s373` and bounded subset `chg-p08sev` retain detailed execution/ownership. Connected graph/model describe the older user checkout; no exact-worktree verdict or global drift reconciliation is fabricated. + +## Implemented subset + +The root Cargo default now activates the existing `bundled-windows-extensions` feature. The original Windows x86_64 cfg, JSON/FTS bytes, extension ABI0.19.0, cache behavior, `k-wiki` feature forwarding and native-test recipe are unchanged. Explicit `--no-default-features` retains the root-package opt-out. The existing test now asserts that JSON and FTS bytes are present when the Windows x86_64 feature is enabled, rather than silently skipping absent bytes. Source-install guidance states native compiler/library/DLL prerequisites and pending qualification. + +**Changed setting:** root `[features].default = ["bundled-windows-extensions"]`. No numeric constants, dependency versions, ABI values or extension assets changed. No runtime DLL procurement/loading, installer, archive inventory or native setup change is included. + +## Executed local verification + +Host: macOS26.6.2 build25G83 ARM64, Rust/Cargo1.96.0. Native library: existing verified Ladybug0.19.0 static library SHA256 `a840ea7c538e67a8b9fc0d58495b5226dc9c0a5f2f144ff0c48c0f6ca1193ae6`, selected by `LBUG_LIBRARY_DIR` / `LBUG_INCLUDE_DIR`; this is a build input, not a consumer-install claim. + +| Check | Actual result and evidence | +|---|---| +| Default Cargo library selection, no `--features` | 4/4 selected tests pass: extension decompression/cache path, actual JSON COPY, graph build/reopen/search fixture. 838 filtered, not executed. [Log](cod53-default-extensions-evidence/subset-focused-tests.log), [JUnit](cod53-default-extensions-evidence/subset-focused.junit.xml). The graph-search fixture uses the current disk-BM25 backend; its historical FTS test name alone is not proof of native `LOAD fts`. | +| Root explicit no-default-features | 2/2 extension tests pass on Mac;840filtered. [Log](cod53-default-extensions-evidence/subset-optout-tests.log), [JUnit](cod53-default-extensions-evidence/subset-optout.junit.xml). Windows cfg is not executed on this host. | +| Packaging/provenance/workflow unit suite | 42/42 pass,0skipped. [Log](cod53-default-extensions-evidence/subset-xtask-tests.log), [JUnit](cod53-default-extensions-evidence/subset-xtask.junit.xml). | +| Format / strict Clippy | `cargo fmt --all --check` and `cargo clippy --locked --workspace --all-targets --all-features -- -D warnings` pass. [Format](cod53-default-extensions-evidence/subset-format.log), [Clippy](cod53-default-extensions-evidence/subset-clippy.log). | +| Cargo default / opt-out / wiki dependency resolution | Cargo's own default and Windows-platform-filtered metadata resolve the existing feature without `--features`; root `cargo tree --no-default-features` omits it; wiki dependency inherits it. Configuration proof only. [Default metadata](cod53-default-extensions-evidence/windows-default-feature-resolved-metadata.json), [default tree](cod53-default-extensions-evidence/default-feature-tree.txt), [opt-out tree](cod53-default-extensions-evidence/explicit-optout-feature-tree.txt), [wiki tree](cod53-default-extensions-evidence/wiki-default-feature-tree.txt). | +| Extracted source-package compile and size | `cargo package --locked --allow-dirty` normally verifies/compiles the extracted package on Mac. Final `.crate` **8,451,673bytes**, SHA256 `e843e817b7c9da071d1983d756c1eb90e7034a96f886bcfeafd15e2fe0a73132`, below unchanged10,485,760byte limit. [Log](cod53-default-extensions-evidence/subset-final-package-verify.log), [measure](cod53-default-extensions-evidence/subset-final-package-measure.json). No Windows source-install result implied. | +| Asset identity | Four original XZ payload files unchanged. [Hashes](cod53-default-extensions-evidence/unchanged-extension-assets.json). | + +[Command/evidence index](cod53-default-extensions-evidence/subset-verification-evidence.json) retains exact invocation, source snapshot and scope. Workspace-wide compiler checks are not a full workspace test run. No tests were deleted/ignored or assertions weakened. + +## Review + +Fresh GPT-6.1 Sol High [proposal review](cod53-default-extensions-evidence/proposal-review.md) cleared this independent minimal feature/test/docs subset, with the full loader/packaging commitment still open. Fresh independent GPT-6.1 Sol Max [final review](cod53-default-extensions-evidence/final-review.md) reports **no confirmed introduced P0–P3 defects**; no fix round was required. Actual reviewer `openai-codex/gpt-6.1-sol`, `thinking="max"`, fresh session/no history fork. Reviewed baseline `7038e66ff8271ffddc511f879cf8d28353a09b2d`, docs-only HEAD `389f86f58a03f71d81b0a2aeb44e7cc49a58f4ce`, and the frozen three-file patch/hashes in the snapshot. No product source changes during review. The reviewer independently checked Cargo resolution/opt-out, exact source archive bytes/size and all four XZ hashes, and audited the supplied logs/JUnit; it did not run builds/tests. Windows/default/source-install and full S02 acceptance remain pending. + +## Remaining gates — COD-53 stays open + +1. **VC redistribution licence route selected:** the user directed “Yes then, record the applicable licence for VC”. [Committed decision](https://github.com/rabii-chaarani/codebaseGraph/blob/389f86f58a03f71d81b0a2aeb44e7cc49a58f4ce/docs/specs/CBG-PLAT-01/decisions/cod53-vc-runtime-licence.md) selects Visual Studio Community2022 subject to eligibility and all terms; paid Enterprise is not required for that route. Exact eligible validly licensed source, unmodified runtime file versions/hashes and distribution notices still need evidence before copying/shipping. No agent acquisition/installation/terms acceptance is asserted. [Microsoft terms](https://visualstudio.microsoft.com/license-terms/vs2022-ga-community/) / [REDIST list](https://learn.microsoft.com/en-us/visualstudio/releases/2022/redistribution). No VC DLLs copied or shipped. +2. **Full prebuilt implementation:** exact OpenSSL/VC runtime byte provenance/import/export closure, controlled loading including existing module origin/transitive resolution and app/helper/library paths, sidecar installation and real pre-replacement JSON/FTS probe require a concrete settled proposal and independent review. Read-only research is not implemented or qualified behavior. D01 bundling remains mandatory; no external-prerequisite fallback was selected for prebuilt archives. +3. **Native/default/consumer execution:** [native Windows qualification evidence](cod53-windows-qualification.md) now verifies the default-byte subset on Windows11 Enterprise23H2: no-extra-feature tests2/2, exact-head default Cargo path install with declared same-version shared native prerequisites, real JSON COPY/native FTS/reopen and installed graph/reopen/search. This is not a published registry install, self-contained archive, full native-tests lifecycle rerun or full A16 acceptance; missing-runtime diagnostic limits and each recorded barrier/failure scope remain explicit. Existing typed Windows CI enables the feature and cannot alone prove the default route. Clean consumer A03/A04/full S02 remains pending. Windows Server CI is not desktop qualification. +4. **Closure:** COD-53 remains In Progress; no A03/A04/fullA16 completion, milestone/release closure, merge, package publication, deployment or service restart. Maintainer/user remains aggregate closure owner. Existing unrelated user checkout changes are untouched. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-runtime-pending.md b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-pending.md new file mode 100644 index 00000000..466547a5 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-pending.md @@ -0,0 +1,40 @@ +# COD-53 remaining runtime work — blocked supply handoff + +## Identity/status + +CBG-PLAT-01/S02 [COD-53](https://linear.app/codebasegraph/issue/COD-53), Maintenance P-COD-2. Canonical approved [spec rev0.10](https://github.com/rabii-chaarani/codebaseGraph/blob/1a9db7b558b60248888408daa6268a3b45f2f0df/docs/specs/CBG-PLAT-01/spec.md), R02/A03/A04/A16; [exact approval](https://github.com/rabii-chaarani/codebaseGraph/blob/eaa430c849094078bb4c228ea03136dde5587e91/docs/specs/CBG-PLAT-01/approvals/cod53-windows-native-runtimes.md). Existing Scryer `chg-56s373` remains open; detailed execution/ownership remains there, not this evidence handoff. + +The independent D05d default-extension subset is implemented/reviewed/pushed at `6d5de0c57d9311e3a5bf86f30a7767641d6b84bc`, [draft PR158](https://github.com/rabii-chaarani/codebaseGraph/pull/158); [evidence](cod53-default-extensions.md). **Full S02 is not implemented or qualified.** No native DLL/loader/installer/NativeTarget/setup changes were made. No merge/publication/deployment/restart or milestone closure. + +## Licence decision preserved + +The user selected the Visual Studio Community2022 route and directed recording it. [Decision record](https://github.com/rabii-chaarani/codebaseGraph/blob/389f86f58a03f71d81b0a2aeb44e7cc49a58f4ce/docs/specs/CBG-PLAT-01/decisions/cod53-vc-runtime-licence.md) at `389f86f58a03f71d81b0a2aeb44e7cc49a58f4ce`. A paid Enterprise licence is not required for eligible Community use. Do not reopen that route decision or substitute consumer runtime installation for D01. + +Selection does not invent acquisition/installation/acceptance or exact permitted source bytes. Publisher eligibility/compliance remains the owner's responsibility. No Microsoft DLLs were copied into the repository or distributed; external downloads were analysis inputs only. + +## Concrete supply blocker + +Before dependent full-runtime implementation/packaging, provide or establish an exact permitted unmodified release-x64 **Visual Studio Community2022 `VC\Redist` input**, with source/toolset version, required file identities/hashes and applicable notices/terms. A pinned authorized Community component/layout is suitable in principle; arbitrary DLLs from the unversioned GitHub-hosted Enterprise installation, third-party NuGet packages or an unevidenced extraction route are not substituted. + +- [Runtime source follow-up](cod53-runtime-proposal-evidence/runtime-source-followup.md) identifies Microsoft's documented installed REDIST source and the remaining provenance fact. It also inspects published **historical v3.0.4**, not the unpublished4.0.0 baseline: both EXEs directly import `MSVCP140.dll`, `VCRUNTIME140.dll`, `VCRUNTIME140_1.dll`. Exact final images still require inspection. No Windows binary was executed. +- An official central redistributable download was identified by pinned Microsoft URL/hash ([download identity](cod53-runtime-proposal-evidence/vc-provider-download-identity.json)); that is **not** evidence of an authorized app-local payload extraction method or source entitlement. Do not silently convert it into the installed REDIST input. +- A direct official Community17 release-channel/catalog check failed its declared SHA256. [Integrity record](cod53-runtime-proposal-evidence/community-catalog-integrity-check.json): expected catalog `5bd3b0b2ae509af2e9559b852f78545df0bf2c081dd850caed76f1dc134c511e`, actual downloaded `87791000b1d6357e174f039ce9c2f03d150d4e90b45e8e52468d797dac62022c`. Basic BOM/line-ending checks did not resolve it. The catalog was rejected as a pinned source; no derived payload was trusted/downloaded for packaging. This observation does not establish a cause or malicious content. A valid verified source must replace it. + +The next action is a verified permitted source, not another choice between Community/Enterprise. No new licence purchase, account connection, VS installation or term acceptance was performed by the agent. + +## Reviewed technical direction — not implementation approval + +Read-only research supports complete verified non-system DLL preloading without process-global DLL search policy or an upstream/ABI upgrade; **full concrete proposal gate remains open**. + +- [Supply/API/PE research](cod53-runtime-proposal-evidence/runtime-supply.md): official source-built OpenSSL3.5.9 is a compatible candidate, not final Windows DLL/export/recursive-import qualification. Exact0.19.0 extensions are unchanged. +- [Loader investigation](cod53-runtime-proposal-evidence/loader-design.md), [independent preload delta](cod53-runtime-proposal-evidence/loader-proposal-delta.md): verify complete normal/delay/runtime import closure, origin and paths before any code load; preload dependency-first via exact absolute `LoadLibraryExW` with restricted dependency lookup; check existing/returned modules and retain accepted handles. Initialize before `Database::new` because WAL recovery can replay extension loads; validate actual main/optional cached loader inputs too. Plain Cargo source mode remains separate from strict packaged mode. No global PATH/default DLL policy change or arbitrary fallback. +- [Install-layout investigation](cod53-runtime-proposal-evidence/installer-layout-followup.md), [supply/install review](cod53-runtime-proposal-evidence/supply-install-proposal-delta.md): keep existing executable paths and place initial-import DLLs beside EXEs. No launcher, path relocation or new rollback design. Validate candidate sidecars and real JSON/FTS probe wholly in staging before destination mutation; check new probe's native status explicitly without broad COD-56 repair. Settle conservative compatible-forward/reuse-or-refuse upgrade/intermediate-set policy against actual old/new validators before coding. +- [Failure-contract clarification](cod53-runtime-proposal-evidence/installer-failure-contract-delta.md): no extra owner decision is currently required merely because sequential sidecar updates can fail. Approved invalid candidate inputs fail before mutation. Arbitrary mid-copy/power-loss whole-install atomicity is not promised. Do not weaken identity or silently add a transaction framework; surface an actual contract conflict if evidence reveals one. + +These are evidence-backed feasibility/constraints, not passing native behavior or a frozen full execution brief. Once valid source supply is established, settle package/source mode, manifest generation order, cache-integrity scope, upgrade/probe contract and file ownership in Scryer, then close the independent full proposal gate **before** dependent source edits. + +## Remaining execution/closure + +[Windows default-byte execution evidence](cod53-windows-qualification.md) now records a native no-extra-feature build/test, exact-head default Cargo path install with declared shared native prerequisites, real JSON COPY/native FTS/reopen and installed graph/reopen/search. The report preserves failed trials, download-barrier scope and missing-runtime diagnostic limits; it does not claim full A16 acceptance. Complete app/helper/library trusted runtime loading, final PE/DLL/archive identities, legal supply, negative installer cases and clean-consumer Windows11 archive/shell qualification remain pending. Windows Server CI on PR158 is useful native evidence only, not A03/A04/fullA16. Track its exact head/merge/commands/jobs separately; queued/running/skipped jobs are not passes. COD-53 remains In Progress with full runtime work blocked. Maintainer retains aggregate closure ownership. + +Reusable-knowledge assessment: no memory recorded. Licence choice is in the canonical decision; runtime/installer work is unimplemented and not a verified runbook. No curated wiki change is required by this partial/blocker handoff. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/community-catalog-integrity-check.json b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/community-catalog-integrity-check.json new file mode 100644 index 00000000..92849d7d --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/community-catalog-integrity-check.json @@ -0,0 +1,11 @@ +{ + "source_channel": { + "url": "https://download.visualstudio.microsoft.com/download/pr/4bc08c27-bd31-470c-9a30-3b62707fbf0f/1786d42a74c7ba31aa2670316eda6a9c9de755ce1ca87b8f7ed8766dcdf9b4e3/VisualStudio.17.Release.chman", + "sha256": "9312f33527b6f89ee6290ac59190584d137959dadd0a3334c40ea3de188ab5c4" + }, + "catalog_url": "https://download.visualstudio.microsoft.com/download/pr/4bc08c27-bd31-470c-9a30-3b62707fbf0f/5bd3b0b2ae509af2e9559b852f78545df0bf2c081dd850caed76f1dc134c511e/VisualStudio.vsman", + "declared_sha256": "5bd3b0b2ae509af2e9559b852f78545df0bf2c081dd850caed76f1dc134c511e", + "actual_sha256": "87791000b1d6357e174f039ce9c2f03d150d4e90b45e8e52468d797dac62022c", + "status": "MISMATCH - NOT accepted as pinned source", + "limits": "OfficialHTTPS catalog discovery only; no installer or payload executed/copied/shipped. No silent trust fallback." +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/installer-failure-contract-delta.md b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/installer-failure-contract-delta.md new file mode 100644 index 00000000..cf7d311b --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/installer-failure-contract-delta.md @@ -0,0 +1,11 @@ +# COD-53 installer failure-contract clarification + +**Verdict:** no stronger user question is required by the currently approved A04 failure cases. Coordinator's reading is sound: missing/corrupt/wrong-machine/incompatible candidate inputs are rejected wholly in staging before any destination mutation; sidecar staging/copy failure leaves both EXEs unchanged; post-preflight per-file replacement errors are reported honestly, including partial sidecar state. Neither whole-install byte identity on arbitrary filesystem failure nor multi-DLL/pair/power-loss atomicity is approved or inferred. Do not reopen that scope merely because sequential updates can fail. + +The previous delta's old/new/intermediate-set condition concerns *compatibility of a deliberately accepted update*, not a new rollback guarantee. If the settled installer adopts the proposed compatible-forward/reuse-identical/refuse-foreign-or-downgrade rule, prove the accepted intermediate prefix sets or reject that upgrade before mutation. This can remain a routine conservative implementation choice within A04; do not add a transaction framework. + +One concrete detail for that proof: future older packaged EXEs with embedded exact runtime hashes may intentionally reject changed sidecars even when ABI-compatible. Their real validation behavior must be included in the old-binary compatibility oracle; Microsoft ABI compatibility alone cannot override that check. This does not establish a present defect or require a user decision. First inspect actual supported upgrade bases and exact EXE imports. Refusing an unsupported base clearly is preferable to asserting unproved compatibility. + +**Only if a real conflict emerges:** if supporting an existing approved upgrade base requires weakening fail-closed identity, destructive overwrite, public command relocation/launcher, or a new recovery guarantee, surface that specific contract decision then. No such unavoidable conflict has yet been established. Full gate still waits for concrete supply/import/manifest/cache/installer brief; missing Windows11 qualification is a separate later gate. + +Read-only assessment of `installer-layout-followup.md`, `full-runtime-proposal.md` and approved A04/exclusions. GPT-6.1 Sol High. No product edits/tests/builds/Git/tracking mutations, constants or policy changes. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/installer-layout-followup.md b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/installer-layout-followup.md new file mode 100644 index 00000000..155d2556 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/installer-layout-followup.md @@ -0,0 +1,60 @@ +# COD-53 installer layout follow-up: app-local runtime versus installed binary path + +**Disposition:** read-only, no source, manifests, lockfiles, tests, builds, or Git state changed. This note supplements `full-runtime-proposal.md` and `loader-proposal-delta.md`; it is not an implementation brief or approval. Evidence is from approved S02 at baseline `7038e66ff8271ffddc511f879cf8d28353a09b2d` and pinned dependency/source facts summarized in those reports. + +## Finding + +With the existing archive installer and command-path contract, the narrowest compatible layout is to keep `codebase-graph.exe` and `k-wiki.exe` exactly in the selected `BinDir` under their existing names, and install the required app-local DLL sidecars in that **same directory**. Do not relocate executables or add launchers. This is the only layout considered here that both (a) lets Windows resolve any direct executable imports before Rust `main` using the executable's application directory and (b) preserves the current direct binary paths. The exact final EXE import set still needs Windows artifact inspection; this layout covers direct DLL imports if present and the complete-extension-preload plan can explicitly load extension dependencies from those files later. + +A versioned private payload directory with executables and runtimes together is technically plausible only if the public invocation path is changed to reach those executable paths. The currently shipped installer copies EXEs directly into `BinDir`; README tells archive users to put `codebase-graph` on `PATH`; MCP/hook bootstrap captures the actual `current_exe`, while configured commands use the executable name. A `.cmd` wrapper, launcher, alias, PATH edit, or directory junction would change invocation or install behavior, and this task grants no such design. Keeping EXEs in `BinDir` while placing runtimes in a sibling private directory does **not** satisfy pre-main application-directory resolution for direct imports. The reviewed preload proposal removes any need for process-global DLL search mutation for the known extension closure, but it cannot run before the Windows loader resolves EXE imports. + +## Existing public path and ownership evidence + +- `release/install/install.ps1` has a `-BinDir` parameter defaulting to `$HOME\.local/bin`; `release/install/install.sh` has `--bin-dir` defaulting to `$HOME/.local/bin`. Both install two named executables directly into that chosen directory. Neither script creates a version-specific program directory, writes a launcher, or edits PATH. Windows docs/README describe using the executable on PATH, not a version-directory command alias. +- The README archive path says to put the downloaded binary on `PATH` and then use `codebase-graph`. MCP config normally records `codebase-graph` as command; daemon/hook creation also captures `std::env::current_exe()` and passes that executable path. Both names and direct process-image identity therefore matter. `k-wiki.exe` is also shipped as a separate executable in the same archive. +- `NativeTarget` archive is currently a flat file set: graph EXE, wiki EXE, checksums, and two installers. It is validated as a closed inventory. A sidecar change must keep this package-inventory authority singular and add sidecars/licenses/manifest to the same deterministic install-root contract, not introduce a second unlinked file list. +- Pinned Ladybug `lbug 0.19.0` calls `LoadLibraryW` on its extension path. The complete-preload proposal may address known extension DLL dependencies without global search-policy mutation, but the application-local directory for initial EXE imports is independently governed by the Windows loader before any Rust initialization. + +## Layout options and tradeoffs + +| Layout | Preserves existing public binary paths? | Resolves pre-`main` app-local direct DLL imports? | Main consequence | +|---|---|---|---| +| Flat `BinDir`: two EXEs + all required sidecars | Yes | Yes, for imports whose names/versions match the sidecars | Minimal path-compatible choice. DLLs share the selected directory with unrelated user tools, and upgrades update a shared runtime set. Must validate fixed exact sidecar identity; never search arbitrary paths. | +| `BinDir\\` contains EXEs + DLLs; no root binaries | No | Yes | Requires users to invoke versioned path or installer to create path/alias behavior. No such relocation/launcher/PATH behavior is approved. | +| EXEs stay flat, DLLs in private child/sibling folder | Yes | No for direct EXE imports; pre-main code cannot add that folder | Could support later extension-only explicit preload if a reviewed interface allows it, but does not solve initial direct imports. Not a complete bundle layout. | +| Versioned directories plus stable root launchers/`.cmd` shims or symlink/junction | Superficially | Depends on actual process image path and Windows loader semantics | New command kind, process image/path semantics, PATH and upgrade lifecycle. No evidence or approval; do not invent it. | + +The flat directory can contain product sidecars next to other programs if a user chooses a shared `BinDir`; Windows resolves dependencies for the process from that application directory, so other binaries there with the same DLL import names can observe these sidecars too. This is a real compatibility consideration, but not a demonstrated conflict. Do not silently alter the install path to avoid it. If the owner rejects sidecars in a shared bin directory, the alternative requires a user-owned decision on dedicated product-directory/command-discovery behavior; no current evidence supports a no-path-change private layout that fixes direct imports. + +## Minimal compatible install/preflight sequence (candidate, not settled interface) + +1. **Single packaging inventory.** Keep `NativeTarget` as the only authority for Windows sidecar filenames, hashes, sizes, PE machine, dependency closure, licenses, and archive paths. Generate one validated runtime manifest from this inventory. Include the manifest/license/sidecars in package checksums and archive closed-set checks. The runtime must use an embedded trusted manifest or equivalent integrity source, not accept an arbitrary writable installed manifest as authority. +2. **Stage outside the current install.** Extract or copy candidate binaries and all sidecars into an isolated staging directory with the EXEs and their app-local sidecars adjacent. Check exact expected entries, regular-file/no-reparse constraints, hashes, x64 machine, all expected non-system direct/transitive imports and exports, and license provenance. Do not mutate `BinDir` during candidate validation. +3. **Run actual candidate native smoke before replacement.** In a fresh child process launched from this staged directory, use isolated USERPROFILE/cache/database, no extension downloads, and the complete candidate runtime. Exercise actual `Database::new`/reopen (which can replay loaded extensions), JSON and FTS loading/query, and graph reopen/search. `--help`/`--version` alone do not validate extensions. A dedicated S02 probe must check its own process exit immediately; do not count on or repair the general `Assert-Binary` behavior assigned to COD-56. Verify both candidate executables' actual startup imports; run database/extension work through the appropriate supported process path. If an existing installed executable must remain a supported upgrade base, an additional staged compatibility check of that existing executable against the candidate runtime is a possible check, but has not yet been specified or shown necessary; settle it in review rather than silently broadening scope. +4. **Only after all preflight passes, install sidecars into `BinDir` before EXEs.** The DLLs must be present at the unchanged app directory when the new EXE is first launched, so installing binaries first is not safe. Stage sidecars as temporary siblings in `BinDir`, recheck hashes, then place the fixed expected sidecar names. Recheck installed hashes/inventory before replacing either EXE. Only then use the installer's existing per-file temporary-copy/move for both EXEs. Keep public executable names and locations unchanged. If any invalid/missing/incompatible candidate sidecar is found, fail before writing sidecars or replacing either existing executable; this directly gives A04's preflight preservation result without pairwise binary rollback. +5. **Report and bound nontransactional failure.** After successful preflight, a filesystem/lock error or interruption during sequential sidecar installation can leave a partial new sidecar set beside the old EXEs; an error during the existing two EXE moves can leave the existing per-file partial pair risk. The task explicitly excludes an unapproved two-binary rollback redesign and does not promise power-loss atomicity. Do not claim whole-install rollback or “always unchanged on any installation error.” Keep per-file errors clear and do not report successful install until every sidecar and EXE hash is verified. If preserving an existing working installation through mid-sidecar-copy/rename failure is a required contract, a compatible old/new runtime-set strategy or sidecar recovery transaction must be settled and reviewed; the current scope does not specify that guarantee. + +## Upgrade/install identity + +- A single fixed `BinDir` with root DLL names gives Windows app-local resolution and preserves command paths, but sidecar DLLs become shared entries in that bin directory. The archive's selected runtime identities should be fixed and compatible as a set. On upgrade, sidecar preflight must finish before touching installed sidecars, and the candidate must be proven with its own set. If there is a need to guarantee old binaries work while the DLL set is updated, verify that requirement explicitly; do not infer it from successful candidate smoke. Same-major OpenSSL ABI policy is not enough to demonstrate the transient state with only one of `libcrypto`/`libssl` updated or with interrupted VC runtime replacement. +- A conservative rule that refuses any changed runtime hash at an existing install preserves old sidecars but blocks future runtime security updates. A versioned runtime directory would avoid overwriting old DLLs but cannot satisfy direct EXE imports with binaries kept in current flat paths. Neither is silently chosen here. +- A staged sidecar temp copy plus per-file rename can avoid partial file contents but not make a multiple-DLL set atomic. No code here adds backups, restores, in-use file policy, launcher indirection, or global search behavior. +- Installer scripts currently use arbitrary `BinDir`; placing application-local DLLs there can affect other binaries in that same directory if names collide. That should be covered as a compatibility test/notice under the proposed flat layout or raised as a user-owned install-layout question if the owner deems it unacceptable. It is not authority to rewrite `BinDir` defaults or mutate PATH. + +## Required tests and separate Cargo modes + +**Archive/installer deterministic tests:** reject missing, duplicate, unknown, malformed, reparse/non-file, wrong-machine, hash-mismatched, wrong-closure and missing-license sidecars; assert `DryRun` and real-install candidate validation occurs before sidecar or EXE destination changes; preserve hashes of both existing EXEs and all existing sidecars on every *preflight* failure; assert errors are clear; prove successful install leaves expected flat names/hashes, and no launcher/PATH/invocation contract changes. Include failures at sidecar staging/individual rename and record honest state; do not add pair rollback unless separately authorized. + +**Native Windows tests:** run candidate graph and wiki EXEs with root app-local imports; run real JSON/FTS, reopen/recovery and child/helper process loading under the complete preload proposal; verify correct module origins and pinned lifetimes; test CWD/PATH decoys, foreign already-loaded module, malformed/missing transitive dependencies and incompatible existing runtime. Native Server CI is useful implementation evidence but not A03 desktop qualification. + +**A03/A04 acceptance:** exact final archive installed on supported Windows 11 x86_64 desktop, no separately installed OpenSSL/VC runtimes/developer PATH. Record actual OS edition/release/build and artifact hashes. Run graph JSON/FTS/reopen/search plus MCP/k-wiki smoke from the installed flat path. Missing/corrupt/incompatible sidecar cases fail clearly before either existing executable is replaced. No Windows 11 desktop execution is available in this investigation; qualification remains pending. + +**Cargo source mode remains separate:** root `default = ["bundled-windows-extensions"]` is the D05d candidate for ordinary `cargo install codebase-graph`; `k-wiki` is unpublished and its existing feature forwarding remains unchanged. A distinct internal `packaged-windows-runtime` feature is only a full-archive build candidate for xtask and must not be in root defaults. It may make archive builds fail closed if packaged runtime metadata/sidecars are absent; it must not make plain Cargo source install claim app-local self-containment. Root default extension bytes and documented native compiler/native-library/runtime-DLL prerequisites are separate from app-local prebuilt layout. Exact A16 Windows source recipe/qualification remains pending. + +## Decision / recommendation for coordinator + +**Recommended minimal path-compatible proposal:** keep both EXEs directly in the existing `BinDir`; package the fixed, reviewed runtime closure beside them; perform complete candidate archive and actual extension-load preflight wholly in staging; then place and verify sidecars in `BinDir` before replacing either EXE. This preserves existing binary/command paths and needs no launcher or global PATH/DLL-policy changes. It is conditional on final Windows EXE PE evidence, eligible exact sidecar supply, the complete-preload design's independent review, and a clear sidecar-upgrade failure contract. + +**Specific unresolved contract question if stronger preservation is required:** On an in-place upgrade where candidate validation passed but copying/renaming a member of the multi-DLL sidecar set fails or is interrupted, must the installer guarantee the old binary+runtime installation remains usable and byte-identical? The existing installer moves the two EXEs individually and the spec explicitly excludes a new pair rollback redesign; it does not currently state DLL-set atomicity. If the answer must be yes, sequential flat sidecar replacement without an additional sidecar recovery contract cannot establish it. A versioned isolated directory would require a changed executable path/launcher or other explicit loader/manifest integration. Do not decide this by implementation convenience. The narrower approved-negative requirement is already clear: missing, corrupt, wrong-architecture or incompatible candidate sidecars must be discovered in staging and must not cause replacement of either existing EXE. + +**Avoided:** versioned executable relocation, launcher/shim, persistent PATH edits, `SetDefaultDllDirectories`, arbitrary DLL fallback, Ladybug upgrade, Cargo source-mode rewrite, installer pair rollback, or claim of Windows desktop qualification. None is authorized by this bounded follow-up. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/loader-design.md b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/loader-design.md new file mode 100644 index 00000000..34f3b264 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/loader-design.md @@ -0,0 +1,96 @@ +# COD-53 / CBG-PLAT-01 S02 — controlled loader and Cargo-extension design notes + +**Disposition:** read-only source investigation; no product files, manifests, lockfiles, or Git state changed. Target worktree `/private/tmp/codebasegraph-cod53-windows-runtimes`, source baseline `7038e66ff8271ffddc511f879cf8d28353a09b2d`; approval snapshot at `eaa430c849094078bb4c228ea03136dde5587e91`; approved spec `docs/specs/CBG-PLAT-01/spec.md` rev 0.10 SHA `1a9db7b558b60248888408daa6268a3b45f2f0df`, R02/A03/A04/A16. This is a proposed route to review, not implementation or Windows qualification. + +## Bottom line: one true release blocker, one independent coding slice + +A narrow pre-install smoke gate can be investigated, but **there is not yet an approved or validated DLL-loading design**. In particular, a process-global restricted DLL search policy is unsettled: it may affect public-library embedding and application/plugin consumers, and neither the coordinator nor this report has an approved implementation plan for it. Treat any such mechanism below as a competing hypothesis for the independent proposal review, not as an approved or proven route. No contract or ABI upgrade is authorized. Separately, release work that redistributes local Microsoft VC runtime DLLs is **blocked until the maintainer/user confirms the project's concrete Visual Studio redistribution entitlement** (eligible licensed user and exact license terms/authorized file source); do not infer that entitlement from a runner, GitHub Actions, or presumed Enterprise status. Microsoft says individual VC runtime binary redistribution is limited to licensed Visual Studio users and subject to its license terms. If the answer is no, report a policy blocker under approved D01; do not substitute the vcredist installer/global install, static-link change, or a different prerequisite without approval. + +OpenSSL itself is not the gating permission based on current public primary documentation: OpenSSL 3.5+ is Apache-2.0, and its official release strategy marks 3.5 as LTS through 2030-04-08. The coordinator's later supply investigation (see `/private/tmp/codebasegraph-cod53-analysis/runtime-supply.md`) verified **3.5.9** as an official released source candidate with tag/commit/archive SHA and showed its symbol map contains the extension-imported OpenSSL 3.0 symbols. Treat that as a viable candidate, not qualification: still inspect the resulting Windows x64 DLL exports/import closure, source/build identity, and run extension load/SQL tests. I had earlier seen a stale official release listing that ended at 3.5.8; the later tagged release evidence supersedes that observation. + +The independent **D05d default Cargo extension mechanism can proceed** while runtime redistribution entitlement is being clarified: the reviewed subset is root package `default = ["bundled-windows-extensions"]` only. Preserve the existing feature forwarding unchanged; Cargo's default feature activation on the root dependency means the `k-wiki` wrapper does not need a manifest change for the ordinary default build. `k-wiki` is `publish = false`, so no registry `cargo install k-wiki` route exists or is claimed. No extension ABI change or new crate is required. D05d tests/doc work need not wait on the VC archive path, but implementation is gated on its independent proposal review. Plain root Cargo source-build still needs an actually run Windows recipe; do not state that CMake/Ninja alone suffices or that source builds are qualified. + +## What exact current source establishes + +- `Cargo.toml` currently defines `[features] bundled-windows-extensions = []`, **not** `default = [...]`. The Windows byte-provider in `src/db_writer/extensions.rs` is gated on `target_os=windows`, `target_arch=x86_64`, and this feature. `crates/k-wiki/Cargo.toml` is `publish = false`; its existing `bundled-windows-extensions` feature forwards to the root feature, but no registry `cargo install k-wiki` route exists or is claimed. The D05d proposal/review subset is root `default = ["bundled-windows-extensions"]` only, with existing forwarding unchanged; Cargo's default features on the root dependency carry the feature into a normal workspace k-wiki build, so no k-wiki manifest edit is required. Plain registry `cargo install codebase-graph` currently omits the bytes. The release xtask explicitly adds the feature to both Windows builds, explaining archive behavior. +- When enabled, xz assets already exist at `assets/ladybug-extensions/0.19.0/win_amd64/{json,fts}/lib*.lbug_extension.xz` (compressed file sizes 3,371,312 and 3,495,248 bytes). The pinned `lbug` Cargo.lock entry is 0.19.0, checksum `a2a843feea97d72124b0438ee6a02ae0ce9d3543da3c391989bfb1f39ec20486`. Current preseed code uses HOME-independent `USERPROFILE` and Ladybug's `.lbdb/extension/0.19.0/win_amd64/{json,fts}/` cache path. It writes only when a cache file is absent; it presently does not replace/check a pre-existing corrupt/incompatible cache asset. This investigation does not propose changing cache precedence or install/download semantics incidentally. +- Local, read-only XZ decompression and direct PE import-table parsing of the current checked-in extension bytes produced: + - JSON PE x64, 14,178,304 bytes: imports `libssl-3-x64.dll`, `libcrypto-3-x64.dll`, `MSVCP140.dll`, `VCRUNTIME140.dll`, `VCRUNTIME140_1.dll`, Windows API/system imports (`KERNEL32`, `WS2_32`, `CRYPT32`, API-MS-Win CRT contracts, etc.). + - FTS PE x64, 14,779,904 bytes: same direct non-system OpenSSL and VC family imports, with its own CRT contract set. + This proves declared imports only. It does **not** prove runtime transitive closure for the DLLs, delayed imports, architecture/version compatibility, or clean consumer success. Decompressed payload SHA-256s match the archived Scryer package recompression record: JSON `bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f`; FTS `7f82059c8149bb7851420a9bfd0c46859e92efaeda0bcd5c65418d8f174edac4`. This identifies current bytes, not original vendor-authentication proof. +- Existing release gate packages only two EXEs, `checksums.txt`, `install.sh`, `install.ps1`; `create_native_archive`, `expected_package_files`, `extract_and_validate_native_archive`, and `validate_native_artifact_set` each enforce that exact closed set. The internal `checksums.txt` hashes only the two binaries. Adding DLLs therefore requires one inventory source in `NativeTarget` (or a target manifest owned by it) and using it consistently for package assembly, archive expected-entry validation, sidecar integrity, and installed artifact/provenance validation. Do not create a second disconnected sidecar list. +- `build.rs` currently links `ssl`/`crypto` dylibs in emitted directives for all three native OS conditions, but CI `.github/actions/setup-native/action.yml` installs **static** Windows OpenSSL `.lib` files, while the shipped JSON/FTS extensions are dynamic OpenSSL consumers. This explains the gap. CI action's `vcpkg install openssl:x64-windows-static` neither supplies nor licenses the runtime DLLs required by extension imports. +- `src/bootstrap.rs::run_from_env` registers phase/materialization helper executables, then routes public commands. `src/bin/codebase-graph.rs::main` calls it. `src/db_writer/phase.rs::run_isolated_phase` launches the same registered CLI executable for internal `__codebase_graph_internal ladybug-write-phase-v2` worker requests, via guarded process lifecycle. This confirms helpers are **separate executable processes**, not threads inheriting runtime state: any application-private DLL search setup must happen on every relevant process startup (at least graph CLI/phase worker; inspect any future workers). A Rust init in graph executable is after Windows has mapped its direct imports; an extension's own OpenSSL/VC imports are resolved later, when Ladybug loads that extension. +- `k-wiki` is a distinct workspace binary. `crates/k-wiki/src/bin/k-wiki.rs::main` does not call root `run_from_env`; it directly dispatches its own API. Its graph-context integration is optional (`graph-context` feature) and calls the library API, while graph builds may exercise the same extension code through linked `codebase-graph` library. A library-level hook is one possible seam to investigate for both binaries, but it is not approved and may impose process-global side effects on public library consumers; a main-only bootstrap does not cover `k-wiki` or arbitrary library consumers. The release artifact's `k-wiki.exe` still must be audited and smoke-tested. Source graph File index omits Cargo manifest and installer nodes; the file selection gap is known, and these source/config conclusions were checked against the exact isolated worktree, not graph authority. +- `src/db_writer/extensions.rs::preseed_ladybug_extensions` is reached before writer `INSTALL/LOAD` in `src/db_writer/write.rs::prepare_candidate`, and before graph-search FTS `LOAD` in `src/api/graph_read.rs::search_ladybug_fts`. Schema phases emit `INSTALL json; LOAD json` and optionally `INSTALL fts; LOAD fts`; graph search loads FTS directly. This makes existing real product entry points available for smoke. +- Pinned dependency source was inspected from Cargo.lock-matching `lbug 0.19.0` crate archive. Its Windows extension shim in `lbug-src/src/extension/extension.cpp` implements `dlopen` with plain `LoadLibraryW(fpath.c_str())` (lines 456–460). That is a Windows standard search-policy call, not a strict application-local dependency policy. Extension manager in `extension_manager.cpp` opens the extension path via `ExtensionLibLoader`; its loader object calls `dlopen(path)` and stores the returned module handle. `LoadedExtension` is retained by the database extension manager after successful `init`; the handle lifetime is therefore tied to loaded extension/database manager, not the short preseed call. `unload()` exists but must not be used before callbacks finish. This loader lives **inside the pinned Ladybug dependency**. The Rust project cannot force safe resolution for that `LoadLibraryW` call merely by setting search flags for its own `LoadLibraryExW`; must either (a) establish a narrowly scoped, process-wide safe default *before any Ladybug LOAD* and prove its behavior against Ladybug's exact call, or (b) get a reviewed compatible integration point/upstream change in Ladybug that uses secure `LoadLibraryExW` flags / controlled directories. A Rust helper loading OpenSSL DLLs before extension LOAD is not itself enough to establish safe dependency binding or transitive closure; Windows may unify by module basename with already-loaded DLLs. + +## Bounded loader design proposal (subject to reviewer choosing interface) + +1. **Choose one app-local layout and one ownership identity.** Sidecars are shipped adjacent to the two official executables in the archive, under one fixed versioned private folder next to the executable (e.g. `runtime/openssl/...`, `runtime/vc/...`) or adjacent root; installer copies them into the same stable installation directory as `codebase-graph.exe` / `k-wiki.exe`. The exact layout should follow sidecar packaging and DLL API constraints. Treat executable/application dir and the sidecar dirs as protected app-owned files, not user cache, CWD, PATH, or `%TEMP%`. Do not add an arbitrary executable-adjacent DLL pick-up from cwd. Avoid versioned sidecar files with no ownership/cleanup story; the installed folder is one identifiable product install and upgrade copies/replaces the expected sidecar names in place only after the existing preflight passes. Do not add rollback of the two EXE copies; specifically do not begin replacing either EXE until sidecar checks and both target-binary checks pass. COD-56's broad generic native nonzero probe fix remains excluded. +2. **Unsettled competing loader hypotheses — not an implementation prescription.** A process-global restricted policy (`SetDefaultDllDirectories`, possibly exact `AddDllDirectory` paths) plus exact-path preload/retained module handles is one hypothesis to test. It mutates the whole process's loader behavior, may affect an embedding application's dependencies/plugins, and cannot simply be undone to restore standard search; public library callers may not consent to that process-wide side effect. The other broad direction is constrain/alter the Ladybug extension load integration point so its DLL load uses explicit safe flags or an application-controlled resolver; that may require an upstream seam or dependency change and is not approved here. Keep both as alternatives for the independent proposal gate. App-local deployment location and import closure can be investigated independently, but neither proves controlled loading. The final graph/wiki executables' direct imports must be inspected because those DLLs resolve before Rust `main`; a Rust bootstrap cannot protect initial executable imports. Pinned Ladybug 0.19.0 calls `LoadLibraryW`, so any proposed mechanism must prove behavior for that exact call, all relevant process/library entrypoints, child workers, already-loaded foreign basename modules and transitive dependencies. Do not set process-global flags, preload modules, add DLL directories, mutate PATH, or modify Ladybug without reviewer-approved proposal and a settled interface. If later reviewing a `LoadLibraryExW` option, Microsoft requires a fully qualified top-level path for `LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR`; directories added via multiple `AddDllDirectory` calls have unspecified search order. These facts constrain review; they do not select a mechanism. +3. **Verification question for the review, not a selected design.** For whichever mechanism is proposed, prove it against Ladybug 0.19.0's `LoadLibraryW` path on the approved Windows 11 baseline, including transitive OpenSSL dependencies, no CWD/PATH lookalikes, and already-loaded foreign basename modules. Windows loaded-module resolution may bind a dependency by basename to a module loaded from an unintended location; tests must establish detection/failure behavior rather than assume absolute paths alone solve this. The direct imports also include VC runtime DLLs and OS API-set/System32 dependencies. Confirm Microsoft's eligible app-local file list and recursive imports for the selected exact bytes; do not indiscriminately ship OS API-set/system DLLs or derive full redistributable closure from direct PE imports alone. +4. **Installer preflight is narrower than changing all probes.** Before creating/installing to destination and before *either* EXE replacement: validate `checksums.txt` inventory against exactly expected binaries+sidecar(s); validate each sidecar's SHA-256 against an expected digest in the trusted artifact inventory (and/or archive-authenticated inventory, with clear provenance); check sidecars are regular non-reparse paths within extracted package and expected PE machine/import set; then execute a dedicated, documented **native-runtime smoke command on each candidate binary**, using candidate-local sidecars and a temporary isolated HOME/cache/database, requiring actual `INSTALL/LOAD json`, `INSTALL/LOAD fts`, small JSON function/query, FTS index create/query, close/reopen where applicable. It must assert nonzero status and useful failure text itself; it must not reuse the generic `Assert-Binary` implementation unchanged because current PowerShell's `ErrorActionPreference=Stop` does not make native exit status a reliable failure and that unrelated defect is COD-56. A special smoke command that tests only imports/`--version` is insufficient. Ensure temporary files/child process are cleaned even on exceptions; do not put fixture payload under installation destination. Then perform the current per-file binary moves. This is not a two-binary transaction redesign and does not promise rollback if second move fails. Missing, hash-mismatched, malformed, architecture-incompatible, or load-failing sidecars stop before both destination binaries are touched. Test on existing destination files by byte-hash equality before/after each failure. +5. **Archive, installed-loader, and provenance evidence must agree.** CI/archive unit tests should reject missing, duplicate, unexpected, nonregular/reparse, tampered, wrong-arch, and hash-mismatched sidecars. Package hashes/checksum records include all runtime sidecars; archive SHA/provenance already covers final compressed archive, but sidecar-specific hashes are necessary to audit contents and installed files. `NativeTarget` remains one packaging authority. For installed-file verification, check only expected files and verify path/hash before process launch; smoke both binaries in a clean child process with empty PATH except OS-safe paths, temporary cwd, clean user extension cache, and no development-installed OpenSSL/VC. Capture Windows OS/edition/build, toolchain, extension/runtime PE imports and all hashes. Build-host smoke or Server CI remains CI evidence only; without a Windows 11 desktop, A03/A04 qualification remains **pending**, not inferred. + +## Sidecar installation/upgrade details and negative cases in scope + +- Existing `install.ps1` resolves an archive extraction dir, checks each executable hash and probes CLI, then creates BinDir and moves EXEs individually. Native artifact `dry_run_installer` invokes only packaged script dry-run. For COD-53: expand packaged/installer hash validation for the expected runtime set; test both installers' dry-run against a valid package; ensure required sidecar present/inventory-valid and candidate runtime smoke succeeds *before* destination mutation; preserve existing destination EXEs and sidecars byte-for-byte on every preflight failure. For real install, create `BinDir` only after preflight, copy/install sidecars at fixed paths and move both binaries in existing order. The current installer has no unrelated-data deletion. Upgrades need same stable sidecar identity/path so existing DB/cache state and binaries unaffected; old orphaned runtime files may be left in the install dir unless cleanup policy is separately agreed. Do not claim pairwise atomicity or roll back one EXE when second replacement fails. +- Corrupt/incompatible bundled-runtime negatives: sidecar absent; altered digest; malformed/wrong machine PE; missing required OpenSSL or VC dependency; OpenSSL DLL has a same-name malicious CWD/PATH decoy; transitive DLL absent; extension incompatible by native loader/init; runtime smoke false/nonzero. For all *preflight-detectable* negatives, assert no destination executable or runtime file changed. A test for replacement failure after the mutation phase is not an invitation to design pair rollback under this slice. +- Race/ownership: packaged extracted files are not a trust boundary by filename alone; rely on expected inventory+hash and archive hash/provenance from approved release, reject symlinks/reparse paths. Installation directory protections are OS/installer configuration (current scripts install to user path under `$HOME\.local\bin` by default). If app-local DLLs are user-writable alongside exe, the adversary model includes user who can replace their own installation; do not claim protection against that principal. However do not load from an unrelated writable search directory. If a shared system install is later chosen, directory ACL and updater behavior need separate requirements. + +## Plain Cargo default extension path, separate from archive/runtime delivery + +- Implementation candidate: set root crate's default feature to enable the existing Windows-target-gated byte provider (likely feature `default = ["bundled-windows-extensions"]`). Consider Cargo feature unification for `k-wiki`: its own default feature would need to request this root feature in the dependency declaration (e.g. `codebase-graph = { ..., features=["bundled-windows-extensions"] }`), or align root and wrapper defaults under an approved feature design. Do not make the feature target-inactive behavior change on macOS/Linux; cfg gate confines native bytes. A no-default-features install may remain unsupported unless explicitly documented/contracted; D05d's criterion is **plain default install**. +- The source distribution's existing Cargo `include` allowlist already includes `src/**`, `assets/ladybug-extensions/0.19.0/**/*.xz`, `build.rs`, and tree-sitter vendor sources, so current compressed extension bytes fit; verify final `.crate` contains both win assets after default feature change. No `Cargo.lock` dependency update is inherently required. To prove no runtime extension download, isolate `USERPROFILE`/`HOME` extension cache from normal user data, disable network at test process/environment, run actual graph build, reopen, graph search and k-wiki/MCP path; assert the selected bytes were seeded/loaded, not fetch attempted. Missing build inputs should fail at build/install or at clear start with named prerequisites, not silently download extensions. +- Source-build prerequisites remain a **category-level doc pending real Windows execution**, not a turnkey recipe yet: supported Rust/Cargo for MSRV, Windows x64 MSVC toolchain/SDK, CMake/Ninja if the pinned `lbug 0.19.0` source fallback takes that branch, OpenSSL 3 build/import libraries plus headers and supported pkg-config/`LIB` discovery, other environment and static/dynamic library compatibility. Pinned lbug source shows Windows source fallback `get_lbug_root()` returns its manifest parent (`manifest_dir/../..`), unlike non-Windows source-download branch; repository inclusion of complete suitable source tree and exact build command/environment must be proven. Existing candidate wiki memory says v3.0.3/3.0.4 Windows Cargo failure is CMake launch and CI uses prebuilt static lbug/openssl inputs; it does **not** prove native user source build succeeds. For approved D05d docs, categorize prerequisites and identify exact unqualified branch paths; don't state “install CMake + Ninja + OpenSSL and it works” absent a clean Windows test. Recommend prebuilt archive for users who do not want toolchain/native-build setup, as spec says. + +## Primary sources / pinned dependency evidence + +- Microsoft Learn, DLL search order: — standard search behavior and safe `LOAD_LIBRARY_SEARCH_*` dirs; CWD/PATH excluded by recommended restricted flags. +- Microsoft Learn, `SetDefaultDllDirectories`: — process-local policy persists lifetime; default dirs/limitations; does not revert to standard path. +- Microsoft Learn, `AddDllDirectory`: — absolute dirs; `RemoveDllDirectory` cookie lifecycle; order unspecified for multiple dirs. +- Microsoft Learn, `LoadLibraryExW`: — `LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR` requires fully qualified target path and only constrains target DLL dependency dir; combine with restricted defaults as needed. +- Microsoft Learn, Visual C++ deployment: — local deployment puts DLLs beside app but Microsoft recommends central redistributable deployment due to servicing. Redistribution terms and permitted file list still govern. +- Microsoft Learn, redistribution: — individual VC runtime binary/package redistribution limited to licensed Visual Studio users and subject to license terms. User must resolve project's eligibility/source explicitly. +- OpenSSL license: — OpenSSL 3.0+ Apache License 2.0. +- OpenSSL release strategy: — ABI compatibility within same major; 3.5 LTS supported until 2030-04-08. Official old 3.5 page lists 3.5.8 (25 Aug 2026), so 3.5.9 claim is not substantiated by observed primary page: . +- Exact locked dependency source: local Cargo registry archive `lbug-0.19.0`, Cargo.lock checksum above; key source: `lbug-src/src/extension/extension.cpp` Windows `dlopen` uses `LoadLibraryW` lines 456–460; `lbug-src/src/extension/extension_manager.cpp` loads and retains module; `lbug-src/src/extension/loaded_extension.cpp` generates reload SQL from extension path; `lbug-src/src/main/client_context.cpp::getExtensionDir` uses `.lbdb/extension/0.19.0/`. +- Ladybug official extension repo `https://github.com/LadybugDB/extensions` currently MIT-licensed (`LICENSE`, copyrighted 2022–2026) and has json/fts sources, but this does not authenticate exact previously built assets or establish redistribution terms for each third-party object/dependency. Its HEAD CMake files show json/fts link composition (JSON yyjson; FTS snowball/re2/cppjieba). Current official endpoint reports live 0.19.0 Windows binaries, but fetching at this date returned different hashes/sizes from checked-in exact binaries; **do not replace current assets with live endpoint output**. Need immutable source commit/build provenance and license/notice attribution for actual shipped bytes, plus full import/export/runtime closure. The xz payloads are not directly cryptographically signed by this report. + +## Exact file ownership / minimal seams for coordinator + +**Runtime prebuilt delivery (shared ownership coordinated):** +- `crates/xtask/src/main.rs` — sole release archive inventory authority: `NativeTarget`, `build_native_binaries`, `build_and_smoke_native_archive`, package/checksum construction, `create_native_archive`, `expected_package_files`, `extract_and_validate_native_archive`, `validate_internal_checksums`, `validate_native_artifact_set`, and artifact smoke. Add deterministic sidecar inventory, hash/license checks, archive test cases, candidate-path smoke. One writer owns this overlapping file. +- `release/install/install.ps1` and `release/install/install.sh` — sidecar verification/install preflight before either binary replacement, with preservation negative tests. PowerShell can handle runtime file copies/hashes, but candidate native smoke should not assume PowerShell native exit behavior; dedicated smoke must capture and check native status itself. One installer-owner across both scripts. +- `src/bootstrap.rs` plus `src/bin/codebase-graph.rs`; `crates/k-wiki/src/bin/k-wiki.rs`; possibly a shared library seam. These are candidate entrypoints to audit, not a recommendation that loader policy belongs in a process-global library hook. Must cover binary startup, helper child process and any public library entrypoints under whichever reviewed design is selected. No source patch until independent reviewer settles allowed behavior and interface. +- `src/db_writer/extensions.rs`, `src/db_writer/access.rs`, `src/api/graph_read.rs` and phase path are evidence anchors for extension seeding/loading and direct FTS query, not predetermined loader initialization locations. Keep cache semantics alone unless reviewer-approved scope requires change. +- `Cargo.toml`, `Cargo.lock` only if validated loader/PE-inspection dependency is needed. Prefer existing Windows `windows-sys` API features; minimal Windows API feature addition may require manifest change but should not add generic loader library/framework. Pin exact dependency/config identity if a new dependency is truly required. Do not assign shared manifest to parallel contributors. +- New tracked redistributable notice/license/checksum files and README/install instructions as discovered once exact bundle candidates are approved; no accurate sidecar binary can be generated until entitlement/licensing and source provenance clear. +- `/.github/actions/setup-native/action.yml` only if using pinned CI source to stage/build/test DLLs; a CI-only `vcpkg` dependency download must not become release provenance silently. A source identity/checksum and explicit package policy are needed. The Graph File index lacks manifest/action/installer File nodes; these file ownership recommendations are direct source review after semantic graph search. Repository graph attached to another root; it is advisory and not exact-SHA evidence. + +**D05d independent files:** `Cargo.toml`, `crates/k-wiki/Cargo.toml`, tests in `src/db_writer/extensions.rs`/focused integration or xtask policy checks, and Windows source-install/prerequisite docs (`docs/release.md`/README/spec-linked D05d docs). Slices must avoid changes to archive inventory/installer/loaders until that proposal passes independent review. + +## Test plan split / evidence still needed + +**Deterministic Windows CI/build checks (not consumer qualification):** import table inventory against expected non-system modules; architecture checks for exes/extensions/sidecars; transitive normal/delay-import closure and export checks; SHA/licenses/notice allowlist; archive inventory/reject-missing/duplicate/unknown/symlink/tamper tests; install preflight preservation tests for all missing/corrupt/wrong-arch/dependency-negative cases; strict DLL-search subprocess tests with cwd/PATH decoys and temporary extension cache; real json/fts load/query, graph write/reopen/search, phase worker, k-wiki/MCP smoke. Use Server runner only as build/CI evidence, label it as such. Mock negative injection for `LoadLibraryW` errors is useful but not a replacement for real runtime loader tests. + +**A03/A04 desktop closure (still unexecuted):** exactly installed immutable final archive on Microsoft-supported Windows 11 x86_64 desktop, no development OpenSSL/VC installation or developer PATH, report edition/release/build; clean app-local runtime load for both actual installed binaries, JSON/FTS/graph reopen/search/MCP; clean failure if missing/corrupt/incompatible sidecar without either destination binary changed. No Windows 11 host was available in this investigation, so A03/A04 remain open even after CI passes. + +**A16 source qualification (still unexecuted):** clean supported Windows x64 source environment, plain `cargo install` with no explicit feature flags for both packages, exact source/package version/toolchain/features/environment identities and separately listed prerequisite identities; empty isolated extension cache and runtime network disabled; real JSON/FTS writes/query and graph reopen/search, plus applicable load tests. Record source fallback path and exact build dependency; no assertion that source install contains prebuilt archive's VC/OpenSSL sidecars. + +## Status and uncertainty ledger + +- **Confirmed:** exact current source inventory/features; package/installer scope; direct extension PE imports and payload hashes; pinned Ladybug `LoadLibraryW` implementation and manager handle lifetime; helper child-process behavior; no graph DB in isolated worktree and incomplete graph File discovery; no local Windows/Windows 11 execution. +- **Routine choices for reviewed implementation (not user permission blockers):** exact app-local folder names, deterministic inventory schema, how to express default Cargo feature, internal smoke command contract, and choice of a matching OpenSSL build release *once its version/pin/runtime tests and license are documented*. Do not let solution options silently expand scope. +- **True blocker:** maintainer/user must confirm Visual Studio license entitlement and permitted exact individual VC DLL redistribution/source. If unavailable, approved D01 cannot be met by app-local VC files; stop runtime shipment and surface blocker/options rather than substitute. +- **Security/compatibility blocker until evidence, not user contract change:** 0.19.0 Ladybug calls `LoadLibraryW`; must prove exact restricted process default/add-directory policy loads correct modules transitively, stays out of CWD/PATH, and handles already-loaded same-name modules. If not, exact Ladybug integration point/version/path must be reviewed; no ABI/dependency upgrade has been approved. A design document alone is not proof. +- **Supply blocker until verifiable evidence:** checked-in extension assets have payload hashes/recompression equivalence but not immutable official binary source/build provenance and full third-party license dossier in current tree. Official extension repo public MIT license is not enough to certify embedded third-party components or exact binary provenance. Runtime DLL supply needs export closure and hashes from approved package sources. +- **Explicitly not established:** extension import delays/transitive dependencies and exports; application exe direct DLL imports for actual windows builds; exact safe loader-policy behavior with pinned Ladybug; `k-wiki` process-level loader entry seam; OpenSSL build output filenames/import libraries/compiler flags; VC exact redistribution file list and entitlement; race/ACL policy for shared install; plain Cargo native Windows source build; Windows 11 desktop qualification; installer failure preservation after actual native smoke. Preserve these as evidence tasks rather than claims. + +No source implementation/build/test was run here. End report is preparation evidence only; follow independent proposal review before implementation, no manifest/lockfile edits or runtime shipping pending permission and proposal gates. + + +## Follow-up evidence received from coordinator + +The companion `/private/tmp/codebasegraph-cod53-analysis/runtime-supply.md` supersedes this report where more detailed supply evidence is available: it verifies OpenSSL 3.5.9 official source archive/checksum/commit and symbol-list compatibility, reports exact VC direct imports and Microsoft's validly-licensed VS terms, and documents full unresolved supply proof. It also sharpens the installer loader constraint: sidecars need to be installed alongside the destination executable (not remain only in the archive extraction directory), and a Windows loader may bind by module basename to an already-loaded foreign module. Nothing in that companion report qualifies runtime loading or desktop acceptance. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/loader-proposal-delta.md b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/loader-proposal-delta.md new file mode 100644 index 00000000..e30ac56d --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/loader-proposal-delta.md @@ -0,0 +1,34 @@ +# COD-53 loader proposal delta — exact-path complete preloading + +**Verdict:** the proposed complete preload route is technically sufficient for binding the approved JSON/FTS **non-system import closure**, subject to the concrete conditions below. No indispensable `SetDefaultDllDirectories`, upstream Ladybug change, ABI/dependency upgrade, or new owner policy decision has been established. This is a focused feasibility verdict, **not** a full implementation/release green light or Windows qualification. + +Fresh read-only reviewer: `openai-codex/gpt-6.1-sol`, coordinator-confirmed High. Read `loader-design.md`, `runtime-supply.md`, current approval/licence decision and actual discovered source; refreshed Microsoft primary references and pinned Ladybug source. No product changes/builds/tests/Git/tracking mutations. + +## Why the narrow route can work + +Microsoft documents that DLL dependencies are resolved by module name even when the parent uses a full path, and that already-loaded modules are considered before ordinary directory search. It also documents that `LoadLibraryExW` with `DLL_LOAD_DIR | SYSTEM32` restricts directory lookup for the preload's dependencies; PIN keeps accepted modules loaded until process termination. Consequently, **all** non-system dependency names already resident from verified intended paths can satisfy Ladybug's later plain `LoadLibraryW` imports without changing the process default search policy. The report's warning that preloading *OpenSSL alone* is insufficient is sound; the stronger proposal preloads/verifies the entire closure, including VC and any additional discovered non-system modules. These are materially different proposals. + +Do not describe this as making all later `LoadLibraryW` calls safe. The argument is limited to the known verified extension/runtime import closure. It does not police arbitrary embedding-host/plugin loads or defend against a principal already executing hostile code in-process. + +## Required details in the settled implementation brief + +1. **Closed set before code execution.** Derive normal/delay-import closure and required exports from exact final EXEs, extensions and sidecars. Validate all expected bytes/paths/machines first; preload dependency-first, so a parent's initialization cannot consume an unverified non-system dependency. Keep runtime files in one trusted application-owned directory where practical. Explicitly inspect runtime-loaded optional modules/provider/helper paths; a static import-table closure does not prove such loads absent. This is an evidence task, not evidence that an extra module exists. +2. **Existing modules and retention.** Inspect all relevant existing same-basename modules, not merely trust the first lookup result; fail clearly on an unacceptable origin before loading Ladybug/extensions. Validate returned module path/identity after exact-path loads, and pin/retain the complete accepted set process-wide. Do not accept a different-path module just because its exports appear compatible; no PATH/CWD fallback. One-time internal initialization must precede the project's native use in every process, including helper children. No speculative hostile concurrent injection is an additional gate here. +3. **Earlier than database open.** There is a concrete ordering trap: actual `src/db_writer/access.rs:142` calls `Database::new`; pinned Ladybug `src/main/database.cpp:140` invokes recovery, and `storage/wal/records/load_extension_record_replay.cpp:9–12` can replay `loadExtension`. Therefore placing initialization only in `preseed_ladybug_extensions` or immediately before explicit `LOAD fts` is insufficient for reopen/recovery. Initialize/verify before `Database::new` on all supported library/product paths, not only CLI main. Preserve library consumers' process search defaults. +4. **Validate extension input too.** Actual pinned `extension_manager.cpp:13–35` loads an optional extension-loader file from the cache if present before the main extension. Existing seeding skips preexisting files. The settled package path must establish which exact extension/helper files Ladybug can load and check their expected identity (or clearly reject unsupported cache state) before native open/LOAD. Preloading runtime DLLs alone cannot authenticate a cache extension or an optional cache loader. This is a concrete reachable integrity path, not a request for a global loader policy or cache redesign. Preserve approved cache behavior except integrity required by R02; surface a real contract conflict if found. +5. **Process baseline and source mode.** Inspect final executable imports: Windows maps direct imports before Rust starts. A private runtime subdirectory does not by itself satisfy those imports. If final EXEs import a required sidecar, packaging must place it where initial app-local loading finds the intended bytes; do not infer this from static OpenSSL link setup. An embedding host may already own VC/OpenSSL modules. The loader must fail clearly on an incompatible packaged baseline rather than silently rebind it. Do not impose packaged-directory identity on A16's separately documented source prerequisite mode or claim universal embedding compatibility. No evidence currently demonstrates an unavoidable conflict requiring an owner decision; exact artifact/baseline tests determine whether one exists. + +## Blocked commitments and proceed boundary + +The complete-preload mechanism may be selected for detailed in-policy design without asking the user to approve process-global DLL search changes. **Do not start dependent full implementation until the coordinator settles the exact source/prerequisite versus packaged mode, input-identity policy, entrypoints and pre-install probe contract in the Scryer brief and the full proposal gate closes.** This is ordinary completion of the requested proposal, not a new architecture permission question. Native Windows tests must establish real origin/lifetime behavior, ordinary PATH/CWD decoys, wrong-origin preloaded modules, recovery/reopen ordering and candidate failure before either installed EXE replacement. Desktop A03/A16 qualification remains distinct. + +Licence delta: decision at `389f86f58a03f71d81b0a2aeb44e7cc49a58f4ce` selects Community2022 subject to eligibility/terms/source evidence. Prior PR-01 is **partially resolved**: no longer an unanswered route choice; actual applicable entitlement and eligible unmodified-byte provenance remain before copying/shipping. No acquisition/acceptance/installation or licence compliance is invented. + +## Primary evidence inspected2026-10-27 + +- Microsoft DLL search order (loaded-module list; dependent module-name lookup): https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order +- Microsoft `LoadLibraryExW` (DLL_LOAD_DIR requires full path; restricted dependency directories; basename ambiguity): https://learn.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibraryexw +- Microsoft `GetModuleHandleExW` (PIN lifetime): https://learn.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-getmodulehandleexw +- Pinned Ladybug commit `c934f673b6b1c5b680bdae3295cbd909b5855cef`: `src/extension/extension.cpp` (plain LoadLibraryW), `src/extension/extension_manager.cpp` (optional cache loader/main load), `src/main/database.cpp` (recovery in open), `src/storage/wal/records/load_extension_record_replay.cpp` (extension replay). Independently opened raw official sources; matching local locked0.19.0 source inspected. https://github.com/LadybugDB/ladybug/tree/c934f673b6b1c5b680bdae3295cbd909b5855cef + +No new constants/assumptions about final DLL bytes, final executable imports, source-mode API or Windows execution were asserted. No durable memory: unimplemented proposal is not a verified runbook. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/runtime-source-followup.md b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/runtime-source-followup.md new file mode 100644 index 00000000..beb10b55 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/runtime-source-followup.md @@ -0,0 +1,48 @@ +# COD-53 runtime source follow-up: VC runtime and published EXE imports + +**Task:** Read-only bounded fact-finding for the parent-reviewed COD-53/S02 proposal. User-selected VC license route is Visual Studio Community 2022 (decision [cod53-vc-runtime-licence.md](https://github.com/rabii-chaarani/codebaseGraph/blob/389f86f58a03f71d81b0a2aeb44e7cc49a58f4ce/docs/specs/CBG-PLAT-01/decisions/cod53-vc-runtime-licence.md)). No Visual Studio was installed, no product/source/build/Git files were changed, and no executable was run. Downloaded official redistributable/archive evidence was kept only under `/private/tmp/codebasegraph-cod53-analysis/`. + +## Bottom line + +There is a practical official byte acquisition/provenance path for VC app-local files: obtain a **version-pinned official Visual Studio Community 2022 installation media/component** containing `VC\\Redist\\MSVC\\\\x64\\Microsoft.VC143.CRT` from a Community-licensed acquisition, then copy only the exact eligible unmodified DLLs listed in VS 2022 REDIST. This is consistent with the selected Community route and Microsoft’s documented source location, but exact files, revision and applicable license still must be captured and validated. The `aka.ms/vc14/vc_redist.x64.exe` public Microsoft redistributable package is also official and content-addressable, but Microsoft documents it as an installer for central installation, not as a documented source for the individual app-local payload; do not unpack/redistribute its internal MSI payload as the DLL source without first establishing that exact method/files are in the applicable REDIST and terms. NuGet packages found during search were unofficial package owners, old, or UWP-specific; no exact Microsoft-maintained NuGet package providing this desktop app-local CRT payload was established. + +**Concrete unresolved fact, not an architecture blocker:** no Community 2022 licensed installation/payload source or specific version was acquired/observed in this task, and the GitHub Actions job runs in an Enterprise VS path. The approved license-route decision does not assert the distributor has acquired Community or identify exact eligible installed DLL bytes. For the requested report, user selected that route and asked not to raise another question; report this as a factual provenance prerequisite for release/package supply, not a new policy decision. A reproducible pinned Community install layout/package source plus hashes and its actual applicable terms must enter implementation evidence. If the build pipeline cannot lawfully access the Community-installed REDIST files through that route, S02 cannot ship VC DLLs from the observed GH Enterprise host and must stop pending a different explicitly approved supply route. + +The published v3.0.4 Windows EXE import tables prove the already-shipped pair directly imports the same three CRT names as the extensions. These are not merely dependencies of the future OpenSSL DLLs: the initial executable image imports them. Therefore in the existing installed two-EXE layout the initial VC DLLs must be beside **each executable** (or be available through a documented Windows system installation, which approved D01 expressly excludes as the user prerequisite). Loading only the OpenSSL names from some later private directory cannot get through process image initialization if the VC dependencies are missing. This follows from an actual published archive, but v3.0.4 is historical and not the unpublished baseline 4.0.0; inspect final 4.0.0 candidate PE imports before deciding the exact manifest. + +## Microsoft primary-source terms and supply options + +1. Microsoft's Visual C++ redistributable guidance says distribution of packages, merge modules **and individual binaries** is limited to licensed Visual Studio users and subject to Microsoft Software License Terms. It says the VS 2022 files are in `%VCINSTALLDIR%Redist\\MSVC\\v143` (or `VCToolsRedistDir`), and individual files can be copied directly into an application-local folder, though central package install is recommended for servicing. Source: https://learn.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?view=msvc-170 . +2. The official VS 2022 REDIST page says Community 2022, Professional 2022, and Enterprise 2022 are covered, requires a validly licensed copy and unmodified files, and lists runtime files under `[VisualStudioFolder]\\VC\\redist`; it excludes debug/nonredist and previews. Source: https://learn.microsoft.com/en-us/visualstudio/releases/2022/redistribution . The Community 2022 product terms route was user-selected and linked in the decision record; that is the right license route to evidence, not a generic “the runner had VS installed” inference. +3. Microsoft latest redist URL is version-moving: `https://aka.ms/vc14/vc_redist.x64.exe`. On 2026-10-27 it redirected to `https://download.visualstudio.microsoft.com/download/pr/ebdab8e5-1d7b-4d9f-a11b-cbb1720c3b12/843068991DAAA1F73AD9F6239BCE4D0F6A07A51F18C37EA2A867E9BECA71295C/VC_redist.x64.exe`, HTTP 200; response ETag identifies `843068991DAAA1F73AD9F6239BCE4D0F6A07A51F18C37EA2A867E9BECA71295C`; file SHA-256 `843068991daaa1f73ad9f6239bce4d0f6a07a51f18c37ea2a867e9beca71295c`, 18,731,856 bytes. It is official source/provenance for a version-pinned **central runtime installer**. Primary Microsoft docs at https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 explain it installs/registers libraries; https://learn.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?view=msvc-170 gives `/layout` to copy package contents and distinct instructions for application-local individual DLLs. Neither says internal MSI/cab payload extracted from the central-installer package itself is the permitted app-local source. I extracted it only under analysis temp for structural inspection and did not install it. Its embedded Burn manifest reports x64 bundle version `14.51.36247.0`, but the CABs contain opaque payload members and this source route does not prove the app-local file REDIST provenance or distribution permission for those exact bytes. **Recommendation:** do not use this package as an implicit bypass around Community/REDIST list/source evidence. +4. NuGet search against NuGet's official search endpoint (`https://azuresearch-usnc.nuget.org/query`) found no Microsoft-owned desktop app-local CRT NuGet for this need. `vc143.wixproj.redist` is third party and wraps the official central installer; `VCLibs.140.Redist.Unpackaged` is third-party-owned UWP runtime; `Microsoft.VCRTForwarders.140` concerns forwarders, not a complete desktop CRT; other CRT packages were third-party/old. Avoid as an arbitrary binary provider or provenance substitute. + +### Practical pinned source / workflow recommendation + +Use the REDIST directory from a particular licensed VS Community 2022 installation, preferably pin the exact component version/toolset and source package hash in release evidence. On the release build, locate the `Microsoft.VC143.CRT\\x64` app-local files from that explicitly versioned source, copy unmodified DLLs, check each filename against the applicable VS 2022 REDIST list, include required notices, hash/record each output, and fail if an input or expected hash/identity changes. Better: consume versioned Community installation media/cache as an authorized protected release input rather than relying on whichever host VS happens to be installed; if sourcing from Microsoft's layout at job time, pin the Community installer/channel manifest and approved component versions and make the installer identity explicit. The current repository setup action executes under `C:\Program Files\Microsoft Visual Studio\2022\Enterprise\...`; it neither proves a Community licensed build input nor a pinned REDIST source. Do not copy arbitrary Enterprise-host files merely because their DLL names match. Community terms eligibility and exact component files must be recorded by the distribution owner; the previous approved choice settles the route, not those acquisition facts. + +## Published current release evidence (historical 3.0.4 only) + +The GitHub Releases API `https://api.github.com/repos/rabii-chaarani/codebaseGraph/releases/latest` returned **v3.0.4**, published 2026-10-21. The requested repo baseline identifies package 4.0.0 source, but no `v4.0.0` release/archive exists yet. I downloaded the Microsoft/GitHub-hosted published v3.0.4 x64 tarball into the analysis directory and checked its official attached SHA file: + +- Archive `codebase-graph-3.0.4-windows-x86_64.tar.gz`: 28,138,544 bytes; archive SHA-256 `2459c6dd2b67ef0ece026251601900c3ba0c3996f228440a1106db8a055e35d6`, matching attached `...tar.gz.sha256` exactly. Archive inventory: `codebase-graph.exe`, `k-wiki.exe`, `checksums.txt`, `install.sh`, `install.ps1`. +- `codebase-graph.exe`: 50,469,888 bytes; SHA-256 `dbc2d8d49b4a6844debafab61623724f69e89e4b6eb0bfd5c6b023a28d03b13f`. +- `k-wiki.exe`: 41,651,200 bytes; SHA-256 `42ea1df2e1048fd3630a8a5b71c84ad58b6aef5313ab49f890cac4c01dac7b1a`. +- Parsed PE32+ x64 imports offline. Both executables directly import **`MSVCP140.dll`, `VCRUNTIME140.dll`, `VCRUNTIME140_1.dll`**, plus Windows DLLs: `bcryptprimitives.dll`, `kernel32.dll`, `api-ms-win-core-synch-l1-2-0.dll`, `advapi32.dll`, `psapi.dll`, `USER32.dll`, `crypt32.dll`, `ws2_32.dll`, `ntdll.dll`; and API-set UCRT names `api-ms-win-crt-{runtime,math,heap,locale,string,convert,time,stdio,environment,filesystem,utility}-l1-1-0.dll`. `k-wiki.exe` and graph exe share the same complete non-system CRT dependency list; the graph exe also directly lists `psapi.dll`. +- These binaries were **not executed**. This import evidence is for v3.0.4 only; cannot silently treat it as exact 4.0.0 or final COD-53 import closure. Coordinator says 4.0.0 release is not yet published; once final candidate exists, parse both exact final PE images and recursively inspect every non-system dependency. + +Because both app EXEs import the CRT at process startup, Windows must resolve these names before `main` / Rust bootstrap, so a guard that only runs once Rust starts cannot help if the CRT DLLs are not found. Under D01, put every final PE-required VC sidecar at the application-local executable directory for each app entrypoint; when installer places the two EXEs in the same bin directory, one shared sibling set covers both. For future OpenSSL DLL imports, secure native preloading still must validate/load OpenSSL paths before Ladybug extension `LoadLibraryW`; this report does not alter that loader proposal. + +## Exact limits and blocker record + +- **What is known:** source may be obtained from eligible unmodified VS 2022 REDIST-listed files. Microsoft's official VC central-installer package is pinned by version, URL, ETag, and hash but is not documented here as a valid app-local DLL payload source. The actual Community REDIST source/version/file hashes have not been acquired or recorded. +- **What is not known / release blocker:** no proof of an acquired/licensed Community 2022 installation available to the actual package publisher, no pinned Community component/REDIST layout, no exact DLL hashes/file-list against REDIST, and no final 4.0.0 EXE imports. Do not claim a fully sourced/legal supply inventory, or ship VC DLLs from GitHub Enterprise runner's unversioned installation, until those facts are recorded. No new user decision asked: Community route is already selected; actual acquisition/publisher compliance is not agent-observable and is a release provenance prerequisite. +- **No behavior qualification:** no Windows build/test/desktop install/load, no execution of v3.0.4, and no A03/A04/A16 qualification asserted. Further investigation intentionally stops at this source/provenance boundary. + +## Evidence references + +- Community license route user decision: https://github.com/rabii-chaarani/codebaseGraph/blob/389f86f58a03f71d81b0a2aeb44e7cc49a58f4ce/docs/specs/CBG-PLAT-01/decisions/cod53-vc-runtime-licence.md +- Microsoft REDIST and redist acquisition guidance: above primary links. +- Official v3.0.4 release/tag: https://github.com/rabii-chaarani/codebaseGraph/releases/tag/v3.0.4 +- Official attached Windows archive checksum: https://github.com/rabii-chaarani/codebaseGraph/releases/download/v3.0.4/codebase-graph-3.0.4-windows-x86_64.tar.gz.sha256 +- The inspected VC redist bytes and CAB extractions used only for offline inventory remain in `/private/tmp/codebasegraph-cod53-analysis/`; not repo files. Hashes in report identify inputs/payloads, not license status. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/runtime-supply.md b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/runtime-supply.md new file mode 100644 index 00000000..0ef3e22b --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/runtime-supply.md @@ -0,0 +1,87 @@ +# COD-53/S02 Windows runtime supply investigation + +**Scope:** Read-only evidence for approved `CBG-PLAT-01/S02`, `R02`, `A03/A04/A16`; baseline `7038e66ff8271ffddc511f879cf8d28353a09b2d`, approved spec `1a9db7b558b60248888408daa6268a3b45f2f0df`, approval record at docs-only SHA `eaa430c849094078bb4c228ea03136dde5587e91`. Source worktree: `/private/tmp/codebasegraph-cod53-windows-runtimes`. No source/manifests/lockfiles, Git state, builds, tests, CI, or repository artifacts were changed. No downloads were written to the repository. Research date: 2026-10-27. + +## Conclusion + +There is a technically plausible in-scope OpenSSL provider: build official OpenSSL **3.5.9** for MSVC x64 from the primary OpenSSL release source. The checked-in 0.19.0 Ladybug JSON and FTS PE files import OpenSSL 3 DLL basenames `libssl-3-x64.dll` and `libcrypto-3-x64.dll`; their OpenSSL imports are 3.0 API symbols. OpenSSL documents API/ABI compatibility across releases with the same major version. The exact names follow OpenSSL's Windows/MSVC naming rules (`SHLIB_VERSION=3`, x64 suffix); the final produced DLL exports, dependency closure, and load behavior still require Windows build/test evidence. This source-built candidate is not a third-party binary and does not require changing Ladybug or its extension bytes. + +**One real release/redistribution permission gate remains:** Microsoft says VC runtime redistribution is limited to users licensed for Visual Studio and its license terms. This repository's workflow invokes a path under the GitHub-hosted VS 2022 Enterprise installation, but that is not evidence that the repository publisher/maintainer has the required redistribution license. The supplied checkout/configuration contains no evidence settling that right. Do not package VC DLLs until the distribution owner confirms the applicable licensed entitlement (or supplies another legally reviewed route consistent with D01). This is not a finding that Microsoft forbids app-local redistribution: Microsoft lists unmodified runtime files as redistributable subject to valid license/terms. It is a missing permission fact; a build host's possession of files cannot establish it. The user/maintainer owns resolving it. + +Other missing items below are implementation design/verification obligations, not grounds to reopen the approved D01/D05 policy. No clean Windows 11 desktop or plain-Cargo native run was performed here. + +## Discovery, authority, and evidence boundary + +- Read the approved spec/approval, coordinator discovery JSON and `source-contract-notes.md`; recalled `knowledge` memory for Windows native runtimes; consulted Scryer rules (`user-owns-intent`, `loop-sign-off`, `sign-off`, `fold-after-sign-off`) and `orient` for the target files. Scryer IDs are orientation only, not SHA-bound evidence. The configured graph is the user's main checkout, not the isolated worktree. Graph CLI was used against that root with `--repo-root`, `--no-refresh`, semantic search and explicit dependency/change-impact context. It has no File nodes for Cargo manifests or `install.ps1`; the isolated checkout has no graph DB, and its CLI attempt failed because it tried creating a DB under read-only mode. Treat the coordinator's earlier graph paths as discovery, not exact-revision proof. Source below is read only after those discovered anchors and is exact worktree bytes. +- Target-relevant files and SHA-256 (exact worktree): `Cargo.toml` `c63838504978568dc8428065f3d4e8afcff76528040bac9496f6380ce614eef9`; `crates/k-wiki/Cargo.toml` `40e75f1823566efb2d999059ad6cc83e6d407dfab1fbbfd96abd82a9a1d86fcd`; `release/install/install.ps1` `bdd6f0eace6fbd4ea25c9e09d2c6cb6c0b54a05955d024aa97d76443c58ae308`; `.github/actions/setup-native/action.yml` `2a2a840860e85ca7b0a67a8e27a3ccaf1b074fffb92f6dc118e70bf8009d1665`; `build.rs` `cd2da95e498f02c64109bd91cf963ed7bfa502488cd99d658eadb896de35b8de`; `src/db_writer/extensions.rs` `cf35d63b79c080575be1647f68da84c4723a5e62688eaa9915b066e68516ced3`; `src/db_writer/access.rs` `b390915f919bd6a68511afe858335cc929d3c082f706894c561dbb804904451d`; `src/api/graph_read.rs` `d821e8d7c81ce44bcdb0e1ffd915fdd4321c0f4b09a023884500f300ede125d6`; `crates/xtask/src/main.rs` `d8561f5d8ba107e599890c825522f0fc518581bd52702c2115822f0f661d7099`. The two checked-in compressed extension file hashes are given below. +- These are not a fresh Git SHA computation or graph binding. No Windows executable is checked in, and none was built here. Exact final executable imports and full runtime transitive closure remain to be derived from the implementation artifact on Windows. + +## Current extension bytes: offline PE inspection + +Used Python's standard-library `lzma` plus a small PE32+ parser (MZ/PE headers, x64 machine `0x8664`, PE32+ magic `0x20b`, section RVA mapping, import descriptor/thunk tables); independently checked FTS output with installed `objdump -p`. This parses the exact checked-in `.xz` assets without executing them. The compressed digests are integrity identifiers, not a claim they are signed/provenanced vendor release hashes. + +| Exact file | Compressed size / SHA-256 | Decompressed PE | Direct non-system DLL imports | +|---|---:|---|---| +| `assets/ladybug-extensions/0.19.0/win_amd64/json/libjson.lbug_extension.xz` | 3,371,312 bytes / `adf5e05d5a63c181a1be3e1e6c90a8ffb9901118171e7caf8f860af055868ada` | 14,178,304 bytes; x64 PE32+; SHA-256 `bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f` | `libssl-3-x64.dll`, `libcrypto-3-x64.dll`, `MSVCP140.dll`, `VCRUNTIME140.dll`, `VCRUNTIME140_1.dll` | +| `assets/ladybug-extensions/0.19.0/win_amd64/fts/libfts.lbug_extension.xz` | 3,495,248 bytes / `a8a9d74be93a54482b6bb6df7c44ead6cb751f398b87b10c990d63e2da77910d` | 14,779,904 bytes; x64 PE32+; SHA-256 `7f82059c8149bb7851420a9bfd0c46859e92efaeda0bcd5c65418d8f174edac4` | same five DLLs | + +Both additionally import `KERNEL32.dll`, `WS2_32.dll`, `CRYPT32.dll`, and Windows API-set UCRT contracts (`api-ms-win-crt-*` including runtime, heap, math, locale, string, convert, stdio, filesystem, time, environment, utility). For Windows 11 these are OS/system dependencies, not candidate app-local DLLs. The extension's own PE `IMPORT` tables name no OpenSSL provider build version. JSON and FTS each import the same 23 `libssl` functions and 21 `libcrypto` functions; all names and ordinals were read from the PE, not inferred from documentation. Examples: `OPENSSL_init_ssl`, `SSL_CTX_new`, `SSL_get1_peer_certificate`, `X509_get_ext_d2i`, `EVP_sha512`, `BIO_new_socket`, `OPENSSL_sk_num/value`. + +Version/API caveat: symbol *names* alone do not prove a specific OpenSSL DLL exports the full set. The checked-in binaries carry `lbug-0.19.0` version and Cargo.lock checksum `a2a843feea97d72124b0438ee6a02ae0ce9d3543da3c391989bfb1f39ec20486`. Its official source at the matching Ladybug v0.19.0 release includes a Windows loader error hint naming exactly those two OpenSSL DLLs (source is pinned by release commit `c934f673b6b1c5b680bdae3295cbd909b5855cef`). The error explicitly says the extensions link against “OpenSSL 3.” The exact extension build's OpenSSL minor version and source/build provenance are not embedded in these bytes. The candidate's export and import closure must be checked against the produced files. + +## Supply candidates and compatibility + +### OpenSSL: primary-source build is technically viable, not yet qualified + +Candidate source: official release `openssl-3.5.9`, release commit `45e844fa2a14ec92d146bd8f5778ac130b6625fb`, official source archive `https://github.com/openssl/openssl/releases/download/openssl-3.5.9/openssl-3.5.9.tar.gz`; official published archive SHA-256 `603f5602e2eef00d77fbd429d34dcd5822bb301757a1bc9cdb24c670f1eb859a`. OpenSSL source lists 3.5 as LTS through 8 April 2030 as of this investigation; the source release includes `LICENSE.txt` (Apache-2.0). OpenSSL licensing page states 3.0+ uses Apache License 2.0. The Windows/MSVC OpenSSL source derives shared DLL names from the major shared-library version and target suffix. `VERSION.dat` for 3.5.9 has `SHLIB_VERSION=3`; `Configurations/platform/Windows.pm` chooses `.dll`, and `Configurations/platform/Windows/MSVC.pm` adds `-3-x64`. Thus the candidate target output names match the extensions' demanded names exactly: **`libssl-3-x64.dll`, `libcrypto-3-x64.dll`**. Official OpenSSL migration guide says releases with the same major number are API and ABI compatible. On OpenSSL 3.5.9's official `util/libssl.num`/`util/libcrypto.num`, every extension-imported OpenSSL symbol is present and marked introduced in `3_0_0` (including `BIO_new_socket`, which is conditional on `SOCK`). This is strong API/ABI evidence for a 3.x candidate, but actual x64 DLL exports and dependency imports still need automated artifact inspection and Windows load/SQL execution. + +This is source, not a prebuilt binary offer; build it in a controlled Windows CI step using the native MSVC x64 OpenSSL target (OpenSSL documents MSVC builds and requires its build tooling). Preserve source archive hash, target/config/compiler, output DLL hashes, export map and recursive PE import report as provenance. Include the Apache license/notice with the DLLs. No ABI/dependency version upgrade is necessary to test this provider: the proposed compatibility claim is same-major runtime substitutability for the already-linked OpenSSL 3 ABI. Still, the exact-version question should be closed by that import/export/load evidence, not this source-level conclusion. + +### Existing vcpkg setup is not a DLL provider + +Current `.github/actions/setup-native/action.yml` runs unversioned `vcpkg install openssl:x64-windows-static`, copies `libssl.lib`/`libcrypto.lib` to `ssl.lib`/`crypto.lib`, and exports them to MSVC `LIB` for linking. It does not resolve or pin a repository vcpkg baseline/manifest. The explicit **static** triplet is not a source of the dynamic DLLs imported by the extensions; this action does not establish runtime-byte licensing or provenance. Do not reuse it as if it supplied the sidecars. A dedicated official OpenSSL source pin/build is the more auditable compatible route; a future explicitly pinned vcpkg **dynamic** build could also be considered only after proving its exact DLL basenames, exports/closure, source baseline and redistribution terms. No binary from an arbitrary third party is recommended. + +### VC runtime: possible app-local bytes, permission is unverified + +Direct extension imports are exactly `MSVCP140.dll`, `VCRUNTIME140.dll`, `VCRUNTIME140_1.dll`. The API-set UCRT imports are Windows 10+ system components; Microsoft says UCRT is on Windows 10 and later, which includes the approved Windows 11 desktop. Windows 11 qualification must nevertheless test the actual target build and extension loads. OpenSSL's MSVC-built dynamic DLL may add its own CRT imports; final closure could require the same sidecars or more. Audit actual PE imports recursively for all DLLs (dedupe basenames; separate OS-known/system/API-set contracts from redistributables) before declaring this list complete. + +Microsoft's official VS 2022 REDIST page says, **“If you have a validly licensed copy”** of the specified Visual Studio software, listed files can be copied/distributed unmodified subject to terms. It lists unmodified files under `[VisualStudioFolder]\VC\redist` as redistributable, with runtime packages/files subject to license terms; Microsoft’s latest-VC-redist guidance separately says redistribution is permitted only for licensed Visual Studio users. App-local DLL deployment puts runtime DLLs alongside the app; Microsoft calls it a deployment method, though prefers central package deployment for its update servicing. D01's user-approved app-local policy governs here, so central/global installation is not a substitute. + +Current repository facts: Windows setup/build workflow explicitly calls `C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat`; that identifies a build toolchain path only. It does not prove the project, maintainers, or artifact distributor has the license entitlement to copy and redistribute the VS redist files, nor identify which exact redist versions/bytes are eligible. No Microsoft license record or build-channel grant is in the inspected repo. This is the concrete user-owned legal gate. If entitlement is confirmed, use the eligible official VS redist x64 files **unmodified**, pin their exact source/toolset version and SHA-256, record the applicable license/version provenance, and include them next to both executables. The DLL recursion may show additional eligible VC DLLs; use exact `dumpbin`/`llvm-readobj` imports, not assumed all-files packages. Do not silently replace app-local distribution with “install VC redist separately.” + +## Loader/installer constraints and candidate shape (proposal, not approved implementation) + +- Locked archive authority `NativeTarget` currently packages only two EXEs, `checksums.txt`, `install.sh`, `install.ps1`; its digest list covers only the two EXEs. Extraction rejects entries outside that exact list. Package inventory and checksums need deterministic entries for each runtime sidecar and license file; preserve NativeTarget as the only authority, not a second package list. The current build has static OpenSSL `.lib` linkage for the executable, but no final PE import evidence here; inspect the actual graph and wiki EXEs as well as extension and OpenSSL DLL imports. +- Installer `Assert-Binary` today verifies each EXE digest and invokes only `codebase-graph.exe --help` / `k-wiki.exe --version`, then after validation copies each EXE. Because D01 requires application-local runtime bytes, the install transaction must place and validate DLL sidecars beside the installed EXEs too; leaving DLLs only in the extracted archive while copying EXEs to another bin directory breaks application-local resolution. These probes cannot prove `LOAD json`/`LOAD fts`. S02 needs a deterministic candidate probe using the *staged archive binaries and staged DLLs*, before either destination EXE is replaced, that starts a fresh isolated extension cache with downloads disabled and actually loads/uses JSON and FTS. Ideally exercise graph creation/reopen and FTS search, or a deliberately narrow native runtime probe command calling the same checked `lbug::Connection` loader path. Validate version/machine/export closure too. Emit explicit native success/failure status; do not treat current setup/version startup as extension validation. This is a narrow S02 safety gate, not the unrelated COD-56 two-file rollback redesign. +- Locked Ladybug 0.19.0 source confirms `ExtensionLibLoader` uses `LoadLibraryW(fullExtensionCachePath)`; no `LOAD_LIBRARY_SEARCH_*` flags. Cache paths resolve under client home `.../.lbdb/extension/0.19.0/win_amd64/...`, so arbitrary DLL search for the *extension path* is not safely constrained by the app executable directory. Microsoft documents that a dependency of a DLL is resolved by module name even when the top-level DLL was loaded by full path. It also checks the loaded-module list by name without regard to origin before normal directory searches. Therefore simply placing app-local OpenSSL DLLs beside an EXE, calling `LoadLibraryW` for them by basename, adding the app directory to global `PATH`, or loading them only by absolute path without checking module identity is not enough. +- A candidate controlled sequence is: before any Ladybug native database/extension load, locate only the approved sibling runtime directory from the running executable; verify every expected sidecar's exact path/hash, machine, required exports and import closure; fail closed if a module of the same basename is already loaded from a different path; explicitly load the exact approved `libcrypto-3-x64.dll` path first, then `libssl-3-x64.dll`, with `LoadLibraryExW(..., LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32)` (dependency lookup confined to the package directory and Windows system directory); verify both actual loaded-module paths; retain/pin handles for process lifetime. Loading crypto first avoids resolving `libssl`'s crypto dependency through an already-loaded same-basename module. Ladybug's subsequent `LoadLibraryW` of the cache extension should resolve imports to these already-loaded names. Do not add arbitrary user/cache paths or mutate global PATH. This sequence must be proven against Windows documented loaded-module precedence and exercised in actual process. A selected approved approach should also guard against another thread/dll being loaded first; do not leave a basename race. Do not implement this until parent/reviewer settles the mechanism. +- Initialization cannot be only in CLI `main`: app entrypoints are `src/bin/codebase-graph.rs` and `crates/k-wiki/src/bin/k-wiki.rs`, internal graph workers can be relaunched through `src/bootstrap.rs`/registered worker executable, and callers can enter the public Rust library without either CLI. Native connection entry points include `src/db_writer/access.rs::open_guarded_database`/`connect_ladybug_database` and direct `Connection::new` in `src/api/graph_read.rs`; writes preseed bundled extensions in `src/db_writer/write.rs::prepare_candidate`, and FTS reads preseed in `src/api/graph_read.rs`. Place/route the runtime guard so all these paths, plus a library consumer and helper subprocess, are covered before Ladybug `LOAD`. Keep app-local resolution process-scoped and avoid changing user `PATH`. +- Final security review should test poisoned same-basename DLL earlier on `PATH`, a foreign already-loaded same-name module (must fail clearly, not accept it), missing/corrupt/wrong-architecture DLL, missing export/dependent DLL, and a writable cache extension. These are verification for settled D01 controlled-loading policy, not policy changes. No full security properties were tested here. + +## Plain Windows Cargo (A16): minimal default route + +Current root Cargo has `bundled-windows-extensions = []` but no root default feature; the Windows asset `include_bytes!` branch in `src/db_writer/extensions.rs` is gated on that feature. `k-wiki` has `default = []` and forwards an opt-in feature. Its Windows release builder explicitly passes the feature; plain root Cargo install does not. Existing `include` globs already carry `assets/ladybug-extensions/0.19.0/**/*.xz` into the crate package. + +The smallest Cargo mechanism is set root package `default = ["bundled-windows-extensions"]`; Cargo automatically enables a package's default features unless caller explicitly passes `--no-default-features`. The existing `k-wiki` transitive root dependency enables root defaults unless explicitly disabled, so verify this with exact `cargo install` flows for both delivered binaries and dependency configuration. Keep the same feature gate/name and bytes; no new mechanism, Ladybug change, extension version change, or runtime extension download is needed. `--no-default-features` remains explicit opt-out and is not the approved “plain cargo install” scenario. Verify `.crate` inclusion and installed executable bytes/feature behavior on Windows, plus a temporary empty Ladybug extension cache and disabled extension-download network path. A16's source-native compiler/OpenSSL/VC runtime prerequisites remain documented and distinct from D01 self-contained prebuilt archive. This feature default does not itself supply app-local DLLs or establish Windows runtime prerequisites. The current `.crate` source include already includes compressed assets independent of feature; reviewer supplied prior exact package evidence of 8,451,625 compressed bytes (<10 MiB) for the `--no-verify` package at that snapshot. Recheck final package size in implementation, but default feature does not add archive source files. + +## Primary sources consulted + +- Approved source evidence: [S02 spec](https://github.com/rabii-chaarani/codebaseGraph/blob/1a9db7b558b60248888408daa6268a3b45f2f0df/docs/specs/CBG-PLAT-01/spec.md), [exact approval record](https://github.com/rabii-chaarani/codebaseGraph/blob/eaa430c849094078bb4c228ea03136dde5587e91/docs/specs/CBG-PLAT-01/approvals/cod53-windows-native-runtimes.md). +- Microsoft app-local / central deployment guidance: https://learn.microsoft.com/en-us/cpp/windows/deployment-in-visual-cpp?view=msvc-170 +- Microsoft exact DLL dependency/redist method guidance: https://learn.microsoft.com/en-us/cpp/windows/determining-which-dlls-to-redistribute?view=msvc-170 +- Microsoft redistribution license/REDIST list (validly licensed VS 2022 user and unmodified runtime files): https://learn.microsoft.com/en-us/visualstudio/releases/2022/redistribution +- Microsoft current VC++ package guidance (license gate): https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 +- OpenSSL official source downloads, 3.5 LTS/checksum links and release lifecycle: https://openssl-library.org/source/ (official archive/checksum above). +- OpenSSL Apache licensing: https://openssl-library.org/source/license/ ; tagged source `https://github.com/openssl/openssl/tree/openssl-3.5.9` (`LICENSE.txt`, `VERSION.dat`, `Configurations/platform/Windows.pm`, `Configurations/platform/Windows/MSVC.pm`, `util/libssl.num`, `util/libcrypto.num`). +- OpenSSL same-major API/ABI statement and Windows build notes: https://docs.openssl.org/3.5/man7/ossl-guide-migration/ and `https://github.com/openssl/openssl/blob/openssl-3.5.9/NOTES-WINDOWS.md`. +- Official Ladybug v0.19.0 source at `https://github.com/LadybugDB/ladybug/tree/v0.19.0` (commit `c934f673b6b1c5b680bdae3295cbd909b5855cef`): `src/extension/extension.cpp` describes OpenSSL imports and implements Windows `LoadLibraryW`; `src/extension/extension_manager.cpp` loads extension cache path. The Rust locked crate source is identified by Cargo.lock checksum above. +- Microsoft dependent DLL search and loader controls: https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order ; https://learn.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibraryexw ; https://learn.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-getmodulehandleexw +- Cargo default feature semantics: https://doc.rust-lang.org/cargo/reference/features.html + +## Explicit uncertainties / required next evidence + +1. Maintainer/distributor's entitlement to redistribute the Microsoft app-local VC runtime files under the applicable Visual Studio license terms (the permission blocker). +2. Exact runtime DLL recursive imports and exports for the versioned OpenSSL 3.5.9 MSVC build and exact eligible Microsoft VC runtime bytes. Capture final PE inventory, hashes, source pin/toolset and licensing provenance. No exact signed prebuilt OpenSSL binary provider was identified or proposed; source build is the candidate. +3. Final Windows executable import tables and native artifact app-local runtime probe on a supported Win11 x64 desktop; no actual desktop, Windows import, clean PATH, extension load, or A03/A04 pass is claimed. Server CI not desktop evidence. +4. Settled secure loader/bootstrap interface, error path and app/helper/library lifetime/foreign-module policy, then independent final proposal review. Mechanism above is a proposal for review, not a finding of tested security. +5. Actual plain `cargo install codebase-graph` and `cargo install k-wiki` behavior/compiled bytes, isolated extension cache with network disabled, and source runtime prerequisite test for A16. No source native build was run. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/supply-install-proposal-delta.md b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/supply-install-proposal-delta.md new file mode 100644 index 00000000..3fd30ac1 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/supply-install-proposal-delta.md @@ -0,0 +1,32 @@ +# COD-53 supply/install proposal delta + +**Recommendation:** keep the full gate open for the concrete supply/install brief, not for a new architecture decision. Read `full-runtime-proposal.md`; no product writes/builds/tests/Git/tracking changes. Reviewer GPT-6.1 Sol High. Research2026-10-27. + +## 1. Official package source is allowed in principle; “NuGet” is not a provider identity + +The chosen Community2022 route does **not** require copying files from an Enterprise build host. Microsoft's VS2022 REDIST list expressly includes Community; its VC runtime section also says the same redistributable is available from Microsoft's supported download pages, subject to licensed-user/terms restrictions. Therefore a pinned **official Microsoft redistributable source**, with eligible unmodified release-x64 payloads and source/terms/hash evidence, can be used under the selected route. Installing the redistributable globally on the consumer is not required or permitted as a silent D01 replacement. Document a supported/reproducible extraction method and exact file provenance; source availability alone does not establish permission to extract/distribute arbitrary package internals. + +No suitable official NuGet runtime package has been established. I inspected NuGet's live package metadata/owners and Microsoft's `Microsoft.VCRTForwarders.140` page/repository: that verified Microsoft package contains **forwarders and requires the underlying runtime already installed**, so it cannot meet D01. Packages with runtime-looking names and `authors=Microsoft` but third-party owners are not an official source. Do not use one merely because NuGet hosts it. If an actual Microsoft-owned full-runtime package is supplied, assess its exact payload/terms; no new owner policy decision is inherently needed for that source choice. + +**Blocked commitment:** copying/packaging VC bytes waits for the actual identified provider/version, authorized eligible payloads and extraction/provenance method. The Community route choice is settled; do not ask it again. Actual entitlement remains the distribution owner's responsibility, not an inferred runner fact. + +## 2. Direct VC imports do not mandate a versioned installer + +If final EXEs directly import VC DLLs, those load before Rust; a nested private folder plus Rust preload cannot satisfy that initial import. Microsoft explicitly documents ordinary local deployment **beside the executable**. That is consistent with this draft and does not by itself require launchers, executable relocation or a versioned install directory. Do not redesign install layout before inspecting final actual EXE imports. + +The real issue is safe upgrade of sibling DLLs in the current possibly shared BinDir. A candidate-only smoke does not prove old installed EXEs still work with changed sidecars. Microsoft documents v14 backward binary compatibility and requires a runtime at least as new as the build tools; that supports a conservative compatible-forward update, **not** arbitrary downgrades/mixed-runtime partial replacement or ownership of unrelated files. Settle a minimal rule: reuse identical files; reject unsupported/foreign existing sidecars or downgrade; validate permitted changed set against old and candidate executables; stage files before individual replacement and handle in-use/denied-copy failure without starting EXE replacement. Evidence must cover any intermediate sidecar set the installer can leave. Do not claim pair atomicity/power-loss rollback. + +**No indispensable owner question yet:** sibling deployment can remain within A04 if that minimal compatible-forward/reuse-or-fail rule is feasible. If actual bytes/tests show an unavoidable destructive overwrite of a working installation, or the coordinator instead wants to relocate EXEs/add dispatch launchers/change user-visible paths or adopt new rollback guarantees, that is the concrete compatibility/layout decision to take to the user **before** that work. A versioned runtime folder cannot fix direct pre-main imports by itself. + +## 3. Before full implementation, settle rather than add scaffolding + +Select the provider/extraction evidence and one executable/sidecar upgrade rule in the Scryer brief. Also finish the draft's packaged/source-mode distinction, build-manifest generation order and narrowly scoped cache-input integrity contract. Those are real unfinished implementation premises; a new user decision is only needed if their concrete resolution changes approved behavior. Real Windows11 qualification remains later and does not invalidate the feasible local-deployment/preload design. + +## Primary sources actually inspected + +- VS2022 REDIST list, Community applicability and VC runtime downloadable-source terms: https://learn.microsoft.com/en-us/visualstudio/releases/2022/redistribution +- Microsoft local deployment (DLLs beside application): https://learn.microsoft.com/en-us/cpp/windows/deployment-in-visual-cpp?view=msvc-170 +- v14 compatibility/minimum runtime version: https://learn.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=msvc-170 and https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 +- Actual Microsoft forwarder package and source README, not a complete runtime provider: https://www.nuget.org/packages/Microsoft.VCRTForwarders.140/1.1.0 and https://github.com/microsoft/vcrt-forwarders . Live NuGet query API metadata inspected for package owners. + +Search-service discovery was unavailable (no configured key); the above primary sources/API were fetched directly. No suitable full-runtime NuGet provider absence is claimed beyond the packages inspected. No constants, runtime bytes, install layout or permission facts changed. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/vc-provider-download-identity.json b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/vc-provider-download-identity.json new file mode 100644 index 00000000..3504fd97 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-runtime-proposal-evidence/vc-provider-download-identity.json @@ -0,0 +1,8 @@ +{ + "discovery_url": "https://aka.ms/vs/17/release/vc_redist.x64.exe", + "pinned_url": "https://download.visualstudio.microsoft.com/download/pr/990c720a-46ce-4dc7-87b9-c2eb615d34b9/CC0FF0EB1DC3F5188AE6300FAEF32BF5BEEBA4BDD6E8E445A9184072096B713B/VC_redist.x64.exe", + "sha256": "cc0ff0eb1dc3f5188ae6300faef32bf5beeba4bdd6e8e445a9184072096b713b", + "bytes": 25635768, + "terms": "SelectedVSCommunity2022REDIST list subjectterms; download notentitlementproof", + "verification": "download+MZ only, notMicrosoft signature, payloadextraction, licensingorABIqualification" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/.gitattributes b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/.gitattributes new file mode 100644 index 00000000..62544950 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/.gitattributes @@ -0,0 +1 @@ +* -text diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/archived-inputs.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/archived-inputs.json new file mode 100644 index 00000000..677fe7b8 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/archived-inputs.json @@ -0,0 +1,20 @@ +{ + "purpose": "Historical qualification input, not maintained implementation or supported tooling.", + "source_commit": "5f68b41cebc327072cf71be770c9e5a9d1c0dad2", + "archive": { + "path": "historical-reject-proxy.tar.gz", + "bytes": 998, + "sha256": "d37b3c86d978018d137375e7a30316b3ce779b2787df5037237032bdec892752", + "creation_command": "git archive --format=tar.gz 5f68b41cebc327072cf71be770c9e5a9d1c0dad2 docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/reject-proxy.py" + }, + "files": [ + { + "original_path": "reject-proxy.py", + "member": "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/reject-proxy.py", + "bytes": 1311, + "sha256": "ca7ada29f99cb0a6da0807d6f468c22ad81d1bce59abe5c9f743c1b03b83588f" + } + ], + "evidence_index": "evidence-index.json is unchanged; its original proxy path resolves to the archived member above.", + "reconstruction": "Verify archive/member digests, then extract only into a separate historical checkout, never this checkout. Original reports, commands and qualification limits remain unchanged." +} diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/cache-audit.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/cache-audit.json new file mode 100644 index 00000000..0ddc6296 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/cache-audit.json @@ -0,0 +1,38 @@ +[ + { + "profile": "native-positive", + "extension": "json", + "path": "C:\\Users\\rcha0053\\pr158-qualification\\profile-native-positive\\.lbdb\\extension\\0.19.0\\win_amd64\\json\\libjson.lbug_extension", + "expected_sha256": "bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f", + "actual_sha256": "bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f", + "size": 14178304, + "matches": true + }, + { + "profile": "native-positive", + "extension": "fts", + "path": "C:\\Users\\rcha0053\\pr158-qualification\\profile-native-positive\\.lbdb\\extension\\0.19.0\\win_amd64\\fts\\libfts.lbug_extension", + "expected_sha256": "7f82059c8149bb7851420a9bfd0c46859e92efaeda0bcd5c65418d8f174edac4", + "actual_sha256": "7f82059c8149bb7851420a9bfd0c46859e92efaeda0bcd5c65418d8f174edac4", + "size": 14779904, + "matches": true + }, + { + "profile": "installed", + "extension": "json", + "path": "C:\\Users\\rcha0053\\pr158-qualification\\profile-installed\\.lbdb\\extension\\0.19.0\\win_amd64\\json\\libjson.lbug_extension", + "expected_sha256": "bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f", + "actual_sha256": "bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f", + "size": 14178304, + "matches": true + }, + { + "profile": "installed", + "extension": "fts", + "path": "C:\\Users\\rcha0053\\pr158-qualification\\profile-installed\\.lbdb\\extension\\0.19.0\\win_amd64\\fts\\libfts.lbug_extension", + "expected_sha256": "7f82059c8149bb7851420a9bfd0c46859e92efaeda0bcd5c65418d8f174edac4", + "actual_sha256": null, + "size": null, + "matches": false + } +] \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/cargo-install-shared-resumed.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/cargo-install-shared-resumed.log new file mode 100644 index 00000000..658b6077 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/cargo-install-shared-resumed.log @@ -0,0 +1,29 @@ + Installing codebase-graph v4.0.0 (C:\Users\rcha0053\Repositories\cbg-pr158) + Compiling codebase-graph v4.0.0 (C:\Users\rcha0053\Repositories\cbg-pr158) +warning: unused import: `crate::storage::atomic::write_json_atomically` + --> src\materialization_worker.rs:13:5 + | +13 | use crate::storage::atomic::write_json_atomically; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: function `home_dir` is never used + --> src\adapters\mcp\daemon.rs:1838:4 + | +1838 | fn home_dir() -> PathBuf { + | ^^^^^^^^ + | + = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default + +warning: function `workspace_fifo_pin_name` is never used + --> src\storage\maintenance_controls.rs:3434:15 + | +3434 | pub(crate) fn workspace_fifo_pin_name(binding: &WorkspaceOutputBinding) -> [u8; 69] { + | ^^^^^^^^^^^^^^^^^^^^^^^ + +warning: `codebase-graph` (lib) generated 3 warnings (run `cargo fix --lib -p codebase-graph` to apply 1 suggestion) + Finished `release` profile [optimized] target(s) in 2m 35s + Installing C:\Users\rcha0053\pr158-qualification\installed\bin\codebase-graph.exe + Installed package `codebase-graph v4.0.0 (C:\Users\rcha0053\Repositories\cbg-pr158)` (executable `codebase-graph.exe`) +warning: be sure to add `C:\Users\rcha0053\pr158-qualification\installed\bin` to your PATH to be able to run the installed binaries diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/default-extension-tests-shared-wrapped.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/default-extension-tests-shared-wrapped.log new file mode 100644 index 00000000..68b7a68c --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/default-extension-tests-shared-wrapped.log @@ -0,0 +1,8 @@ + +running 2 tests +test db_writer::extensions::tests::bundled_extension_archives_decompress_before_cache_seed ... ok +test db_writer::extensions::tests::supports_prebuilt_and_source_built_ladybug_extension_cache_versions ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 799 filtered out; finished in 0.57s + +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/default-extension-tests-shared.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/default-extension-tests-shared.log new file mode 100644 index 00000000..395e813f --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/default-extension-tests-shared.log @@ -0,0 +1,70 @@ + Compiling lbug v0.19.0 + Compiling codebase-graph v4.0.0 (C:\Users\rcha0053\Repositories\cbg-pr158) +warning: unused import: `remove_partial_state_tree` + --> src\api\lifecycle.rs:5118:9 + | +5118 | remove_partial_state_tree, rename_mcp_server, render_client_http_config, + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: unused import: `files::copy_path` + --> src\staging_writer\mod.rs:14:16 + | +14 | pub(crate) use files::copy_path; + | ^^^^^^^^^^^^^^^^ + +warning: function `home_dir` is never used + --> src\adapters\mcp\daemon.rs:1838:4 + | +1838 | fn home_dir() -> PathBuf { + | ^^^^^^^^ + | + = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default + +warning: function `leave_prepared_temporary_for_test` is never used + --> src\artifact_store.rs:826:15 + | +826 | pub(crate) fn leave_prepared_temporary_for_test( + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +warning: function `workspace_fifo_pin_name` is never used + --> src\storage\maintenance_controls.rs:3434:15 + | +3434 | pub(crate) fn workspace_fifo_pin_name(binding: &WorkspaceOutputBinding) -> [u8; 69] { + | ^^^^^^^^^^^^^^^^^^^^^^^ + +warning: struct `LegacyStagingJobObservation` is never constructed + --> src\storage\maintenance_legacy_staging.rs:1223:19 + | +1223 | pub(crate) struct LegacyStagingJobObservation { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +warning: function `observe_accepted_staging_job` is never used + --> src\storage\maintenance_legacy_staging.rs:1229:15 + | +1229 | pub(crate) fn observe_accepted_staging_job( + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +warning: struct `ScopedManagedSyncFault` is never constructed + --> src\storage\managed.rs:541:19 + | +541 | pub(crate) struct ScopedManagedSyncFault(Option); + | ^^^^^^^^^^^^^^^^^^^^^^ + +warning: function `inject_scoped_managed_sync_fault` is never used + --> src\storage\managed.rs:551:15 + | +551 | pub(crate) fn inject_scoped_managed_sync_fault( + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +warning: `codebase-graph` (lib test) generated 9 warnings (run `cargo fix --lib -p codebase-graph --tests` to apply 2 suggestions) + Finished `release` profile [optimized] target(s) in 2m 58s + Running unittests src\lib.rs (C:\Users\rcha0053\pr158-qualification\target\release\deps\codebase_graph-3cda96f058e84b64.exe) + +running 2 tests +test db_writer::extensions::tests::bundled_extension_archives_decompress_before_cache_seed ... ok +test db_writer::extensions::tests::supports_prebuilt_and_source_built_ladybug_extension_cache_versions ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 799 filtered out; finished in 0.56s + diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/default-feature-tree.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/default-feature-tree.log new file mode 100644 index 00000000..20d1503f --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/default-feature-tree.log @@ -0,0 +1,4 @@ +codebase-graph v4.0.0 (C:\Users\rcha0053\Repositories\cbg-pr158) +├── codebase-graph feature "bundled-windows-extensions" +│ └── codebase-graph feature "default" (command-line) +└── codebase-graph feature "default" (command-line) diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/delivery-validation.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/delivery-validation.json new file mode 100644 index 00000000..96ce5cf4 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/delivery-validation.json @@ -0,0 +1,48 @@ +{ + "source_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "validated_at": "2026-10-29T01:16:14.016611+00:00", + "tracked_product_source_unchanged": true, + "artifact_hash_checks": [ + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\installed\\bin\\codebase-graph.exe", + "matches": true + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\target\\release\\pr158-windows-probe.exe", + "matches": true + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\probe\\src\\main.rs", + "matches": true + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\probe\\Cargo.toml", + "matches": true + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\probe\\Cargo.lock", + "matches": true + } + ], + "source_hash_checks": [ + { + "path": "Cargo.toml", + "matches": true + }, + { + "path": "Cargo.lock", + "matches": true + }, + { + "path": "src/db_writer/extensions.rs", + "matches": true + } + ], + "json_files_validated": 29, + "report_relative_links_missing": [], + "secret_like_findings": [], + "native_executable_dll_lib_bytes_committed": false, + "product_numeric_constants_changed": false, + "temporary_proxy_processes_stopped": true, + "wiki_memory_decision": "No new record: SHA-bound qualification results and unproven timeout cause are execution evidence, not a reusable repository fact." +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/download-negative-assertions.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/download-negative-assertions.json new file mode 100644 index 00000000..29897de3 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/download-negative-assertions.json @@ -0,0 +1,15 @@ +{ + "before": [], + "fixture_exit": 0, + "proxy_requests": [ + { + "at": "2026-10-28T11:46:30.323676+00:00", + "request": "CONNECT extension.ladybugdb.com:443 HTTP/1.1\r\nAccept: */*\r\nHost: extension.ladybugdb.com\r\nUser-Agent: cpp-httplib/0.14.2\r\n\r\n", + "peer": [ + "127.0.0.1", + 63660 + ] + } + ], + "extension_payloads_after": [] +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/download-negative-final.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/download-negative-final.log new file mode 100644 index 00000000..f2f36ab0 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/download-negative-final.log @@ -0,0 +1,2 @@ +EXPECTED_DOWNLOAD_FAILURE Query execution failed: IO exception: Failed to download extension: json at URL https://extension.ladybugdb.com/v0.19.0/win_amd64/json/libjson.lbug_extension (ERROR: Proxy connection failed) +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/download-proxy-requests.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/download-proxy-requests.json new file mode 100644 index 00000000..c7ca5ee5 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/download-proxy-requests.json @@ -0,0 +1,18 @@ +[ + { + "at": "2026-10-28T11:45:14.557106+00:00", + "request": "CONNECT extension.ladybugdb.com:443 HTTP/1.1\r\nAccept: */*\r\nHost: extension.ladybugdb.com\r\nUser-Agent: cpp-httplib/0.14.2\r\n\r\n", + "peer": [ + "127.0.0.1", + 63393 + ] + }, + { + "at": "2026-10-28T11:46:30.323676+00:00", + "request": "CONNECT extension.ladybugdb.com:443 HTTP/1.1\r\nAccept: */*\r\nHost: extension.ladybugdb.com\r\nUser-Agent: cpp-httplib/0.14.2\r\n\r\n", + "peer": [ + "127.0.0.1", + 63660 + ] + } +] \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/durable-guard-negative-after.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/durable-guard-negative-after.log new file mode 100644 index 00000000..f2f36ab0 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/durable-guard-negative-after.log @@ -0,0 +1,2 @@ +EXPECTED_DOWNLOAD_FAILURE Query execution failed: IO exception: Failed to download extension: json at URL https://extension.ladybugdb.com/v0.19.0/win_amd64/json/libjson.lbug_extension (ERROR: Proxy connection failed) +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/durable-guard-negative.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/durable-guard-negative.log new file mode 100644 index 00000000..f2f36ab0 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/durable-guard-negative.log @@ -0,0 +1,2 @@ +EXPECTED_DOWNLOAD_FAILURE Query execution failed: IO exception: Failed to download extension: json at URL https://extension.ladybugdb.com/v0.19.0/win_amd64/json/libjson.lbug_extension (ERROR: Proxy connection failed) +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/evidence-index.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/evidence-index.json new file mode 100644 index 00000000..9b177b21 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/evidence-index.json @@ -0,0 +1,331 @@ +{ + "tested_source_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "raw_bytes_preserved_by": ".gitattributes (* -text)", + "files": [ + { + "path": ".gitattributes", + "bytes": 9, + "sha256": "8b9c3028d6467ff3be7c793141927841d70f47f52d0590677438f488ca154992" + }, + { + "path": "cache-audit.json", + "bytes": 1696, + "sha256": "8ca16a7084171c1e4864ee17edd71f43e86953b3e6337a204f32cc1e00e3cad0" + }, + { + "path": "cargo-install-shared-resumed.log", + "bytes": 1473, + "sha256": "268d88c26153bc5152519ee8b01d36719ef52cbf2762ef2aa8bb4af7f6510699" + }, + { + "path": "default-extension-tests-shared-wrapped.log", + "bytes": 345, + "sha256": "1d518acaf738c68e51eee9227742123668322c23c8dc9b177edcfc5b30cde36a" + }, + { + "path": "default-extension-tests-shared.log", + "bytes": 2857, + "sha256": "63ff487a72dc30ece3609ee3fad1f89c22bd24940de633a01fdf9ee345b360d8" + }, + { + "path": "default-feature-tree.log", + "bytes": 249, + "sha256": "177f0c5250af3cd75299e606da184ff00eb0c9342005e7a3e7836d559edc3883" + }, + { + "path": "delivery-validation.json", + "bytes": 1480, + "sha256": "018dfb4f7e6eddc8137ec5e72d3992776eb5eec124bbf1452e77be2a7e6183e8" + }, + { + "path": "download-negative-assertions.json", + "bytes": 388, + "sha256": "a2863d80fb9caa4e881068f57f64ea681538f7427d360c2b1668a4cf14db25d8" + }, + { + "path": "download-negative-final.log", + "bytes": 239, + "sha256": "4f5aff8faec8c865e4278926dcd6c3f2db74c5a5101e3e1bcc6195a95c5924be" + }, + { + "path": "download-proxy-requests.json", + "bytes": 537, + "sha256": "7a83a8efbcdf493cf1f314e6c7f4a19d5195d4871dbfd1ffe21283240b2f0029" + }, + { + "path": "durable-guard-negative-after.log", + "bytes": 239, + "sha256": "4f5aff8faec8c865e4278926dcd6c3f2db74c5a5101e3e1bcc6195a95c5924be" + }, + { + "path": "durable-guard-negative.log", + "bytes": 239, + "sha256": "4f5aff8faec8c865e4278926dcd6c3f2db74c5a5101e3e1bcc6195a95c5924be" + }, + { + "path": "exact-native-versions.log", + "bytes": 983, + "sha256": "44aabc08658e870f531bb6925552d8712fef58b512e527527c2000d460954fc5" + }, + { + "path": "execution-review.md", + "bytes": 35880, + "sha256": "dfa3212ae2dc920d5e635e19d2be3401ac8b88228110e27db25220cb319768c7" + }, + { + "path": "guarded-build-profile-before.json", + "bytes": 1312, + "sha256": "c3acf3717254a1454fda06f73e3ff5799e0f27399a12db714a40188ff924ab87" + }, + { + "path": "guarded-installed-results.json", + "bytes": 2305, + "sha256": "568babf5fa55ee890f35118ebcce12f66522dadf5b43f0dc8f30bf03e64c82d1" + }, + { + "path": "guardian-startup-investigation.json", + "bytes": 3295, + "sha256": "30fab848bab52e8a475db3aa91e616b6d7d108229182c952cccb1c5948910f01" + }, + { + "path": "guardian-startup-investigation.md", + "bytes": 2430, + "sha256": "d8c299f4fc3dc3bbb189cbc19d8c96a46b0c2ec834cd467c3d53d342efb2ba9f" + }, + { + "path": "installed-build-help.log", + "bytes": 1587, + "sha256": "66b232cf52ac19ec8b083ad4ae2a116853139f894d3dd4be9b493de950b5b4fe" + }, + { + "path": "installed-graph-build-guarded.log", + "bytes": 16083, + "sha256": "d912be6f074f17efcc40cb369f47d9a3e52be96f0ccf5a74624322e2f67f864e" + }, + { + "path": "installed-graph-build-short.log", + "bytes": 16081, + "sha256": "d21e041eefd8334c4238017d101830941858f242d40fbcef901d38180f990550" + }, + { + "path": "installed-graph-build.log", + "bytes": 625, + "sha256": "fb7122f045ebc0626d26812f1ca63a07a37010d19d8d1fc7ce54cc94055831ac" + }, + { + "path": "installed-graph-search-guarded.log", + "bytes": 2604, + "sha256": "9a1f16ebf1372160fca12216aa296f65e5399a745eea2b9bbf0825c5e2d836ba" + }, + { + "path": "installed-graph-search-short.log", + "bytes": 2604, + "sha256": "9a1f16ebf1372160fca12216aa296f65e5399a745eea2b9bbf0825c5e2d836ba" + }, + { + "path": "installed-graph-search.log", + "bytes": 196, + "sha256": "f464771f9c80cd6ad490c7ad22dedc578e12144840163d69c49e1c04de522471" + }, + { + "path": "installed-help.log", + "bytes": 1443, + "sha256": "e73fa1fe3f566989f66dd1a9ee59ac9e32175173f26aa11bfb822b7050d9dace" + }, + { + "path": "installed-short-build-binding.json", + "bytes": 2075, + "sha256": "765ad113f60f415fa703958358e7ebf59aad154d73acc9f32a6bb277744ca7e4" + }, + { + "path": "installed-short-cache-audit.json", + "bytes": 419, + "sha256": "dca1dad27997a7e0e55a0c708f3d2b9ef4df23444dc35fe40bf2724d5e62152a" + }, + { + "path": "ladybug-shared-download.json", + "bytes": 1857, + "sha256": "4f05e181fba07fbb3327adad80248e56a656fbb847edd17b9e4594598dd37a99" + }, + { + "path": "ladybug-shared-imports.log", + "bytes": 992, + "sha256": "975ba7347b9f50f3961b4bc98db9f426600369a0a3530a07d4e0d4e380ceb812" + }, + { + "path": "loaded-module-audit.json", + "bytes": 1344, + "sha256": "330a3686c791663a80a5d6d92f50561d6e71d95fd39dad9ff6d440c251608bcd" + }, + { + "path": "missing-compiler-install-finding.md", + "bytes": 2163, + "sha256": "fa02631ed737cf8d53ea1d5e962fe7cf2880a5272c131fe6b70e14983da531e8" + }, + { + "path": "missing-compiler-install-result.json", + "bytes": 8673, + "sha256": "b21fac772327c160cbad16d75874668df3615fc199fbfd7ecf91467e5993793e" + }, + { + "path": "missing-compiler-install.log", + "bytes": 9413, + "sha256": "de2c40a4305d8087a5546c45ddd9318c84567ad55e8d2f253cd00ab09734ed0c" + }, + { + "path": "missing-native-library-install.log", + "bytes": 10435, + "sha256": "019ca3ae30d695dfa0fd2fbb2fa9db4d885823d9233a35cf93f054cf2bbe3358" + }, + { + "path": "missing-native-library-result.json", + "bytes": 561, + "sha256": "8ac74919967e34405ac95212614a792ac68f45caba4c3d9e366a720041fb98dc" + }, + { + "path": "missing-native-runtime.log", + "bytes": 190, + "sha256": "ae69807ea02235b708e5bcccb926e69a039bb837ab9238a3a0e41fbea228c573" + }, + { + "path": "missing-openssl-runtime.log", + "bytes": 190, + "sha256": "ae69807ea02235b708e5bcccb926e69a039bb837ab9238a3a0e41fbea228c573" + }, + { + "path": "missing-runtime-results.json", + "bytes": 778, + "sha256": "c898ab1d4a2218302cee2f92799613644bb2b003bd1f91be9a67890f8e744106" + }, + { + "path": "native-json-fts-create.log", + "bytes": 1720, + "sha256": "6a0a72f2aa6e40ecb5ccd9a8e6c86032164ee500faa991c967d4e74026a293e9" + }, + { + "path": "native-json-fts-reopen.log", + "bytes": 1142, + "sha256": "481319f3bde03a97b830f1a7bda75f25d218fe788d5d0123a538572deaa836a2" + }, + { + "path": "native-probe-Cargo.toml", + "bytes": 184, + "sha256": "93416b3288160c0168c3dde8e676c582dbb0dfbfbf0455c19cb37bf84eab6b32" + }, + { + "path": "native-probe.rs", + "bytes": 4554, + "sha256": "66015b12a528c8608f73c7afaf46c7ac1d52f724febe6415881b7e3623ccc604" + }, + { + "path": "native-trial-notes.md", + "bytes": 1109, + "sha256": "53f9d6aed3a5454012101de94c28e6706455b1506d3791a6096ce5938b620c62" + }, + { + "path": "optout-feature-tree.log", + "bytes": 65, + "sha256": "db6ff54745f99f38060bb30c58f49434b0b32f6e6fc060bbc6c932024bb542d5" + }, + { + "path": "os-version.json", + "bytes": 125, + "sha256": "6c9b235fa7c510e06fc910b31e8c6f1764651286ea921c83d5f1ae3e9305cc60" + }, + { + "path": "package-audit.json", + "bytes": 1714, + "sha256": "2bc404b3903450b03e2d8cef40f55eb01bfb8a52b3f2566fc38e8812c8597116" + }, + { + "path": "pr-ci-evidence.json", + "bytes": 9894, + "sha256": "64b6449cf0c68182ad969bee9626e9bfbc9358a7052170c42d452ca7e3de69ee" + }, + { + "path": "probe-static-review.md", + "bytes": 8347, + "sha256": "c9e896bb7824993f029c268a99e7b58118976473423c0adc72cf721186f47f71" + }, + { + "path": "profiles-before.json", + "bytes": 99, + "sha256": "b4224e0a83c518fd987b3639e0d68c4d396752d93b3bb1a420b3fd451881746e" + }, + { + "path": "proxy-guard-ready.json", + "bytes": 129, + "sha256": "a3d467594ae335d663cf13f0906f3dba04fe9c997579e0caf8959211634ee7fc" + }, + { + "path": "proxy-guard-requests.jsonl", + "bytes": 276, + "sha256": "8a4d879060675c3e73b5b06f647a05c78cacc55dea2a1b4324529e6288dbc19b" + }, + { + "path": "qualification-status.json", + "bytes": 14033, + "sha256": "8e3675d903ab070db724a06103db07ae366752671206fdb7e8d04b1a955904ce" + }, + { + "path": "reject-proxy.py", + "bytes": 1311, + "sha256": "ca7ada29f99cb0a6da0807d6f468c22ad81d1bce59abe5c9f743c1b03b83588f" + }, + { + "path": "run-index-current.json", + "bytes": 18155, + "sha256": "c91b05691b2f5cfb7d5138426eab70c2483f0bfb41f82cbe467311468198a528" + }, + { + "path": "run-index-final-resume.json", + "bytes": 8278, + "sha256": "3f48af72140b63f734c320dfe90987c6c957e4d832a7806dc13631291464c427" + }, + { + "path": "run-native.ps1", + "bytes": 663, + "sha256": "8ff6671702586004741bbafe97e0cef9c9f5dd107ddd97a1d8da7a1cd229176e" + }, + { + "path": "runtime-download-policy-resumed.json", + "bytes": 1031, + "sha256": "747a69896a23953e236935661f515f33412b9f99266d5ace7a00b8d20e7c83e1" + }, + { + "path": "runtime-download-policy-search.json", + "bytes": 886, + "sha256": "e3073ce8cf0d7797ae1676e32aa2adf261ad5dfa2799c6e6e9a73d1eb048fa1d" + }, + { + "path": "rust-provenance.json", + "bytes": 821, + "sha256": "2fbf0f17d25af19bf614cf4610ae08ea4ec799955a0bbafaeb60d77d6a0e0aa1" + }, + { + "path": "shared-native-inputs.json", + "bytes": 834, + "sha256": "cee62679e8935f20984f6ccbe708654787ffdfb0e5067b1ee359f572e7500d4b" + }, + { + "path": "source-build-inputs.json", + "bytes": 2003, + "sha256": "7ca37b2cc378dcc9323b054142026c8818d2351a52a509e8b75c077b7588378a" + }, + { + "path": "source-build-recipe.json", + "bytes": 2636, + "sha256": "dfaf3b5771e6e8f0a0a562f61902f55273291a676663a1aa101a75d6366ff9f2" + }, + { + "path": "source-snapshot.json", + "bytes": 1238, + "sha256": "666fb584eaa744b3bf45b912be94ba68f6760bca6efc7741e4e30cfe100956f8" + }, + { + "path": "tested-artifacts.json", + "bytes": 993, + "sha256": "aa15a8e25ed1a77bfbcecb10beac3cbd58b998a2bc28a576bfeee2463e001132" + } + ] +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/exact-native-versions.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/exact-native-versions.log new file mode 100644 index 00000000..237ea3a3 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/exact-native-versions.log @@ -0,0 +1,15 @@ +rustc 1.96.0 (ac68faa20 2026-05-25) +binary: rustc +commit-hash: ac68faa20c58cbccd01ee7208bf3b6e93a7d7f96 +commit-date: 2026-05-25 +host: x86_64-pc-windows-msvc +release: 1.96.0 +LLVM version: 22.1.2 +cargo 1.96.0 (30a34c682 2026-05-25) +POWERSHELL=5.1.22621.7649 +{"Caption":"Microsoft Windows 11 Enterprise","Version":"10.0.22631","BuildNumber":"22631","OSArchitecture":"64-bit"} +{"Path":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\bin\\Hostx64\\x64\\cl.exe","FileVersion":"19.39.33523.0","ProductVersion":"14.39.33523.0"} +{"Path":"C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin\\libssl-3-x64.dll","FileVersion":"3.3.2","ProductVersion":"3.3.2"} +{"Path":"C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin\\libcrypto-3-x64.dll","FileVersion":"3.3.2","ProductVersion":"3.3.2"} +{"Path":"C:\\Windows\\System32\\MSVCP140.dll","FileVersion":"14.50.35719.0","ProductVersion":"14.50.35719.0"} +WINDOWS_SDK=10.0.22621.0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/execution-review.md b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/execution-review.md new file mode 100644 index 00000000..7c28adb5 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/execution-review.md @@ -0,0 +1,201 @@ +# PR158 Windows execution evidence — independent partial review + +Review written 2026-10-29 UTC against the retained 2026-10-28 execution records. Exact candidate: **47808ac34bcff79882abee4ab796c16c0621ed05**, `C:\Users\rcha0053\Repositories\cbg-pr158`. This is a **partial execution review, not A16 or full S02 acceptance**. The addenda below incorporate the successful short-path trial and the final fresh installed build/reopen/search under a restart-resistant rejecting proxy, with before/after native negative controls. The initial timeout remains preserved and is not reclassified as a success. + +## Verdict and blockers + +- **Confirmed, narrow Windows D05d default-byte mechanism:** ordinary root defaults select `bundled-windows-extensions`; the enabled-branch byte/decompression assertion and cache-version test ran **2 passed, 0 failed, 799 filtered, 0 ignored**. No explicit extension feature flag was used. +- **Confirmed, exact-head ordinary default source install with supplied native prerequisites:** `cargo install --path ... --locked --offline --root ... --bin codebase-graph` completed. This is a path install, **not a published crates.io install**, extracted-package verification, or a zero-prerequisite/self-contained runtime. +- **Confirmed, direct native fixture:** JSON COPY, native FTS index creation/query, and a separate-process FTS reopen/query succeeded using product-preseeded candidate bytes. This fixture is **not the installed application** performing those operations. +- **Confirmed, downloader negative:** raw `INSTALL json` reached the rejecting loopback proxy, produced `Proxy connection failed`, and left no extension payload. The final assertion fixture intentionally exited **0** after checking that failure; this does not mean INSTALL succeeded. +- **Confirmed, final installed graph/reopen/search positive:** the later short-path trial wrote a 23-node/35-edge graph with native exit 0, and a new installed search process returned `SampleService` with native exit 0. Its JSON cache is exact. FTS is absent from that profile because the normal backend is `disk_bm25_v1`; installed native FTS use is **not claimed or required to explain this search**. The earlier READY-timeout/search failure remains preserved with unproven cause. See final addendum for attribution limits. +- **Blocking prerequisite coverage gap:** missing compiler is a clear expected failure; missing-runtime launch fails but does not supply a clear product diagnosis or isolate a named missing DLL. A later missing-native-import-library control now fails clearly with `LNK1181`; genuinely missing system VC-runtime coverage remains absent. +- **Full S02/A03/A04 remains absent:** no approved runtime-sidecar supply/controlled-loader implementation, clean-consumer archive proof, final dependency closure, installer pre-mutation native preflight or installed k-wiki/MCP coverage is established here. + +No pass in this report authorizes closure, merge, release, publication, deployment or tracker mutation. + +## Read-only method and source attribution + +Read `qualification-criteria.md`, all specifically requested logs/JSON, fixture source/manifest/lock, command index, source snapshot, feature trees, runtime wrapper, prerequisite inventory, and build/search failure logs. Recomputed hashes from actual files, decompressed the two exact-worktree Windows XZ assets, and compared their bytes with both recorded caches. No build, test, install, service operation, process kill, product/source edit, tracker or GitHub mutation was performed by this reviewer. Only this report was created outside the worktree. + +Read-only Git commands independently returned HEAD `47808ac34bcff79882abee4ab796c16c0621ed05`. Status was not wholly clean: `?? docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/`. The parent confirms this is its evidence-only addition. Do not rewrite that as a currently pristine worktree. Four recorded tracked-source byte hashes still match `source-snapshot.json`: `Cargo.toml`, `Cargo.lock`, `src/db_writer/extensions.rs`, and `docs/release.md`. CRLF raw sizes/hashes, not text-decoded character counts, were used. The original execution's clean-before/after claim is retained in the missing-compiler result, not inferred for all later activity. + +## Commands and scope actually executed + +Full commands/cwds/env overrides and outer exit codes are in `run-index-current.json` and `missing-compiler-install-result.json`. + +1. Root default tree: `cargo tree --offline --locked -p codebase-graph -e features -i codebase-graph` shows both default and bundled features. Isolated root `--no-default-features` tree shows neither. This is opt-out **resolution evidence only**; no opt-out runtime/absence test is claimed. +2. Default tests: `cargo test --locked --offline --release --lib db_writer::extensions::tests:: -- --nocapture --test-threads 1`. `default-extension-tests-shared.log` identifies the built unit EXE. `default-extension-tests-shared-wrapped.log` repeats 2/2 and `NATIVE_EXIT_STATUS=0` through `run-native.ps1`. Its Cargo fingerprint records exactly `["bundled-windows-extensions", "default"]`. The executed profile is **release, not native-tests**. This does not replace the debug-assertion lifecycle suite required by the separate native-tests recipe, and is not an 801-test full-suite pass. +3. Install: `cargo install --path "C:/Users/rcha0053/Repositories/cbg-pr158" --locked --offline --root "C:/Users/rcha0053/pr158-qualification/installed" --bin codebase-graph`. `cargo-install-shared-resumed.log` reports release install success; the index records outer exit 0. No `--features`/`--all-features`/`--no-default-features` appears. The installed EXE's help/build-help runs succeed under documented supplied prerequisites. +4. Fixture: `probe/Cargo.toml` depends on the path candidate with defaults plus `lbug = "=0.19.0"`. Both source and probe locks pin lbug checksum `a2a843feea97d72124b0438ee6a02ae0ce9d3543da3c391989bfb1f39ec20486`. The fixture builds with `cargo build --offline --release --manifest-path .../probe/Cargo.toml`; it is not a product-source patch. + +`LBUG_SHARED=1`, exact external Ladybug 0.19.0 headers/import library/DLL, MSVC 14.39.33519, SDK 10.0.22621.0, isolated Rust/Cargo 1.96.0, and existing Anaconda OpenSSL 3.3.2/libclang were supplied via `native-shared-environment.json`. This is Rust product source installation **against a supplied shared native dependency**, not a successful C++ Ladybug source build. The earlier official static-library link incompatibility and interrupted source fallback remain separate failed/incomplete trials; no shim or ABI upgrade is inferred. The shared ZIP actually measures 8,280,690 bytes, SHA256 `8ecb60bb5b3bec7ff263cd23a622c0892d7f605c42af19b4e06d75b1604bf612`, matching `ladybug-shared-download.json`. All four records in `shared-native-inputs.json` rehash correctly. + +`cargo package --no-verify` is inventory only, not extracted-package compile proof. This review does not upgrade it to such proof. + +## Positive native fixture and actual extension bytes + +`probe/src/main.rs` has a distinct `download-negative` branch **before** product preseeding. Positive modes call `codebase_graph::db_writer::preseed_ladybug_extensions(true)`, then use the pinned native library. SQL errors propagate through `?`; JSON row and FTS result contents are checked, not just LOAD success. Create logs show: + +- `LOAD json` and `LOAD fts` succeed. +- One JSON row is copied, and `MATCH` returns `six|Hello World`. +- `CREATE_FTS_INDEX` succeeds; `QUERY_FTS_INDEX(..., 'world')` returns `six`. +- `SHOW_LOADED_EXTENSIONS` identifies JSON and FTS paths under `profile-native-positive/.lbdb/extension/0.19.0/win_amd64/`. +- `CHECKPOINT` and `PASS_JSON_COPY_FTS_CREATE_QUERY`, native exit 0. + +The reopen command is a new process in the command index. It loads both extensions again, queries the same disk database, returns `six`, and logs `PASS_FRESH_PROCESS_REOPEN_FTS_QUERY`, native exit 0. No native FTS claim is based on the misleadingly named product graph-search unit test; the direct fixture really invokes native FTS. + +`profiles-before.json` records the native-positive/installed profiles as empty. Cache records and current files were rechecked against XZ-decompressed worktree bytes: + +| Extension | XZ bytes / SHA256 | Decompressed bytes / SHA256 | +|---|---|---| +| JSON | 3,371,312 / `adf5e05d5a63c181a1be3e1e6c90a8ffb9901118171e7caf8f860af055868ada` | 14,178,304 / `bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f` | +| FTS | 3,495,248 / `a8a9d74be93a54482b6bb6df7c44ead6cb751f398b87b10c990d63e2da77910d` | 14,779,904 / `7f82059c8149bb7851420a9bfd0c46859e92efaeda0bcd5c65418d8f174edac4` | + +Both native-positive cache payloads match. The original installed-profile JSON matches and its FTS path remains absent, as `cache-audit.json` reports. The later successful installed trial also has exact JSON but no FTS; its normal backend is `disk_bm25_v1`. Thus installed FTS absence is **not a default-byte defect or, by itself, an acceptance blocker**. The fixture's `include_fts=true` path independently proves actual native FTS; it must not be described as installed-CLI native FTS use. + +## Downloader barrier: exact final negative attribution + +`runtime-download-policy-resumed.json` defines a loopback-only rejecting HTTP proxy on `127.0.0.1:59741`, returning 502 and never forwarding. It is an executed change from the earlier held non-listening socket proposal. Product behavior was not changed. All Ladybug-specific and generic HTTP/HTTPS/ALL proxy environment variables point there; NO_PROXY forms are cleared. `USERPROFILE`/`HOME` are isolated by command. This scopes the evidence to the **verified Ladybug downloader route**, not whole-machine network isolation, firewall isolation, Cargo offline semantics, or proof that every possible route is disabled. + +`download-negative-assertions.json` records an empty final negative profile before, fixture exit 0, exactly one observed `CONNECT extension.ladybugdb.com:443 HTTP/1.1` at 11:46:30.323676Z, and no extension payload afterward. The final log reports `Failed to download extension: json ... (ERROR: Proxy connection failed)`. Current negative profile also contains no `.lbug_extension` file. + +The final source intentionally accepts the **native query's expected error** only when both `Failed to download extension: json` and `Proxy connection failed` are present. Unexpected INSTALL success or another error returns `Err` and nonzero fixture exit. Therefore `NATIVE_EXIT_STATUS=0` means **the negative assertion passed**, not that a native INSTALL process failed nonzero. This is an honest refinement of the criteria's proposed nonzero-harness convention; report it explicitly. Earlier observed/non-listening attempts returned exit 1 because their assertion rejected the error text; they are not the final passing assertion. + +`download-proxy-requests.json` contains two CONNECT requests attributable to the negative attempts and no recorded request attributable to positive create/reopen or installed operations. Positive commands use the same proxy policy and exact local bytes. This is consistent with local use without extension download. There is no independent packet capture or per-command listener-lifetime attestation here, so retain that scope instead of claiming blanket network impossibility. + +## Resolved DLL locations and artifact identity + +The create and reopen fixtures use `GetModuleHandleW`/`GetModuleFileNameW` and fail if any of the six expected loaded modules is missing. These observations describe the **fixture process**, not a controlled loader or the installed CLI's complete recursive import/delay/runtime-load closure. + +| Module | Resolved location | Bytes | SHA256 | +|---|---|---:|---| +| lbug_shared.dll | `C:\Users\rcha0053\pr158-qualification\ladybug-shared-0.19.0\lbug_shared.dll` | 20,199,424 | `5b28bf744580c3a47aaeee7ece40a3511e2141268def5207e9beffe236c9b512` | +| libssl-3-x64.dll | `C:\Users\rcha0053\AppData\Local\anaconda3\Library\bin\libssl-3-x64.dll` | 1,247,744 | `4158ad85699d9c5428b62778883b16b6c21b3b7da11fe60a0cc24ea37687a9fd` | +| libcrypto-3-x64.dll | same Anaconda `Library\bin` | 6,459,392 | `124c5f40a6cf0e642f9d92784dd66314fd548b4fdf93c543bf478e71e1209f9d` | +| MSVCP140.dll | `C:\WINDOWS\SYSTEM32\MSVCP140.dll` | 553,552 | `def46aa6a8f72f27bafac0c43334419486a4d1dcdb6c479a8ef7034b3e1fa4cb` | +| VCRUNTIME140.dll | `C:\WINDOWS\SYSTEM32\VCRUNTIME140.dll` | 123,472 | `184146852727a9db4eea06178716bec3cdbb1015c911f6b0f915b184ad7775b2` | +| VCRUNTIME140_1.dll | `C:\WINDOWS\SYSTEM32\VCRUNTIME140_1.dll` | 47,264 | `e6bfb3662ab4b1969a73441dbe35c96d51441b6bff8cf1fe7430bd5b246ca605` | + +All six current files match `loaded-module-audit.json`. The host's globally installed VC runtime is 14.50.35719.0; narrowing PATH does not remove System32. This is documented developer-prerequisite execution, **not app-local sidecar independence or clean-consumer A03 evidence**. Module paths avoid misattribution to Git's mingw OpenSSL. In fact `native-versions.log` contains only a Git/mingw OpenSSL 3.2.1 banner; it does not establish the loaded native OpenSSL version or all tool/shell banners. Use the DLL hashes/host inventory for Anaconda 3.3.2. A later retained `exact-native-versions.log` now supplies rustc/Cargo 1.96.0 banners, PowerShell 5.1.22621.7649, CIM Windows identity, compiler resource version, SDK and actual Anaconda DLL versions; the earlier `native-versions.log` is still not the source of those identities. + +All five `tested-artifacts.json` identities match current bytes, including the fixture's actual CRLF source size 4,554 bytes. Key EXEs: + +| Artifact | Bytes | SHA256 | +|---|---:|---| +| installed `codebase-graph.exe` | 34,350,080 | `95ad3781beadab8842c137a884a1e8d8f534b1d3c1af1288bffd968ba3fdf665` | +| fixture `pr158-windows-probe.exe` | 23,448,064 | `b98c93ac8b57353f8ba53e47f27043f0f767f3e9805e451f43ee52fce33dadb7` | +| tested unit EXE `codebase_graph-3cda96f058e84b64.exe` | 47,810,560 | `08d5bd486383c81d2eed8f022cd76617d545e61923a919e60db47843e0e22c02` | + +The unit EXE was additionally hashed by this reviewer; it was not in the original `tested-artifacts.json` inventory. + +## Missing-prerequisite evidence and remaining limits + +**Compiler expected-negative passes:** `missing-compiler-install-result.json` records exact path install, isolated fresh negative target/root, `CC=CXX` pointing at an absent qualification-owned `cl.exe`, Cargo exit 101, no installed or target product EXE, and unchanged HEAD/source status at that test. The log hash rechecks. Its `link-cplusplus`/cc-rs error clearly names the configured nonexistent compiler and Windows error 3; no fallback/download is observed. This proves rejection of a missing explicitly configured compiler, **not physical absence of the installed MSVC toolchain**. Compiler PATH entries remain present, and no missing-library/runtime category follows from this result. Completion-observed wall timestamps and handle duration differ; do not infer precise elapsed time or cause from those clocks. + +**Missing runtime is incomplete as a clear-diagnostic test:** `missing-native-runtime.log` prints native status `-1073741515` (`0xC0000135`, DLL not found), followed by a generic Git Bash/shared-library diagnostic mentioning PowerShell. The command index's outer exit is 127. It shows launch failure with native prerequisite PATH removed, but does not isolate whether Ladybug/OpenSSL/transitive DLL was absent, prove missing VC (which remains globally installed), or demonstrate a clear product prerequisite error. `missing-openssl-runtime.log` has the same generic limitation. Do not call these A04 preflight, trusted-loader, pre-mutation safety or full missing-runtime qualification. + +**Preserved first installed attempt, not a current missing-positive blocker:** `installed-graph-build.log` says `build guardian READY timed out`, preserves its lifecycle path, and reports cleanup `containment_unknown`; native exit 1. `installed-graph-search.log` says `Cannot create an empty database under READ ONLY mode`, native exit 1. The later final addendum establishes an independent successful installed build/reopen/search trial. It does not erase the first attempt or prove its cause. Host wall-time jumps were observed across calls, so the timeout's underlying product/environment cause is **unproven**. This reviewer neither reproduced nor fixed it and changed no timeout/constants. + +**OS scope:** host inventory establishes Microsoft Windows 11 **Enterprise 23H2**, AMD64, build **22631.7652**; the stale registry ProductName `Windows 10 Enterprise` must not override CIM/build evidence. Enterprise/Education 23H2's published support end is **2026-11-10** (Microsoft lifecycle page: https://learn.microsoft.com/en-us/lifecycle/products/windows-11-enterprise-and-education). The 2026-10-28 execution precedes that date; this is not the already-expired Home/Pro 23H2 lifecycle and not a broad or post-end-of-support Windows qualification. A fresh successful lifecycle-page response was not retained by this reviewer. A later qualification must use a then-supported client version. + +**Other retained gaps:** no exact native-tests/debug-assertion suite execution in this evidence slice; no opt-out runtime cache absence proof; no extracted `.crate` compile; the later missing-import-library control is reviewed below; no clean machine without VC runtime; no complete final runtime/extension dependency/export closure, legal redistribution inventory or controlled loader; no A04 sidecar/hash/mutation/PS5.1+7 installer probes or installed k-wiki/MCP smoke. These are not silently passed by a green default test or direct fixture. + +## Safe interpretation and future addendum + +**Narrow D05d Windows default-byte verification is complete for the recorded prepared/shared-prerequisite environment. Exact-head default path install, direct native JSON COPY/FTS reopen, and final installed graph/reopen/search under a verified rejecting downloader guard are supported. A16 acceptance remains partial because clear missing-runtime prerequisite reporting/scope is not established. The final fresh guarded trial closes the earlier listener-continuity evidence gap without rewriting that history. Full S02/A03/A04 remains open.** No promise of self-contained source installation, native C++ source-build success, installed native FTS, or clean-consumer readiness follows. + +Assumptions: retained logs describe the bound commands; the documented rejecting proxy remained effective during the positive commands; source-snapshot/Git evidence ties candidate inputs to the tested binaries. Independent current hashes strengthen that attribution but are not a clean-room reproduction. Runtime barrier values, DLL PATH, fixture 256 MiB buffer/two threads, and compiler-negative overrides were execution-harness choices, not product constants changed by this reviewer. This reviewer changed no product constants or global settings; its sole environment adjustment was process-local Git Bash selection for two read-only Git checks. + + +## Final addendum — installed graph build and fresh-process search + +Reviewed the completed `installed-graph-build-short.log`, `installed-graph-search-short.log`, `installed-short-cache-audit.json`, `run-index-final-resume.json`, and `runtime-download-policy-search.json`. **This addendum supersedes the baseline's pending installed-positive status, not the preserved first failure.** No new build/runtime action was performed by this reviewer. + +### Final positive outcome and correct FTS attribution + +- Fresh fixture: `C:\Users\rcha0053\q158\service.py`, 63 bytes, SHA256 `778d750c2381edc466065d2a9e4d092207ed7c4e7a431820459e479741544b8d`, containing class `SampleService` and method `helper`. The current file identity matches the build's source-snapshot `content_hash`/byte count. +- Build reports `database_written=true`, `skipped=false`, 23 node rows, 35 edge rows, `pending_runs=0`, `cleanup_pending=false`, empty diagnostics and **`NATIVE_EXIT_STATUS=0`**. It lists 55 COPY calls, including JSON node-staging COPY statements, and a real `disk_bm25_v1` search index with 18 documents. This is a successful normal installed graph workflow, not the direct FTS fixture. +- Separate process command, bound in `run-index-final-resume.json`, cwd `C:\Users\rcha0053\q158`: + `powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File "C:/Users/rcha0053/pr158-qualification/run-native.ps1" "C:/Users/rcha0053/pr158-qualification/installed/bin/codebase-graph.exe" codebase-search SampleService --repo-root "C:/Users/rcha0053/q158" --json` + It returns the `SampleService` class from `service.py` (plus `helper`) with **native exit 0 and outer exit 0**. A new process reading the completed disk graph establishes the requested installed reopen/search positive; no concurrent build success is inferred. +- Same installed EXE still measures 34,350,080 bytes with SHA256 `95ad3781beadab8842c137a884a1e8d8f534b1d3c1af1288bffd968ba3fdf665`. Parent attests no tracked source, EXE or supplied native input change; docs-only evidence addition remains separate. +- Isolated `C:\Users\rcha0053\q158home` contains JSON 14,178,304 bytes / SHA256 `bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f`, independently rechecked. FTS is absent, matching `installed-short-cache-audit.json`. This is **expected for the normal `disk_bm25_v1` path**, not evidence that bundled FTS bytes are absent. Search JSON's `score_components.fts` name does not prove Ladybug FTS extension use. Actual native FTS LOAD/index/query/reopen is established only by the separately attributed direct fixture. +- The build's maintenance observation remains partial (`measurement_complete=false`, partial maintenance attempt). Do not convert `cleanup_pending=false` for this operation into a universal claim that every retained artifact was measured/reclaimed or that the old failed tree was cleaned. + +### Barrier and command-capture limits retained + +`runtime-download-policy-search.json` records a **new search-only** rejecting loopback proxy at `127.0.0.1:53712`, generic/Ladybug proxy variables set, NO_PROXY cleared, same native prerequisite PATH and **requests=[]**. The search command uses `USERPROFILE=HOME=C:\Users\rcha0053\q158home`. This is not port 59741, and no second raw-INSTALL negative was recorded for this new search listener. Earlier observed CONNECT negative proves the linked downloader honors the proxy mechanism; search's no-request record is consistent with local cache use. + +The exact build command and before-cache evidence were subsequently recovered from retained root tool-call details into `installed-short-build-binding.json`, which this reviewer read: +`powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File "C:/Users/rcha0053/pr158-qualification/run-native.ps1" "C:/Users/rcha0053/pr158-qualification/installed/bin/codebase-graph.exe" build --repo-root "C:/Users/rcha0053/q158" --mode full --no-git --single-thread --max-parallelism 1 --json` (stdout/stderr redirected to the retained short build log), cwd `C:\Users\rcha0053\q158`. +The retained launch code asserts `q158home` does not exist before creating it, binding a genuinely fresh profile. It records `USERPROFILE=HOME=...\q158home`, original proxy port 59741, same prerequisites and native exit 0. This resolves the earlier command/environment/fresh-profile capture gap. At that historical read `run-index-final-resume.json` only indexed the short search; it has since been expanded to bind the final guarded operations and controls. + +**Historical limitation of the first short-path trial (later closed by an independent fresh guarded trial below):** the REPL kernel restarted while this long installed build was still running, losing the in-kernel proxy listener. The earlier fixture negative/positive runs used a verified live guard, and no build request was recorded before the restart, but **uninterrupted rejecting-proxy lifetime for the installed build cannot be established**. Consequently this successful installed build must **not** be called fully blocked-download execution. Exact fresh-profile JSON bytes support candidate preseeding but do not replace proof of a live downloader barrier for the whole process. Later search used its separate live port-53712 guard; that cannot retroactively repair the build's lost listener. No download is demonstrated by this gap, but no whole-build no-download conclusion is accepted either. No long build rerun was requested or performed by this reviewer. + +### First failure remains separately attributed + +Read `guardian-ready-investigation.md`, `guardian-startup-investigation.md` and JSON. Independently rechecked all three retained phase proof hashes and three receipt hashes. Phase 0/1 have successful receipts; phase 2 has no READY, `cancelled=true`, code 1 and `containment_empty=true`. The peer's exact-source ordering analysis attributes code 1 to owner-cancellation teardown before START, **not a demonstrated Ladybug/native-loader failure**. The original `containment_unknown` diagnostic is retained as the parent's observation at that time; a later receipt is not permission for manual cleanup. + +The successful short-path trial **does not prove path length caused the original timeout**, nor exonerate/establish a PR regression. File timestamps span observed clock/host pauses and are not active I/O measurements. The protected failed tree remains preserved; no timeout, product constant, DLL, service or runtime state was changed by this reviewer. + +### Final acceptance boundary + +**Complete:** narrow D05d default-byte Windows verification for the recorded Windows 11 Enterprise 23H2/shared-prerequisite environment: default selection, actual enabled JSON/FTS bytes/decompression, 2/2 narrow tests, exact-head default path install, real JSON/native-FTS direct create/reopen positives, downloader negative, and normal installed graph/reopen/search positive. This is a bounded execution conclusion, not maintainer acceptance or full native-tests lifecycle-suite coverage. + +**A16 remains partial:** the missing compiler negative is clear and category-specific. Runtime-negative records consistently show OS `STATUS_DLL_NOT_FOUND` before application startup and shell exit 127, **not a clear named product missing-runtime prerequisite diagnosis**; global VC DLLs remain installed. The later distinct missing external native-import-library control is now accepted: log hash matches `missing-native-library-result.json`; linker `LNK1181` explicitly names absent `lbug_shared.lib`, Cargo exits 101, the configured external directory is empty and no EXE exists in its private install root. This proves an explicit external-library override failure, not source/compiler/runtime absence or a product preflight. Compiler, external library and runtime DLL are separate categories; do not use one to silently pass the others. This review does not invent an exhaustive matrix beyond the approved clear-prerequisite-failure requirement. The original short-path trial's lost listener remains an honest limitation of that attempt; the later independent fresh guarded trial below now closes installed-build downloader-blocking evidence. The current A16 blocker in this reviewed slice is clear missing-runtime prerequisite diagnosis/scope, not listener lifetime, missing compiler/import-library coverage, normal graph behavior, or absent CLI FTS. + +**Still separate/open:** full S02/A03/A04 controlled loading, permitted sidecar supply/licences/final dependency closure, clean-consumer archive execution, installer pre-mutation failure handling under PS5.1/7, and installed k-wiki/MCP smoke. Successful D05d/installed workflow does not authorize release, merge or closure. A fully C++ source-built Ladybug dependency, extracted-package build, opt-out runtime absence control and native-tests/debug-assertion suite are not newly proved; do not present these optional/separate capture limits as if this review added new acceptance promises. + +Machine summary `qualification-status.json` was initially stale (short trial `running`, A16 pending installed search); the parent has now updated it. The final reviewed result is the new guarded trial below, with A16 still partial for missing-runtime diagnosis. + +Final-log byte fingerprints at review: + +| File | SHA256 | +|---|---| +| `installed-graph-build-short.log` | `d21e041eefd8334c4238017d101830941858f242d40fbcef901d38180f990550` | +| `installed-graph-search-short.log` | `9a1f16ebf1372160fca12216aa296f65e5399a745eea2b9bbf0825c5e2d836ba` | +| `installed-short-cache-audit.json` | `dca1dad27997a7e0e55a0c708f3d2b9ef4df23444dc35fe40bf2724d5e62152a` | +| `runtime-download-policy-search.json` | `e3073ce8cf0d7797ae1676e32aa2adf261ad5dfa2799c6e6e9a73d1eb048fa1d` | +| `run-index-final-resume.json` | `068a24ca55d3d1dfccf8297f904dafdd108276e131493b4e69861a53fade995c` | + + +## Final independent addendum — fresh installed workflow under a restart-resistant guard + +This is the **current final execution verdict**. It supersedes the earlier listener-lifetime gap for acceptance purposes through a new independent trial; it does not erase the old gap or the first guardian timeout. Reviewed `guarded-installed-results.json`, guarded build/search logs, completed `run-index-final-resume.json`, `guarded-build-profile-before.json`, proxy source/ready/request files, and native negative logs before and after. No test/build, process signal or runtime operation was performed by this reviewer. + +### Verified result and barrier attribution + +- Harness-only `reject-proxy.py` runs as a separately owned external process, not in the REPL kernel. The reviewed code binds only `127.0.0.1`, records requests and returns 502; it contains no forwarding implementation. Ready record: port **55319**, native process PID **29812**. Root retained the process handle, observed it still running after search, and stopped it **only after** the final negative control. The guard's recorded final exit 1 is owner teardown, not a native test/product failure or proof it died during positive execution. +- Exact build and fresh-process search commands, cwds, isolated `USERPROFILE`/`HOME`, identical supplied native PATH, six proxy variables at `http://127.0.0.1:55319`, cleared NO_PROXY forms, outer exit codes and immediate native statuses are retained in `run-index-final-resume.json`. Fresh fixture/root: `C:\Users\rcha0053\q158b`; fresh empty profile recorded before: `C:\Users\rcha0053\q158bh`. +- Guarded installed build exits **native 0 / outer 0**, writes the graph, has **23 nodes / 35 edges**, empty diagnostics, `pending_runs=0`, and `cleanup_pending=false`. A new installed process returns class **SampleService** from `service.py`, native 0 / outer 0. Backend is **disk_bm25_v1**, not the Ladybug FTS extension. +- Installed EXE rehashes to the same `95ad3781beadab8842c137a884a1e8d8f534b1d3c1af1288bffd968ba3fdf665`. Current `q158bh` JSON is 14,178,304 bytes and SHA256 `bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f`, equal to decompressed exact-candidate bytes. FTS is absent **as expected for this CLI backend**; actual native FTS remains separately proved by the direct library fixture. +- Raw unseeded `INSTALL json` native negative controls execute before **and after** the positive build/search using the same owned guard. Both logs show `Failed to download extension: json ... Proxy connection failed`; each fixture/native wrapper exits **0 because its expected-negative assertion passed**. Neither negative profile (`q158neg`, `q158neg2`) contains any `.lbug_extension` payload; this reviewer checked current files. +- `proxy-guard-requests.jsonl` has exactly **two CONNECT records** to `extension.ladybugdb.com:443`: one at 01:11:14.417133Z before the build, one at 01:14:33.394695Z after search. No positive request is recorded. Native and outer exit statuses, before-profile evidence, owned external guard and bracketing controls together support the recorded blocked-downloader installed workflow. The evidence remains scoped to the verified Ladybug downloader route, **not whole-machine network isolation**. + +The restart-resistant guard therefore resolves the old installed-build live-listener evidence gap. No claim relies on the old lost listener. This new success does not establish the cause of the first guardian cancellation or permit removal of its protected runtime state. + +### Current remaining acceptance gaps; no new blockers invented + +**Supported-environment narrow D05d execution verification is complete.** Exact default `--path` product source install with recorded shared native prerequisites, 2/2 default byte tests, actual candidate byte/cache checks, direct native JSON COPY/FTS create/reopen, clear missing compiler/import-library negatives, and final installed graph/reopen/search under the verified rejecting downloader guard are supported. + +**A16 still remains partial for the missing-runtime failure-diagnostic/scope requirement.** Runtime removal from process PATH produces pre-application `STATUS_DLL_NOT_FOUND` with generic shell diagnostic/outer exit 127, not a clear named missing-runtime prerequisite diagnosis. System VC runtime remains installed, so genuinely missing VC is not established. This is the remaining A16 blocker in the reviewed execution slice; the review does not silently promote the good compiler/import-library negatives to runtime coverage or invent an exhaustive new negative matrix. + +**Full S02/A03/A04 is still open**, including permitted runtime supply/notices, final dependency/export closure, trusted app-local controlled loading, clean-consumer archive operation, installer pre-mutation native/sidecar probes under PS5.1/7, and installed k-wiki/MCP smoke. No extracted-package compile, full debug-assertion native-tests rerun, opt-out runtime absence control or C++ Ladybug source-build success is newly claimed. These limits are separate from the proven narrow D05d outcome; no aggregate closure, merge, release or publication authorization is given. + +### Final delivery-report no-overclaim review + +Independently read the current `docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification.md`. The final guarded row is correctly a pass; older short-path continuity limitation and initial failure are preserved; actual fixture vs installed CLI FTS, source path vs registry, shared prerequisite vs native C++ source build, release vs native-tests, and OS-supported-date scope are kept distinct. All local Markdown evidence links resolved at review. No blocking overclaim found in this final report. `qualification-status.json` now reflects the completed guarded positive and partial A16 runtime-diagnostic scope. + +This reviewer added/updated only this external `execution-review.md`; parent owns the evidence/doc copying, build/guard lifetime, and delivery report. No product/source/asset/dependency/ABI/timeout/numeric constant was changed by this reviewer. + +Final guarded-evidence byte fingerprints: + +| File | SHA256 | +|---|---| +| `guarded-installed-results.json` | `568babf5fa55ee890f35118ebcce12f66522dadf5b43f0dc8f30bf03e64c82d1` | +| `installed-graph-build-guarded.log` | `d912be6f074f17efcc40cb369f47d9a3e52be96f0ccf5a74624322e2f67f864e` | +| `installed-graph-search-guarded.log` | `9a1f16ebf1372160fca12216aa296f65e5399a745eea2b9bbf0825c5e2d836ba` | +| completed `run-index-final-resume.json` | `3f48af72140b63f734c320dfe90987c6c957e4d832a7806dc13631291464c427` | +| `proxy-guard-requests.jsonl` | `8a4d879060675c3e73b5b06f647a05c78cacc55dea2a1b4324529e6288dbc19b` | +| `reject-proxy.py` | `ca7ada29f99cb0a6da0807d6f468c22ad81d1bce59abe5c9f743c1b03b83588f` | diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guarded-build-profile-before.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guarded-build-profile-before.json new file mode 100644 index 00000000..c5c7e135 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guarded-build-profile-before.json @@ -0,0 +1,28 @@ +{ + "repo": "C:\\Users\\rcha0053\\q158b", + "profile": "C:\\Users\\rcha0053\\q158bh", + "profile_empty_before": true, + "guard": { + "port": 55319, + "pid": 29812, + "at": "2026-10-29T01:10:46.188294+00:00", + "policy": "loopback only, always502, no forwarding code" + }, + "environment": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:55319", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:55319", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:55319", + "HTTPS_PROXY": "http://127.0.0.1:55319", + "HTTP_PROXY": "http://127.0.0.1:55319", + "ALL_PROXY": "http://127.0.0.1:55319", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\q158bh", + "HOME": "C:\\Users\\rcha0053\\q158bh" + }, + "negative_log": "durable-guard-negative.log", + "proxy_requests_before": "{\"at\": \"2026-10-29T01:11:14.417133+00:00\", \"method\": \"CONNECT\", \"target\": \"extension.ladybugdb.com:443\", \"client\": [\"127.0.0.1\", 54277]}\n", + "started_at": "2026-10-29T01:11:14.551533+00:00" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guarded-installed-results.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guarded-installed-results.json new file mode 100644 index 00000000..242202af --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guarded-installed-results.json @@ -0,0 +1,71 @@ +{ + "source_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "installed_exe_sha256": "95ad3781beadab8842c137a884a1e8d8f534b1d3c1af1288bffd968ba3fdf665", + "build": { + "native_exit": 0, + "outer_exit": 0, + "database_written": true, + "nodes": 23, + "edges": 35, + "cleanup_pending": false, + "search_backend": "disk_bm25_v1" + }, + "search": { + "native_exit": 0, + "outer_exit": 0, + "expected_label": "SampleService", + "found": true, + "fresh_process": true + }, + "cache": [ + { + "extension": "json", + "path": "C:\\Users\\rcha0053\\q158bh\\.lbdb\\extension\\0.19.0\\win_amd64\\json\\libjson.lbug_extension", + "exists": true, + "sha256": "bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f", + "expected_sha256": "bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f" + }, + { + "extension": "fts", + "path": "C:\\Users\\rcha0053\\q158bh\\.lbdb\\extension\\0.19.0\\win_amd64\\fts\\libfts.lbug_extension", + "exists": false, + "sha256": null, + "expected_sha256": "7f82059c8149bb7851420a9bfd0c46859e92efaeda0bcd5c65418d8f174edac4" + } + ], + "proxy": { + "ready": { + "port": 55319, + "pid": 29812, + "at": "2026-10-29T01:10:46.188294+00:00", + "policy": "loopback only, always502, no forwarding code" + }, + "requests": [ + { + "at": "2026-10-29T01:11:14.417133+00:00", + "method": "CONNECT", + "target": "extension.ladybugdb.com:443", + "client": [ + "127.0.0.1", + 54277 + ] + }, + { + "at": "2026-10-29T01:14:33.394695+00:00", + "method": "CONNECT", + "target": "extension.ladybugdb.com:443", + "client": [ + "127.0.0.1", + 53188 + ] + } + ], + "positive_request_count": 0, + "negative_before_exit": 0, + "negative_after_exit": 0, + "empty_negative_profiles_after": true, + "guard_running_after_search": true, + "guard_stopped_by_owner_at": "2026-10-29T01:14:33.828140+00:00" + }, + "scope": "installed product graph JSON build/reopen/diskBM25search under verified continuously owned rejecting downloader guard; real native FTS is separate same-candidate public-library fixture" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guardian-startup-investigation.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guardian-startup-investigation.json new file mode 100644 index 00000000..c6d10675 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guardian-startup-investigation.json @@ -0,0 +1,76 @@ +{ + "source_head_from_existing_snapshot": "47808ac34bcff79882abee4ab796c16c0621ed05", + "failed_tree": "C:\\Users\\rcha0053\\pr158-qualification\\smoke-repo", + "failed_phase": "C:\\Users\\rcha0053\\pr158-qualification\\smoke-repo\\.codebaseGraph\\.direct-workers-b70a25bbaa526988\\phases\\phase-24060-2", + "receipt": { + "success": false, + "code": 1, + "signal": null, + "high_water_bytes": 0, + "cancelled": true, + "containment_empty": true, + "supervision_error": null + }, + "phase_proof_timing": [ + { + "phase": "phase-24060-0", + "created_utc": "2026-10-28T11:47:17.937195+00:00", + "last_written_utc": "2026-10-28T11:47:18.121571+00:00", + "creation_to_last_write_seconds": 0.1843763, + "has_ready": true, + "proof_path_chars_without_extended_prefix": 204, + "receipt": { + "success": true, + "code": 0, + "signal": null, + "high_water_bytes": 77639680, + "cancelled": false, + "containment_empty": true, + "supervision_error": null + }, + "proof_sha256": "5f680bb542941b2ae8ae4600f2bc1ad0b1c04d878dd417289fde9f2016ead56d", + "receipt_sha256": "4ef79b4458ad733a89e6d99d958810f8218ecffbc8ad3bdab4fd6e8a05030500" + }, + { + "phase": "phase-24060-1", + "created_utc": "2026-10-28T11:47:22.811939+00:00", + "last_written_utc": "2026-10-28T11:47:22.969610+00:00", + "creation_to_last_write_seconds": 0.1576713, + "has_ready": true, + "proof_path_chars_without_extended_prefix": 204, + "receipt": { + "success": true, + "code": 0, + "signal": null, + "high_water_bytes": 154697728, + "cancelled": false, + "containment_empty": true, + "supervision_error": null + }, + "proof_sha256": "9aa2e94e2f53b1c88618a20b0486f0ae25636c10d559bb04c40d3a2bfcaa7d59", + "receipt_sha256": "db0ae12f558596985d4a16c5ab7e60be4b166847df65fec31115f8c72e8e8b05" + }, + { + "phase": "phase-24060-2", + "created_utc": "2026-10-28T11:47:26.871749+00:00", + "last_written_utc": "2026-10-28T12:10:51.336008+00:00", + "creation_to_last_write_seconds": 1404.4642587, + "has_ready": false, + "proof_path_chars_without_extended_prefix": 204, + "receipt": { + "success": false, + "code": 1, + "signal": null, + "high_water_bytes": 0, + "cancelled": true, + "containment_empty": true, + "supervision_error": null + }, + "proof_sha256": "2deed8b6f5783dee6b330026f4ddf5e613b6c48f708351ef1781d02ca0af1417", + "receipt_sha256": "f1334b5f8905be54b732438cf00214a8b8bac43590dcf4bf11d56c860facdbf9" + } + ], + "conclusion": "Guardian startup/control-publication delay followed by owner cancellation; receipt code 1 is teardown status, not evidence of a native loader or Ladybug worker failure.", + "root_cause": "Unproven. Wall timestamps jumped across recent tool calls; process/host suspension is possible. File timestamp gaps do not prove active I/O time. Path length, filesystem delay, suspension, and blocking coordination cannot be distinguished from preserved artifacts alone.", + "changes": "No source edits, timeout changes, reruns, or cleanup performed by investigation." +} diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guardian-startup-investigation.md b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guardian-startup-investigation.md new file mode 100644 index 00000000..2423e817 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/guardian-startup-investigation.md @@ -0,0 +1,14 @@ +# Preserved guardian startup failure: evidence and limits + +Source snapshot: `47808ac34bcff79882abee4ab796c16c0621ed05`. +Failed tree: `C:\Users\rcha0053\pr158-qualification\smoke-repo` (not modified). + +- Phase 0 and phase 1 reached READY and succeeded (exit 0). +- Phase 2 has proof and receipt but no READY. Its receipt is `code:1`, `cancelled:true`, `high_water_bytes:0`, `containment_empty:true`, `supervision_error:null`. The stderr leaf is empty. +- Phase 2 `proof.json` was created at **2026-10-28 11:47:26.871749 UTC** and last written at **12:10:51.336008 UTC**: about **1404.464 seconds** apart. The same interval was about 0.184 seconds and 0.158 seconds in phases 0 and 1. The proof-origin receipt in phase 2 was only created at 12:10:51.272592 UTC. +- Static flow: `src/process_lifecycle/windows.rs:319` publishes proof before `CreateProcessW`; the child is created with `CREATE_SUSPENDED` (line 363). `src/process_lifecycle/mod.rs:444-451` publishes READY after spawn and before the START command resumes the worker. Owner loss cancels the lifecycle (lines 449-462). Windows teardown uses `TerminateJobObject(..., 1)` (windows.rs:416). +- Therefore code 1 is the cancellation teardown status, **not evidence of native-loader or Ladybug worker startup failure**. No worker code is run before START. +- The timestamp gap spans lifecycle proof construction/publication. `write_private_json_recorded` creates the temporary file before acquiring output tracking/coordination and creating its origin receipt (`mod.rs:690-713`). Wall timestamps also jumped across recent tool calls, and process/host suspension is possible. A file timestamp gap does not prove active I/O time or filesystem flush latency. The artifacts do not identify the operation or source cause: disk flush, coordination wait, host/process suspension, or path-related effect are all unproven. +- All three phase proof paths have equal length (204 characters without the extended prefix). Successful phases 0/1 weaken a simple fixed path-limit explanation. A fresh short-path tree is useful as an independent success trial, but cannot by itself attribute this failure to path length. + +No source changes, timeout/other constant changes, reruns, or cleanup were performed by this investigation. Detailed observed timestamps, receipts, and proof/receipt hashes are in `guardian-startup-investigation.json`. The existing failed tree remains preserved. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/historical-reject-proxy.tar.gz b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/historical-reject-proxy.tar.gz new file mode 100644 index 00000000..04694eca Binary files /dev/null and b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/historical-reject-proxy.tar.gz differ diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-build-help.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-build-help.log new file mode 100644 index 00000000..7f031967 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-build-help.log @@ -0,0 +1,26 @@ +codebase-graph build + +USAGE: + codebase-graph build [--source-root |--repo-root ] [--db ] [--manifest ] [--mode full|changed] [--json] + codebase-graph build --native-request [--manifest ] [--json] + +OPTIONS: + --source-root Repository or source root override; auto-detected when omitted + --repo-root Alias for --source-root + --db Ladybug database path; defaults under .codebaseGraph + --manifest Manifest path; defaults under .codebaseGraph + --mode full or changed; defaults to changed + --no-git Disable Git file discovery and scan the filesystem + --git-diff Materialize files from git diff plus untracked files + --git-base Revision used by --git-diff; defaults to HEAD + --include Include only paths matching the glob; repeatable + --exclude Exclude paths matching the glob; repeatable + --parallel Parse independent files concurrently; default behavior + --single-thread Disable concurrent parsing and build partitions serially + --spill-chunk-mib External-sort chunk size; defaults to config or 32 + --max-parallelism Worker count; defaults to config or 2 + --progress Include progress events in JSON output + --no-fts Skip FTS extension loading and index creation + --native-request JSON NativeSyntaxMaterializationRequest payload + --json Emit JSON output +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-build-guarded.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-build-guarded.log new file mode 100644 index 00000000..fc401e1e --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-build-guarded.log @@ -0,0 +1,245 @@ +{ + "active_generation": null, + "artifacts_rebuilt": 1, + "artifacts_reused": 0, + "cleanup_pending": false, + "connector_rows": 70, + "copy_calls": 55, + "copy_statements": [ + "COPY `Class` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/class.json\";", + "COPY `File` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/file.json\";", + "COPY `Literal` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/literal.json\";", + "COPY `Method` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/method.json\";", + "COPY `Module` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/module.json\";", + "COPY `Parameter` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/parameter.json\";", + "COPY `Repository` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/repository.json\";", + "COPY `Scope` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/scope.json\";", + "COPY `SourceRoot` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/sourceroot.json\";", + "COPY `SyntaxCapture` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/syntaxcapture.json\";", + "COPY `Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/contains.json\";", + "COPY `Declares` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/declares.json\";", + "COPY `Defines` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/defines.json\";", + "COPY `DerivedFrom` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/derivedfrom.json\";", + "COPY `EvidencedBy` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/evidencedby.json\";", + "COPY `HasParameter` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/hasparameter.json\";", + "COPY `HasScope` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/hasscope.json\";", + "COPY `SyntaxChild` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/syntaxchild.json\";", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_contains__class__contains.csv\" (header=true, from=\"Class\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_contains__file__contains.csv\" (header=true, from=\"File\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_contains__method__contains.csv\" (header=true, from=\"Method\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_contains__module__contains.csv\" (header=true, from=\"Module\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_contains__repository__contains.csv\" (header=true, from=\"Repository\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_contains__scope__contains.csv\" (header=true, from=\"Scope\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_contains__sourceroot__contains.csv\" (header=true, from=\"SourceRoot\", to=\"Contains\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_contains__contains__class.csv\" (header=true, from=\"Contains\", to=\"Class\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_contains__contains__file.csv\" (header=true, from=\"Contains\", to=\"File\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_contains__contains__literal.csv\" (header=true, from=\"Contains\", to=\"Literal\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_contains__contains__method.csv\" (header=true, from=\"Contains\", to=\"Method\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_contains__contains__module.csv\" (header=true, from=\"Contains\", to=\"Module\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_contains__contains__scope.csv\" (header=true, from=\"Contains\", to=\"Scope\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_contains__contains__sourceroot.csv\" (header=true, from=\"Contains\", to=\"SourceRoot\");", + "COPY `FROM_Declares` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_declares__class__declares.csv\" (header=true, from=\"Class\", to=\"Declares\");", + "COPY `FROM_Declares` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_declares__module__declares.csv\" (header=true, from=\"Module\", to=\"Declares\");", + "COPY `TO_Declares` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_declares__declares__class.csv\" (header=true, from=\"Declares\", to=\"Class\");", + "COPY `TO_Declares` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_declares__declares__method.csv\" (header=true, from=\"Declares\", to=\"Method\");", + "COPY `FROM_Defines` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_defines__class__defines.csv\" (header=true, from=\"Class\", to=\"Defines\");", + "COPY `FROM_Defines` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_defines__module__defines.csv\" (header=true, from=\"Module\", to=\"Defines\");", + "COPY `TO_Defines` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_defines__defines__class.csv\" (header=true, from=\"Defines\", to=\"Class\");", + "COPY `TO_Defines` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_defines__defines__method.csv\" (header=true, from=\"Defines\", to=\"Method\");", + "COPY `FROM_DerivedFrom` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_derivedfrom__class__derivedfrom.csv\" (header=true, from=\"Class\", to=\"DerivedFrom\");", + "COPY `FROM_DerivedFrom` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_derivedfrom__literal__derivedfrom.csv\" (header=true, from=\"Literal\", to=\"DerivedFrom\");", + "COPY `FROM_DerivedFrom` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_derivedfrom__method__derivedfrom.csv\" (header=true, from=\"Method\", to=\"DerivedFrom\");", + "COPY `FROM_DerivedFrom` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_derivedfrom__parameter__derivedfrom.csv\" (header=true, from=\"Parameter\", to=\"DerivedFrom\");", + "COPY `TO_DerivedFrom` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_derivedfrom__derivedfrom__syntaxcapture.csv\" (header=true, from=\"DerivedFrom\", to=\"SyntaxCapture\");", + "COPY `FROM_EvidencedBy` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_evidencedby__file__evidencedby.csv\" (header=true, from=\"File\", to=\"EvidencedBy\");", + "COPY `TO_EvidencedBy` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_evidencedby__evidencedby__syntaxcapture.csv\" (header=true, from=\"EvidencedBy\", to=\"SyntaxCapture\");", + "COPY `FROM_HasParameter` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_hasparameter__method__hasparameter.csv\" (header=true, from=\"Method\", to=\"HasParameter\");", + "COPY `TO_HasParameter` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_hasparameter__hasparameter__parameter.csv\" (header=true, from=\"HasParameter\", to=\"Parameter\");", + "COPY `FROM_HasScope` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_hasscope__class__hasscope.csv\" (header=true, from=\"Class\", to=\"HasScope\");", + "COPY `FROM_HasScope` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_hasscope__method__hasscope.csv\" (header=true, from=\"Method\", to=\"HasScope\");", + "COPY `FROM_HasScope` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_hasscope__module__hasscope.csv\" (header=true, from=\"Module\", to=\"HasScope\");", + "COPY `TO_HasScope` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_hasscope__hasscope__scope.csv\" (header=true, from=\"HasScope\", to=\"Scope\");", + "COPY `FROM_SyntaxChild` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/from_syntaxchild__syntaxcapture__syntaxchild.csv\" (header=true, from=\"SyntaxCapture\", to=\"SyntaxChild\");", + "COPY `TO_SyntaxChild` FROM \"C:/Users/rcha0053/q158b/.codebaseGraph/direct-runs/run-3220-1793236279577452300-0/staging/to_syntaxchild__syntaxchild__syntaxcapture.csv\" (header=true, from=\"SyntaxChild\", to=\"SyntaxCapture\");" + ], + "database_written": true, + "diagnostics": [], + "diff": { + "added": [ + "service.py" + ], + "deleted": [], + "force_rebuild": true, + "modified": [], + "unchanged": [] + }, + "edge_rows": 35, + "graph_build_digest": "d338a57cfa02f1d37ab54361e99c85bb0f6fffd11634b4868bf053be4a82e4e5", + "graph_summary": { + "edge_count": 35, + "node_count": 23 + }, + "maintenance": { + "bytes": { + "by_category": { + "active_cache": { + "allocated_bytes": null, + "logical_bytes": null + }, + "active_graph": { + "allocated_bytes": null, + "logical_bytes": 5907434 + }, + "artifact_temporary": { + "allocated_bytes": null, + "logical_bytes": null + }, + "coordination": { + "allocated_bytes": null, + "logical_bytes": 22101 + }, + "leased_generation": { + "allocated_bytes": null, + "logical_bytes": null + }, + "legacy_staging": { + "allocated_bytes": null, + "logical_bytes": null + }, + "live_run": { + "allocated_bytes": null, + "logical_bytes": 70923 + }, + "recovery_evidence": { + "allocated_bytes": null, + "logical_bytes": null + }, + "retired_direct": { + "allocated_bytes": null, + "logical_bytes": null + }, + "unknown": { + "allocated_bytes": null, + "logical_bytes": null + } + }, + "deferred": { + "allocated_bytes": null, + "logical_bytes": 70923 + }, + "potential_reclamation": { + "allocated_bytes": null, + "logical_bytes": null + }, + "retained": { + "allocated_bytes": null, + "logical_bytes": 5929535 + }, + "total": { + "allocated_bytes": null, + "logical_bytes": null + }, + "unknown": { + "allocated_bytes": null, + "logical_bytes": null + } + }, + "errors": [], + "inventory_status": null, + "last_attempt": { + "attempted_entries": 19, + "continuation_phase": null, + "deleted_entries": 0, + "finished_at_unix_ms": 1793236429192, + "reclaimed_allocated_bytes": null, + "started_at_unix_ms": 1793236429066, + "status": "partial" + }, + "measurement_complete": false, + "observation_age_ms": 65, + "observation_complete": false, + "observed_at_unix_ms": 1793236429128, + "pending": true, + "reasons": [ + "maintenance_measurement_partial_lower_bounds", + "active_cache_references_incomplete", + "allocated_bytes_unavailable", + "unknown_entries_retained", + "reference_in_use", + "maintenance_observation_incomplete", + "maintenance_stopped" + ], + "requested": true, + "running": false + }, + "materialized_entries": { + "service.py": { + "artifact_key": "33f0a515946e44077df6f827a06991bdd67f0d81fa48e1b9968ed8687aa1e5ca", + "content_hash": "778d750c2381edc466065d2a9e4d092207ed7c4e7a431820459e479741544b8d", + "edge_count": 35, + "language": "python", + "materialized_at": "unix:0", + "node_count": 23, + "partition_id": "567053110c31f6448b8e", + "path": "service.py" + } + }, + "node_rows": 23, + "pending_runs": 0, + "phase_high_water_marks": { + "database_write": 162537472, + "parse": 181102, + "search_index": 3904, + "staging": 52160 + }, + "phase_timings": { + "database_write_seconds": 138.3828903, + "graph_build_seconds": 0.0003853, + "native_cli_seconds": 146.3364761, + "parse_seconds": 0.0271676, + "scan_seconds": 0.3431994, + "search_index_seconds": 0.0489318, + "staging_seconds": 7.329019300000001 + }, + "progress_events": [], + "rebuilt_entries": { + "service.py": { + "artifact_key": "33f0a515946e44077df6f827a06991bdd67f0d81fa48e1b9968ed8687aa1e5ca", + "content_hash": "778d750c2381edc466065d2a9e4d092207ed7c4e7a431820459e479741544b8d", + "edge_count": 35, + "language": "python", + "materialized_at": "unix:0", + "node_count": 23, + "partition_id": "567053110c31f6448b8e", + "path": "service.py" + } + }, + "search_backend": { + "backend": "disk_bm25_v1", + "document_count": 18, + "files": { + "search.doc_lengths.bin": "c3c85b234908a3de7e853acb34a1d5e8f8d583f7eded1c1451d198ed6c2413d6", + "search.document_offsets.bin": "238cdb3ac0da749baf840a6be17ccb98074021b1397b7ef4e2739a58a3b1c47a", + "search.documents.bin": "45e417f1e556f3e638b002f9838c26c17de979e9ff1fc73fa059838f57952702", + "search.lexicon.bin": "5b25af9424eb71221462b881840d01c41cedc1cf2433500a332a1fa621d1fa84", + "search.meta.json": "497199b943c4a9f1da129d9e481af45f236b012d1c35421d4ff97bc64b6194e1", + "search.postings.bin": "bcc1ad7d503cee5ffe0ad6583e0386d1b46b1b834e25ef90d7400b1b017153fe" + }, + "format_version": 1, + "term_count": 24, + "total_tokens": 93 + }, + "skipped": false, + "snapshots": { + "service.py": { + "absolute_path": "\\\\?\\C:\\Users\\rcha0053\\q158b\\.codebaseGraph\\direct-runs\\run-3220-1793236279577452300-0\\staging\\source-snapshots\\56\\567053110c31f6448b8e-778d750c2381edc466065d2a9e4d092207ed7c4e7a431820459e479741544b8d.snapshot", + "byte_len": 63, + "content_hash": "778d750c2381edc466065d2a9e4d092207ed7c4e7a431820459e479741544b8d", + "language": "python", + "path": "service.py" + } + }, + "spill_bytes": 80455, + "storage_format": "direct" +} +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-build-short.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-build-short.log new file mode 100644 index 00000000..e3b7baa5 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-build-short.log @@ -0,0 +1,245 @@ +{ + "active_generation": null, + "artifacts_rebuilt": 1, + "artifacts_reused": 0, + "cleanup_pending": false, + "connector_rows": 70, + "copy_calls": 55, + "copy_statements": [ + "COPY `Class` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/class.json\";", + "COPY `File` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/file.json\";", + "COPY `Literal` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/literal.json\";", + "COPY `Method` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/method.json\";", + "COPY `Module` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/module.json\";", + "COPY `Parameter` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/parameter.json\";", + "COPY `Repository` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/repository.json\";", + "COPY `Scope` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/scope.json\";", + "COPY `SourceRoot` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/sourceroot.json\";", + "COPY `SyntaxCapture` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/syntaxcapture.json\";", + "COPY `Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/contains.json\";", + "COPY `Declares` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/declares.json\";", + "COPY `Defines` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/defines.json\";", + "COPY `DerivedFrom` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/derivedfrom.json\";", + "COPY `EvidencedBy` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/evidencedby.json\";", + "COPY `HasParameter` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/hasparameter.json\";", + "COPY `HasScope` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/hasscope.json\";", + "COPY `SyntaxChild` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/syntaxchild.json\";", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_contains__class__contains.csv\" (header=true, from=\"Class\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_contains__file__contains.csv\" (header=true, from=\"File\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_contains__method__contains.csv\" (header=true, from=\"Method\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_contains__module__contains.csv\" (header=true, from=\"Module\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_contains__repository__contains.csv\" (header=true, from=\"Repository\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_contains__scope__contains.csv\" (header=true, from=\"Scope\", to=\"Contains\");", + "COPY `FROM_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_contains__sourceroot__contains.csv\" (header=true, from=\"SourceRoot\", to=\"Contains\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_contains__contains__class.csv\" (header=true, from=\"Contains\", to=\"Class\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_contains__contains__file.csv\" (header=true, from=\"Contains\", to=\"File\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_contains__contains__literal.csv\" (header=true, from=\"Contains\", to=\"Literal\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_contains__contains__method.csv\" (header=true, from=\"Contains\", to=\"Method\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_contains__contains__module.csv\" (header=true, from=\"Contains\", to=\"Module\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_contains__contains__scope.csv\" (header=true, from=\"Contains\", to=\"Scope\");", + "COPY `TO_Contains` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_contains__contains__sourceroot.csv\" (header=true, from=\"Contains\", to=\"SourceRoot\");", + "COPY `FROM_Declares` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_declares__class__declares.csv\" (header=true, from=\"Class\", to=\"Declares\");", + "COPY `FROM_Declares` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_declares__module__declares.csv\" (header=true, from=\"Module\", to=\"Declares\");", + "COPY `TO_Declares` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_declares__declares__class.csv\" (header=true, from=\"Declares\", to=\"Class\");", + "COPY `TO_Declares` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_declares__declares__method.csv\" (header=true, from=\"Declares\", to=\"Method\");", + "COPY `FROM_Defines` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_defines__class__defines.csv\" (header=true, from=\"Class\", to=\"Defines\");", + "COPY `FROM_Defines` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_defines__module__defines.csv\" (header=true, from=\"Module\", to=\"Defines\");", + "COPY `TO_Defines` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_defines__defines__class.csv\" (header=true, from=\"Defines\", to=\"Class\");", + "COPY `TO_Defines` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_defines__defines__method.csv\" (header=true, from=\"Defines\", to=\"Method\");", + "COPY `FROM_DerivedFrom` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_derivedfrom__class__derivedfrom.csv\" (header=true, from=\"Class\", to=\"DerivedFrom\");", + "COPY `FROM_DerivedFrom` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_derivedfrom__literal__derivedfrom.csv\" (header=true, from=\"Literal\", to=\"DerivedFrom\");", + "COPY `FROM_DerivedFrom` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_derivedfrom__method__derivedfrom.csv\" (header=true, from=\"Method\", to=\"DerivedFrom\");", + "COPY `FROM_DerivedFrom` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_derivedfrom__parameter__derivedfrom.csv\" (header=true, from=\"Parameter\", to=\"DerivedFrom\");", + "COPY `TO_DerivedFrom` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_derivedfrom__derivedfrom__syntaxcapture.csv\" (header=true, from=\"DerivedFrom\", to=\"SyntaxCapture\");", + "COPY `FROM_EvidencedBy` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_evidencedby__file__evidencedby.csv\" (header=true, from=\"File\", to=\"EvidencedBy\");", + "COPY `TO_EvidencedBy` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_evidencedby__evidencedby__syntaxcapture.csv\" (header=true, from=\"EvidencedBy\", to=\"SyntaxCapture\");", + "COPY `FROM_HasParameter` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_hasparameter__method__hasparameter.csv\" (header=true, from=\"Method\", to=\"HasParameter\");", + "COPY `TO_HasParameter` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_hasparameter__hasparameter__parameter.csv\" (header=true, from=\"HasParameter\", to=\"Parameter\");", + "COPY `FROM_HasScope` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_hasscope__class__hasscope.csv\" (header=true, from=\"Class\", to=\"HasScope\");", + "COPY `FROM_HasScope` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_hasscope__method__hasscope.csv\" (header=true, from=\"Method\", to=\"HasScope\");", + "COPY `FROM_HasScope` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_hasscope__module__hasscope.csv\" (header=true, from=\"Module\", to=\"HasScope\");", + "COPY `TO_HasScope` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_hasscope__hasscope__scope.csv\" (header=true, from=\"HasScope\", to=\"Scope\");", + "COPY `FROM_SyntaxChild` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/from_syntaxchild__syntaxcapture__syntaxchild.csv\" (header=true, from=\"SyntaxCapture\", to=\"SyntaxChild\");", + "COPY `TO_SyntaxChild` FROM \"C:/Users/rcha0053/q158/.codebaseGraph/direct-runs/run-35548-1793189618920190500-0/staging/to_syntaxchild__syntaxchild__syntaxcapture.csv\" (header=true, from=\"SyntaxChild\", to=\"SyntaxCapture\");" + ], + "database_written": true, + "diagnostics": [], + "diff": { + "added": [ + "service.py" + ], + "deleted": [], + "force_rebuild": true, + "modified": [], + "unchanged": [] + }, + "edge_rows": 35, + "graph_build_digest": "837f549cc4955b8540b0fb7fe7819c19c35c5f9f53a85310ad7ecfcbbaeb7ab8", + "graph_summary": { + "edge_count": 35, + "node_count": 23 + }, + "maintenance": { + "bytes": { + "by_category": { + "active_cache": { + "allocated_bytes": null, + "logical_bytes": null + }, + "active_graph": { + "allocated_bytes": null, + "logical_bytes": 5907433 + }, + "artifact_temporary": { + "allocated_bytes": null, + "logical_bytes": null + }, + "coordination": { + "allocated_bytes": null, + "logical_bytes": 22101 + }, + "leased_generation": { + "allocated_bytes": null, + "logical_bytes": null + }, + "legacy_staging": { + "allocated_bytes": null, + "logical_bytes": null + }, + "live_run": { + "allocated_bytes": null, + "logical_bytes": 70884 + }, + "recovery_evidence": { + "allocated_bytes": null, + "logical_bytes": null + }, + "retired_direct": { + "allocated_bytes": null, + "logical_bytes": null + }, + "unknown": { + "allocated_bytes": null, + "logical_bytes": null + } + }, + "deferred": { + "allocated_bytes": null, + "logical_bytes": 70884 + }, + "potential_reclamation": { + "allocated_bytes": null, + "logical_bytes": null + }, + "retained": { + "allocated_bytes": null, + "logical_bytes": 5929534 + }, + "total": { + "allocated_bytes": null, + "logical_bytes": null + }, + "unknown": { + "allocated_bytes": null, + "logical_bytes": null + } + }, + "errors": [], + "inventory_status": null, + "last_attempt": { + "attempted_entries": 19, + "continuation_phase": null, + "deleted_entries": 0, + "finished_at_unix_ms": 1793232119881, + "reclaimed_allocated_bytes": null, + "started_at_unix_ms": 1793232119699, + "status": "partial" + }, + "measurement_complete": false, + "observation_age_ms": 89, + "observation_complete": false, + "observed_at_unix_ms": 1793232119792, + "pending": true, + "reasons": [ + "maintenance_measurement_partial_lower_bounds", + "active_cache_references_incomplete", + "allocated_bytes_unavailable", + "unknown_entries_retained", + "reference_in_use", + "maintenance_observation_incomplete", + "maintenance_stopped" + ], + "requested": true, + "running": false + }, + "materialized_entries": { + "service.py": { + "artifact_key": "d60f1dfe65c840fde8ea2fe8ec4f1dc7c6767ca267ae57b51df014d9a1994e31", + "content_hash": "778d750c2381edc466065d2a9e4d092207ed7c4e7a431820459e479741544b8d", + "edge_count": 35, + "language": "python", + "materialized_at": "unix:0", + "node_count": 23, + "partition_id": "567053110c31f6448b8e", + "path": "service.py" + } + }, + "node_rows": 23, + "pending_runs": 0, + "phase_high_water_marks": { + "database_write": 165961728, + "parse": 181097, + "search_index": 3904, + "staging": 52160 + }, + "phase_timings": { + "database_write_seconds": 4639.0285695, + "graph_build_seconds": 0.0007942, + "native_cli_seconds": 42496.4723921, + "parse_seconds": 0.0234003, + "scan_seconds": 0.8446147, + "search_index_seconds": 0.035712, + "staging_seconds": 37856.1588595 + }, + "progress_events": [], + "rebuilt_entries": { + "service.py": { + "artifact_key": "d60f1dfe65c840fde8ea2fe8ec4f1dc7c6767ca267ae57b51df014d9a1994e31", + "content_hash": "778d750c2381edc466065d2a9e4d092207ed7c4e7a431820459e479741544b8d", + "edge_count": 35, + "language": "python", + "materialized_at": "unix:0", + "node_count": 23, + "partition_id": "567053110c31f6448b8e", + "path": "service.py" + } + }, + "search_backend": { + "backend": "disk_bm25_v1", + "document_count": 18, + "files": { + "search.doc_lengths.bin": "c3c85b234908a3de7e853acb34a1d5e8f8d583f7eded1c1451d198ed6c2413d6", + "search.document_offsets.bin": "238cdb3ac0da749baf840a6be17ccb98074021b1397b7ef4e2739a58a3b1c47a", + "search.documents.bin": "d706adda85c2b73fe26efae204e63044030ea525c95359fb5c730c7b715b5737", + "search.lexicon.bin": "08dff6fd1fba4dc7d1e2b0d7556abb44e723825615b63590a7cece51e84b4792", + "search.meta.json": "497199b943c4a9f1da129d9e481af45f236b012d1c35421d4ff97bc64b6194e1", + "search.postings.bin": "bcc1ad7d503cee5ffe0ad6583e0386d1b46b1b834e25ef90d7400b1b017153fe" + }, + "format_version": 1, + "term_count": 24, + "total_tokens": 93 + }, + "skipped": false, + "snapshots": { + "service.py": { + "absolute_path": "\\\\?\\C:\\Users\\rcha0053\\q158\\.codebaseGraph\\direct-runs\\run-35548-1793189618920190500-0\\staging\\source-snapshots\\56\\567053110c31f6448b8e-778d750c2381edc466065d2a9e4d092207ed7c4e7a431820459e479741544b8d.snapshot", + "byte_len": 63, + "content_hash": "778d750c2381edc466065d2a9e4d092207ed7c4e7a431820459e479741544b8d", + "language": "python", + "path": "service.py" + } + }, + "spill_bytes": 80440, + "storage_format": "direct" +} +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-build.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-build.log new file mode 100644 index 00000000..ca647e16 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-build.log @@ -0,0 +1,2 @@ +build guardian READY timed out; retain \\?\C:\Users\rcha0053\pr158-qualification\smoke-repo\.codebaseGraph\.direct-workers-b70a25bbaa526988\phases\phase-24060-2\.lifecycle-a584f35a3a7ca10513116149ada6f8f27315fc9dcf4cd78368bd9ef73c33f870; cleanup failed: containment_unknown: protected phase registry \\?\C:\Users\rcha0053\pr158-qualification\smoke-repo\.codebaseGraph\.direct-workers-b70a25bbaa526988\phases is not proven empty; containment_unknown: protected phase registry \\?\C:\Users\rcha0053\pr158-qualification\smoke-repo\.codebaseGraph\.direct-workers-b70a25bbaa526988\phases is not proven empty +NATIVE_EXIT_STATUS=1 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-search-guarded.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-search-guarded.log new file mode 100644 index 00000000..53e86b03 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-search-guarded.log @@ -0,0 +1,2 @@ +{"budget":600,"layer":"semantic","limit":3,"profile":"brief","query":"SampleService","results":[{"context":[{"direction":"outgoing","evidence_path":{"chain":"Contains:Class:dc9c607726f0132e869f->Scope:52a3fae21e9583a0105e"},"id":"Scope:52a3fae21e9583a0105e","label":"SampleService scope","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":3,"line_start":1},"summary":"Scope for SampleService","type":"Scope"},{"direction":"outgoing","evidence_path":{"chain":"Contains:Class:dc9c607726f0132e869f->Method:c63f583febf013789d1f"},"id":"Method:c63f583febf013789d1f","label":"helper","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":3,"line_start":2},"type":"Method"},{"direction":"incoming","evidence_path":{"chain":"Contains:Module:f7c278d55d3ffab5e85b->Class:dc9c607726f0132e869f"},"id":"Module:f7c278d55d3ffab5e85b","label":"service","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":4,"line_start":1},"type":"Module"}],"id":"Class:dc9c607726f0132e869f","label":"SampleService","layer":"semantic","path":"service.py","qualified_name":"service.SampleService","rank_score":1.0,"score":2.047141,"score_components":{"entity":1.0,"fts":2.047141,"lexical":1.0},"span":{"line_end":3,"line_start":1},"summary":"SampleService","type":"Class"},{"context":[{"direction":"outgoing","evidence_path":{"chain":"Contains:Method:c63f583febf013789d1f->Scope:3ca9159c58a3aea09ed5"},"id":"Scope:3ca9159c58a3aea09ed5","label":"helper scope","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":3,"line_start":2},"summary":"Scope for helper","type":"Scope"},{"direction":"outgoing","evidence_path":{"chain":"Contains:Method:c63f583febf013789d1f->Literal:a723a93b9b10d7db2ba0"},"id":"Literal:a723a93b9b10d7db2ba0","label":"1","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":3,"line_start":3},"type":"Literal"},{"direction":"incoming","evidence_path":{"chain":"Contains:Scope:52a3fae21e9583a0105e->Method:c63f583febf013789d1f"},"id":"Scope:52a3fae21e9583a0105e","label":"SampleService scope","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":3,"line_start":1},"summary":"Scope for SampleService","type":"Scope"}],"id":"Method:c63f583febf013789d1f","label":"helper","layer":"semantic","path":"service.py","qualified_name":"service.SampleService.helper","rank_score":0.853417,"score":1.256269,"score_components":{"entity":1.0,"fts":1.256269,"lexical":0.8},"span":{"line_end":3,"line_start":2},"summary":"helper","type":"Method"}]} +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-search-short.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-search-short.log new file mode 100644 index 00000000..53e86b03 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-search-short.log @@ -0,0 +1,2 @@ +{"budget":600,"layer":"semantic","limit":3,"profile":"brief","query":"SampleService","results":[{"context":[{"direction":"outgoing","evidence_path":{"chain":"Contains:Class:dc9c607726f0132e869f->Scope:52a3fae21e9583a0105e"},"id":"Scope:52a3fae21e9583a0105e","label":"SampleService scope","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":3,"line_start":1},"summary":"Scope for SampleService","type":"Scope"},{"direction":"outgoing","evidence_path":{"chain":"Contains:Class:dc9c607726f0132e869f->Method:c63f583febf013789d1f"},"id":"Method:c63f583febf013789d1f","label":"helper","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":3,"line_start":2},"type":"Method"},{"direction":"incoming","evidence_path":{"chain":"Contains:Module:f7c278d55d3ffab5e85b->Class:dc9c607726f0132e869f"},"id":"Module:f7c278d55d3ffab5e85b","label":"service","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":4,"line_start":1},"type":"Module"}],"id":"Class:dc9c607726f0132e869f","label":"SampleService","layer":"semantic","path":"service.py","qualified_name":"service.SampleService","rank_score":1.0,"score":2.047141,"score_components":{"entity":1.0,"fts":2.047141,"lexical":1.0},"span":{"line_end":3,"line_start":1},"summary":"SampleService","type":"Class"},{"context":[{"direction":"outgoing","evidence_path":{"chain":"Contains:Method:c63f583febf013789d1f->Scope:3ca9159c58a3aea09ed5"},"id":"Scope:3ca9159c58a3aea09ed5","label":"helper scope","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":3,"line_start":2},"summary":"Scope for helper","type":"Scope"},{"direction":"outgoing","evidence_path":{"chain":"Contains:Method:c63f583febf013789d1f->Literal:a723a93b9b10d7db2ba0"},"id":"Literal:a723a93b9b10d7db2ba0","label":"1","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":3,"line_start":3},"type":"Literal"},{"direction":"incoming","evidence_path":{"chain":"Contains:Scope:52a3fae21e9583a0105e->Method:c63f583febf013789d1f"},"id":"Scope:52a3fae21e9583a0105e","label":"SampleService scope","layer":"semantic","path":"service.py","relation":"Contains","span":{"line_end":3,"line_start":1},"summary":"Scope for SampleService","type":"Scope"}],"id":"Method:c63f583febf013789d1f","label":"helper","layer":"semantic","path":"service.py","qualified_name":"service.SampleService.helper","rank_score":0.853417,"score":1.256269,"score_components":{"entity":1.0,"fts":1.256269,"lexical":0.8},"span":{"line_end":3,"line_start":2},"summary":"helper","type":"Method"}]} +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-search.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-search.log new file mode 100644 index 00000000..45239ee1 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-graph-search.log @@ -0,0 +1,2 @@ +failed to open graph database \\?\C:\Users\rcha0053\pr158-qualification\smoke-repo\.codebaseGraph\smoke-repo_graph.ldb: Cannot create an empty database under READ ONLY mode. +NATIVE_EXIT_STATUS=1 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-help.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-help.log new file mode 100644 index 00000000..e6b4592a --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-help.log @@ -0,0 +1,25 @@ +codebase-graph native CLI + +USAGE: + codebase-graph [options] + +COMMANDS: + install Perform first-time graph setup and write .codebaseGraph/config.json + reinstall Remove existing graph state and run install again + uninstall Remove repo graph state, instructions, and MCP registrations + agent-hooks Install, remove, verify, or run repository agent-loop hooks + build Materialize a graph through the Rust native engine + plan Preview files that would rebuild, delete, skip, or ignore + watch Watch for file changes and refresh after a debounce window + check-health Check whether the native graph database is readable + schema Return ontology schema, indexes, profiles, and helpers + syntax Return a language syntax catalog + query-helpers Return named read-only graph query helpers + codebase-architecture-queries Return the architecture-discovery query catalog + codebase-search Search the code graph with compact context + codebase-context Return compact graph context + graph-query Execute a restricted read-only graph query + mcp Serve codebaseGraph MCP over stdio or HTTP + +Run `codebase-graph --help` for command options. +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-short-build-binding.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-short-build-binding.json new file mode 100644 index 00000000..16d1003c --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-short-build-binding.json @@ -0,0 +1,26 @@ +{ + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/installed/bin/codebase-graph.exe\" build --repo-root \"C:/Users/rcha0053/q158\" --mode full --no-git --single-thread --max-parallelism 1 --json > \"C:/Users/rcha0053/pr158-qualification/installed-graph-build-short.log\" 2>&1", + "cwd": "C:\\Users\\rcha0053\\q158", + "launch_observed_at": "2026-10-28T12:13:32.657Z", + "source": "retained root session tool-call details", + "env": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:59741", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:59741", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:59741", + "HTTPS_PROXY": "http://127.0.0.1:59741", + "HTTP_PROXY": "http://127.0.0.1:59741", + "ALL_PROXY": "http://127.0.0.1:59741", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\q158home", + "HOME": "C:\\Users\\rcha0053\\q158home" + }, + "profile_before": "fresh directory created only after assert not exists; retained launch code and tool result", + "before_evidence": "short_profile=home/q158home; assert not short_profile.exists(); short_profile.mkdir()", + "native_exit": 0, + "observed_at": "2026-10-29T01:10:08.523341+00:00", + "barrier_limit": "rejecting proxy59741 observed in prior native negative/positive runs. Kernel restart lost listener; uninterrupted listener lifetime across this long build cannot be established. No build request was recorded before restart. Current installed build result/cache is valid but uninterrupted runtime downloader block for this build is not claimed.", + "not_a_benchmark": "host wall-time jumps/suspension; preserve raw phase durations without performance conclusions" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-short-cache-audit.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-short-cache-audit.json new file mode 100644 index 00000000..0293fb1b --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/installed-short-cache-audit.json @@ -0,0 +1,14 @@ +[ + { + "extension": "json", + "exists": true, + "actual_sha256": "bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f", + "expected_sha256": "bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f" + }, + { + "extension": "fts", + "exists": false, + "actual_sha256": null, + "expected_sha256": "7f82059c8149bb7851420a9bfd0c46859e92efaeda0bcd5c65418d8f174edac4" + } +] \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/ladybug-shared-download.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/ladybug-shared-download.json new file mode 100644 index 00000000..934b32c6 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/ladybug-shared-download.json @@ -0,0 +1,36 @@ +{ + "url": "https://api.github.com/repos/LadybugDB/ladybug/releases/assets/494781471", + "id": 494781471, + "node_id": "RA_kwDOP-FdGM4dfcQf", + "name": "liblbug-windows-x86_64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 8280690, + "digest": "sha256:8ecb60bb5b3bec7ff263cd23a622c0892d7f605c42af19b4e06d75b1604bf612", + "download_count": 313, + "created_at": "2026-07-30T02:00:19Z", + "updated_at": "2026-07-30T02:00:21Z", + "browser_download_url": "https://github.com/LadybugDB/ladybug/releases/download/v0.19.0/liblbug-windows-x86_64.zip" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/ladybug-shared-imports.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/ladybug-shared-imports.log new file mode 100644 index 00000000..f47209aa --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/ladybug-shared-imports.log @@ -0,0 +1,38 @@ +Microsoft (R) COFF/PE Dumper Version 14.39.33523.0 +Copyright (C) Microsoft Corporation. All rights reserved. + + +Dump of file C:\Users\rcha0053\pr158-qualification\ladybug-shared-0.19.0\lbug_shared.dll + +File Type: DLL + + Image has the following dependencies: + + libssl-3-x64.dll + libcrypto-3-x64.dll + KERNEL32.dll + MSVCP140.dll + WS2_32.dll + CRYPT32.dll + VCRUNTIME140.dll + VCRUNTIME140_1.dll + api-ms-win-crt-runtime-l1-1-0.dll + api-ms-win-crt-math-l1-1-0.dll + api-ms-win-crt-heap-l1-1-0.dll + api-ms-win-crt-locale-l1-1-0.dll + api-ms-win-crt-string-l1-1-0.dll + api-ms-win-crt-convert-l1-1-0.dll + api-ms-win-crt-time-l1-1-0.dll + api-ms-win-crt-stdio-l1-1-0.dll + api-ms-win-crt-environment-l1-1-0.dll + api-ms-win-crt-filesystem-l1-1-0.dll + api-ms-win-crt-utility-l1-1-0.dll + + Summary + + 46000 .data + 6A000 .pdata + 89B000 .rdata + B000 .reloc + 1000 .rsrc + 9F7000 .text diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/loaded-module-audit.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/loaded-module-audit.json new file mode 100644 index 00000000..5d13902a --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/loaded-module-audit.json @@ -0,0 +1,38 @@ +[ + { + "name": "lbug_shared.dll", + "path": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0\\lbug_shared.dll", + "sha256": "5b28bf744580c3a47aaeee7ece40a3511e2141268def5207e9beffe236c9b512", + "size": 20199424 + }, + { + "name": "libssl-3-x64.dll", + "path": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin\\libssl-3-x64.dll", + "sha256": "4158ad85699d9c5428b62778883b16b6c21b3b7da11fe60a0cc24ea37687a9fd", + "size": 1247744 + }, + { + "name": "libcrypto-3-x64.dll", + "path": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin\\libcrypto-3-x64.dll", + "sha256": "124c5f40a6cf0e642f9d92784dd66314fd548b4fdf93c543bf478e71e1209f9d", + "size": 6459392 + }, + { + "name": "MSVCP140.dll", + "path": "C:\\WINDOWS\\SYSTEM32\\MSVCP140.dll", + "sha256": "def46aa6a8f72f27bafac0c43334419486a4d1dcdb6c479a8ef7034b3e1fa4cb", + "size": 553552 + }, + { + "name": "VCRUNTIME140.dll", + "path": "C:\\WINDOWS\\SYSTEM32\\VCRUNTIME140.dll", + "sha256": "184146852727a9db4eea06178716bec3cdbb1015c911f6b0f915b184ad7775b2", + "size": 123472 + }, + { + "name": "VCRUNTIME140_1.dll", + "path": "C:\\WINDOWS\\SYSTEM32\\VCRUNTIME140_1.dll", + "sha256": "e6bfb3662ab4b1969a73441dbe35c96d51441b6bff8cf1fe7430bd5b246ca605", + "size": 47264 + } +] \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-compiler-install-finding.md b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-compiler-install-finding.md new file mode 100644 index 00000000..cf86cbdf --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-compiler-install-finding.md @@ -0,0 +1,18 @@ +# Missing compiler source-install negative + +- **PASS (expected negative):** Cargo exited `101` after `27.953` seconds. +- Exact PR158 HEAD: `47808ac34bcff79882abee4ab796c16c0621ed05`. Worktree clean before and after; no source changes. +- Failure: `link-cplusplus v1.0.12 custom build -> cc-rs ToolNotFound -> explicit missing CXX cl.exe (Windows os error 3)`. The log shows `CXX = Some(C:\Users\rcha0053\pr158-qualification\missing-compiler\cl.exe)` and `failed to find tool`. +- No installed EXE under `C:\Users\rcha0053\pr158-qualification\negative-compiler-install`; no `codebase-graph.exe` in the negative release target. The compiler path remained nonexistent. +- One command: `cargo install --path 'C:/Users/rcha0053/Repositories/cbg-pr158' --locked --offline --root 'C:/Users/rcha0053/pr158-qualification/negative-compiler-install' --bin codebase-graph > 'C:/Users/rcha0053/pr158-qualification/missing-compiler-install.log' 2>&1` +- Start (UTC): `2026-10-28T11:45:33.275761+00:00`. Completion observed (UTC): `2026-10-28T11:46:12.690109+00:00`. +- Environment assumption: only prerequisite values from `C:\Users\rcha0053\pr158-qualification\native-shared-environment.json` were loaded. Overrides: `CARGO_TARGET_DIR=C:\Users\rcha0053\pr158-qualification\negative-compiler-target`; `CC=CXX=C:\Users\rcha0053\pr158-qualification\missing-compiler\cl.exe`. `CARGO_HOME` was retained and `CARGO_BUILD_JOBS=2`. The configured Git Bash was used. +- `--locked --offline` was enforced. No download lines or compiler fallback were observed. The root native target was not used. +- Scope: one missing-compiler assertion only. This does **not** establish missing runtime or native-library categories. No tools installed, DLLs copied, services changed, or positive/full suite run. + +## Evidence + +- Full stdout/stderr: `C:\Users\rcha0053\pr158-qualification\missing-compiler-install.log` +- Command, environment, timing, exit, and no-EXE result: `C:\Users\rcha0053\pr158-qualification\missing-compiler-install-result.json` + +Wiki recall was completed before repository conclusions. No durable wiki memory was created: this is transient PR qualification evidence. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-compiler-install-result.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-compiler-install-result.json new file mode 100644 index 00000000..2445dc26 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-compiler-install-result.json @@ -0,0 +1,74 @@ +{ + "assertion": "missing-compiler-source-install", + "expected_head": "47808ac34bcff79882abee4ab796c16c0621ed05", + "worktree": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "command_argv": [ + "cargo", + "install", + "--path", + "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "--locked", + "--offline", + "--root", + "C:\\Users\\rcha0053\\pr158-qualification\\negative-compiler-install", + "--bin", + "codebase-graph" + ], + "bash_command": "cargo install --path 'C:/Users/rcha0053/Repositories/cbg-pr158' --locked --offline --root 'C:/Users/rcha0053/pr158-qualification/negative-compiler-install' --bin codebase-graph > 'C:/Users/rcha0053/pr158-qualification/missing-compiler-install.log' 2>&1", + "env_source": "C:\\Users\\rcha0053\\pr158-qualification\\native-shared-environment.json", + "env": { + "PRIME_AGENT_BASH_SHELL": "C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Git\\bin\\bash.exe", + "PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX64\\x64;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\VC\\VCPackages;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\TestWindow;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\bin\\Roslyn;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Team Tools\\DiagnosticsHub\\Collector;C:\\Program Files (x86)\\Windows Kits\\10\\bin\\10.0.22621.0\\\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\bin\\\\x64;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\\\MSBuild\\Current\\Bin\\amd64;C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\Tools\\;C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Git\\mingw64\\bin;C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Git\\usr\\bin;C:\\Users\\rcha0053\\bin;C:\\Users\\rcha0053\\pr158-qualification\\rust-1.96.0\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files (x86)\\Lithnet\\Lithnet.MpUpdate;%JAVA_HOME%\\bin;C:\\Program Files\\dotnet\\;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Docker\\Docker\\resources\\bin;C:\\Program Files\\NVIDIA Corporation\\NVIDIA app\\NvDLISR;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\WSL\\;C:\\Users\\rcha0053\\.local\\bin;C:\\Users\\rcha0053\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\rcha0053\\AppData\\Local\\GitHubDesktop\\bin;C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Git\\cmd;C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Microsoft VS Code\\bin\\copilot-shim;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\Ninja;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\VC\\Linux\\bin\\ConnectionManagerExe;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\vcpkg", + "LIB": "C:\\Users\\rcha0053\\pr158-qualification\\openssl-link;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\ATLMFC\\lib\\x64;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\lib\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.22621.0\\ucrt\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\\\lib\\10.0.22621.0\\\\um\\x64", + "INCLUDE": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\include;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\ATLMFC\\include;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\VS\\include;C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.22621.0\\ucrt;C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22621.0\\\\um;C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22621.0\\\\shared;C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22621.0\\\\winrt;C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22621.0\\\\cppwinrt", + "LIBPATH": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\ATLMFC\\lib\\x64;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\lib\\x64;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\lib\\x86\\store\\references;C:\\Program Files (x86)\\Windows Kits\\10\\UnionMetadata\\10.0.22621.0;C:\\Program Files (x86)\\Windows Kits\\10\\References\\10.0.22621.0;C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319", + "VCToolsInstallDir": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\", + "WindowsSdkDir": "C:\\Program Files (x86)\\Windows Kits\\10\\", + "WindowsSDKVersion": "10.0.22621.0\\", + "VCINSTALLDIR": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\", + "VSINSTALLDIR": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\", + "CARGO_HOME": "C:\\Users\\rcha0053\\pr158-qualification\\cargo-home", + "CARGO_TARGET_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\negative-compiler-target", + "LBUG_LIBRARY_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0", + "LBUG_INCLUDE_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0", + "LIBCLANG_PATH": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin", + "CARGO_TARGET_X86_64_PC_WINDOWS_MSVC_LINKER": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\bin\\Hostx64\\x64\\link.exe", + "CC": "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler\\cl.exe", + "CXX": "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler\\cl.exe", + "CARGO_BUILD_JOBS": "2", + "LBUG_SHARED": "1", + "OPENSSL_ROOT_DIR": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library", + "CMAKE_PREFIX_PATH": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library" + }, + "started_utc": "2026-10-28T11:45:33.275761+00:00", + "finished_utc": "2026-10-28T11:46:12.690109+00:00", + "exit_code": 101, + "no_installed_exe": true, + "log": "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler-install.log", + "finished_time_basis": "completion notification observed", + "duration_seconds": 27.95300000000134, + "expected_negative_passed": true, + "failure_identity": "link-cplusplus v1.0.12 custom build -> cc-rs ToolNotFound -> explicit missing CXX cl.exe (Windows os error 3)", + "missing_compiler_exists_before": false, + "missing_compiler_exists_after": false, + "installed_exes": [], + "expected_installed_exe": "C:\\Users\\rcha0053\\pr158-qualification\\negative-compiler-install\\bin\\codebase-graph.exe", + "expected_installed_exe_exists": false, + "product_target_exe_exists": false, + "head_before": "47808ac34bcff79882abee4ab796c16c0621ed05", + "head_after": "47808ac34bcff79882abee4ab796c16c0621ed05", + "git_status_porcelain_before": "", + "git_status_porcelain_after": "", + "worktree_unchanged": true, + "log_sha256": "de2c40a4305d8087a5546c45ddd9318c84567ad55e8d2f253cd00ab09734ed0c", + "offline": true, + "download_lines_observed": false, + "compiler_fallback_observed": false, + "prerequisite_env_overrides": { + "CARGO_TARGET_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\negative-compiler-target", + "CC": "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler\\cl.exe", + "CXX": "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler\\cl.exe" + }, + "scope": "One expected-negative compiler assertion only; no missing-runtime or missing-native-library category qualification.", + "durable_memory_decision": "No wiki memory recorded: this is transient PR qualification evidence, not a new reusable repository fact." +} diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-compiler-install.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-compiler-install.log new file mode 100644 index 00000000..e6dfe189 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-compiler-install.log @@ -0,0 +1,71 @@ + Installing codebase-graph v4.0.0 (C:\Users\rcha0053\Repositories\cbg-pr158) + Compiling shlex v2.0.1 + Compiling find-msvc-tools v0.1.9 + Compiling tree-sitter-language v0.1.8 + Compiling cc v1.2.64 + Compiling proc-macro2 v1.0.106 + Compiling zmij v1.0.21 + Compiling quote v1.0.45 + Compiling unicode-ident v1.0.24 + Compiling windows-link v0.2.1 + Compiling windows-sys v0.61.2 + Compiling syn v2.0.117 + Compiling serde_core v1.0.228 + Compiling rustversion v1.0.22 + Compiling version_check v0.9.5 + Compiling generic-array v0.14.7 + Compiling winapi-util v0.1.11 + Compiling link-cplusplus v1.0.12 + Compiling equivalent v1.0.2 + Compiling hashbrown v0.15.5 + Compiling scratch v1.0.9 + Compiling memchr v2.8.2 + Compiling serde_json v1.0.150 + Compiling indexmap v2.7.1 +warning: link-cplusplus@1.0.12: Compiler family detection failed due to error: ToolNotFound: failed to find tool "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler\\cl.exe": The system cannot find the path specified. (os error 3) (see https://docs.rs/cc/latest/cc/#compile-time-requirements for help) +error: failed to run custom build command for `link-cplusplus v1.0.12` + +Caused by: + process didn't exit successfully: `C:\Users\rcha0053\pr158-qualification\negative-compiler-target\release\build\link-cplusplus-507b7e72e69d22ab\build-script-build` (exit code: 1) + --- stdout + cargo:rerun-if-changed=build.rs + cargo:rerun-if-env-changed=CC_FORCE_DISABLE + CC_FORCE_DISABLE = None + cargo:rerun-if-env-changed=VCINSTALLDIR + VCINSTALLDIR = Some(C:\Program Files\Microsoft Visual Studio\2022\Community\VC\) + cargo:rerun-if-env-changed=VSCMD_ARG_TGT_ARCH + VSCMD_ARG_TGT_ARCH = None + PATH = Some(C:\Users\rcha0053\pr158-qualification\negative-compiler-target\release;C:\Users\rcha0053\pr158-qualification\negative-compiler-target\release\deps;C:\Users\rcha0053\pr158-qualification\rust-1.96.0\lib\rustlib\x86_64-pc-windows-msvc\lib;C:\Users\rcha0053\AppData\Local\Programs\Git\mingw64\bin;C:\Users\rcha0053\AppData\Local\Programs\Git\usr\bin;C:\Users\rcha0053\bin;C:\Users\rcha0053\pr158-qualification\ladybug-shared-0.19.0;C:\Users\rcha0053\AppData\Local\anaconda3\Library\bin;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\bin\HostX64\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCPackages;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\bin\Roslyn;C:\Program Files\Microsoft Visual Studio\2022\Community\Team Tools\DiagnosticsHub\Collector;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\\x64;C:\Program Files (x86)\Windows Kits\10\bin\\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\\MSBuild\Current\Bin\amd64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\;C:\Users\rcha0053\AppData\Local\Programs\Git\mingw64\bin;C:\Users\rcha0053\AppData\Local\Programs\Git\usr\bin;C:\Users\rcha0053\bin;C:\Users\rcha0053\pr158-qualification\rust-1.96.0\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Lithnet\Lithnet.MpUpdate;%JAVA_HOME%\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Docker\Docker\resources\bin;C:\Program Files\NVIDIA Corporation\NVIDIA app\NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\WSL\;C:\Users\rcha0053\.local\bin;C:\Users\rcha0053\AppData\Local\Microsoft\WindowsApps;C:\Users\rcha0053\AppData\Local\GitHubDesktop\bin;C:\Users\rcha0053\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\rcha0053\AppData\Local\Programs\Git\cmd;C:\Users\rcha0053\AppData\Local\Programs\Microsoft VS Code\bin\copilot-shim;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\Linux\bin\ConnectionManagerExe;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\vcpkg) + PATH = Some(C:\Users\rcha0053\pr158-qualification\negative-compiler-target\release;C:\Users\rcha0053\pr158-qualification\negative-compiler-target\release\deps;C:\Users\rcha0053\pr158-qualification\rust-1.96.0\lib\rustlib\x86_64-pc-windows-msvc\lib;C:\Users\rcha0053\AppData\Local\Programs\Git\mingw64\bin;C:\Users\rcha0053\AppData\Local\Programs\Git\usr\bin;C:\Users\rcha0053\bin;C:\Users\rcha0053\pr158-qualification\ladybug-shared-0.19.0;C:\Users\rcha0053\AppData\Local\anaconda3\Library\bin;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\bin\HostX64\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCPackages;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\bin\Roslyn;C:\Program Files\Microsoft Visual Studio\2022\Community\Team Tools\DiagnosticsHub\Collector;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\\x64;C:\Program Files (x86)\Windows Kits\10\bin\\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\\MSBuild\Current\Bin\amd64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\;C:\Users\rcha0053\AppData\Local\Programs\Git\mingw64\bin;C:\Users\rcha0053\AppData\Local\Programs\Git\usr\bin;C:\Users\rcha0053\bin;C:\Users\rcha0053\pr158-qualification\rust-1.96.0\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Lithnet\Lithnet.MpUpdate;%JAVA_HOME%\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Docker\Docker\resources\bin;C:\Program Files\NVIDIA Corporation\NVIDIA app\NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\WSL\;C:\Users\rcha0053\.local\bin;C:\Users\rcha0053\AppData\Local\Microsoft\WindowsApps;C:\Users\rcha0053\AppData\Local\GitHubDesktop\bin;C:\Users\rcha0053\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\rcha0053\AppData\Local\Programs\Git\cmd;C:\Users\rcha0053\AppData\Local\Programs\Microsoft VS Code\bin\copilot-shim;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\Linux\bin\ConnectionManagerExe;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\vcpkg) + cargo:rerun-if-env-changed=CXX_x86_64-pc-windows-msvc + CXX_x86_64-pc-windows-msvc = None + cargo:rerun-if-env-changed=CXX_x86_64_pc_windows_msvc + CXX_x86_64_pc_windows_msvc = None + cargo:rerun-if-env-changed=HOST_CXX + HOST_CXX = None + cargo:rerun-if-env-changed=CXX + CXX = Some(C:\Users\rcha0053\pr158-qualification\missing-compiler\cl.exe) + cargo:rerun-if-env-changed=CC_KNOWN_WRAPPER_CUSTOM + CC_KNOWN_WRAPPER_CUSTOM = None + cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT + cargo:warning=Compiler family detection failed due to error: ToolNotFound: failed to find tool "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler\\cl.exe": The system cannot find the path specified. (os error 3) (see https://docs.rs/cc/latest/cc/#compile-time-requirements for help) + cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS + CRATE_CC_NO_DEFAULTS = None + cargo:rerun-if-env-changed=CXXFLAGS + CXXFLAGS = None + cargo:rerun-if-env-changed=HOST_CXXFLAGS + HOST_CXXFLAGS = None + cargo:rerun-if-env-changed=CXXFLAGS_x86_64_pc_windows_msvc + CXXFLAGS_x86_64_pc_windows_msvc = None + cargo:rerun-if-env-changed=CXXFLAGS_x86_64-pc-windows-msvc + CXXFLAGS_x86_64-pc-windows-msvc = None + + --- stderr + + + error occurred in cc-rs: failed to find tool "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler\\cl.exe": The system cannot find the path specified. (os error 3) (see https://docs.rs/cc/latest/cc/#compile-time-requirements for help) + + +warning: build failed, waiting for other jobs to finish... +error: failed to compile `codebase-graph v4.0.0 (C:\Users\rcha0053\Repositories\cbg-pr158)`, intermediate artifacts can be found at `C:\Users\rcha0053\pr158-qualification\negative-compiler-target`. +To reuse those artifacts with a future compilation, set the environment variable `CARGO_BUILD_BUILD_DIR` to that path. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-native-library-install.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-native-library-install.log new file mode 100644 index 00000000..a6bd5e4c --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-native-library-install.log @@ -0,0 +1,123 @@ + Installing codebase-graph v4.0.0 (C:\Users\rcha0053\Repositories\cbg-pr158) + Compiling shlex v2.0.1 + Compiling find-msvc-tools v0.1.9 + Compiling tree-sitter-language v0.1.8 + Compiling cc v1.2.64 + Compiling proc-macro2 v1.0.106 + Compiling unicode-ident v1.0.24 + Compiling zmij v1.0.21 + Compiling quote v1.0.45 + Compiling windows-link v0.2.1 + Compiling syn v2.0.117 + Compiling windows-sys v0.61.2 + Compiling rustversion v1.0.22 + Compiling version_check v0.9.5 + Compiling serde_core v1.0.228 + Compiling generic-array v0.14.7 + Compiling winapi-util v0.1.11 + Compiling link-cplusplus v1.0.12 + Compiling equivalent v1.0.2 + Compiling serde_json v1.0.150 + Compiling hashbrown v0.15.5 + Compiling scratch v1.0.9 + Compiling memchr v2.8.2 + Compiling indexmap v2.7.1 + Compiling termcolor v1.4.1 + Compiling typenum v1.20.1 + Compiling itoa v1.0.18 + Compiling windows_x86_64_msvc v0.53.1 + Compiling cxxbridge-flags v1.0.138 + Compiling unicode-width v0.1.14 + Compiling autocfg v1.5.1 + Compiling num-traits v0.2.19 + Compiling codespan-reporting v0.11.1 + Compiling cxx v1.0.138 + Compiling libmimalloc-sys v0.1.49 + Compiling cxx-build v1.0.138 + Compiling tree-sitter v0.25.10 + Compiling aho-corasick v1.1.4 + Compiling cmake v0.1.58 + Compiling regex-syntax v0.8.11 + Compiling powerfmt v0.2.0 + Compiling libc v0.2.189 + Compiling winapi v0.3.9 + Compiling rust_decimal v1.42.1 + Compiling deranged v0.3.11 + Compiling regex-automata v0.4.14 + Compiling lbug v0.19.0 + Compiling windows-targets v0.53.5 + Compiling same-file v1.0.6 + Compiling block-buffer v0.10.4 + Compiling crypto-common v0.1.7 + Compiling cxxbridge-macro v1.0.138 + Compiling tree-sitter-python v0.25.0 + Compiling tree-sitter-fortran v0.6.0 + Compiling tree-sitter-go v0.25.0 + Compiling tree-sitter-rust v0.24.2 + Compiling tree-sitter-html v0.23.2 + Compiling tree-sitter-cpp v0.23.4 + Compiling tree-sitter-c v0.24.2 + Compiling tree-sitter-javascript v0.25.0 + Compiling tree-sitter-css v0.25.0 + Compiling tree-sitter-typescript v0.23.2 + Compiling foldhash v0.1.5 + Compiling num-conv v0.1.0 + Compiling crc-catalog v2.5.0 + Compiling arrayvec v0.7.6 + Compiling time-core v0.1.2 + Compiling cfg-if v1.0.4 + Compiling getrandom v0.3.4 + Compiling cty v0.2.2 + Compiling serde v1.0.228 + Compiling time v0.3.36 + Compiling crc v3.4.0 + Compiling digest v0.10.7 + Compiling walkdir v2.5.0 + Compiling windows-sys v0.60.2 + Compiling regex v1.12.4 + Compiling serde_derive v1.0.228 + Compiling codebase-graph v4.0.0 (C:\Users\rcha0053\Repositories\cbg-pr158) + Compiling streaming-iterator v0.1.9 + Compiling notify-types v2.0.0 + Compiling byteorder v1.5.0 + Compiling uuid v1.18.1 + Compiling cpufeatures v0.2.17 + Compiling log v0.4.32 + Compiling notify v8.2.0 + Compiling sha2 v0.10.9 + Compiling lzma-rs v0.3.0 + Compiling fs2 v0.4.3 + Compiling mimalloc v0.1.52 +warning: unused import: `crate::storage::atomic::write_json_atomically` + --> src\materialization_worker.rs:13:5 + | +13 | use crate::storage::atomic::write_json_atomically; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: function `home_dir` is never used + --> src\adapters\mcp\daemon.rs:1838:4 + | +1838 | fn home_dir() -> PathBuf { + | ^^^^^^^^ + | + = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default + +warning: function `workspace_fifo_pin_name` is never used + --> src\storage\maintenance_controls.rs:3434:15 + | +3434 | pub(crate) fn workspace_fifo_pin_name(binding: &WorkspaceOutputBinding) -> [u8; 69] { + | ^^^^^^^^^^^^^^^^^^^^^^^ + +warning: `codebase-graph` (lib) generated 3 warnings (run `cargo fix --lib -p codebase-graph` to apply 1 suggestion) +error: linking with `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64\link.exe` failed: exit code: 1181 + | + = note: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\bin\\Hostx64\\x64\\link.exe" "/NOLOGO" "C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\deps\\rustcDYDjP5\\symbols.o" "<2 object files omitted>" "C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\deps/{libcodebase_graph-0de88605376cc595,libtree_sitter_typescript-0565968a98abe9fd,libtree_sitter_rust-2997352f86d6b6b8,libtree_sitter_python-55f46a8939236fcd,libtree_sitter_javascript-3fb35da5043065f5,libtree_sitter_html-6b947f733c174b4a,libtree_sitter_go-67e4e8ccd4593639,libtree_sitter_fortran-3bffb1389ffb88e6,libtree_sitter_css-39059906cbe43c8e,libtree_sitter_cpp-83955af4175444c3,libtree_sitter_c-9ffbbbed94000ea1,liblzma_rs-4f092a2c51d87ac6,libcrc-a281d45a169525e3,libcrc_catalog-cc14c11b1783d2fe,libbyteorder-b174ceb06579dc6c,libgetrandom-99b89a957a803aa5,libmimalloc-0ce7429371166255,liblibmimalloc_sys-b1e4ce37b60bd631,libcty-4136b9652a3c758a,libtree_sitter-7f538e42684bf3c1,libregex-57fe7b8ed5c31353,libregex_automata-1af79861e88ce7f9,libaho_corasick-a0429f824dd778ae,libregex_syntax-9d51891dd7003496,libtree_sitter_language-515f0c9ba10874b3,libstreaming_iterator-8cdcfe07fdbaebf5,libnotify-e7064a43be6dad90,liblog-84436fb55acfdcc2,libwalkdir-1d4c1dc2e953c32e,libsame_file-fcdf8376804d1da8,libwinapi_util-1cf51c5bc479c02c,libwindows_sys-2243404906eb9a4b,libwindows_targets-04f1605cdb039a19,libnotify_types-7e5165756413b39d,liblbug-ce6179443c057d10,libuuid-7b8acc47da5f555d,libtime-fa3ab28cf1f3fe35,libtime_core-a8026db61ee78414,libnum_conv-7966897ba808d298,libderanged-855c4f3c6abef0ba,libpowerfmt-8673ca9405d54bba,librust_decimal-8e5110e16efee614,libarrayvec-06d5351936783508,libnum_traits-1555e3e0a7b4a2d3,libcxx-254277ff4ec722b5,libfoldhash-dbd1ec392fb74ecb,liblink_cplusplus-3ec7377b17692bf8,libwindows_sys-15c834d72c701680,libwindows_link-f5e1d57af287e9df,libsha2-dfce5100f21747bc,libcpufeatures-ba080169cc6f2c50,libcfg_if-9b7bd3f3ba0d9f37,libdigest-c16ae6c0249c2822,libblock_buffer-8ce33fc08efa5924,libcrypto_common-cca4bef244e94e61,libgeneric_array-5bc2805d07400ef7,libtypenum-b114662e1bad718c,libserde-3ce12963d7dbe12c,libfs2-e8a8997aa3ea4c73,libwinapi-6ed3e643abdf419a,libserde_json-a64d84301dc80bac,libmemchr-0b53913022e81800,libitoa-dcd03f360c8329af,libzmij-ec7adf069714a008,libserde_core-df26a720de287470}.rlib" "\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib/{libstd-*,libpanic_unwind-*,libcfg_if-*,libwindows_link-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libunwind-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "ssl.lib" "crypto.lib" "psapi.lib" "shell32.lib" "user32.lib" "advapi32.lib" "bcrypt.lib" "C:\\Users\\rcha0053\\pr158-qualification\\cargo-home\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_msvc-0.53.1\\lib\\windows.0.53.0.lib" "lbug_shared.lib" "advapi32.lib" "cfgmgr32.lib" "kernel32.lib" "user32.lib" "kernel32.lib" "kernel32.lib" "kernel32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "dbghelp.lib" "/defaultlib:msvcrt" "/NXCOMPAT" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\codebase-graph-0284add73eb39fe6\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\lbug-1b8394497d31a20b\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\cxx-74eae1ec8ca2b50f\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\link-cplusplus-2e3e621b2dc81f1a\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\libmimalloc-sys-c7c6f8ef53a50528\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\tree-sitter-6f64cdd223f42dfb\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\tree-sitter-c-f6668f3073a145b9\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\tree-sitter-cpp-b0267995413e9451\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\tree-sitter-css-8dba756ad8f75461\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\tree-sitter-fortran-3f400607b92e86e5\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\tree-sitter-go-2b24d263ebad04b9\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\tree-sitter-html-0a7a3f263ecfc7ff\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\tree-sitter-javascript-254ffafddd8d78b1\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\tree-sitter-python-82895e25d9080b8e\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\tree-sitter-rust-2f03800f8905ca7b\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\build\\tree-sitter-typescript-2ffbdd766b048b70\\out" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\missing-native-library" "/LIBPATH:C:\\Users\\rcha0053\\pr158-qualification\\cargo-home\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_msvc-0.53.1\\lib" "/OUT:C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target\\release\\deps\\codebase_graph.exe" "/OPT:REF,ICF" "/DEBUG" "/PDBALTPATH:%_PDB%" "/NATVIS:\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:\\lib\\rustlib\\etc\\libstd.natvis" + = note: some arguments are omitted. use `--verbose` to show all linker arguments + = note: LINK : fatal error LNK1181: cannot open input file 'lbug_shared.lib' + + +error: could not compile `codebase-graph` (bin "codebase-graph") due to 1 previous error +error: failed to compile `codebase-graph v4.0.0 (C:\Users\rcha0053\Repositories\cbg-pr158)`, intermediate artifacts can be found at `C:\Users\rcha0053\pr158-qualification\negative-library-target`. +To reuse those artifacts with a future compilation, set the environment variable `CARGO_BUILD_BUILD_DIR` to that path. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-native-library-result.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-native-library-result.json new file mode 100644 index 00000000..57cbb0b1 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-native-library-result.json @@ -0,0 +1,11 @@ +{ + "source_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "expected_negative_pass": true, + "exit_code": 101, + "error": "missing external lbug_shared.lib", + "configured_external_directory": "C:\\Users\\rcha0053\\pr158-qualification\\missing-native-library", + "directory_empty": true, + "no_installed_exe": true, + "log_sha256": "019ca3ae30d695dfa0fd2fbb2fa9db4d885823d9233a35cf93f054cf2bbe3358", + "scope": "explicit absent native import library supplied through declared LBUG external override; no source/compiler/runtime absence inferred" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-native-runtime.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-native-runtime.log new file mode 100644 index 00000000..79610f9a --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-native-runtime.log @@ -0,0 +1,2 @@ +NATIVE_EXIT_STATUS=-1073741515 +C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-openssl-runtime.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-openssl-runtime.log new file mode 100644 index 00000000..79610f9a --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-openssl-runtime.log @@ -0,0 +1,2 @@ +NATIVE_EXIT_STATUS=-1073741515 +C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-runtime-results.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-runtime-results.json new file mode 100644 index 00000000..3cd8fc37 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/missing-runtime-results.json @@ -0,0 +1,24 @@ +{ + "installed_exe_sha256": "95ad3781beadab8842c137a884a1e8d8f534b1d3c1af1288bffd968ba3fdf665", + "tests": [ + { + "log": "missing-native-runtime.log", + "absent_from_process_path": [ + "Ladybug shared dir", + "Anaconda native dir" + ], + "native_status": -1073741515, + "shell_status": 127 + }, + { + "log": "missing-openssl-runtime.log", + "absent_from_process_path": [ + "Anaconda native dir" + ], + "ladybug_shared_dir_retained": true, + "native_status": -1073741515, + "shell_status": 127 + } + ], + "limitation": "Windows loader fails before application startup with STATUS_DLL_NOT_FOUND; no project-specific missing-DLL diagnostic is claimed. System VC DLLs remain installed." +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-json-fts-create.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-json-fts-create.log new file mode 100644 index 00000000..b4200b67 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-json-fts-create.log @@ -0,0 +1,45 @@ +PRESEEDED_JSON_FTS_FROM_DEFAULT_LIBRARY +SQL LOAD json +result +Extension: json has been loaded. + +SQL LOAD fts +result +Extension: fts has been loaded. + +MODULE lbug_shared.dll C:\Users\rcha0053\pr158-qualification\ladybug-shared-0.19.0\lbug_shared.dll +MODULE libssl-3-x64.dll C:\Users\rcha0053\AppData\Local\anaconda3\Library\bin\libssl-3-x64.dll +MODULE libcrypto-3-x64.dll C:\Users\rcha0053\AppData\Local\anaconda3\Library\bin\libcrypto-3-x64.dll +MODULE MSVCP140.dll C:\WINDOWS\SYSTEM32\MSVCP140.dll +MODULE VCRUNTIME140.dll C:\WINDOWS\SYSTEM32\VCRUNTIME140.dll +MODULE VCRUNTIME140_1.dll C:\WINDOWS\SYSTEM32\VCRUNTIME140_1.dll +SQL CREATE NODE TABLE Documents (ID INT64, title STRING, text STRING, PRIMARY KEY(ID)) +result +Table Documents has been created. + +SQL COPY Documents FROM 'C:/Users/rcha0053/pr158-qualification/native-positive-db/documents.json' +result|skipped_duplicate_pk_count|skipped_duplicate_pks +1 tuples have been copied to the Documents table.|0|[] + +SQL MATCH (d:Documents) RETURN d.title, d.text +d.title|d.text +six|Hello World + +SQL CALL CREATE_FTS_INDEX('Documents', 'documents_index', ['title', 'text'], stemmer := 'english') +result +Index documents_index has been created. + +SQL CALL QUERY_FTS_INDEX('Documents', 'documents_index', 'world') RETURN node.title +node.title +six + +SQL CALL SHOW_LOADED_EXTENSIONS() RETURN * +extension name|extension source|extension path +JSON|OFFICIAL|C:\Users\rcha0053\pr158-qualification\profile-native-positive/.lbdb/extension/0.19.0/win_amd64/json/libjson.lbug_extension +FTS|OFFICIAL|C:\Users\rcha0053\pr158-qualification\profile-native-positive/.lbdb/extension/0.19.0/win_amd64/fts/libfts.lbug_extension + +SQL CHECKPOINT + + +PASS_JSON_COPY_FTS_CREATE_QUERY +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-json-fts-reopen.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-json-fts-reopen.log new file mode 100644 index 00000000..ff7fc976 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-json-fts-reopen.log @@ -0,0 +1,26 @@ +PRESEEDED_JSON_FTS_FROM_DEFAULT_LIBRARY +SQL LOAD json +result +Extension: json has been loaded. + +SQL LOAD fts +result +Extension: fts has been loaded. + +MODULE lbug_shared.dll C:\Users\rcha0053\pr158-qualification\ladybug-shared-0.19.0\lbug_shared.dll +MODULE libssl-3-x64.dll C:\Users\rcha0053\AppData\Local\anaconda3\Library\bin\libssl-3-x64.dll +MODULE libcrypto-3-x64.dll C:\Users\rcha0053\AppData\Local\anaconda3\Library\bin\libcrypto-3-x64.dll +MODULE MSVCP140.dll C:\WINDOWS\SYSTEM32\MSVCP140.dll +MODULE VCRUNTIME140.dll C:\WINDOWS\SYSTEM32\VCRUNTIME140.dll +MODULE VCRUNTIME140_1.dll C:\WINDOWS\SYSTEM32\VCRUNTIME140_1.dll +SQL CALL QUERY_FTS_INDEX('Documents', 'documents_index', 'world') RETURN node.title +node.title +six + +SQL CALL SHOW_LOADED_EXTENSIONS() RETURN * +extension name|extension source|extension path +JSON|OFFICIAL|C:\Users\rcha0053\pr158-qualification\profile-native-positive/.lbdb/extension/0.19.0/win_amd64/json/libjson.lbug_extension +FTS|OFFICIAL|C:\Users\rcha0053\pr158-qualification\profile-native-positive/.lbdb/extension/0.19.0/win_amd64/fts/libfts.lbug_extension + +PASS_FRESH_PROCESS_REOPEN_FTS_QUERY +NATIVE_EXIT_STATUS=0 diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-probe-Cargo.toml b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-probe-Cargo.toml new file mode 100644 index 00000000..6bf79c20 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-probe-Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "pr158-windows-probe" +version = "0.1.0" +edition = "2021" +[dependencies] +codebase-graph = { path = "C:/Users/rcha0053/Repositories/cbg-pr158" } +lbug = "=0.19.0" diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-probe.rs b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-probe.rs new file mode 100644 index 00000000..9e04bedc --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-probe.rs @@ -0,0 +1,87 @@ +use lbug::{Connection, Database, SystemConfig}; +use std::path::PathBuf; + +#[link(name = "kernel32")] +unsafe extern "system" { + fn GetModuleHandleW(name: *const u16) -> *mut core::ffi::c_void; + fn GetModuleFileNameW(module: *mut core::ffi::c_void, file: *mut u16, length: u32) -> u32; +} + +fn loaded_modules() -> Result<(), Box> { + for name in ["lbug_shared.dll", "libssl-3-x64.dll", "libcrypto-3-x64.dll", "MSVCP140.dll", "VCRUNTIME140.dll", "VCRUNTIME140_1.dll"] { + let wide: Vec = name.encode_utf16().chain(Some(0)).collect(); + let module = unsafe { GetModuleHandleW(wide.as_ptr()) }; + if module.is_null() { return Err(format!("expected loaded module absent: {name}").into()); } + let mut path = vec![0u16; 32768]; + let length = unsafe { GetModuleFileNameW(module, path.as_mut_ptr(), path.len() as u32) } as usize; + if length == 0 || length >= path.len() { return Err(format!("module path query failed: {name}").into()); } + println!("MODULE {name} {}", String::from_utf16(&path[..length])?); + } + Ok(()) +} + +fn query(conn: &Connection<'_>, sql: &str) -> Result> { + let result = conn.query(sql)?; + let text = result.to_string(); + println!("SQL {sql}\n{text}"); + Ok(text) +} + +fn main() -> Result<(), Box> { + let args: Vec = std::env::args().collect(); + let mode = &args[1]; + let root = PathBuf::from(&args[2]); + let config = SystemConfig::default().buffer_pool_size(256 * 1024 * 1024).max_num_threads(2); + std::fs::create_dir_all(&root)?; + if mode == "download-negative" { + let db = Database::new(root.join("negative.ldb"), config.clone())?; + let conn = Connection::new(&db)?; + match conn.query("INSTALL json") { + Ok(_) => return Err("negative control unexpectedly installed json".into()), + Err(error) => { + let detail = error.to_string(); + println!("EXPECTED_DOWNLOAD_FAILURE {detail}"); + if !detail.contains("Failed to download extension: json") || !detail.contains("Proxy connection failed") { + return Err("negative control failed for an unrelated reason".into()); + } + } + } + return Ok(()); + } + codebase_graph::db_writer::preseed_ladybug_extensions(true)?; + println!("PRESEEDED_JSON_FTS_FROM_DEFAULT_LIBRARY"); + let dbpath = root.join("probe.ldb"); + if mode == "create" { + let json_path = root.join("documents.json"); + std::fs::write(&json_path, "[{\"ID\":1,\"title\":\"six\",\"text\":\"Hello World\"}]")?; + let db = Database::new(&dbpath, config.clone())?; + let conn = Connection::new(&db)?; + query(&conn, "LOAD json")?; + query(&conn, "LOAD fts")?; + loaded_modules()?; + query(&conn, "CREATE NODE TABLE Documents (ID INT64, title STRING, text STRING, PRIMARY KEY(ID))")?; + let copy = format!("COPY Documents FROM '{}'", json_path.to_string_lossy().replace('\\', "/").replace('\'', "''")); + query(&conn, ©)?; + let rows = query(&conn, "MATCH (d:Documents) RETURN d.title, d.text")?; + if !rows.contains("six") || !rows.contains("Hello World") { return Err("JSON COPY did not yield expected row".into()); } + query(&conn, "CALL CREATE_FTS_INDEX('Documents', 'documents_index', ['title', 'text'], stemmer := 'english')")?; + let result = query(&conn, "CALL QUERY_FTS_INDEX('Documents', 'documents_index', 'world') RETURN node.title")?; + if !result.contains("six") { return Err("FTS query did not return six".into()); } + query(&conn, "CALL SHOW_LOADED_EXTENSIONS() RETURN *")?; + query(&conn, "CHECKPOINT")?; + println!("PASS_JSON_COPY_FTS_CREATE_QUERY"); + } else if mode == "reopen" { + let db = Database::new(&dbpath, config.clone())?; + let conn = Connection::new(&db)?; + query(&conn, "LOAD json")?; + query(&conn, "LOAD fts")?; + loaded_modules()?; + let result = query(&conn, "CALL QUERY_FTS_INDEX('Documents', 'documents_index', 'world') RETURN node.title")?; + if !result.contains("six") { return Err("reopened FTS query did not return six".into()); } + query(&conn, "CALL SHOW_LOADED_EXTENSIONS() RETURN *")?; + println!("PASS_FRESH_PROCESS_REOPEN_FTS_QUERY"); + } else { + return Err("unknown mode".into()); + } + Ok(()) +} diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-trial-notes.md b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-trial-notes.md new file mode 100644 index 00000000..8d9a9ae6 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/native-trial-notes.md @@ -0,0 +1,6 @@ +# Native prerequisite trial notes + +- Official Ladybug0.19.0 static archive passed its published SHA256 check, but linking with installed MSVC14.39 failed with 10 unresolved newer STL symbols. This is a source-prerequisite compatibility failure, not an introduced default-feature defect. +- An attempted dependency source-mode retry reused stale external-library build output because upstream build.rs lacks environment invalidation for external selection. It was stopped; a fresh-target source trial was started then stopped before completion. No source-build pass/failure is claimed. +- Static source inspection briefly suspected the packaged missing WAL generator would block default build, but corrected review found its target is not ALL; generated source files are present. Python>=3.9 is still a configure prerequisite. No missing-generator default-build failure was executed. +- The next documented native route is LBUG_SHARED=1 with the exact official Ladybug0.19.0 shared headers/import lib/DLL. This preserves the dependency/ABI version. No upstream/product source patch, shim or version change. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/optout-feature-tree.log b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/optout-feature-tree.log new file mode 100644 index 00000000..354f2e3b --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/optout-feature-tree.log @@ -0,0 +1 @@ +codebase-graph v4.0.0 (C:\Users\rcha0053\Repositories\cbg-pr158) diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/os-version.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/os-version.json new file mode 100644 index 00000000..1f161b99 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/os-version.json @@ -0,0 +1 @@ +{"ProductName":"Windows 10 Enterprise","DisplayVersion":"23H2","CurrentBuild":"22631","UBR":7652,"EditionID":"Enterprise"} diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/package-audit.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/package-audit.json new file mode 100644 index 00000000..8a5abefd --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/package-audit.json @@ -0,0 +1,34 @@ +[ + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\package-target\\package\\codebase-graph-4.0.0.crate", + "size": 8460008, + "sha256": "4d924d1260d40d48e04b9cb2e7c41dc72b904687d9ec0b60d08bcaf23ed258e8", + "assets": [ + { + "path": "assets/ladybug-extensions/0.19.0/osx_arm64/fts/libfts.lbug_extension.xz", + "compressed_sha256": "e34b00df38ced0b09993112a6d3a2d76735ecea639bb7deaf4e804351343f891", + "matches_worktree": true, + "decompressed_sha256": "83ae4be9fa718577ca971f27ff890b3aea5789c9dd908784e28f52917febbfdb" + }, + { + "path": "assets/ladybug-extensions/0.19.0/osx_arm64/json/libjson.lbug_extension.xz", + "compressed_sha256": "7d39d0ba2fe3eb41364febc09fb45aca02b37bb64a06e3a3666bfb70f49792cd", + "matches_worktree": true, + "decompressed_sha256": "e6482a025de31d662ee4b32a39c991706b8cc3c2ec49673ef5d8ce45cc23ce7a" + }, + { + "path": "assets/ladybug-extensions/0.19.0/win_amd64/fts/libfts.lbug_extension.xz", + "compressed_sha256": "a8a9d74be93a54482b6bb6df7c44ead6cb751f398b87b10c990d63e2da77910d", + "matches_worktree": true, + "decompressed_sha256": "7f82059c8149bb7851420a9bfd0c46859e92efaeda0bcd5c65418d8f174edac4" + }, + { + "path": "assets/ladybug-extensions/0.19.0/win_amd64/json/libjson.lbug_extension.xz", + "compressed_sha256": "adf5e05d5a63c181a1be3e1e6c90a8ffb9901118171e7caf8f860af055868ada", + "matches_worktree": true, + "decompressed_sha256": "bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f" + } + ], + "verification": "cargo package --no-verify; extracted compile not yet executed" + } +] \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/pr-ci-evidence.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/pr-ci-evidence.json new file mode 100644 index 00000000..c7a9b8d4 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/pr-ci-evidence.json @@ -0,0 +1,216 @@ +{ + "pr": "https://github.com/rabii-chaarani/codebaseGraph/pull/158", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "base_sha": "7038e66ff8271ffddc511f879cf8d28353a09b2d", + "ci_run": { + "id": 40458389107, + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "event": "pull_request", + "path": ".github/workflows/ci.yml", + "status": "completed", + "conclusion": "success", + "html_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107", + "created_at": "2026-10-27T05:58:52Z", + "updated_at": "2026-10-27T23:51:34Z" + }, + "checks": [ + { + "name": "required", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122542022821", + "started_at": "2026-10-27T23:51:30Z", + "completed_at": "2026-10-27T23:51:34Z" + }, + { + "name": "native (windows-x86_64) / native artifact (windows-x86_64)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122535971625", + "started_at": "2026-10-27T23:35:16Z", + "completed_at": "2026-10-27T23:51:28Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, unit, shard 1)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528517669", + "started_at": "2026-10-27T06:53:31Z", + "completed_at": "2026-10-27T07:29:22Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, generation, shard 1)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528513735", + "started_at": "2026-10-27T06:38:09Z", + "completed_at": "2026-10-27T07:04:56Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, unit, shard 2)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528500050", + "started_at": "2026-10-27T06:37:51Z", + "completed_at": "2026-10-27T06:59:34Z" + }, + { + "name": "cargo fmt", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528499530", + "started_at": "2026-10-27T06:09:45Z", + "completed_at": "2026-10-27T06:10:00Z" + }, + { + "name": "cargo publish dry-run", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528498263", + "started_at": "2026-10-27T06:09:22Z", + "completed_at": "2026-10-27T06:10:23Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, integration, shard 3)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528461190", + "started_at": "2026-10-27T06:46:38Z", + "completed_at": "2026-10-27T07:16:02Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, integration, shard 1)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528460888", + "started_at": "2026-10-27T06:56:40Z", + "completed_at": "2026-10-27T07:20:20Z" + }, + { + "name": "native (macos-arm64) / native artifact (macos-arm64)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528460869", + "started_at": "2026-10-27T07:24:12Z", + "completed_at": "2026-10-27T07:30:21Z" + }, + { + "name": "native (macos-arm64) / native tests (macos-arm64, generation)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528460408", + "started_at": "2026-10-27T06:39:17Z", + "completed_at": "2026-10-27T06:56:39Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, integration, shard 4)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528460279", + "started_at": "2026-10-27T06:55:42Z", + "completed_at": "2026-10-27T07:21:04Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, integration, shard 2)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528460173", + "started_at": "2026-10-27T06:38:19Z", + "completed_at": "2026-10-27T07:05:16Z" + }, + { + "name": "cargo clippy", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528460087", + "started_at": "2026-10-27T06:08:59Z", + "completed_at": "2026-10-27T06:10:03Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, generation, shard 4)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528460036", + "started_at": "2026-10-27T06:34:12Z", + "completed_at": "2026-10-27T07:12:34Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, generation, shard 3)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528459913", + "started_at": "2026-10-27T06:25:09Z", + "completed_at": "2026-10-27T06:53:29Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, unit, shard 3)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528459668", + "started_at": "2026-10-27T06:43:22Z", + "completed_at": "2026-10-27T07:28:45Z" + }, + { + "name": "native (macos-arm64) / native tests (macos-arm64, integration)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528459565", + "started_at": "2026-10-27T06:32:59Z", + "completed_at": "2026-10-27T07:24:09Z" + }, + { + "name": "native (macos-arm64) / native tests (macos-arm64, unit)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528459546", + "started_at": "2026-10-27T06:37:41Z", + "completed_at": "2026-10-27T07:11:01Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, unit, shard 4)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528459463", + "started_at": "2026-10-27T06:54:42Z", + "completed_at": "2026-10-27T07:18:47Z" + }, + { + "name": "native (windows-x86_64) / native tests (windows-x86_64, generation, shard 2)", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528458727", + "started_at": "2026-10-27T23:15:48Z", + "completed_at": "2026-10-27T23:35:13Z" + }, + { + "name": "cargo audit", + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "status": "completed", + "conclusion": "success", + "details_url": "https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40458389107/job/122528458525", + "started_at": "2026-10-27T06:10:25Z", + "completed_at": "2026-10-27T06:10:40Z" + } + ] +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/probe-static-review.md b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/probe-static-review.md new file mode 100644 index 00000000..36ab119a --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/probe-static-review.md @@ -0,0 +1,42 @@ +# PR158 Windows native fixture — independent static review + +Reviewed: 2026-10-28T06:38:55.148314+00:00. Candidate: immutable isolated PR head `47808ac34bcff79882abee4ab796c16c0621ed05` (root-provided identity). + +## Scope and verdict + +Read-only review of `C:\Users\rcha0053\pr158-qualification\probe\src\main.rs`, its manifest, pinned lbug Rust query-result handling, and `C:\Users\rcha0053\pr158-criteria.md`. Reviewed main.rs SHA256: `82373ccf764ba554b50aedd325dd3642bb54d9468d0d4211781a5f96c9aa6f4a`. No source edits, build, test, runtime execution, tool installation, service or repository changes were made. This report is outside the repository. + +**Static verdict: suitable small native JSON/FTS fixture, with important diagnostic/control gaps below. No runtime pass or qualification is granted by this review.** Runtime evidence and final built-source identity must be reviewed separately. + +## Important gaps and simple fixes + +1. **Module checks run too early.** `loaded_modules()` is called before `Database::new`, `LOAD json` and `LOAD fts`. A VC DLL required only by an extension may legitimately be absent at that point, causing a fixture failure before the native work is attempted. It also does not report extension-triggered DLL origins after loading. **Fix:** call it after successful JSON/FTS LOAD in each positive mode (or keep an optional non-failing startup snapshot and require the post-LOAD snapshot). Record `SHOW_LOADED_EXTENSIONS` output as well. The named-module list is useful source-environment evidence, not complete recursive PE/runtime dependency closure or controlled-loader proof. +2. **Proxy failure assertion does not bind itself to the held endpoint.** Negative mode requires only `127.0.0.1` and case-insensitive `connect` in the error. Another loopback connection failure could meet that check. **Fix:** have the wrapper retain the full error and verify it names the actual reserved endpoint `127.0.0.1:52256` (if the library reports the port); alternatively pass the expected endpoint to the fixture. The wrapper must preserve the held non-listening socket for all children, prove empty negative USERPROFILE cache before execution and no valid payload afterward, and record the effective proxy/no-bypass environment. Do not infer this from source alone. +3. **The fixture does not establish clean state or matching bytes itself.** Product preseeding only writes missing cache files, and `PRESEEDED_JSON_FTS_FROM_DEFAULT_LIBRARY` is printed after a successful function return even if pre-existing payloads were reused or an opt-out build supplied no bytes. **Fix:** the wrapper must prove the positive profile was empty, then compare both resulting payload sizes/SHA256 to decompressed exact-candidate XZ assets and retain exact loaded extension paths. The final fixture executable/source/manifest/lock and selected default features/native inputs must be bound to the execution record. No fixture source change is required if the wrapper provides these checks. + +These are important before accepting runtime evidence, not requests to modify product behavior. Root reports a reserved bound non-listening loopback socket and child-only proxy/profile control; this review has not observed that execution. Do not treat the broad proxy-error substring alone as complete network-barrier proof. + +## What the fixture correctly tests + +- Its manifest depends on candidate `codebase-graph` through an absolute path with Cargo default features enabled, plus pinned `lbug = "=0.19.0"`. No explicit extension feature is added by the fixture. Resolved features and native inputs still need to be recorded from the actual build. +- Negative mode runs raw `INSTALL json` **before** any product preseeding. An unexpected successful installation returns an error. An expected matching download error returns `Ok(())`, so **fixture exit 0 means the negative assertion passed**, not that INSTALL succeeded. Retain the SQL error and wrapper status; do not label this as a nonzero fixture exit. +- Positive mode calls the candidate's public `preseed_ladybug_extensions(true)`, then really executes `LOAD json` and `LOAD fts`; it does not replace these with a disk-BM25 product search. +- Create mode writes a one-row JSON file, executes native `COPY Documents FROM ...`, then queries title/text and asserts `six` and `Hello World`. The JSON path escapes backslashes and SQL single quotes. With a new DB this is a real JSON COPY assertion, not LOAD-only evidence. +- It creates a native FTS index over title/text, queries `world`, and requires the returned title `six`. The success/error check in pinned lbug `Connection::query` rejects unsuccessful native query results, so `?` does not silently accept a failed SQL result. +- Reopen mode does not recreate the table/index: it reopens the same database, explicitly loads the extensions, queries the stored FTS index and asserts `six`. `CHECKPOINT` completes before create mode returns, and Rust local drop order releases connection before database. **A fresh-process claim requires the wrapper to launch create and reopen as separate child processes.** +- Both modes retain all SQL/output, including `SHOW_LOADED_EXTENSIONS`; the reviewer should check reported JSON and FTS paths against the isolated verified cache. Single-row substring assertions are adequate for this controlled fixture: the asserted values are not result headers. Structured exact-row checks would be a possible refinement, not a current blocker. +- Fixture resource settings are bounded to a 256 MiB buffer pool and two native query threads. These are fixture-only changes, not product defaults, and do not prove a total process memory ceiling. The data/index contain one record. + +## Coverage limits and execution acceptance + +This standalone harness links the candidate library and pinned native dependency. **It is not the installed product executable.** Its public-preseed/JSON-COPY/native-FTS/create/reopen results may supplement installed default-source evidence but cannot substitute for an actual exact-head private Cargo install, installed binary graph build, fresh installed binary reopen/search, supported desktop identity, or prerequisite negative cases. It does not implement or qualify A03/A04 prebuilt archive/runtime supply/installer/MCP/controlled-loader behavior and cannot close full S02/COD-53. + +Before approving runtime evidence, retain: final compiled source and EXE hashes; actual build command/cwd/profile/target/default feature resolution and native input identity; distinct empty positive/negative USERPROFILE+HOME and cache before/after; held endpoint and exact child environment with all LADYBUG/generic proxy settings and NO_PROXY bypasses cleared; raw expected negative error; successful create/reopen commands, exit statuses and full transcripts; loaded native module/extension origins and cache hash comparisons. Cargo offline mode alone is not a runtime barrier. Expected negative-install failure must come from the reserved connection route, not TLS/certificate/configuration failure. A failed fixture must remain failed; no deletion or weakening of product assertions is authorized. + +## Assumptions and changes + +Assumed the root's exact-head worktree identity, child-only process environment, exclusively held non-listening socket at `127.0.0.1:52256`, isolated caches and same native input policy. None were runtime-verified here. No constants/settings changed by this reviewer. Root's fixture resource bounds and planned endpoint are recorded above; only this review file was created. + +## Follow-up: shared Ladybug prerequisite + +Root subsequently reported switching native inputs from incompatible static library to the official same-ABI 0.19.0 shared archive (reported archive SHA256 `8ecb60bb5b3bec7ff263cd23a622c0892d7f605c42af19b4e06d75b1604bf612`) through documented `LBUG_SHARED=1`, without candidate source changes. This is an unexecuted root-provided update, not a review of that build. **Add `lbug_shared.dll` to the actual module-origin evidence**, bind its DLL/import-lib/header identities and record runtime PATH. Earlier static input/environment hashes must not be misrepresented as the final successful shared-input identities. A successful shared-prerequisite source install would not be a self-contained runtime qualification. diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/profiles-before.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/profiles-before.json new file mode 100644 index 00000000..df175c6a --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/profiles-before.json @@ -0,0 +1,6 @@ +{ + "download-negative": [], + "native-positive": [], + "installed": [], + "missing-dll": [] +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/proxy-guard-ready.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/proxy-guard-ready.json new file mode 100644 index 00000000..8e71cfc5 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/proxy-guard-ready.json @@ -0,0 +1 @@ +{"port": 55319, "pid": 29812, "at": "2026-10-29T01:10:46.188294+00:00", "policy": "loopback only, always502, no forwarding code"} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/proxy-guard-requests.jsonl b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/proxy-guard-requests.jsonl new file mode 100644 index 00000000..a5bdaf2b --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/proxy-guard-requests.jsonl @@ -0,0 +1,2 @@ +{"at": "2026-10-29T01:11:14.417133+00:00", "method": "CONNECT", "target": "extension.ladybugdb.com:443", "client": ["127.0.0.1", 54277]} +{"at": "2026-10-29T01:14:33.394695+00:00", "method": "CONNECT", "target": "extension.ladybugdb.com:443", "client": ["127.0.0.1", 53188]} diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/qualification-status.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/qualification-status.json new file mode 100644 index 00000000..8da3ef2c --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/qualification-status.json @@ -0,0 +1,215 @@ +{ + "source_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "default_extension_tests": { + "pass": 2, + "failed": 0, + "filtered": 799, + "features": "defaults only", + "native_prerequisite": "official Ladybug0.19.0 shared" + }, + "cargo_source_install": { + "pass": true, + "command": "cargo install --path exact-head-worktree --locked --offline --root private --bin codebase-graph", + "not_registry_install": true + }, + "native_json_copy_fts": { + "create_pass": true, + "fresh_process_reopen_pass": true, + "positive_proxy_requests": 0, + "cache_hashes_match": true + }, + "negative_download": { + "assertion_pass": true, + "observed_connect": [ + { + "at": "2026-10-28T11:46:30.323676+00:00", + "request": "CONNECT extension.ladybugdb.com:443 HTTP/1.1\r\nAccept: */*\r\nHost: extension.ladybugdb.com\r\nUser-Agent: cpp-httplib/0.14.2\r\n\r\n", + "peer": [ + "127.0.0.1", + 63660 + ] + } + ], + "no_payloads": true + }, + "installed_graph_first": { + "pass": false, + "failure": "guardian READY timeout", + "state_preserved": "C:\\Users\\rcha0053\\pr158-qualification\\smoke-repo" + }, + "installed_graph_short": { + "status": "passed", + "repo": "C:\\Users\\rcha0053\\q158", + "build_native_exit": 0, + "search_native_exit": 0, + "nodes": 23, + "edges": 35, + "search_result": "SampleService", + "barrier_limit": "kernel restart interrupted listener lifetime; see installed-short-build-binding.json" + }, + "missing_compiler": { + "assertion": "missing-compiler-source-install", + "expected_head": "47808ac34bcff79882abee4ab796c16c0621ed05", + "worktree": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "command_argv": [ + "cargo", + "install", + "--path", + "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "--locked", + "--offline", + "--root", + "C:\\Users\\rcha0053\\pr158-qualification\\negative-compiler-install", + "--bin", + "codebase-graph" + ], + "bash_command": "cargo install --path 'C:/Users/rcha0053/Repositories/cbg-pr158' --locked --offline --root 'C:/Users/rcha0053/pr158-qualification/negative-compiler-install' --bin codebase-graph > 'C:/Users/rcha0053/pr158-qualification/missing-compiler-install.log' 2>&1", + "env_source": "C:\\Users\\rcha0053\\pr158-qualification\\native-shared-environment.json", + "env": { + "PRIME_AGENT_BASH_SHELL": "C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Git\\bin\\bash.exe", + "PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX64\\x64;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\VC\\VCPackages;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\TestWindow;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\bin\\Roslyn;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Team Tools\\DiagnosticsHub\\Collector;C:\\Program Files (x86)\\Windows Kits\\10\\bin\\10.0.22621.0\\\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\bin\\\\x64;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\\\MSBuild\\Current\\Bin\\amd64;C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\Tools\\;C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Git\\mingw64\\bin;C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Git\\usr\\bin;C:\\Users\\rcha0053\\bin;C:\\Users\\rcha0053\\pr158-qualification\\rust-1.96.0\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files (x86)\\Lithnet\\Lithnet.MpUpdate;%JAVA_HOME%\\bin;C:\\Program Files\\dotnet\\;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Docker\\Docker\\resources\\bin;C:\\Program Files\\NVIDIA Corporation\\NVIDIA app\\NvDLISR;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\WSL\\;C:\\Users\\rcha0053\\.local\\bin;C:\\Users\\rcha0053\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\rcha0053\\AppData\\Local\\GitHubDesktop\\bin;C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Git\\cmd;C:\\Users\\rcha0053\\AppData\\Local\\Programs\\Microsoft VS Code\\bin\\copilot-shim;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\Ninja;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\VC\\Linux\\bin\\ConnectionManagerExe;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\vcpkg", + "LIB": "C:\\Users\\rcha0053\\pr158-qualification\\openssl-link;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\ATLMFC\\lib\\x64;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\lib\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.22621.0\\ucrt\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\\\lib\\10.0.22621.0\\\\um\\x64", + "INCLUDE": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\include;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\ATLMFC\\include;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\VS\\include;C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.22621.0\\ucrt;C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22621.0\\\\um;C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22621.0\\\\shared;C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22621.0\\\\winrt;C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22621.0\\\\cppwinrt", + "LIBPATH": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\ATLMFC\\lib\\x64;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\lib\\x64;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\lib\\x86\\store\\references;C:\\Program Files (x86)\\Windows Kits\\10\\UnionMetadata\\10.0.22621.0;C:\\Program Files (x86)\\Windows Kits\\10\\References\\10.0.22621.0;C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319", + "VCToolsInstallDir": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\", + "WindowsSdkDir": "C:\\Program Files (x86)\\Windows Kits\\10\\", + "WindowsSDKVersion": "10.0.22621.0\\", + "VCINSTALLDIR": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\", + "VSINSTALLDIR": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\", + "CARGO_HOME": "C:\\Users\\rcha0053\\pr158-qualification\\cargo-home", + "CARGO_TARGET_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\negative-compiler-target", + "LBUG_LIBRARY_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0", + "LBUG_INCLUDE_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0", + "LIBCLANG_PATH": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin", + "CARGO_TARGET_X86_64_PC_WINDOWS_MSVC_LINKER": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\bin\\Hostx64\\x64\\link.exe", + "CC": "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler\\cl.exe", + "CXX": "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler\\cl.exe", + "CARGO_BUILD_JOBS": "2", + "LBUG_SHARED": "1", + "OPENSSL_ROOT_DIR": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library", + "CMAKE_PREFIX_PATH": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library" + }, + "started_utc": "2026-10-28T11:45:33.275761+00:00", + "finished_utc": "2026-10-28T11:46:12.690109+00:00", + "exit_code": 101, + "no_installed_exe": true, + "log": "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler-install.log", + "finished_time_basis": "completion notification observed", + "duration_seconds": 27.95300000000134, + "expected_negative_passed": true, + "failure_identity": "link-cplusplus v1.0.12 custom build -> cc-rs ToolNotFound -> explicit missing CXX cl.exe (Windows os error 3)", + "missing_compiler_exists_before": false, + "missing_compiler_exists_after": false, + "installed_exes": [], + "expected_installed_exe": "C:\\Users\\rcha0053\\pr158-qualification\\negative-compiler-install\\bin\\codebase-graph.exe", + "expected_installed_exe_exists": false, + "product_target_exe_exists": false, + "head_before": "47808ac34bcff79882abee4ab796c16c0621ed05", + "head_after": "47808ac34bcff79882abee4ab796c16c0621ed05", + "git_status_porcelain_before": "", + "git_status_porcelain_after": "", + "worktree_unchanged": true, + "log_sha256": "de2c40a4305d8087a5546c45ddd9318c84567ad55e8d2f253cd00ab09734ed0c", + "offline": true, + "download_lines_observed": false, + "compiler_fallback_observed": false, + "prerequisite_env_overrides": { + "CARGO_TARGET_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\negative-compiler-target", + "CC": "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler\\cl.exe", + "CXX": "C:\\Users\\rcha0053\\pr158-qualification\\missing-compiler\\cl.exe" + }, + "scope": "One expected-negative compiler assertion only; no missing-runtime or missing-native-library category qualification.", + "durable_memory_decision": "No wiki memory recorded: this is transient PR qualification evidence, not a new reusable repository fact." + }, + "missing_runtime": { + "native_status": -1073741515, + "windows_status": "STATUS_DLL_NOT_FOUND", + "shell_exit": 127, + "scope": "absence of documented shared/OpenSSL prerequisite dirs; not VC absence" + }, + "A16": "partial only: clear missing-runtime prerequisite diagnostic/category scope; guarded positive source-install/native/installed workflow verified", + "A03_A04": "not implemented/qualified by this PR subset", + "missing_native_library": { + "source_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "expected_negative_pass": true, + "exit_code": 101, + "error": "missing external lbug_shared.lib", + "configured_external_directory": "C:\\Users\\rcha0053\\pr158-qualification\\missing-native-library", + "directory_empty": true, + "no_installed_exe": true, + "log_sha256": "019ca3ae30d695dfa0fd2fbb2fa9db4d885823d9233a35cf93f054cf2bbe3358", + "scope": "explicit absent native import library supplied through declared LBUG external override; no source/compiler/runtime absence inferred" + }, + "guarded_installed_build": { + "source_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "installed_exe_sha256": "95ad3781beadab8842c137a884a1e8d8f534b1d3c1af1288bffd968ba3fdf665", + "build": { + "native_exit": 0, + "outer_exit": 0, + "database_written": true, + "nodes": 23, + "edges": 35, + "cleanup_pending": false, + "search_backend": "disk_bm25_v1" + }, + "search": { + "native_exit": 0, + "outer_exit": 0, + "expected_label": "SampleService", + "found": true, + "fresh_process": true + }, + "cache": [ + { + "extension": "json", + "path": "C:\\Users\\rcha0053\\q158bh\\.lbdb\\extension\\0.19.0\\win_amd64\\json\\libjson.lbug_extension", + "exists": true, + "sha256": "bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f", + "expected_sha256": "bdecb5201dd6abccc06ddc1f6cb4fcf0be3adb7aa3ddaac2f383ed129fca2b1f" + }, + { + "extension": "fts", + "path": "C:\\Users\\rcha0053\\q158bh\\.lbdb\\extension\\0.19.0\\win_amd64\\fts\\libfts.lbug_extension", + "exists": false, + "sha256": null, + "expected_sha256": "7f82059c8149bb7851420a9bfd0c46859e92efaeda0bcd5c65418d8f174edac4" + } + ], + "proxy": { + "ready": { + "port": 55319, + "pid": 29812, + "at": "2026-10-29T01:10:46.188294+00:00", + "policy": "loopback only, always502, no forwarding code" + }, + "requests": [ + { + "at": "2026-10-29T01:11:14.417133+00:00", + "method": "CONNECT", + "target": "extension.ladybugdb.com:443", + "client": [ + "127.0.0.1", + 54277 + ] + }, + { + "at": "2026-10-29T01:14:33.394695+00:00", + "method": "CONNECT", + "target": "extension.ladybugdb.com:443", + "client": [ + "127.0.0.1", + 53188 + ] + } + ], + "positive_request_count": 0, + "negative_before_exit": 0, + "negative_after_exit": 0, + "empty_negative_profiles_after": true, + "guard_running_after_search": true, + "guard_stopped_by_owner_at": "2026-10-29T01:14:33.828140+00:00" + }, + "scope": "installed product graph JSON build/reopen/diskBM25search under verified continuously owned rejecting downloader guard; real native FTS is separate same-candidate public-library fixture" + }, + "D05d": "native Windows default-byte execution verified for documented prepared environment" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/run-index-current.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/run-index-current.json new file mode 100644 index 00000000..780adc29 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/run-index-current.json @@ -0,0 +1,362 @@ +[ + { + "label": "probe-build", + "command": "cargo build --offline --release --manifest-path \"C:/Users/rcha0053/pr158-qualification/probe/Cargo.toml\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification\\probe", + "overrides": {}, + "pid": 32276, + "exit_code": 1, + "duration": 140.625 + }, + { + "label": "default-extension-tests-source", + "command": "cargo test --locked --offline --release --lib db_writer::extensions::tests:: -- --nocapture --test-threads 1", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": {}, + "pid": 35100, + "exit_code": 1, + "duration": 37.48399999999856 + }, + { + "label": "default-extension-tests-source-fresh", + "command": "cargo test --locked --offline --release --lib db_writer::extensions::tests:: -- --nocapture --test-threads 1", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": {}, + "pid": 20536, + "exit_code": 1, + "duration": 50.5 + }, + { + "label": "default-extension-tests-shared", + "command": "cargo test --locked --offline --release --lib db_writer::extensions::tests:: -- --nocapture --test-threads 1", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": {}, + "pid": 23804, + "exit_code": 0, + "duration": 188.15600000000086 + }, + { + "label": "probe-build-shared", + "command": "cargo build --offline --release --manifest-path \"C:/Users/rcha0053/pr158-qualification/probe/Cargo.toml\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification\\probe", + "overrides": {}, + "pid": 32272, + "exit_code": 0, + "duration": 256.9529999999995 + }, + { + "label": "ladybug-shared-imports", + "command": "\"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/dumpbin.exe\" /dependents \"C:/Users/rcha0053/pr158-qualification/ladybug-shared-0.19.0/lbug_shared.dll\"", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": {}, + "pid": 35220, + "exit_code": 157, + "duration": 1.2340000000003783 + }, + { + "label": "cargo-package", + "command": "cargo package --locked --offline --no-verify --target-dir \"C:/Users/rcha0053/pr158-qualification/package-target\"", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": {}, + "pid": 5756, + "exit_code": 0, + "duration": 2.57799999999952 + }, + { + "label": "default-feature-tree", + "command": "cargo tree --offline --locked -p codebase-graph -e features -i codebase-graph", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": {}, + "pid": 31284, + "exit_code": 0, + "duration": 1.734999999998763 + }, + { + "label": "optout-feature-tree", + "command": "cargo tree --offline --locked -p codebase-graph --no-default-features -e features -i codebase-graph", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": {}, + "pid": 20536, + "exit_code": 0, + "duration": 1.6560000000008586 + }, + { + "label": "cargo-install-shared", + "command": "cargo install --path \"C:/Users/rcha0053/Repositories/cbg-pr158\" --locked --offline --root \"C:/Users/rcha0053/pr158-qualification/installed\" --bin codebase-graph", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": {}, + "pid": 35196, + "exit_code": 1, + "duration": 189.23500000000058 + }, + { + "label": "ladybug-shared-imports", + "command": "MSYS2_ARG_CONV_EXCL='*' \"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/dumpbin.exe\" /dependents \"C:/Users/rcha0053/pr158-qualification/ladybug-shared-0.19.0/lbug_shared.dll\"", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": {}, + "pid": 30584, + "exit_code": 0, + "duration": 1.0939999999991414 + }, + { + "label": "native-versions", + "command": "rustc -Vv; cargo -V; cmake --version; ninja --version; powershell -NoProfile -NonInteractive -Command '$PSVersionTable | ConvertTo-Json -Compress'; openssl version -a", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": {}, + "pid": 24356, + "exit_code": 0, + "duration": 4.406999999999243 + }, + { + "label": "default-extension-tests-shared-wrapped", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/target/release/deps/codebase_graph-3cda96f058e84b64.exe\" db_writer::extensions::tests:: --nocapture --test-threads 1", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": {}, + "pid": 22436, + "exit_code": 0, + "duration": 3.563000000000102 + }, + { + "label": "test-inventory", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/target/release/deps/codebase_graph-3cda96f058e84b64.exe\" --list", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": {}, + "pid": 33168, + "exit_code": 0, + "duration": 3.0 + }, + { + "label": "cargo-install-shared-resumed", + "command": "cargo install --path \"C:/Users/rcha0053/Repositories/cbg-pr158\" --locked --offline --root \"C:/Users/rcha0053/pr158-qualification/installed\" --bin codebase-graph", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": {}, + "pid": 25932, + "exit_code": 0, + "duration": 662.844000000001 + }, + { + "label": "probe-build-resumed", + "command": "cargo build --offline --release --manifest-path \"C:/Users/rcha0053/pr158-qualification/probe/Cargo.toml\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification\\probe", + "overrides": {}, + "pid": 30236, + "exit_code": 0, + "duration": 659.155999999999 + }, + { + "label": "download-negative", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/target/release/pr158-windows-probe.exe\" download-negative \"C:/Users/rcha0053/pr158-qualification/negative-db\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:56554", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:56554", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:56554", + "HTTPS_PROXY": "http://127.0.0.1:56554", + "HTTP_PROXY": "http://127.0.0.1:56554", + "ALL_PROXY": "http://127.0.0.1:56554", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\pr158-qualification\\profile-download-negative", + "HOME": "C:\\Users\\rcha0053\\pr158-qualification\\profile-download-negative" + }, + "pid": 34216, + "exit_code": 1, + "duration": 10.625 + }, + { + "label": "probe-build-proxy-guard", + "command": "cargo build --offline --release --manifest-path \"C:/Users/rcha0053/pr158-qualification/probe/Cargo.toml\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification\\probe", + "overrides": {}, + "pid": 23164, + "exit_code": 0, + "duration": 594.75 + }, + { + "label": "download-negative-observed", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/target/release/pr158-windows-probe.exe\" download-negative \"C:/Users/rcha0053/pr158-qualification/negative-observed-db\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:59741", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:59741", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:59741", + "HTTPS_PROXY": "http://127.0.0.1:59741", + "HTTP_PROXY": "http://127.0.0.1:59741", + "ALL_PROXY": "http://127.0.0.1:59741", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\pr158-qualification\\profile-download-negative", + "HOME": "C:\\Users\\rcha0053\\pr158-qualification\\profile-download-negative" + }, + "pid": 39048, + "exit_code": 1, + "duration": 8.81300000000192 + }, + { + "label": "probe-build-final", + "command": "cargo build --offline --release --manifest-path \"C:/Users/rcha0053/pr158-qualification/probe/Cargo.toml\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification\\probe", + "overrides": {}, + "pid": 31496, + "exit_code": 0, + "duration": 17.04699999999866 + }, + { + "label": "installed-help", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/installed/bin/codebase-graph.exe\" --help", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:59741", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:59741", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:59741", + "HTTPS_PROXY": "http://127.0.0.1:59741", + "HTTP_PROXY": "http://127.0.0.1:59741", + "ALL_PROXY": "http://127.0.0.1:59741", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\pr158-qualification\\profile-installed", + "HOME": "C:\\Users\\rcha0053\\pr158-qualification\\profile-installed" + }, + "pid": 38180, + "exit_code": 0, + "duration": 8.671999999998661 + }, + { + "label": "installed-build-help", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/installed/bin/codebase-graph.exe\" build --help", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:59741", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:59741", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:59741", + "HTTPS_PROXY": "http://127.0.0.1:59741", + "HTTP_PROXY": "http://127.0.0.1:59741", + "ALL_PROXY": "http://127.0.0.1:59741", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\pr158-qualification\\profile-installed", + "HOME": "C:\\Users\\rcha0053\\pr158-qualification\\profile-installed" + }, + "pid": 25096, + "exit_code": 0, + "duration": 7.875 + }, + { + "label": "missing-native-runtime", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/installed/bin/codebase-graph.exe\" --help", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:59741", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:59741", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:59741", + "HTTPS_PROXY": "http://127.0.0.1:59741", + "HTTP_PROXY": "http://127.0.0.1:59741", + "ALL_PROXY": "http://127.0.0.1:59741", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\pr158-qualification\\profile-missing-dll", + "HOME": "C:\\Users\\rcha0053\\pr158-qualification\\profile-missing-dll" + }, + "pid": 28948, + "exit_code": 127, + "duration": 8.375 + }, + { + "label": "download-negative-final", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/target/release/pr158-windows-probe.exe\" download-negative \"C:/Users/rcha0053/pr158-qualification/negative-final-db\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:59741", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:59741", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:59741", + "HTTPS_PROXY": "http://127.0.0.1:59741", + "HTTP_PROXY": "http://127.0.0.1:59741", + "ALL_PROXY": "http://127.0.0.1:59741", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\pr158-qualification\\profile-download-negative-final", + "HOME": "C:\\Users\\rcha0053\\pr158-qualification\\profile-download-negative-final" + }, + "pid": 36432, + "exit_code": 0, + "duration": 9.437000000001717 + }, + { + "label": "native-json-fts-create", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/target/release/pr158-windows-probe.exe\" create \"C:/Users/rcha0053/pr158-qualification/native-positive-db\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:59741", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:59741", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:59741", + "HTTPS_PROXY": "http://127.0.0.1:59741", + "HTTP_PROXY": "http://127.0.0.1:59741", + "ALL_PROXY": "http://127.0.0.1:59741", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\pr158-qualification\\profile-native-positive", + "HOME": "C:\\Users\\rcha0053\\pr158-qualification\\profile-native-positive" + }, + "pid": 37404, + "exit_code": 0, + "duration": 10.562999999998283 + }, + { + "label": "installed-graph-build", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/installed/bin/codebase-graph.exe\" build --repo-root \"C:/Users/rcha0053/pr158-qualification/smoke-repo\" --mode full --no-git --single-thread --max-parallelism 1 --json", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification\\smoke-repo", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:59741", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:59741", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:59741", + "HTTPS_PROXY": "http://127.0.0.1:59741", + "HTTP_PROXY": "http://127.0.0.1:59741", + "ALL_PROXY": "http://127.0.0.1:59741", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\pr158-qualification\\profile-installed", + "HOME": "C:\\Users\\rcha0053\\pr158-qualification\\profile-installed" + }, + "pid": 35064, + "exit_code": 1, + "duration": 1448.5 + }, + { + "label": "native-json-fts-reopen", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/target/release/pr158-windows-probe.exe\" reopen \"C:/Users/rcha0053/pr158-qualification/native-positive-db\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:59741", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:59741", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:59741", + "HTTPS_PROXY": "http://127.0.0.1:59741", + "HTTP_PROXY": "http://127.0.0.1:59741", + "ALL_PROXY": "http://127.0.0.1:59741", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\pr158-qualification\\profile-native-positive", + "HOME": "C:\\Users\\rcha0053\\pr158-qualification\\profile-native-positive" + }, + "pid": 39492, + "exit_code": 0, + "duration": 8.985000000000582 + } +] \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/run-index-final-resume.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/run-index-final-resume.json new file mode 100644 index 00000000..29020c47 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/run-index-final-resume.json @@ -0,0 +1,152 @@ +[ + { + "label": "installed-graph-search-short", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/installed/bin/codebase-graph.exe\" codebase-search SampleService --repo-root \"C:/Users/rcha0053/q158\" --json", + "cwd": "C:\\Users\\rcha0053\\q158", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:53712", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:53712", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:53712", + "HTTPS_PROXY": "http://127.0.0.1:53712", + "HTTP_PROXY": "http://127.0.0.1:53712", + "ALL_PROXY": "http://127.0.0.1:53712", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\q158home", + "HOME": "C:\\Users\\rcha0053\\q158home" + }, + "started_at": "2026-10-29T01:07:08.336475+00:00", + "pid": 27892, + "exit_code": 0, + "duration": 12.062000000005355 + }, + { + "label": "missing-native-library-install", + "command": "cargo install --path \"C:/Users/rcha0053/Repositories/cbg-pr158\" --locked --offline --root \"C:/Users/rcha0053/pr158-qualification/negative-library-install\" --bin codebase-graph", + "cwd": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "overrides": { + "LBUG_LIBRARY_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\missing-native-library", + "LBUG_INCLUDE_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0", + "CARGO_TARGET_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\negative-library-target", + "CARGO_BUILD_JOBS": "2" + }, + "started_at": "2026-10-29T01:08:59.479383+00:00", + "pid": 9756, + "exit_code": 101, + "duration": 214.21900000001187 + }, + { + "label": "exact-native-versions", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/capture-versions.ps1\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": {}, + "started_at": "2026-10-29T01:10:08.868555+00:00", + "pid": 22048, + "exit_code": 0, + "duration": 3.797000000005937 + }, + { + "label": "durable-proxy-guard", + "command": "\"C:/Users/rcha0053/.prime/agent/kernel-venv/Scripts/python.exe\" -u \"C:/Users/rcha0053/pr158-qualification/reject-proxy.py\" --ready \"C:/Users/rcha0053/pr158-qualification/proxy-guard-ready.json\" --requests \"C:/Users/rcha0053/pr158-qualification/proxy-guard-requests.jsonl\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": {}, + "started_at": "2026-10-29T01:10:43.656288+00:00", + "pid": 23460, + "exit_code": 1, + "duration": 229.82799999999406 + }, + { + "label": "durable-guard-negative", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/target/release/pr158-windows-probe.exe\" download-negative \"C:/Users/rcha0053/pr158-qualification/durable-negative-db\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:55319", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:55319", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:55319", + "HTTPS_PROXY": "http://127.0.0.1:55319", + "HTTP_PROXY": "http://127.0.0.1:55319", + "ALL_PROXY": "http://127.0.0.1:55319", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\q158neg", + "HOME": "C:\\Users\\rcha0053\\q158neg" + }, + "started_at": "2026-10-29T01:11:05.940199+00:00", + "pid": 30680, + "exit_code": 0, + "duration": 8.593999999997322 + }, + { + "label": "installed-graph-build-guarded", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/installed/bin/codebase-graph.exe\" build --repo-root \"C:/Users/rcha0053/q158b\" --mode full --no-git --single-thread --max-parallelism 1 --json", + "cwd": "C:\\Users\\rcha0053\\q158b", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:55319", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:55319", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:55319", + "HTTPS_PROXY": "http://127.0.0.1:55319", + "HTTP_PROXY": "http://127.0.0.1:55319", + "ALL_PROXY": "http://127.0.0.1:55319", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\q158bh", + "HOME": "C:\\Users\\rcha0053\\q158bh" + }, + "started_at": "2026-10-29T01:11:14.551533+00:00", + "pid": 24320, + "exit_code": 0, + "duration": 154.73500000000058 + }, + { + "label": "installed-graph-search-guarded", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/installed/bin/codebase-graph.exe\" codebase-search SampleService --repo-root \"C:/Users/rcha0053/q158b\" --json", + "cwd": "C:\\Users\\rcha0053\\q158b", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:55319", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:55319", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:55319", + "HTTPS_PROXY": "http://127.0.0.1:55319", + "HTTP_PROXY": "http://127.0.0.1:55319", + "ALL_PROXY": "http://127.0.0.1:55319", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\q158bh", + "HOME": "C:\\Users\\rcha0053\\q158bh" + }, + "started_at": "2026-10-29T01:14:01.075435+00:00", + "pid": 26980, + "exit_code": 0, + "duration": 5.389999999999418 + }, + { + "label": "durable-guard-negative-after", + "command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"C:/Users/rcha0053/pr158-qualification/run-native.ps1\" \"C:/Users/rcha0053/pr158-qualification/target/release/pr158-windows-probe.exe\" download-negative \"C:/Users/rcha0053/pr158-qualification/durable-negative-after-db\"", + "cwd": "C:\\Users\\rcha0053\\pr158-qualification", + "overrides": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:55319", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:55319", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:55319", + "HTTPS_PROXY": "http://127.0.0.1:55319", + "HTTP_PROXY": "http://127.0.0.1:55319", + "ALL_PROXY": "http://127.0.0.1:55319", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "USERPROFILE": "C:\\Users\\rcha0053\\q158neg2", + "HOME": "C:\\Users\\rcha0053\\q158neg2" + }, + "started_at": "2026-10-29T01:14:29.980394+00:00", + "pid": 5700, + "exit_code": 0, + "duration": 3.5160000000032596 + } +] \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/run-native.ps1 b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/run-native.ps1 new file mode 100644 index 00000000..5ff0c56b --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/run-native.ps1 @@ -0,0 +1,17 @@ +param( + [Parameter(Mandatory=$true)][string]$Executable, + [Parameter(ValueFromRemainingArguments=$true)][string[]]$NativeArguments +) +$ErrorActionPreference = 'Stop' +Add-Type -TypeDefinition @' +using System.Runtime.InteropServices; +public static class NativeQualificationErrorMode { + [DllImport("kernel32.dll")] public static extern uint SetErrorMode(uint mode); +} +'@ +[void][NativeQualificationErrorMode]::SetErrorMode(0x8003) +if ($env:QUALIFICATION_NATIVE_PATH) { $env:PATH = $env:QUALIFICATION_NATIVE_PATH } +& $Executable @NativeArguments +$nativeStatus = $LASTEXITCODE +Write-Output "NATIVE_EXIT_STATUS=$nativeStatus" +exit $nativeStatus diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/runtime-download-policy-resumed.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/runtime-download-policy-resumed.json new file mode 100644 index 00000000..a058b56b --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/runtime-download-policy-resumed.json @@ -0,0 +1,19 @@ +{ + "created_at": "2026-10-28T11:34:25.911365+00:00", + "proxy_port": 59741, + "port_guard": "ephemeral loopback-only rejecting HTTP proxy; records CONNECT/GET and always returns502; never forwards", + "child_environment": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:59741", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:59741", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:59741", + "HTTPS_PROXY": "http://127.0.0.1:59741", + "HTTP_PROXY": "http://127.0.0.1:59741", + "ALL_PROXY": "http://127.0.0.1:59741", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0" + }, + "scope": "verified Ladybug downloader path; not machine-wide isolation", + "reason_for_change": "native error omitted endpoint, so non-listening failure alone was inconclusive" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/runtime-download-policy-search.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/runtime-download-policy-search.json new file mode 100644 index 00000000..b0975025 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/runtime-download-policy-search.json @@ -0,0 +1,19 @@ +{ + "port": 53712, + "started_at": "2026-10-29T01:07:08.336475+00:00", + "proxy": "loopback rejecting502 never forwards", + "environment": { + "LADYBUG_HTTPS_PROXY": "http://127.0.0.1:53712", + "LADYBUG_HTTP_PROXY": "http://127.0.0.1:53712", + "LADYBUG_ALL_PROXY": "http://127.0.0.1:53712", + "HTTPS_PROXY": "http://127.0.0.1:53712", + "HTTP_PROXY": "http://127.0.0.1:53712", + "ALL_PROXY": "http://127.0.0.1:53712", + "LADYBUG_NO_PROXY": null, + "no_proxy": null, + "NO_PROXY": null, + "QUALIFICATION_NATIVE_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0" + }, + "requests": [], + "scope": "fresh-process search only; earlier build used prior proxy scope from recorded evidence" +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/rust-provenance.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/rust-provenance.json new file mode 100644 index 00000000..bdcbbf1b --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/rust-provenance.json @@ -0,0 +1,26 @@ +[ + { + "name": "cargo", + "url": "https://static.rust-lang.org/dist/2026-05-28/cargo-1.96.0-x86_64-pc-windows-msvc.tar.xz", + "sha256": "a1ba24b0a35d1c3ce86dd24cf8633ad0d0b0eb1e5eaa1d01644417dea28351ee", + "components": [ + "cargo" + ] + }, + { + "name": "rustc", + "url": "https://static.rust-lang.org/dist/2026-05-28/rustc-1.96.0-x86_64-pc-windows-msvc.tar.xz", + "sha256": "cfba935dbd6d0deaf0a02339f9b6c0573b30f41697919ba7532b60ef2e6306b4", + "components": [ + "rustc" + ] + }, + { + "name": "rust-std", + "url": "https://static.rust-lang.org/dist/2026-05-28/rust-std-1.96.0-x86_64-pc-windows-msvc.tar.xz", + "sha256": "48b22b9237d5d43cbec4f7076e816a4d0b1b682932dfa82afd2573434d43fc53", + "components": [ + "rust-std-x86_64-pc-windows-msvc" + ] + } +] \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/shared-native-inputs.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/shared-native-inputs.json new file mode 100644 index 00000000..74a11881 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/shared-native-inputs.json @@ -0,0 +1,22 @@ +[ + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0\\lbug.h", + "size": 79108, + "sha256": "3d5114d0863b3dab3b28bd2fec97a52e6cf669213739921a01814a5bbf5525eb" + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0\\lbug.hpp", + "size": 342729, + "sha256": "daed54339332e19487ae7ae211c82c88b1f639275feb331ce8015aa1f1381495" + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0\\lbug_shared.lib", + "size": 32417318, + "sha256": "28fe5a12b09aceb6c2d6ffa2b36b1f18e59f7b09183bbaecf5d567fe692f74d2" + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0\\lbug_shared.dll", + "size": 20199424, + "sha256": "5b28bf744580c3a47aaeee7ece40a3511e2141268def5207e9beffe236c9b512" + } +] \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/source-build-inputs.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/source-build-inputs.json new file mode 100644 index 00000000..698737f0 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/source-build-inputs.json @@ -0,0 +1,52 @@ +[ + { + "path": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158\\Cargo.toml", + "size": 2400, + "sha256": "3d6d1f94a1dc5333d921ddf81785989585fefa7488d3c548c2796a0ac14a82f5" + }, + { + "path": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158\\Cargo.lock", + "size": 54607, + "sha256": "872a1ae44699845609e9c585b3da8e701a31b037acb700707162239fb76ef5df" + }, + { + "path": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158\\src\\db_writer\\extensions.rs", + "size": 5406, + "sha256": "69abf1ca8854fc0d21dd5bfec00e08e54b19a0b339bd897bec31ec4dc45d0c2c" + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-0.19.0\\lbug.lib", + "size": 1418467394, + "sha256": "70bbc4245929e0d34a1645b2bb8113d78b49ba903dc3cde5e6be33d50fc42dd3" + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-0.19.0\\lbug.hpp", + "size": 342729, + "sha256": "daed54339332e19487ae7ae211c82c88b1f639275feb331ce8015aa1f1381495" + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-0.19.0\\lbug.h", + "size": 79108, + "sha256": "3d5114d0863b3dab3b28bd2fec97a52e6cf669213739921a01814a5bbf5525eb" + }, + { + "path": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\lib\\libssl.lib", + "size": 141838, + "sha256": "5dcc575b82a79afff40a6c809fb3a7a09cbc1e0623f1c363a0ff1b0d30501cf0" + }, + { + "path": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\lib\\libcrypto.lib", + "size": 1280338, + "sha256": "f19b0befaf9db067fbffef93f3bebaa5bb93bfb680e9c4d5516f42d3613e6164" + }, + { + "path": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin\\libssl-3-x64.dll", + "size": 1247744, + "sha256": "4158ad85699d9c5428b62778883b16b6c21b3b7da11fe60a0cc24ea37687a9fd" + }, + { + "path": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin\\libcrypto-3-x64.dll", + "size": 6459392, + "sha256": "124c5f40a6cf0e642f9d92784dd66314fd548b4fdf93c543bf478e71e1209f9d" + } +] \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/source-build-recipe.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/source-build-recipe.json new file mode 100644 index 00000000..c820fd0d --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/source-build-recipe.json @@ -0,0 +1,37 @@ +{ + "source_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "host": "Windows11 Enterprise23H2 x86_64 build22631.7652", + "rust": "1.96.0 x86_64-pc-windows-msvc", + "cargo": "1.96.0", + "msvc": "cl19.39.33523.0 toolset14.39.33519", + "sdk": "10.0.22621.0", + "powershell": "5.1.22621.7649", + "native_library": "official Ladybug0.19.0 shared archive; source source/native ZIP identities in shared-native-inputs.json and tested-artifacts.json", + "openssl": "existing AnacondaOpenSSL3.3.2 x64 import libs+DLLs; hashes loaded-module-audit.json and source-build-inputs.json", + "link_aliases": { + "ssl.lib": "copy of existing Library/lib/libssl.lib", + "crypto.lib": "copy of existing Library/lib/libcrypto.lib" + }, + "compiler_setup": "vcvars64.bat from existing VS2022 Community; explicit CC,CXX and Cargo MSVC linker avoid Git link.exe", + "build_variables": { + "CARGO_HOME": "C:\\Users\\rcha0053\\pr158-qualification\\cargo-home", + "CARGO_TARGET_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\target", + "LBUG_SHARED": "1", + "LBUG_LIBRARY_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0", + "LBUG_INCLUDE_DIR": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0", + "LIBCLANG_PATH": "C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin", + "CARGO_TARGET_X86_64_PC_WINDOWS_MSVC_LINKER": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\bin\\Hostx64\\x64\\link.exe", + "CC": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\bin\\Hostx64\\x64\\cl.exe", + "CXX": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\bin\\Hostx64\\x64\\cl.exe", + "CARGO_BUILD_JOBS": "2" + }, + "runtime_PATH": "C:\\Users\\rcha0053\\pr158-qualification\\ladybug-shared-0.19.0;C:\\Users\\rcha0053\\AppData\\Local\\anaconda3\\Library\\bin;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\WindowsPowerShell\\v1.0", + "install_command": "cargo install --path \"C:/Users/rcha0053/Repositories/cbg-pr158\" --locked --offline --root \"C:/Users/rcha0053/pr158-qualification/installed\" --bin codebase-graph", + "limits": [ + "private --path exact-head install, not published crates.io install", + "supplied native shared prerequisite; not C++ Ladybug source compile or self-contained package", + "runtime PATH process-local only; system VC DLLs used", + "no native DLL bytes copied into repository or distributed", + "unchanged dependency/ABI/extension assets and no numeric product constant changes" + ] +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/source-snapshot.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/source-snapshot.json new file mode 100644 index 00000000..ab61ab7f --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/source-snapshot.json @@ -0,0 +1,31 @@ +{ + "head_sha": "47808ac34bcff79882abee4ab796c16c0621ed05", + "worktree": "C:\\Users\\rcha0053\\Repositories\\cbg-pr158", + "core_autocrlf": true, + "files": [ + { + "path": "Cargo.toml", + "working_copy_sha256": "3d6d1f94a1dc5333d921ddf81785989585fefa7488d3c548c2796a0ac14a82f5", + "lf_normalized_sha256": "455a508cf5a3d4ac664af80133bafebe1c8b4c4f721d3ca3e52ab65f822b298e", + "size": 2400 + }, + { + "path": "Cargo.lock", + "working_copy_sha256": "872a1ae44699845609e9c585b3da8e701a31b037acb700707162239fb76ef5df", + "lf_normalized_sha256": "b99948cf1027f1609cbec7f7c43b796743ce4523550e95ce860cfe5dbd4d7d84", + "size": 54607 + }, + { + "path": "src/db_writer/extensions.rs", + "working_copy_sha256": "69abf1ca8854fc0d21dd5bfec00e08e54b19a0b339bd897bec31ec4dc45d0c2c", + "lf_normalized_sha256": "fdaad58193a79b94345a88237efe452938f643ee9c45b8c6e8548c36b760a69d", + "size": 5406 + }, + { + "path": "docs/release.md", + "working_copy_sha256": "8ae92bbb190e1b58a4c702fc5d230706072e2d64c0827215004a6c4f3acb9997", + "lf_normalized_sha256": "6343cbe12df65148254a057cd65572631d8f3b2c0a49029eaef5c696729740d9", + "size": 13453 + } + ] +} \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/tested-artifacts.json b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/tested-artifacts.json new file mode 100644 index 00000000..c165bc1f --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/tested-artifacts.json @@ -0,0 +1,27 @@ +[ + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\installed\\bin\\codebase-graph.exe", + "sha256": "95ad3781beadab8842c137a884a1e8d8f534b1d3c1af1288bffd968ba3fdf665", + "size": 34350080 + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\target\\release\\pr158-windows-probe.exe", + "sha256": "b98c93ac8b57353f8ba53e47f27043f0f767f3e9805e451f43ee52fce33dadb7", + "size": 23448064 + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\probe\\src\\main.rs", + "sha256": "66015b12a528c8608f73c7afaf46c7ac1d52f724febe6415881b7e3623ccc604", + "size": 4554 + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\probe\\Cargo.toml", + "sha256": "93416b3288160c0168c3dde8e676c582dbb0dfbfbf0455c19cb37bf84eab6b32", + "size": 184 + }, + { + "path": "C:\\Users\\rcha0053\\pr158-qualification\\probe\\Cargo.lock", + "sha256": "980de3dbbfee4f7769ae75903fb0f2f0d9d35c10f74dfca6c5af858ab1106477", + "size": 29528 + } +] \ No newline at end of file diff --git a/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification.md b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification.md new file mode 100644 index 00000000..97c9b916 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification.md @@ -0,0 +1,63 @@ +# COD-53 — native Windows qualification of the default-extension subset + +## Verdict and exact scope + +**Windows D05d default-byte execution is verified for the prepared environment below. Full S02 / A03 / A04 / A16 acceptance is not claimed.** + +Tested product source: PR158 head **`47808ac34bcff79882abee4ab796c16c0621ed05`** (implementation subset `6d5de0c57d9311e3a5bf86f30a7767641d6b84bc`). This delivery adds evidence/documentation only. Tracked product source, dependency/ABI versions, extension assets, numeric constants and timeout values are unchanged. Original dirty user checkout is preserved; execution used a separate worktree and private build/install/profile roots. + +Authority remains [approved spec rev0.10](https://github.com/rabii-chaarani/codebaseGraph/blob/1a9db7b558b60248888408daa6268a3b45f2f0df/docs/specs/CBG-PLAT-01/spec.md), R02/A03/A04/A16, the [exact S02 approval](../approvals/cod53-windows-native-runtimes.md), and the [Community2022 licence decision](../decisions/cod53-vc-runtime-licence.md). Existing claims/ownership are unchanged. No merge, publication, deployment, service restart or aggregate closure is authorized. + +## Executed evidence + +Evidence directory: [cod53-windows-qualification-evidence/](cod53-windows-qualification-evidence/). + +| Check | Executed result and limit | +| --- | --- | +| Native Windows defaults, no extra feature flag | **2/2 pass**, 0 failed/ignored, **799 filtered**. Existing JSON/FTS presence/decompression and cache-path tests. Ordinary `release` profile, not the debug-assertion `native-tests` lifecycle suite. [Log](cod53-windows-qualification-evidence/default-extension-tests-shared-wrapped.log). | +| Feature selection and explicit root opt-out | Cargo default tree selects `default` + `bundled-windows-extensions`; isolated root `--no-default-features` tree omits both. Opt-out resolution only, not an opt-out runtime/absence test. [Default](cod53-windows-qualification-evidence/default-feature-tree.log), [opt-out](cod53-windows-qualification-evidence/optout-feature-tree.log). | +| Exact-head ordinary default source install | **Pass**: `cargo install --path --locked --offline --root --bin codebase-graph`, no `--features`. This is an unpublished candidate path install, **not a registry install**. Supplied same-version shared native prerequisite, not a C++ Ladybug source build or self-contained distribution. [Log](cod53-windows-qualification-evidence/cargo-install-shared-resumed.log), [recipe](cod53-windows-qualification-evidence/source-build-recipe.json). | +| Real JSON and native FTS, isolated empty cache | **Pass** in a standalone consumer of the candidate public preseeding API and pinned lbug: JSON `LOAD`/COPY/query; FTS `LOAD`/index/query; checkpoint and **fresh-process reopen/query** returning `six`. Every native query/error is checked. Both cached payload hashes equal the exact candidate XZ-decompressed assets. This is native fixture execution, not a claim that the CLI uses native FTS for new graphs. [Create](cod53-windows-qualification-evidence/native-json-fts-create.log), [reopen](cod53-windows-qualification-evidence/native-json-fts-reopen.log), [cache](cod53-windows-qualification-evidence/cache-audit.json), [fixture](cod53-windows-qualification-evidence/native-probe.rs). | +| Downloader barrier negative | **Pass**: raw `INSTALL json` without preseeding in a separate empty profile reaches the loopback rejecting proxy, fails with `Proxy connection failed`, and leaves no extension payload. Fixture exit 0 means its expected-negative assertion passed, **not INSTALL success**. Positive native create/reopen recorded no proxy request. Scope is this verified Ladybug downloader, not whole-machine network isolation. [Assertion](cod53-windows-qualification-evidence/download-negative-assertions.json), [requests](cod53-windows-qualification-evidence/download-proxy-requests.json). | +| Installed graph build/reopen/search | **Pass** in fresh scratch `q158`: 23 nodes, 35 edges, database written, native exit 0; a fresh installed process finds `SampleService`, native exit 0. New graphs use `disk_bm25_v1`; only JSON is seeded by that path, so absent CLI FTS cache is expected. Real native FTS was tested separately above. The long first retry crossed a kernel restart: uninterrupted proxy lifetime for this particular build is **not established**, although source/cache identities and successful behavior are. [Build](cod53-windows-qualification-evidence/installed-graph-build-short.log), [search](cod53-windows-qualification-evidence/installed-graph-search-short.log), [binding/limit](cod53-windows-qualification-evidence/installed-short-build-binding.json). | +| Fresh installed graph with restart-resistant rejecting proxy | **Pass** in fresh `q158b`/empty `q158bh`: installed build23nodes/35edges/native0, fresh-process `SampleService` search/native0; exact JSON cache; no positive proxy requests. Raw unseeded negatives before and after reach the same owned external rejecting proxy and fail as expected. This closes the older kernel-restart barrier gap without rewriting its history. [Results](cod53-windows-qualification-evidence/guarded-installed-results.json), [build](cod53-windows-qualification-evidence/installed-graph-build-guarded.log), [search](cod53-windows-qualification-evidence/installed-graph-search-guarded.log), [commands](cod53-windows-qualification-evidence/run-index-final-resume.json). | +| Missing configured compiler | **Expected-negative pass**: isolated locked/offline install fails 101 with cc-rs `ToolNotFound`, explicit absent compiler path / Windows error 3; no installed EXE, no fallback/download observed. Does not pretend the host's actual MSVC installation was removed. [Result](cod53-windows-qualification-evidence/missing-compiler-install-result.json). | +| Missing native import library | **Expected-negative pass**: isolated locked/offline install with an empty explicit external native directory fails101, linker `LNK1181` names missing `lbug_shared.lib`; no installed EXE. [Result](cod53-windows-qualification-evidence/missing-native-library-result.json). | +| Missing runtime prerequisite PATH | Nonzero pre-application Windows loader failure `0xC0000135` (`STATUS_DLL_NOT_FOUND`), outer Git Bash exit127/generic diagnostic. **Not a clear product prerequisite diagnostic or proof of missing VC**, which remains globally installed. This remains an A16 failure-diagnostic limit, not an A04 preflight pass. [Scope](cod53-windows-qualification-evidence/missing-runtime-results.json). | +| Windows `.crate` inventory | 8,460,008 bytes, SHA256 `4d924d1260d40d48e04b9cb2e7c41dc72b904687d9ec0b60d08bcaf23ed258e8`; all four XZ payloads match the candidate. `cargo package --no-verify`: **inventory only**, not extracted-package compile. [Audit](cod53-windows-qualification-evidence/package-audit.json). | + +## Host, prerequisites and native identities + +Microsoft **Windows 11 Enterprise 23H2 x86_64, build22631.7652**; CIM identifies Windows11 despite the stale registry ProductName. Enterprise23H2 is supported through 2026-11-10; these results are limited to the recorded supported client/date, not all Windows releases. Rust/Cargo1.96.0 (MSVC target), existing VS2022 Community17.9.6 / cl19.39.33523.0, toolset14.39.33519, SDK10.0.22621.0, Windows PowerShell5.1.22621.7649. [Exact versions](cod53-windows-qualification-evidence/exact-native-versions.log). + +The official Ladybug0.19.0 **shared** archive SHA256 is `8ecb60bb5b3bec7ff263cd23a622c0892d7f605c42af19b4e06d75b1604bf612`. `LBUG_SHARED=1` plus explicit headers/import-lib/DLL supplied the native prerequisite. The official static archive could not link against this older local MSVC toolset (newer STL internal symbols); no shim/version upgrade was made. The source fallback was interrupted, not validated. [Native inputs](cod53-windows-qualification-evidence/shared-native-inputs.json), [trial notes](cod53-windows-qualification-evidence/native-trial-notes.md). + +Actual fixture module origins: Ladybug from the private verified archive; OpenSSL3.3.2 x64 from existing Anaconda `Library/bin`; VC14.50.35719 from System32. Exact hashes/paths are in [loaded-module-audit.json](cod53-windows-qualification-evidence/loaded-module-audit.json). Import-library aliases `ssl.lib`/`crypto.lib` point to copies of existing `libssl.lib`/`libcrypto.lib` in a private link directory. This is declared source-runtime preparation, **not an approved packaged DLL provider, redistribution licence proof, controlled loader or clean-consumer evidence**. No native DLL bytes are committed or distributed. + +The installed EXE SHA256 is `95ad3781beadab8842c137a884a1e8d8f534b1d3c1af1288bffd968ba3fdf665`; native fixture SHA256 `b98c93ac8b57353f8ba53e47f27043f0f767f3e9805e451f43ee52fce33dadb7`. [Artifact/source identities](cod53-windows-qualification-evidence/tested-artifacts.json), [source snapshot](cod53-windows-qualification-evidence/source-snapshot.json). Windows CRLF working-copy hashes are distinguished from LF/Git identities. Harness-only settings are a 256MiB fixture buffer/two query threads, build jobs2, CLI max parallelism1, isolated profiles and process-local prerequisite PATH/proxies. No product constants/global PATH/firewall were changed. + +## Preserved failed trial and review + +The first installed full build timed out before a phase guardian READY, then retained unknown-containment evidence; its search had no readable graph. This failure is retained, not hidden by the later success. Code1 in the phase receipt was owner-cancellation teardown, not proof of native worker code failure. A large proof-file timestamp gap and host wall-time jumps do **not** establish disk, path or product root cause. The later short-path success is an independent result, not causal proof. Protected failed runtime state was not deleted. [Failure](cod53-windows-qualification-evidence/installed-graph-build.log), [investigation](cod53-windows-qualification-evidence/guardian-startup-investigation.md). + +Independent read-only [static fixture review](cod53-windows-qualification-evidence/probe-static-review.md) and [execution review](cod53-windows-qualification-evidence/execution-review.md) distinguish actual commands, checked cache/native bytes, supplied prerequisites and remaining acceptance gaps. They did not rerun the build or modify product source. + +## Historical helper archive — CI repair + +The original `reject-proxy.py` is retained as historical evidence in +[historical-reject-proxy.tar.gz](cod53-windows-qualification-evidence/historical-reject-proxy.tar.gz), +not maintained Python source. [archived-inputs.json](cod53-windows-qualification-evidence/archived-inputs.json) +records the source commit, original member path, byte length and SHA-256 digests. +The original [evidence index](cod53-windows-qualification-evidence/evidence-index.json), +raw reports and recorded commands are unchanged. Its `reject-proxy.py` entry now +resolves to that archived member with the same 1,311 bytes and digest. +Verify both the archive and member before extracting into a separate historical +checkout; do not extract Python files into this checkout. This archival repair +adds no Windows qualification and does not change any verdict above. + +## Still open; no aggregate closure + +- **A16 remains partial** while clear missing-runtime diagnostic evidence is incomplete. A successful prepared-environment path install, default/native tests and installed behavior do not erase its failure-condition limits. Registry publication was neither required nor performed for this unpublished candidate. +- **Full S02/A03/A04 remains unimplemented/unqualified**: permitted exact runtime supply and notices, final PE/export/recursive load closure, trusted app-local loading, archive/installer sidecars and real pre-replacement native probe, clean consumer environment without separately installed runtimes, installed k-wiki/MCP and applicable installer-shell negatives. Existing Community installation evidence does not invent publisher eligibility/term acceptance. +- No extracted Windows `.crate` compile, full Windows native-tests lifecycle rerun, opt-out runtime absence proof, clean runtime-free desktop, release/merge/publication or aggregate COD-53 closure is claimed. +- Reusable-knowledge checkpoint: results are preserved as SHA-bound qualification evidence. No new wiki memory is needed for transient PR status or an unproven failure cause. diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/archive-verification.json b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/archive-verification.json new file mode 100644 index 00000000..651572a3 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/archive-verification.json @@ -0,0 +1,469 @@ +{ + "records": [ + { + "path": ".gitattributes", + "bytes": 9, + "sha256": "8b9c3028d6467ff3be7c793141927841d70f47f52d0590677438f488ca154992", + "from_archive": false, + "match": true + }, + { + "path": "cache-audit.json", + "bytes": 1696, + "sha256": "8ca16a7084171c1e4864ee17edd71f43e86953b3e6337a204f32cc1e00e3cad0", + "from_archive": false, + "match": true + }, + { + "path": "cargo-install-shared-resumed.log", + "bytes": 1473, + "sha256": "268d88c26153bc5152519ee8b01d36719ef52cbf2762ef2aa8bb4af7f6510699", + "from_archive": false, + "match": true + }, + { + "path": "default-extension-tests-shared-wrapped.log", + "bytes": 345, + "sha256": "1d518acaf738c68e51eee9227742123668322c23c8dc9b177edcfc5b30cde36a", + "from_archive": false, + "match": true + }, + { + "path": "default-extension-tests-shared.log", + "bytes": 2857, + "sha256": "63ff487a72dc30ece3609ee3fad1f89c22bd24940de633a01fdf9ee345b360d8", + "from_archive": false, + "match": true + }, + { + "path": "default-feature-tree.log", + "bytes": 249, + "sha256": "177f0c5250af3cd75299e606da184ff00eb0c9342005e7a3e7836d559edc3883", + "from_archive": false, + "match": true + }, + { + "path": "delivery-validation.json", + "bytes": 1480, + "sha256": "018dfb4f7e6eddc8137ec5e72d3992776eb5eec124bbf1452e77be2a7e6183e8", + "from_archive": false, + "match": true + }, + { + "path": "download-negative-assertions.json", + "bytes": 388, + "sha256": "a2863d80fb9caa4e881068f57f64ea681538f7427d360c2b1668a4cf14db25d8", + "from_archive": false, + "match": true + }, + { + "path": "download-negative-final.log", + "bytes": 239, + "sha256": "4f5aff8faec8c865e4278926dcd6c3f2db74c5a5101e3e1bcc6195a95c5924be", + "from_archive": false, + "match": true + }, + { + "path": "download-proxy-requests.json", + "bytes": 537, + "sha256": "7a83a8efbcdf493cf1f314e6c7f4a19d5195d4871dbfd1ffe21283240b2f0029", + "from_archive": false, + "match": true + }, + { + "path": "durable-guard-negative-after.log", + "bytes": 239, + "sha256": "4f5aff8faec8c865e4278926dcd6c3f2db74c5a5101e3e1bcc6195a95c5924be", + "from_archive": false, + "match": true + }, + { + "path": "durable-guard-negative.log", + "bytes": 239, + "sha256": "4f5aff8faec8c865e4278926dcd6c3f2db74c5a5101e3e1bcc6195a95c5924be", + "from_archive": false, + "match": true + }, + { + "path": "exact-native-versions.log", + "bytes": 983, + "sha256": "44aabc08658e870f531bb6925552d8712fef58b512e527527c2000d460954fc5", + "from_archive": false, + "match": true + }, + { + "path": "execution-review.md", + "bytes": 35880, + "sha256": "dfa3212ae2dc920d5e635e19d2be3401ac8b88228110e27db25220cb319768c7", + "from_archive": false, + "match": true + }, + { + "path": "guarded-build-profile-before.json", + "bytes": 1312, + "sha256": "c3acf3717254a1454fda06f73e3ff5799e0f27399a12db714a40188ff924ab87", + "from_archive": false, + "match": true + }, + { + "path": "guarded-installed-results.json", + "bytes": 2305, + "sha256": "568babf5fa55ee890f35118ebcce12f66522dadf5b43f0dc8f30bf03e64c82d1", + "from_archive": false, + "match": true + }, + { + "path": "guardian-startup-investigation.json", + "bytes": 3295, + "sha256": "30fab848bab52e8a475db3aa91e616b6d7d108229182c952cccb1c5948910f01", + "from_archive": false, + "match": true + }, + { + "path": "guardian-startup-investigation.md", + "bytes": 2430, + "sha256": "d8c299f4fc3dc3bbb189cbc19d8c96a46b0c2ec834cd467c3d53d342efb2ba9f", + "from_archive": false, + "match": true + }, + { + "path": "installed-build-help.log", + "bytes": 1587, + "sha256": "66b232cf52ac19ec8b083ad4ae2a116853139f894d3dd4be9b493de950b5b4fe", + "from_archive": false, + "match": true + }, + { + "path": "installed-graph-build-guarded.log", + "bytes": 16083, + "sha256": "d912be6f074f17efcc40cb369f47d9a3e52be96f0ccf5a74624322e2f67f864e", + "from_archive": false, + "match": true + }, + { + "path": "installed-graph-build-short.log", + "bytes": 16081, + "sha256": "d21e041eefd8334c4238017d101830941858f242d40fbcef901d38180f990550", + "from_archive": false, + "match": true + }, + { + "path": "installed-graph-build.log", + "bytes": 625, + "sha256": "fb7122f045ebc0626d26812f1ca63a07a37010d19d8d1fc7ce54cc94055831ac", + "from_archive": false, + "match": true + }, + { + "path": "installed-graph-search-guarded.log", + "bytes": 2604, + "sha256": "9a1f16ebf1372160fca12216aa296f65e5399a745eea2b9bbf0825c5e2d836ba", + "from_archive": false, + "match": true + }, + { + "path": "installed-graph-search-short.log", + "bytes": 2604, + "sha256": "9a1f16ebf1372160fca12216aa296f65e5399a745eea2b9bbf0825c5e2d836ba", + "from_archive": false, + "match": true + }, + { + "path": "installed-graph-search.log", + "bytes": 196, + "sha256": "f464771f9c80cd6ad490c7ad22dedc578e12144840163d69c49e1c04de522471", + "from_archive": false, + "match": true + }, + { + "path": "installed-help.log", + "bytes": 1443, + "sha256": "e73fa1fe3f566989f66dd1a9ee59ac9e32175173f26aa11bfb822b7050d9dace", + "from_archive": false, + "match": true + }, + { + "path": "installed-short-build-binding.json", + "bytes": 2075, + "sha256": "765ad113f60f415fa703958358e7ebf59aad154d73acc9f32a6bb277744ca7e4", + "from_archive": false, + "match": true + }, + { + "path": "installed-short-cache-audit.json", + "bytes": 419, + "sha256": "dca1dad27997a7e0e55a0c708f3d2b9ef4df23444dc35fe40bf2724d5e62152a", + "from_archive": false, + "match": true + }, + { + "path": "ladybug-shared-download.json", + "bytes": 1857, + "sha256": "4f05e181fba07fbb3327adad80248e56a656fbb847edd17b9e4594598dd37a99", + "from_archive": false, + "match": true + }, + { + "path": "ladybug-shared-imports.log", + "bytes": 992, + "sha256": "975ba7347b9f50f3961b4bc98db9f426600369a0a3530a07d4e0d4e380ceb812", + "from_archive": false, + "match": true + }, + { + "path": "loaded-module-audit.json", + "bytes": 1344, + "sha256": "330a3686c791663a80a5d6d92f50561d6e71d95fd39dad9ff6d440c251608bcd", + "from_archive": false, + "match": true + }, + { + "path": "missing-compiler-install-finding.md", + "bytes": 2163, + "sha256": "fa02631ed737cf8d53ea1d5e962fe7cf2880a5272c131fe6b70e14983da531e8", + "from_archive": false, + "match": true + }, + { + "path": "missing-compiler-install-result.json", + "bytes": 8673, + "sha256": "b21fac772327c160cbad16d75874668df3615fc199fbfd7ecf91467e5993793e", + "from_archive": false, + "match": true + }, + { + "path": "missing-compiler-install.log", + "bytes": 9413, + "sha256": "de2c40a4305d8087a5546c45ddd9318c84567ad55e8d2f253cd00ab09734ed0c", + "from_archive": false, + "match": true + }, + { + "path": "missing-native-library-install.log", + "bytes": 10435, + "sha256": "019ca3ae30d695dfa0fd2fbb2fa9db4d885823d9233a35cf93f054cf2bbe3358", + "from_archive": false, + "match": true + }, + { + "path": "missing-native-library-result.json", + "bytes": 561, + "sha256": "8ac74919967e34405ac95212614a792ac68f45caba4c3d9e366a720041fb98dc", + "from_archive": false, + "match": true + }, + { + "path": "missing-native-runtime.log", + "bytes": 190, + "sha256": "ae69807ea02235b708e5bcccb926e69a039bb837ab9238a3a0e41fbea228c573", + "from_archive": false, + "match": true + }, + { + "path": "missing-openssl-runtime.log", + "bytes": 190, + "sha256": "ae69807ea02235b708e5bcccb926e69a039bb837ab9238a3a0e41fbea228c573", + "from_archive": false, + "match": true + }, + { + "path": "missing-runtime-results.json", + "bytes": 778, + "sha256": "c898ab1d4a2218302cee2f92799613644bb2b003bd1f91be9a67890f8e744106", + "from_archive": false, + "match": true + }, + { + "path": "native-json-fts-create.log", + "bytes": 1720, + "sha256": "6a0a72f2aa6e40ecb5ccd9a8e6c86032164ee500faa991c967d4e74026a293e9", + "from_archive": false, + "match": true + }, + { + "path": "native-json-fts-reopen.log", + "bytes": 1142, + "sha256": "481319f3bde03a97b830f1a7bda75f25d218fe788d5d0123a538572deaa836a2", + "from_archive": false, + "match": true + }, + { + "path": "native-probe-Cargo.toml", + "bytes": 184, + "sha256": "93416b3288160c0168c3dde8e676c582dbb0dfbfbf0455c19cb37bf84eab6b32", + "from_archive": false, + "match": true + }, + { + "path": "native-probe.rs", + "bytes": 4554, + "sha256": "66015b12a528c8608f73c7afaf46c7ac1d52f724febe6415881b7e3623ccc604", + "from_archive": false, + "match": true + }, + { + "path": "native-trial-notes.md", + "bytes": 1109, + "sha256": "53f9d6aed3a5454012101de94c28e6706455b1506d3791a6096ce5938b620c62", + "from_archive": false, + "match": true + }, + { + "path": "optout-feature-tree.log", + "bytes": 65, + "sha256": "db6ff54745f99f38060bb30c58f49434b0b32f6e6fc060bbc6c932024bb542d5", + "from_archive": false, + "match": true + }, + { + "path": "os-version.json", + "bytes": 125, + "sha256": "6c9b235fa7c510e06fc910b31e8c6f1764651286ea921c83d5f1ae3e9305cc60", + "from_archive": false, + "match": true + }, + { + "path": "package-audit.json", + "bytes": 1714, + "sha256": "2bc404b3903450b03e2d8cef40f55eb01bfb8a52b3f2566fc38e8812c8597116", + "from_archive": false, + "match": true + }, + { + "path": "pr-ci-evidence.json", + "bytes": 9894, + "sha256": "64b6449cf0c68182ad969bee9626e9bfbc9358a7052170c42d452ca7e3de69ee", + "from_archive": false, + "match": true + }, + { + "path": "probe-static-review.md", + "bytes": 8347, + "sha256": "c9e896bb7824993f029c268a99e7b58118976473423c0adc72cf721186f47f71", + "from_archive": false, + "match": true + }, + { + "path": "profiles-before.json", + "bytes": 99, + "sha256": "b4224e0a83c518fd987b3639e0d68c4d396752d93b3bb1a420b3fd451881746e", + "from_archive": false, + "match": true + }, + { + "path": "proxy-guard-ready.json", + "bytes": 129, + "sha256": "a3d467594ae335d663cf13f0906f3dba04fe9c997579e0caf8959211634ee7fc", + "from_archive": false, + "match": true + }, + { + "path": "proxy-guard-requests.jsonl", + "bytes": 276, + "sha256": "8a4d879060675c3e73b5b06f647a05c78cacc55dea2a1b4324529e6288dbc19b", + "from_archive": false, + "match": true + }, + { + "path": "qualification-status.json", + "bytes": 14033, + "sha256": "8e3675d903ab070db724a06103db07ae366752671206fdb7e8d04b1a955904ce", + "from_archive": false, + "match": true + }, + { + "path": "reject-proxy.py", + "bytes": 1311, + "sha256": "ca7ada29f99cb0a6da0807d6f468c22ad81d1bce59abe5c9f743c1b03b83588f", + "from_archive": true, + "match": true + }, + { + "path": "run-index-current.json", + "bytes": 18155, + "sha256": "c91b05691b2f5cfb7d5138426eab70c2483f0bfb41f82cbe467311468198a528", + "from_archive": false, + "match": true + }, + { + "path": "run-index-final-resume.json", + "bytes": 8278, + "sha256": "3f48af72140b63f734c320dfe90987c6c957e4d832a7806dc13631291464c427", + "from_archive": false, + "match": true + }, + { + "path": "run-native.ps1", + "bytes": 663, + "sha256": "8ff6671702586004741bbafe97e0cef9c9f5dd107ddd97a1d8da7a1cd229176e", + "from_archive": false, + "match": true + }, + { + "path": "runtime-download-policy-resumed.json", + "bytes": 1031, + "sha256": "747a69896a23953e236935661f515f33412b9f99266d5ace7a00b8d20e7c83e1", + "from_archive": false, + "match": true + }, + { + "path": "runtime-download-policy-search.json", + "bytes": 886, + "sha256": "e3073ce8cf0d7797ae1676e32aa2adf261ad5dfa2799c6e6e9a73d1eb048fa1d", + "from_archive": false, + "match": true + }, + { + "path": "rust-provenance.json", + "bytes": 821, + "sha256": "2fbf0f17d25af19bf614cf4610ae08ea4ec799955a0bbafaeb60d77d6a0e0aa1", + "from_archive": false, + "match": true + }, + { + "path": "shared-native-inputs.json", + "bytes": 834, + "sha256": "cee62679e8935f20984f6ccbe708654787ffdfb0e5067b1ee359f572e7500d4b", + "from_archive": false, + "match": true + }, + { + "path": "source-build-inputs.json", + "bytes": 2003, + "sha256": "7ca37b2cc378dcc9323b054142026c8818d2351a52a509e8b75c077b7588378a", + "from_archive": false, + "match": true + }, + { + "path": "source-build-recipe.json", + "bytes": 2636, + "sha256": "dfaf3b5771e6e8f0a0a562f61902f55273291a676663a1aa101a75d6366ff9f2", + "from_archive": false, + "match": true + }, + { + "path": "source-snapshot.json", + "bytes": 1238, + "sha256": "666fb584eaa744b3bf45b912be94ba68f6760bca6efc7741e4e30cfe100956f8", + "from_archive": false, + "match": true + }, + { + "path": "tested-artifacts.json", + "bytes": 993, + "sha256": "aa15a8e25ed1a77bfbcecb10beac3cbd58b998a2bc28a576bfeee2463e001132", + "from_archive": false, + "match": true + } + ], + "source_sha": "5f68b41cebc327072cf71be770c9e5a9d1c0dad2", + "archive": { + "path": "historical-reject-proxy.tar.gz", + "bytes": 998, + "sha256": "d37b3c86d978018d137375e7a30316b3ce779b2787df5037237032bdec892752", + "creation_command": "git archive --format=tar.gz 5f68b41cebc327072cf71be770c9e5a9d1c0dad2 docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/reject-proxy.py" + }, + "deterministic_second_archive": true, + "original_index_bytes_unchanged": true, + "other_historical_files_unchanged": true +} diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/audit-research.md b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/audit-research.md new file mode 100644 index 00000000..db6e4a9c --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/audit-research.md @@ -0,0 +1,27 @@ +# PR158 / COD-53 independent CI audit: pulldown-cmark + +## Scope and finding + +This is a read-only audit of PR #158 head `5f68b41cebc327072cf71be770c9e5a9d1c0dad2` for CI run 40798473142. The captured `cargo audit` job scans 223 locked crate dependencies and fails on `pulldown-cmark 0.13.4`, `RUSTSEC-2026-0414` (“Exponential event growth with `ENABLE_WIKILINKS`”), CVSS 7.5 high; RustSec says upgrade to `>=0.13.5`. Evidence: `/private/tmp/codebasegraph-pr158-ci-40798473142/baseline-audit-job.log` and `baseline-head-audit.log`. + +The same scan lists `cxx 1.0.138` / RUSTSEC-2026-0202 and `tokio 1.53.1` / RUSTSEC-2026-0386 as **two allowed warnings**, not the failing vulnerability. This diagnosis does not resolve or expand scope to those warnings. No ignore for 0414 is appropriate. + +## Primary sources and patch facts + +- RustSec advisory page: https://rustsec.org/advisories/RUSTSEC-2026-0414 +- Official advisory record: https://github.com/RustSec/advisory-db/blob/main/crates/pulldown-cmark/RUSTSEC-2026-0414.md . It documents exponential parser-event growth from empty-display wikilinks such as `[[a|]]` when `ENABLE_WIKILINKS` is enabled, potentially exhausting memory on a small document. It says this option is off by default and identifies fix #1102 / 0.13.5. +- Official 0.13.5 release (published 2026-10-21): https://github.com/pulldown-cmark/pulldown-cmark/releases/tag/v0.13.5 . Release notes say security issues were fixed and refer to #1181. +- Stable-branch security fix: https://github.com/pulldown-cmark/pulldown-cmark/pull/1181 . Original upstream fix and regression details: https://github.com/pulldown-cmark/pulldown-cmark/pull/1102 . +- Crates.io sparse index record: https://index.crates.io/pu/ll/pulldown-cmark . Version 0.13.5 checksum is `278e9268c93b9e498a2da46c34d90ba93a3255eb99009646398f34bc73ab36eb`; `rust_version` is 1.71.1, same as 0.13.4. The normal dependency requirements and feature sets are unchanged from 0.13.4. Upstream manifests: [0.13.4](https://github.com/pulldown-cmark/pulldown-cmark/blob/v0.13.4/pulldown-cmark/Cargo.toml), [0.13.5](https://github.com/pulldown-cmark/pulldown-cmark/blob/v0.13.5/pulldown-cmark/Cargo.toml). + +## Consumer and minimum patch + +Graph-first semantic search located the consumers in `crates/k-wiki/src/compiler/mod.rs` and `crates/k-wiki/src/render/mod.rs`; semantic dependency and change-impact contexts were requested. The registered graph is not exact-head proof, so I checked these paths in the isolated PR-head worktree. Compiler parsing uses `Parser::new(...).into_offset_iter()` (default options). Rendering explicitly enables tables, strikethrough, task lists, footnotes and GFM; it does not enable `ENABLE_WIKILINKS` or use `Options::all()`. Both graph-discovered source files are byte-identical to PR head. The application’s current parser options do not activate the advisory’s vulnerable feature, but the lockfile still triggers a valid advisory rejection and should be patched. + +The sole direct declaration is in `crates/k-wiki/Cargo.toml`: `pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] }`. The lock pins 0.13.4 with checksum `e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e`; `pulldown-cmark-escape` is 0.11.0. + +**Recommended minimum product-file set:** `crates/k-wiki/Cargo.toml` and `Cargo.lock` only. Raise the manifest minimum from `0.13` to `0.13.5`, preserving `default-features = false` and `features = ["html"]`; update the lock entry precisely to 0.13.5 and its verified checksum. The existing 0.13 semver requirement already permits 0.13.5, so a lock-only update can make this exact build pass; raising the lower bound additionally prevents future resolution below the fixed version. No feature, API call, ABI, or other dependency change is supported or needed by these findings. MSRV 1.71.1 is below this workspace’s Rust 1.82 floor. This is an upstream patch release with unchanged package dependency requirements/features; no compatibility blocker was found for the use-sites inspected. + +## Limits and handoff + +I made no product edits and ran no build, dependency resolution, or post-fix audit. This report independently verifies the baseline finding and upstream patch facts; the coordinator’s post-patch audit/test results should be recorded from their actual logs, not attributed to this audit. Official primary sources were reachable, so there is no external-source blocker. Keep the other PR158 package/release-gate diagnosis separate; it is not part of this advisory finding. diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-audit-job.log.gz b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-audit-job.log.gz new file mode 100644 index 00000000..110fcd5f Binary files /dev/null and b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-audit-job.log.gz differ diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-head-audit.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-head-audit.log new file mode 100644 index 00000000..50942dd1 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-head-audit.log @@ -0,0 +1,31 @@ + Fetching advisory database from `https://github.com/RustSec/advisory-db.git` + Loaded 1381 security advisories (from /Users/rabii/.cargo/advisory-db) + Updating crates.io index + Scanning Cargo.lock for vulnerabilities (223 crate dependencies) +Crate: pulldown-cmark +Version: 0.13.4 +Title: Exponential event growth with `ENABLE_WIKILINKS` +Date: 2026-10-18 +ID: RUSTSEC-2026-0414 +URL: https://rustsec.org/advisories/RUSTSEC-2026-0414 +Severity: 7.5 (high) +Solution: Upgrade to >=0.13.5 + +Crate: cxx +Version: 1.0.138 +Warning: unsound +Title: `let_cxx_string!` uses uninitialized value due to exception safety violations +Date: 2026-07-05 +ID: RUSTSEC-2026-0202 +URL: https://rustsec.org/advisories/RUSTSEC-2026-0202 + +Crate: tokio +Version: 1.53.1 +Warning: unsound +Title: `AsyncFd::new` and related constructors violate I/O safety +Date: 2026-10-13 +ID: RUSTSEC-2026-0386 +URL: https://rustsec.org/advisories/RUSTSEC-2026-0386 + +error: 1 vulnerability found! +warning: 2 allowed warnings found diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-head-release-gate.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-head-release-gate.log new file mode 100644 index 00000000..a071c994 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-head-release-gate.log @@ -0,0 +1,47 @@ + Compiling libc v0.2.189 + Compiling version_check v0.9.5 + Compiling proc-macro2 v1.0.106 + Compiling quote v1.0.45 + Compiling unicode-ident v1.0.24 + Compiling typenum v1.20.1 + Compiling serde_core v1.0.228 + Compiling cfg-if v1.0.4 + Compiling rustix v1.1.4 + Compiling crc32fast v1.5.0 + Compiling bitflags v2.13.0 + Compiling zmij v1.0.21 + Compiling serde v1.0.228 + Compiling generic-array v0.14.7 + Compiling simd-adler32 v0.3.10 + Compiling equivalent v1.0.2 + Compiling hashbrown v0.15.5 + Compiling itoa v1.0.18 + Compiling adler2 v2.0.1 + Compiling serde_json v1.0.150 + Compiling miniz_oxide v0.9.1 + Compiling indexmap v2.7.1 + Compiling ryu v1.0.23 + Compiling libyaml-rs v0.3.0 + Compiling memchr v2.8.2 + Compiling flate2 v1.1.10 + Compiling block-buffer v0.10.4 + Compiling crypto-common v0.1.7 + Compiling digest v0.10.7 + Compiling errno v0.3.14 + Compiling cpufeatures v0.2.17 + Compiling filetime v0.2.29 + Compiling sha2 v0.10.9 + Compiling xattr v1.6.1 + Compiling tar v0.4.46 + Compiling syn v2.0.117 + Compiling serde_derive v1.0.228 + Compiling yaml_serde v0.10.7 + Compiling xtask v4.0.0 (/private/tmp/codebasegraph-pr158-ci-fix/crates/xtask) + Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.60s + Running `target/debug/xtask release-gate` +FAIL: python-file-present: docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/reject-proxy.py must not be maintained source. +FAIL: python-file-present: docs/testing/graph-disk-cleanup-evidence/audit.py must not be maintained source. +FAIL: python-file-present: docs/testing/graph-disk-cleanup-evidence/test_qualification.py must not be maintained source. +FAIL: python-file-present: docs/testing/graph-disk-cleanup-evidence/qualification.py must not be maintained source. +FAIL: python-file-present: docs/testing/graph-disk-cleanup-evidence/test_audit.py must not be maintained source. +release gate failed diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-native-suite-compile-retry.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-native-suite-compile-retry.log new file mode 100644 index 00000000..84a9c3e9 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-native-suite-compile-retry.log @@ -0,0 +1,58 @@ + Compiling tinystr v0.8.3 + Compiling potential_utf v0.1.5 + Compiling tree-sitter-javascript v0.25.0 + Compiling tree-sitter-typescript v0.23.2 + Compiling tree-sitter-go v0.25.0 + Compiling tree-sitter-rust v0.24.2 + Compiling markup5ever v0.39.0 + Compiling regex v1.12.4 + Compiling lbug v0.19.0 + Compiling form_urlencoded v1.2.2 + Compiling icu_collections v2.2.0 + Compiling icu_locale_core v2.2.0 + Compiling http-body-util v0.1.4 + Compiling fsevent-sys v4.1.0 + Compiling codebase-graph v4.0.0 (/private/tmp/codebasegraph-pr158-ci-fix) + Compiling byteorder v1.5.0 + Compiling notify-types v2.0.0 + Compiling uuid v1.18.1 + Compiling streaming-iterator v0.1.9 + Compiling mime v0.3.17 + Compiling pulldown-cmark v0.13.4 + Compiling tree-sitter v0.25.10 + Compiling axum-core v0.5.6 + Compiling icu_provider v2.2.0 + Compiling notify v8.2.0 + Compiling icu_normalizer v2.2.0 + Compiling icu_properties v2.2.0 + Compiling lzma-rs v0.3.0 + Compiling yaml_serde v0.10.7 + Compiling html5ever v0.39.0 + Compiling tree-sitter-c v0.24.2 + Compiling tree-sitter-css v0.25.0 + Compiling tree-sitter-html v0.23.2 + Compiling tree-sitter-python v0.25.0 + Compiling tree-sitter-cpp v0.23.4 + Compiling tree-sitter-fortran v0.6.0 + Compiling hyper-util v0.1.20 + Compiling idna_adapter v1.2.2 + Compiling idna v1.1.0 + Compiling tower v0.5.3 + Compiling getrandom v0.3.4 + Compiling cssparser v0.37.0 + Compiling url v2.5.8 + Compiling mimalloc v0.1.52 + Compiling serde_path_to_error v0.1.20 + Compiling fs2 v0.4.3 + Compiling pulldown-cmark-escape v0.11.0 + Compiling matchit v0.8.4 + Compiling maplit v1.0.2 + Compiling unicase v2.9.0 + Compiling axum v0.8.9 + Compiling ammonia v4.1.8 + Compiling rustix v1.1.4 + Compiling xattr v1.6.1 + Compiling tar v0.4.46 + Compiling xtask v4.0.0 (/private/tmp/codebasegraph-pr158-ci-fix/crates/xtask) + Compiling k-wiki v4.0.0 (/private/tmp/codebasegraph-pr158-ci-fix/crates/k-wiki) + Finished `test` profile [unoptimized + debuginfo] target(s) in 27.12s diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-native-suite-compile.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-native-suite-compile.log new file mode 100644 index 00000000..37642c7a --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-native-suite-compile.log @@ -0,0 +1,184 @@ + Compiling find-msvc-tools v0.1.9 + Compiling shlex v2.0.1 + Compiling proc-macro2 v1.0.106 + Compiling quote v1.0.45 + Compiling tree-sitter-language v0.1.8 + Compiling smallvec v1.15.2 + Compiling stable_deref_trait v1.2.1 + Compiling siphasher v1.0.3 + Compiling errno v0.3.14 + Compiling serde_core v1.0.228 + Compiling memchr v2.8.2 + Compiling fastrand v2.5.0 + Compiling cc v1.2.64 + Compiling phf_shared v0.13.1 + Compiling bytes v1.12.1 + Compiling pin-project-lite v0.2.17 + Compiling futures-core v0.3.32 + Compiling writeable v0.6.3 + Compiling phf_generator v0.13.1 + Compiling litemap v0.8.2 + Compiling rustversion v1.0.22 + Compiling parking_lot_core v0.9.12 + Compiling scratch v1.0.9 + Compiling serde_json v1.0.150 + Compiling icu_properties_data v2.2.0 + Compiling utf8_iter v1.0.4 + Compiling scopeguard v1.2.0 + Compiling icu_normalizer_data v2.2.0 + Compiling lock_api v0.4.14 + Compiling link-cplusplus v1.0.12 + Compiling syn v2.0.117 + Compiling syn v3.0.3 + Compiling string_cache_codegen v0.6.1 + Compiling http v1.5.0 + Compiling phf_codegen v0.13.1 + Compiling indexmap v2.7.1 + Compiling new_debug_unreachable v1.0.6 + Compiling synstructure v0.13.2 + Compiling cxxbridge-flags v1.0.138 + Compiling unicode-width v0.1.14 + Compiling autocfg v1.5.1 + Compiling termcolor v1.4.1 + Compiling cxx v1.0.138 + Compiling http-body v1.1.0 + Compiling codespan-reporting v0.11.1 + Compiling displaydoc v0.2.7 + Compiling tokio-macros v2.7.2 + Compiling num-traits v0.2.19 + Compiling web_atoms v0.2.6 + Compiling parking_lot v0.12.5 + Compiling libmimalloc-sys v0.1.49 + Compiling signal-hook-registry v1.4.8 + Compiling socket2 v0.6.5 + Compiling mio v1.2.1 + Compiling log v0.4.32 + Compiling precomputed-hash v0.1.1 + Compiling httparse v1.10.1 + Compiling string_cache v0.9.0 + Compiling tree-sitter v0.25.10 + Compiling zerofrom-derive v0.1.7 + Compiling yoke-derive v0.8.2 + Compiling zerovec-derive v0.11.3 + Compiling serde_derive v1.0.228 + Compiling tokio v1.53.1 + Compiling cxx-build v1.0.138 + Compiling zerofrom v0.1.8 + Compiling cmake v0.1.58 + Compiling aho-corasick v1.1.4 + Compiling phf v0.13.1 + Compiling rust_decimal v1.42.1 + Compiling powerfmt v0.2.0 + Compiling regex-syntax v0.8.11 + Compiling percent-encoding v2.3.2 + Compiling tower-service v0.3.3 + Compiling deranged v0.3.11 + Compiling serde v1.0.228 + Compiling lbug v0.19.0 + Compiling cxxbridge-macro v1.0.138 + Compiling regex-automata v0.4.14 + Compiling yoke v0.8.3 + Compiling tendril v0.5.1 + Compiling tree-sitter-javascript v0.25.0 + Compiling tree-sitter-typescript v0.23.2 + Compiling tree-sitter-rust v0.24.2 + Compiling tree-sitter-go v0.25.0 + Compiling tree-sitter-html v0.23.2 + Compiling tree-sitter-fortran v0.6.0 + Compiling tree-sitter-c v0.24.2 + Compiling tree-sitter-python v0.25.0 + Compiling tree-sitter-css v0.25.0 + Compiling tree-sitter-cpp v0.23.4 + Compiling futures-channel v0.3.32 + Compiling arrayvec v0.7.6 + Compiling cty v0.2.2 + Compiling dtoa v1.0.11 + Compiling crc-catalog v2.5.0 + Compiling getrandom v0.3.4 + Compiling foldhash v0.1.5 + Compiling sync_wrapper v1.0.2 + Compiling futures-task v0.3.32 + Compiling httpdate v1.0.3 + Compiling tower-layer v0.3.3 + Compiling same-file v1.0.6 + Compiling num-conv v0.1.0 + Compiling time-core v0.1.2 + Compiling slab v0.4.12 + Compiling atomic-waker v1.1.2 + Compiling time v0.3.36 + Compiling walkdir v2.5.0 + Compiling futures-util v0.3.32 + Compiling dtoa-short v0.3.5 + Compiling crc v3.4.0 + Compiling hyper v1.11.0 + Compiling zerovec v0.11.6 + Compiling zerotrie v0.2.4 +warning: lbug@0.19.0: In file included from /private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/cxxbridge/sources/lbug/src/ffi.rs.cc:1: +warning: lbug@0.19.0: /private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/cxxbridge/crate/lbug/include/lbug_rs.h:16:10: fatal error: 'lbug.h' file not found +warning: lbug@0.19.0: 16 | #include +warning: lbug@0.19.0: | ^~~~~~~~ +warning: lbug@0.19.0: 1 error generated. +error: failed to run custom build command for `lbug v0.19.0` + +Caused by: + process didn't exit successfully: `/private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-4ca07292dcf6cd27/build-script-build` (exit status: 1) + --- stdout + cargo:rustc-link-search=native=/Users/rabii/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lbug-0.19.0/.cache/lbug-prebuilt/latest/lib + cargo:rustc-link-arg=-Wl,-rpath,/Users/rabii/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lbug-0.19.0/.cache/lbug-prebuilt/latest/lib + cargo:rustc-env=LBUG_PRECOMPILED_SOURCE=external + cargo:rustc-env=LBUG_PRECOMPILED_LIBRARY_DIR=/Users/rabii/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lbug-0.19.0/.cache/lbug-prebuilt/latest/lib + cargo:rustc-link-arg=-rdynamic + cargo:rustc-link-lib=static:+whole-archive=lbug + cargo:rustc-link-lib=dylib=c++ + cargo:rustc-link-search=native=/opt/homebrew/Cellar/openssl@3/3.6.2/lib + cargo:rustc-link-lib=dylib=ssl + cargo:rustc-link-lib=dylib=crypto + cargo:CXXBRIDGE_PREFIX=lbug + cargo:CXXBRIDGE_DIR0=/private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/cxxbridge/include + cargo:CXXBRIDGE_DIR1=/private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/cxxbridge/crate + cargo:rerun-if-env-changed=LBUG_SHARED + cargo:rerun-if-changed=include/lbug_rs.h + cargo:rerun-if-changed=src/lbug_rs.cpp + cargo:rerun-if-changed=src/ffi.rs + cargo:rerun-if-changed=src/lbug_rs.cpp + cargo:rerun-if-env-changed=CC_FORCE_DISABLE + CC_FORCE_DISABLE = None + cargo:rerun-if-env-changed=CXX_aarch64-apple-darwin + CXX_aarch64-apple-darwin = None + cargo:rerun-if-env-changed=CXX_aarch64_apple_darwin + CXX_aarch64_apple_darwin = None + cargo:rerun-if-env-changed=HOST_CXX + HOST_CXX = None + cargo:rerun-if-env-changed=CXX + CXX = None + cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT + cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS + CRATE_CC_NO_DEFAULTS = None + cargo:rerun-if-env-changed=MACOSX_DEPLOYMENT_TARGET + MACOSX_DEPLOYMENT_TARGET = None + cargo:rerun-if-env-changed=CXXFLAGS + CXXFLAGS = None + cargo:rerun-if-env-changed=HOST_CXXFLAGS + HOST_CXXFLAGS = None + cargo:rerun-if-env-changed=CXXFLAGS_aarch64_apple_darwin + CXXFLAGS_aarch64_apple_darwin = None + cargo:rerun-if-env-changed=CXXFLAGS_aarch64-apple-darwin + CXXFLAGS_aarch64-apple-darwin = None + cargo:warning=In file included from /private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/cxxbridge/sources/lbug/src/ffi.rs.cc:1: + cargo:warning=/private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/cxxbridge/crate/lbug/include/lbug_rs.h:16:10: fatal error: 'lbug.h' file not found + cargo:warning= 16 | #include + cargo:warning= | ^~~~~~~~ + cargo:warning=1 error generated. + + --- stderr + + CXX include path: + /private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/cxxbridge/include + /private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/cxxbridge/crate + + + error occurred in cc-rs: command did not execute successfully (status code exit status: 1): env -u IPHONEOS_DEPLOYMENT_TARGET LC_ALL="C" "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-gdwarf-2" "-fno-omit-frame-pointer" "--target=arm64-apple-macosx" "-mmacosx-version-min=26.5" "-I" "/private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/cxxbridge/include" "-I" "/private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/cxxbridge/crate" "-I" "/Users/rabii/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lbug-0.19.0/include" "-I" "/Users/rabii/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lbug-0.19.0/.cache/lbug-prebuilt/latest/include" "-Wall" "-Wextra" "-std=c++2a" "-DENABLE_RUNTIME_CHECKS=1" "-DLBUG_STATIC_DEFINE" "-o" "/private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/694e1b58ba026442-ffi.rs.o" "-c" "/private/tmp/codebasegraph-pr158-ci-fix/target/debug/build/lbug-abfee79798fc3738/out/cxxbridge/sources/lbug/src/ffi.rs.cc" + + +warning: build failed, waiting for other jobs to finish... +error: command `/Users/rabii/.rustup/toolchains/stable-aarch64-apple-darwin/bin/cargo test --no-run --message-format json-render-diagnostics --package k-wiki --package xtask --locked` exited with code 101 diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-package-job.log.gz b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-package-job.log.gz new file mode 100644 index 00000000..8c54ad01 Binary files /dev/null and b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/baseline-package-job.log.gz differ diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/clippy.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/clippy.log new file mode 100644 index 00000000..666e2319 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/clippy.log @@ -0,0 +1,158 @@ + Blocking waiting for file lock on package cache + Checking cfg-if v1.0.4 + Checking itoa v1.0.18 + Checking memchr v2.8.2 + Checking libc v0.2.189 + Checking tree-sitter-language v0.1.8 + Checking bitflags v2.13.0 + Checking serde_core v1.0.228 + Checking typenum v1.20.1 + Compiling equivalent v1.0.2 + Compiling hashbrown v0.15.5 + Compiling zmij v1.0.21 + Checking log v0.4.32 + Checking regex-syntax v0.8.11 + Checking powerfmt v0.2.0 + Checking num-traits v0.2.19 + Checking link-cplusplus v1.0.12 + Checking deranged v0.3.11 + Checking aho-corasick v1.1.4 + Checking arrayvec v0.7.6 + Checking foldhash v0.1.5 + Checking same-file v1.0.6 + Checking num-conv v0.1.0 + Checking cty v0.2.2 + Checking crc-catalog v2.5.0 + Checking time-core v0.1.2 + Checking crc v3.4.0 + Checking libmimalloc-sys v0.1.49 + Checking cpufeatures v0.2.17 + Compiling indexmap v2.7.1 + Checking fsevent-sys v4.1.0 + Checking walkdir v2.5.0 + Checking cxx v1.0.138 + Compiling codebase-graph v4.0.0 (/private/tmp/codebasegraph-pr158-ci-fix) + Checking uuid v1.18.1 + Checking generic-array v0.14.7 + Checking streaming-iterator v0.1.9 + Checking byteorder v1.5.0 + Checking notify-types v2.0.0 + Checking rust_decimal v1.42.1 + Checking tree-sitter-javascript v0.25.0 + Checking lzma-rs v0.3.0 + Checking tree-sitter-python v0.25.0 + Checking notify v8.2.0 + Checking tree-sitter-cpp v0.23.4 + Checking time v0.3.36 + Checking tree-sitter-c v0.24.2 + Checking tree-sitter-html v0.23.2 + Checking tree-sitter-rust v0.24.2 + Checking tree-sitter-fortran v0.6.0 + Checking tree-sitter-css v0.25.0 + Checking tree-sitter-go v0.25.0 + Checking tree-sitter-typescript v0.23.2 + Checking getrandom v0.3.4 + Checking mimalloc v0.1.52 + Checking fs2 v0.4.3 + Checking smallvec v1.15.2 + Checking zerofrom v0.1.8 + Checking stable_deref_trait v1.2.1 + Compiling serde_json v1.0.150 + Checking errno v0.3.14 + Compiling siphasher v1.0.3 + Checking bytes v1.12.1 + Checking yoke v0.8.3 + Checking litemap v0.8.2 + Checking writeable v0.6.3 + Checking block-buffer v0.10.4 + Checking crypto-common v0.1.7 + Checking zerovec v0.11.6 + Compiling phf_shared v0.13.1 + Checking pin-project-lite v0.2.17 + Checking futures-core v0.3.32 + Checking zerotrie v0.2.4 + Checking digest v0.10.7 + Checking utf8_iter v1.0.4 + Checking scopeguard v1.2.0 + Checking sha2 v0.10.9 + Compiling phf_generator v0.13.1 + Checking lock_api v0.4.14 + Checking parking_lot_core v0.9.12 + Compiling phf_codegen v0.13.1 + Compiling string_cache_codegen v0.6.1 + Checking new_debug_unreachable v1.0.6 + Checking icu_properties_data v2.2.0 + Checking icu_normalizer_data v2.2.0 + Checking signal-hook-registry v1.4.8 + Checking parking_lot v0.12.5 + Checking mio v1.2.1 + Checking socket2 v0.6.5 + Checking precomputed-hash v0.1.1 + Checking http v1.5.0 + Checking phf v0.13.1 + Checking string_cache v0.9.0 + Compiling web_atoms v0.2.6 + Checking tower-service v0.3.3 + Checking percent-encoding v2.3.2 + Checking httparse v1.10.1 + Checking tendril v0.5.1 + Checking tinystr v0.8.3 + Checking potential_utf v0.1.5 + Checking tokio v1.53.1 + Checking icu_collections v2.2.0 + Checking icu_locale_core v2.2.0 + Checking futures-channel v0.3.32 + Checking regex-automata v0.4.14 + Checking libyaml-rs v0.3.0 + Checking futures-task v0.3.32 + Checking http-body v1.1.0 + Checking serde v1.0.228 + Checking tower-layer v0.3.3 + Compiling tree-sitter v0.25.10 + Checking dtoa v1.0.11 + Checking icu_provider v2.2.0 + Checking slab v0.4.12 + Checking sync_wrapper v1.0.2 + Checking ryu v1.0.23 + Checking httpdate v1.0.3 + Checking atomic-waker v1.1.2 + Checking futures-util v0.3.32 + Checking icu_properties v2.2.0 + Checking icu_normalizer v2.2.0 + Checking yaml_serde v0.10.7 + Checking dtoa-short v0.3.5 + Checking http-body-util v0.1.4 + Checking lbug v0.19.0 + Checking form_urlencoded v1.2.2 + Checking mime v0.3.17 + Checking cssparser v0.37.0 + Checking axum-core v0.5.6 + Checking serde_path_to_error v0.1.20 + Checking maplit v1.0.2 + Checking pulldown-cmark-escape v0.11.0 + Checking unicase v2.9.0 + Checking matchit v0.8.4 + Checking regex v1.12.4 + Checking rustix v1.1.4 + Checking pulldown-cmark v0.13.5 + Checking idna_adapter v1.2.2 + Checking adler2 v2.0.1 + Checking idna v1.1.0 + Checking simd-adler32 v0.3.10 + Checking crc32fast v1.5.0 + Checking miniz_oxide v0.9.1 + Checking filetime v0.2.29 + Checking url v2.5.8 + Checking flate2 v1.1.10 + Checking xattr v1.6.1 + Checking tar v0.4.46 + Checking xtask v4.0.0 (/private/tmp/codebasegraph-pr158-ci-fix/crates/xtask) + Checking hyper v1.11.0 + Checking tower v0.5.3 + Checking hyper-util v0.1.20 + Checking axum v0.8.9 + Checking markup5ever v0.39.0 + Checking html5ever v0.39.0 + Checking ammonia v4.1.8 + Checking k-wiki v4.0.0 (/private/tmp/codebasegraph-pr158-ci-fix/crates/k-wiki) + Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.77s diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/combined-evidence-release-gate.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/combined-evidence-release-gate.log new file mode 100644 index 00000000..2d6f0190 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/combined-evidence-release-gate.log @@ -0,0 +1,3 @@ + Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.05s + Running `target/debug/xtask release-gate` +release gate passed diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/crate-package.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/crate-package.log new file mode 100644 index 00000000..c6fe4638 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/crate-package.log @@ -0,0 +1,5 @@ + Packaging codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-merge) + Blocking waiting for file lock on package cache + Blocking waiting for file lock on package cache + Updating crates.io index + Packaged 207 files, 14.0MiB (8.1MiB compressed) diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/crate-size.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/crate-size.log new file mode 100644 index 00000000..ae4a6e99 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/crate-size.log @@ -0,0 +1,3 @@ + Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.05s + Running `target/debug/xtask verify-crate-size target/package/codebase-graph-4.0.2.crate` +crate package size verified: 8458182 bytes <= 10485760 bytes diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/crate-verification.json b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/crate-verification.json new file mode 100644 index 00000000..13ba68f0 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/crate-verification.json @@ -0,0 +1,37 @@ +[ + { + "path": "/private/tmp/codebasegraph-pr158-ci-merge/target/package/codebase-graph-4.0.2.crate", + "bytes": 8458182, + "sha256": "9f273128955240df50a9e043ac3fb203f20b39a88a7094025b6f621d9bc9871c", + "members": 207, + "assets": [ + { + "path": "assets/ladybug-extensions/0.19.0/osx_arm64/fts/libfts.lbug_extension.xz", + "sha256": "e34b00df38ced0b09993112a6d3a2d76735ecea639bb7deaf4e804351343f891", + "matches_source": true + }, + { + "path": "assets/ladybug-extensions/0.19.0/osx_arm64/json/libjson.lbug_extension.xz", + "sha256": "7d39d0ba2fe3eb41364febc09fb45aca02b37bb64a06e3a3666bfb70f49792cd", + "matches_source": true + }, + { + "path": "assets/ladybug-extensions/0.19.0/win_amd64/fts/libfts.lbug_extension.xz", + "sha256": "a8a9d74be93a54482b6bb6df7c44ead6cb751f398b87b10c990d63e2da77910d", + "matches_source": true + }, + { + "path": "assets/ladybug-extensions/0.19.0/win_amd64/json/libjson.lbug_extension.xz", + "sha256": "adf5e05d5a63c181a1be3e1e6c90a8ffb9901118171e7caf8f860af055868ada", + "matches_source": true + } + ] + }, + { + "path": "/private/tmp/codebasegraph-pr158-ci-merge/target/package/k-wiki-4.0.2.crate", + "bytes": 140452, + "sha256": "3ec816b0da0dba1cc4b9e1e4be36317c0a6b27dc85063257aa383fa8921852a5", + "members": 64, + "assets": [] + } +] diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/expected-integrated-inventory.json b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/expected-integrated-inventory.json new file mode 100644 index 00000000..d62de869 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/expected-integrated-inventory.json @@ -0,0 +1,11 @@ +{ + "Cargo.toml": "93a90ad47726f12faf1b6e32d2c5f8efb0a306edd492d0cb37e028ece2414f24", + "Cargo.lock": "5ec48f452b9fc349a73dc91e79a62e6b4483e008b6feeff7924baa657a02025f", + "crates/k-wiki/Cargo.toml": "7dd10bba3a8f3d4869ae5926b70c6d3a331a7afaf2b9242319ab3cf303c30816", + "crates/xtask/Cargo.toml": "ad470786428820842dc5a2c03ccbe0a7a549474f7bd84304904f9c846d979d62", + "crates/xtask/src/main.rs": "70507a624361a97a7bcdb28412b31112258fcb023fa8e80dccd943b113b335ad", + ".github/workflows/ci.yml": "a2cc1e8eb18dee65eaa72f9fdfbfd7a9df23f3a071a4faa935e124a888c747bb", + "docs/release.md": "5f867117736b465211c677ae7bbb19aec5d47ec7837228d7f50cfe0ba7fb3991", + "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/historical-reject-proxy.tar.gz": "d37b3c86d978018d137375e7a30316b3ce779b2787df5037237032bdec892752", + "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/archived-inputs.json": "fed1f963d456b8634542f0f8c13649f9aa383c00d7dd2f7b034978de7bc5ac42" +} diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-audit.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-audit.log new file mode 100644 index 00000000..ed3a4e4f --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-audit.log @@ -0,0 +1,21 @@ + Fetching advisory database from `https://github.com/RustSec/advisory-db.git` + Loaded 1381 security advisories (from /Users/rabii/.cargo/advisory-db) + Updating crates.io index + Scanning Cargo.lock for vulnerabilities (223 crate dependencies) +Crate: cxx +Version: 1.0.138 +Warning: unsound +Title: `let_cxx_string!` uses uninitialized value due to exception safety violations +Date: 2026-07-05 +ID: RUSTSEC-2026-0202 +URL: https://rustsec.org/advisories/RUSTSEC-2026-0202 + +Crate: tokio +Version: 1.53.1 +Warning: unsound +Title: `AsyncFd::new` and related constructors violate I/O safety +Date: 2026-10-13 +ID: RUSTSEC-2026-0386 +URL: https://rustsec.org/advisories/RUSTSEC-2026-0386 + +warning: 2 allowed warnings found diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-review-focused.md b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-review-focused.md new file mode 100644 index 00000000..16365400 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-review-focused.md @@ -0,0 +1,24 @@ +# PR158 / COD-53 — focused final verification + +**Pass. No new confirmed P0–P3 defect. The bounded CI repair remains ready for coordinator commit/push; future native CI and original platform/aggregate gates remain pending.** + +Reviewer: fresh independent GPT-6.1 Sol / Max, same read-only final-review session. No source/Git edits, builds, tests, installs, integration/settings changes or external writes were performed. This report is the only artifact written for this focused pass. + +## Reviewed boundary + +Focused on canonical review-link/verdict wording, additive combined-tree checks, and report retention only. Source/evidence verdict remains the one established against staged tree `649f78da13f2e044309ebf78953730aa57b1b25c`. Subsequent evidence/link tree is `8a4fda4c4eaf7f45888ed4359995b9621d677c52`; subsequent report retention is identified below. All focused file blobs match the index at the last check, no tracked unstaged edits exist, and `git diff --cached --check` passes. + +- `pr158-ci-repair.md` SHA-256: `9c55e674cc21fd59c392156617f7759d61f7896009cd3283447a69190dc8bd31`. It correctly links the review, reports no confirmed P0–P3 defect and names the earlier reviewed tree. It does not predeclare future CI success or promote old Windows evidence. +- Canonical `pr158-ci-repair-evidence/final-review.md` is the **exact 10,282-byte reviewer report including its focused evidence addendum**, SHA-256 `e7e09b3d75b42c95ea6558505e2104bafcdb9c849e4393c62ee99f2ac55aebd9`, Git blob `aa81f7f8a44bdb11777d1c47a12cf307d8801046`. A coordinator copy briefly contained only the initial report during the read; the final retained bytes were re-read and match the complete temporary reviewer report. This separate focused report records the settled retention identity. + +## Additive evidence verified + +Read `merged-checks.json`, `merged-xtask-tests.log`, `merged-xtask.junit.xml` and `combined-evidence-release-gate.log`. They consistently record local combined-tree xtask **44/44 passed, 0 failures/errors/skipped**, run `d424b847-8f02-48c0-9ec3-9f23a180ba84`. The log explicitly compiles xtask4.0.2 from `/private/tmp/codebasegraph-pr158-ci-merge`. The unchanged release gate passes after additive canonical evidence. These are coordinator-executed local checks, not reviewer-run checks or native CI. + +All five frozen repair-file hashes remain unchanged. Independently rechecked all **65** historical index records; their bytes/digests match with the archived proxy substitution, and the original CRLF index remains unchanged. + +## Limits and clarification + +Final pushed-head native macOS/Windows CI is pending. Original Windows qualification remains source/environment-bound; full COD-53/S02/A03/A04/fullA16, clean-consumer qualification and maintainer aggregate closure remain open. No merge/release/deployment/restart authority is added. + +The initial report's Linear connection limitation describes **this reviewer's own access only**. It does not claim the project's/coordinator's Linear updates failed or were unavailable. Coordinator-reported successful Linear comment receipts are outside this source/evidence review; no additional tracking mutation is required from the reviewer. diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-review.md b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-review.md new file mode 100644 index 00000000..aa81f7f8 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-review.md @@ -0,0 +1,70 @@ +# PR158 / COD-53 — final engineering review + +## Verdict + +**No confirmed P0–P3 defect found. Proceed with coordinator commit/push of the bounded CI repair to existing PR158.** This is not merge/release approval, a passing future native CI result, Windows 11 qualification, or COD-53/S02 aggregate closure. + +Required reviewer execution: **GPT-6.1 Sol / Max**, fresh independent default-agent RLM session with no inherited transcript; reviewer did not implement this change. Applied `adversarial-review-engineer` and `codebasegraph-engineer`. Source/Git access stayed read-only. No builds, tests, installs, settings changes or external writes were run by this reviewer; only this report was written. + +## Reviewed identity and authority + +- Baseline PR head: `5f68b41cebc327072cf71be770c9e5a9d1c0dad2`. +- Integrated staged tree: **`649f78da13f2e044309ebf78953730aa57b1b25c`**, 34 changed paths: the frozen five repair files, original proxy deletion, and bounded canonical repair report/evidence additions. +- `final-full-snapshot.json` SHA-256: `c8181dc3b879dc232768fc1597ce4d737599ebd1fa5d1724137baffda4cac7db`. All listed file digests match disk; every reviewed new/modified file's Git blob matches the index. The historical archive is explicitly staged despite the existing `*.tar.gz` ignore. `git diff --cached --check` passes. +- Reviewed canonical report: `docs/specs/CBG-PLAT-01/execution/pr158-ci-repair.md`, SHA-256 `a8085ce27a2237f0c64a0d56f3c32629a10e342de01db50b0e99966d96743624`. +- Governing scope: user CI-debug/fix request dated 2026-10-29; COD-53 / CBG-PLAT-01/S02; unchanged spec rev0.10 at approved SHA `1a9db7b558b60248888408daa6268a3b45f2f0df`, R02 / A03 / A04 / A16; existing exact S02 approval. Read live Scryer rules, Release Gate intent and `chg-fq8t0y` / `chg-h07kt8`. The repair restores existing controls and needs no invented topology/claim. + +## Consequential hypotheses examined + +### 1. The dependency change could evade audit or change unrelated resolution + +Defeated for this snapshot. The complete manifest/lock diff changes only the wiki lower bound from `0.13` to `0.13.5`, and the locked parser version/checksum from 0.13.4 to 0.13.5. `default-features = false` and `features = ["html"]` are unchanged; no other package/features changed. The cached published crate hashes to `278e9268c93b9e498a2da46c34d90ba93a3255eb99009646398f34bc73ab36eb`, identical to the sparse registry record and lock entry. Current RustSec primary advisory identifies `>=0.13.5` as patched. Both tagged manifests declare Rust1.71.1 with unchanged dependency/features declarations. No full-workspace Rust1.82 execution is inferred. + +Graph-discovered compiler/render consumers use default/explicit options without vulnerable wikilinks; this reduces direct exposure but does not excuse the demonstrated audit failure. The patch correctly removes the advisory blocker rather than adding an ignore. Captured baseline/final audit logs preserve the same guarded time exception and existing two allowed cxx/tokio advisory warnings. Those are not compiler warnings and are not claimed repaired. + +### 2. Archiving the helper could corrupt or silently rewrite historical proof + +Defeated by direct byte checks. The staged 998-byte archive SHA-256 is `d37b3c86d978018d137375e7a30316b3ce779b2787df5037237032bdec892752`. It has exactly one regular file, at the original full repository-relative proxy path, with only parent directory entries alongside it. The 1,311-byte member SHA-256 is `ca7ada29f99cb0a6da0807d6f468c22ad81d1bce59abe5c9f743c1b03b83588f`; its Git blob is `deeddafd5070b476931f44c8cea189755a7d9ec1`, identical to the deleted baseline file. Both independently generated archive artifacts and the staged archive are byte-identical. + +Independently resolved all **65** original index records, substituting only that member; every length/digest matches. The index retains Git blob `9b177b21a49b7e331ca109ad272ec940fdd47ec3` and all **330 CRLF** endings. No historical report/log/command bytes changed. `archived-inputs.json` supplies source commit, archive/member paths, lengths/digests and separate-checkout reconstruction guidance. The qualification note preserves original tested-source identity and partial Windows verdicts. New captured CI log gzip files decode byte-for-byte to the captures and declared hashes. + +### 3. The repair could bypass the Rust-only gate or rely on an unrelated main fix + +Defeated within the reviewed scope. Gate/workflow/ignore/security files and product source are unchanged. The original unchanged gate scans loose `.py` files without an evidence-directory exemption. Parent-executed synthetic-merge logs show pass; a temporary loose Python file causes the expected rejection and removal restores pass. Verified synthetic merge `f49fbb5afe9e6c24ac410a65b61a646d72078aa2` parents are pinned main `9f69a0bd4b468eaa8652d933d518fafb8c596b6a` and baseline PR head. The repaired archive/sidecar/qualification bytes match in that merged worktree. Four older head-only helpers were already archived on main by PR159; this patch neither imports nor duplicates their unrelated repair. + +## Executed evidence inspected + +Checks below were run by the coordinator, not re-executed by this reviewer. I inspected retained logs/JUnit, commands/results in `pr158-ci-repair-evidence/verification.json`, staged bytes and relevant local package archives. + +- Full wiki + xtask regression: **174 passed, 0 failed/errors/skipped**, JUnit run `737a3796-b8c5-4d4e-953a-44c248621ab9`; includes compiler and renderer behavior cases. Log explicitly recompiles pulldown-cmark0.13.5 and k-wiki from the intended isolated checkout. +- Formatting and strict workspace/all-target/all-feature Clippy: recorded exit0; compiler log completes without warnings. +- Audit: baseline failure reproduced, repaired exit0 with unchanged exceptions/warnings as qualified above; time feature tree omits parsing. +- Unchanged merged-tree release gate plus positive/negative policy controls: expected results above. +- Normal root `cargo publish --dry-run --locked --allow-dirty`: success; log explicitly compiles extracted source package, then aborts upload due to dry-run. Preexisting published-version/dry-run messages are not compiler failures. +- Independently read root `.crate`: **8,458,182 bytes**, digest matches evidence, 207 members and all four bundled XZ payload bytes match source. Wiki `.crate`: **140,452 bytes**, digest matches evidence, 64 members; normalized manifest retains lower bound0.13.5 and unchanged features. Wiki archive creation is not misrepresented as isolated archive compilation/smoke. +- Windows-filtered default/opt-out feature resolution is recorded as resolution, not native execution. +- Existing pinned Ladybug0.19.0 static library SHA-256 matches `a840ea7c538e67a8b9fc0d58495b5226dc9c0a5f2f144ff0c48c0f6ca1193ae6`. Initial missing-header baseline compile failure and corrected successful retry are both retained; no source/dependency/ABI change was used to hide it. + +## Conditions and limits + +1. Final pushed-head macOS/Windows native CI remains **pending** and must assess the actual pushed revision/merge. Static review and local compatibility evidence cannot predeclare it green. +2. Original prepared-environment Windows evidence remains bound to `47808ac34bcff79882abee4ab796c16c0621ed05`; this repair does not repeat/promote it. Clean-consumer qualification, full S02/A03/A04/fullA16 and maintainer aggregate closure remain open. No merge, release, deployment or restart is authorized. +3. The connected graph/Scryer binds the older original repository, not the detached review worktree. Explicit semantic discovery/context was used before source inspection; relevant source/diff/byte checks establish this snapshot, not a branch-specific graph/test fingerprint. Linear connection is pending, so no live tracking success is asserted by this reviewer. +4. Final report-retention/link-only edits after this tree require focused verification; substantive repair/source changes require renewed affected review. The review recommendation does not replace owner approval or delivery reconciliation. + +Applied lessons: auditable dependency metadata and exact-source/extracted-package evidence from live wiki memory and `docs/release.md`; do not treat historical target lists or a shared cache as current-platform proof. No new durable memory is warranted: this is version-bound/task-local evidence, and the archival procedure already exists. + +## Focused final evidence verification — 2026-10-29 + +**No new confirmed P0–P3 defect; commit/push recommendation unchanged.** Reviewed the subsequent canonical report's review-link/verdict paragraph, clarified audit-warning wording and additive combined-tree evidence. Current canonical report SHA-256: `9c55e674cc21fd59c392156617f7759d61f7896009cd3283447a69190dc8bd31`. It accurately cites the prior reviewed tree, records no confirmed defect, and keeps actual pushed-head native CI/platform/aggregate gates pending. Final-review retention at the linked canonical path is a coordinator delivery step, not a new source change. + +Directly inspected `merged-checks.json`, `merged-xtask-tests.log`, `merged-xtask.junit.xml` and `combined-evidence-release-gate.log`: nextest run `d424b847-8f02-48c0-9ec3-9f23a180ba84` explicitly recompiles xtask4.0.2 from the synthetic merged worktree and contains **44 test cases, 44 passed, 0 failures/errors/skipped**. The post-evidence unchanged release gate passes. These remain coordinator-executed local checks, not native CI or desktop qualification. + +All five frozen repair-file hashes and every previously reviewed non-report evidence-file hash remain unchanged. The new report and additive evidence are staged; `git diff --cached --check` still passes and there are no unstaged tracked edits. No builds/tests or repository writes were performed by the reviewer. + +Additive evidence SHA-256: + +- `merged-checks.json`: `bb8c658afc018edc8d745e5f0b4b24f2aae51c96810bc5406a94574553a86483` +- `merged-xtask-tests.log`: `d1bb1ee54c96d104063b8b07e6078b505228e37efa15a989110cdabb9a55dbc4` +- `merged-xtask.junit.xml`: `e5e060b6142d99979388b349374520de18273df574333d36baab15f053d0ed88` +- `combined-evidence-release-gate.log`: `5899714f6181a86b883602a3dd9b321883ca9e4084db16c902cf56856e633340` diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-time-feature-tree.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-time-feature-tree.log new file mode 100644 index 00000000..7dec2f40 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/final-time-feature-tree.log @@ -0,0 +1,12 @@ +time v0.3.36 +├── time feature "alloc" +│ └── time feature "std" +│ └── time feature "default" +│ └── lbug v0.19.0 +│ └── lbug feature "default" +│ └── codebase-graph v4.0.0 (/private/tmp/codebasegraph-pr158-ci-fix) +│ ├── codebase-graph feature "bundled-windows-extensions" +│ │ └── codebase-graph feature "default" (command-line) +│ └── codebase-graph feature "default" (command-line) +├── time feature "default" (*) +└── time feature "std" (*) diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/fmt.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/fmt.log new file mode 100644 index 00000000..e69de29b diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-audit.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-audit.log new file mode 100644 index 00000000..ed3a4e4f --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-audit.log @@ -0,0 +1,21 @@ + Fetching advisory database from `https://github.com/RustSec/advisory-db.git` + Loaded 1381 security advisories (from /Users/rabii/.cargo/advisory-db) + Updating crates.io index + Scanning Cargo.lock for vulnerabilities (223 crate dependencies) +Crate: cxx +Version: 1.0.138 +Warning: unsound +Title: `let_cxx_string!` uses uninitialized value due to exception safety violations +Date: 2026-07-05 +ID: RUSTSEC-2026-0202 +URL: https://rustsec.org/advisories/RUSTSEC-2026-0202 + +Crate: tokio +Version: 1.53.1 +Warning: unsound +Title: `AsyncFd::new` and related constructors violate I/O safety +Date: 2026-10-13 +ID: RUSTSEC-2026-0386 +URL: https://rustsec.org/advisories/RUSTSEC-2026-0386 + +warning: 2 allowed warnings found diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-clippy.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-clippy.log new file mode 100644 index 00000000..508bb033 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-clippy.log @@ -0,0 +1,5 @@ + Blocking waiting for file lock on build directory + Compiling codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix) + Checking xtask v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix/crates/xtask) + Checking k-wiki v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix/crates/k-wiki) + Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.10s diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-crate-package.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-crate-package.log new file mode 100644 index 00000000..468fedb7 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-crate-package.log @@ -0,0 +1,3 @@ + Packaging codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix) + Updating crates.io index + Packaged 207 files, 14.0MiB (8.1MiB compressed) diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-crate-size.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-crate-size.log new file mode 100644 index 00000000..f3a0db40 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-crate-size.log @@ -0,0 +1,4 @@ + Blocking waiting for file lock on build directory + Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.79s + Running `target/debug/xtask verify-crate-size target/package/codebase-graph-4.0.2.crate` +crate package size verified: 8458173 bytes <= 10485760 bytes diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-fmt.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-fmt.log new file mode 100644 index 00000000..e69de29b diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-package-dry-run.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-package-dry-run.log new file mode 100644 index 00000000..007f459c --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-package-dry-run.log @@ -0,0 +1,25 @@ + Updating crates.io index +warning: crate codebase-graph@4.0.2 already exists on crates.io index + Packaging codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix) + Updating crates.io index + Packaged 207 files, 14.0MiB (8.1MiB compressed) + Verifying codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix) + Compiling syn v2.0.117 + Compiling serde_core v1.0.228 + Compiling serde_json v1.0.150 + Compiling aho-corasick v1.1.4 + Compiling serde v1.0.228 + Compiling codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix/target/package/codebase-graph-4.0.2) + Compiling bitflags v2.13.0 + Compiling notify v8.2.0 + Compiling regex-automata v0.4.14 + Compiling tree-sitter v0.25.10 + Compiling cxx-build v1.0.138 + Compiling cxxbridge-macro v1.0.138 + Compiling serde_derive v1.0.228 + Compiling regex v1.12.4 + Compiling lbug v0.19.0 + Compiling cxx v1.0.138 + Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.29s + Uploading codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix) +warning: aborting upload due to dry run diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-release-gate.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-release-gate.log new file mode 100644 index 00000000..99f79ca0 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-release-gate.log @@ -0,0 +1,4 @@ + Compiling xtask v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix/crates/xtask) + Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.33s + Running `target/debug/xtask release-gate` +release gate passed diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-time-feature-tree.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-time-feature-tree.log new file mode 100644 index 00000000..5a55a270 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-time-feature-tree.log @@ -0,0 +1,12 @@ +time v0.3.36 +├── time feature "alloc" +│ └── time feature "std" +│ └── time feature "default" +│ └── lbug v0.19.0 +│ └── lbug feature "default" +│ └── codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix) +│ ├── codebase-graph feature "bundled-windows-extensions" +│ │ └── codebase-graph feature "default" (command-line) +│ └── codebase-graph feature "default" (command-line) +├── time feature "default" (*) +└── time feature "std" (*) diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-wiki-package.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-wiki-package.log new file mode 100644 index 00000000..d801142f --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-wiki-package.log @@ -0,0 +1,3 @@ + Packaging k-wiki v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix/crates/k-wiki) + Updating crates.io index + Packaged 64 files, 694.9KiB (137.2KiB compressed) diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-wiki-xtask-tests.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-wiki-xtask-tests.log new file mode 100644 index 00000000..4bfd530e --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-wiki-xtask-tests.log @@ -0,0 +1,186 @@ + Blocking waiting for file lock on build directory + Compiling codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix) + Compiling xtask v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix/crates/xtask) + Compiling k-wiki v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix/crates/k-wiki) + Finished `test` profile [unoptimized + debuginfo] target(s) in 24.35s +──────────── + Nextest run ID f10e8ad1-ec95-4ef4-9ced-edd3854bdc91 with nextest profile: pr158-integrated + Starting 176 tests across 16 binaries + PASS [ 0.030s] ( 1/176) k-wiki adapters::install::tests::failed_post_install_migration_keeps_the_install_payload_and_recovery + PASS [ 0.030s] ( 2/176) k-wiki graph_context::tests::path_safety_rejects_foreign_absolute_and_parent_paths + PASS [ 0.030s] ( 3/176) k-wiki graph_context::tests::public_results_are_bounded_and_path_safe + PASS [ 0.031s] ( 4/176) k-wiki model::tests::diagnostic_serialization_never_requires_absolute_paths + PASS [ 0.032s] ( 5/176) k-wiki api::facade::tests::facade_dispatches_each_request_exactly_once + PASS [ 0.034s] ( 6/176) k-wiki graph_context::tests::graph_failures_degrade_without_propagating_raw_errors + PASS [ 0.034s] ( 7/176) k-wiki api::registry::tests::registry_is_sorted_unique_and_advertises_exact_mcp_surface + PASS [ 0.034s] ( 8/176) k-wiki model::tests::public_projection_round_trips_deterministically + PASS [ 0.084s] ( 9/176) k-wiki::api_integration mcp_authoring_round_trip_creates_populates_reads_and_searches_a_concept + PASS [ 0.126s] ( 10/176) k-wiki adapters::install::tests::install_repository_initializes_and_reuses_local_wiki_state + PASS [ 0.131s] ( 11/176) k-wiki adapters::install::tests::install_repository_upserts_separate_wiki_and_memory_workflows_in_both_instruction_files + PASS [ 3.336s] ( 12/176) k-wiki::api_integration cli_validate_and_build_use_the_integrated_public_api + PASS [ 3.405s] ( 13/176) k-wiki::api_integration install_command_initializes_repository_local_wiki_state + PASS [ 3.440s] ( 14/176) k-wiki::api_integration mcp_install_command_keeps_registration_when_runtime_verification_fails + PASS [ 3.349s] ( 15/176) k-wiki::api_integration mcp_install_command_rejects_conflicting_existing_entries_without_rewriting_files + PASS [ 3.447s] ( 16/176) k-wiki::api_integration mcp_install_command_preserves_explicit_shared_name_and_rejects_shared_k_wiki_name + PASS [ 3.369s] ( 17/176) k-wiki::api_integration mcp_install_command_registers_the_repository_knowledge_bundle + PASS [ 0.308s] ( 18/176) k-wiki::api_integration mcp_install_command_rejects_malformed_legacy_registration_before_local_install + PASS [ 3.658s] ( 19/176) k-wiki::api_integration mcp_install_command_dry_run_reports_per_client_targets_for_all_clients + PASS [ 3.561s] ( 20/176) k-wiki::api_integration mcp_install_command_rejects_conflicting_legacy_preservation_before_writing_local_config + PASS [ 0.256s] ( 21/176) k-wiki::api_integration mcp_install_command_rejects_unreadable_legacy_config_before_local_install + PASS [ 3.663s] ( 22/176) k-wiki::api_integration mcp_install_command_preserves_other_repository_legacy_codex_registration + PASS [ 3.666s] ( 23/176) k-wiki::api_integration mcp_install_command_keeps_codex_project_and_local_registrations_repository_local + PASS [ 0.213s] ( 24/176) k-wiki::api_integration mcp_install_command_reports_unique_manual_registration_and_cleanup_instructions + PASS [ 0.228s] ( 25/176) k-wiki::api_integration mcp_install_command_removes_same_repository_legacy_codex_registration + PASS [ 0.038s] ( 26/176) k-wiki::api_integration mcp_install_command_requires_an_initialized_knowledge_bundle + PASS [ 0.246s] ( 27/176) k-wiki::api_integration mcp_install_command_rejects_unsupported_clients_and_scopes + PASS [ 0.251s] ( 28/176) k-wiki::api_integration mcp_install_command_removes_legacy_shared_entry_and_reports_dry_run_cleanup + PASS [ 0.039s] ( 29/176) k-wiki::api_integration mcp_lists_only_configured_bundles_and_keeps_them_readable + PASS [ 0.022s] ( 30/176) k-wiki::api_integration wiki_graph_context_and_service_do_not_import_graph_internals + PASS [ 0.017s] ( 31/176) k-wiki::authoring authoring_frontmatter_delimiters_match_bundle_reader + PASS [ 0.015s] ( 32/176) k-wiki::authoring authoring_io_errors_use_categories_without_raw_paths_or_dependency_text + PASS [ 0.051s] ( 33/176) k-wiki::api_integration preview_http_dispatches_health_and_serves_static_content_with_security_headers + PASS [ 0.068s] ( 34/176) k-wiki::api_integration mcp_stdio_binary_advertises_the_packaged_knowledge_wiki_schema + PASS [ 0.027s] ( 35/176) k-wiki::authoring create_bundle_fails_if_the_target_already_exists_without_modifying_it + PASS [ 0.093s] ( 36/176) k-wiki::api_integration mcp_memory_round_trip_records_activates_and_recalls_repository_knowledge + PASS [ 0.033s] ( 37/176) k-wiki::authoring create_page_rejects_reserved_escape_and_absolute_targets + PASS [ 0.062s] ( 38/176) k-wiki::authoring create_bundle_initializes_a_conformant_root_index_within_a_permitted_repository + PASS [ 0.073s] ( 39/176) k-wiki::authoring create_page_creates_one_valid_concept_at_a_validated_bundle_relative_identity + PASS [ 0.047s] ( 40/176) k-wiki::authoring create_page_rejects_symlink_paths_that_escape_the_bundle_root + PASS [ 0.061s] ( 41/176) k-wiki::authoring malformed_existing_frontmatter_does_not_echo_source_values + PASS [ 0.133s] ( 42/176) k-wiki::api_integration mcp_stdio_memory_recall_with_unicode_keeps_the_transport_open + PASS [ 0.017s] ( 43/176) k-wiki::authoring production_authoring_validator_enforces_required_frontmatter + PASS [ 0.059s] ( 44/176) k-wiki::authoring populate_page_rejects_stale_writes_without_changing_source_content + PASS [ 0.073s] ( 45/176) k-wiki::authoring populate_page_preserves_unknown_frontmatter_fields_during_updates + PASS [ 0.028s] ( 46/176) k-wiki::authoring unsupported_yaml_serialization_does_not_echo_tags_or_values + PASS [ 0.023s] ( 47/176) k-wiki::bundle_reader invalid_bundle_root_error_omits_absolute_host_path + PASS [ 0.059s] ( 48/176) k-wiki::authoring populate_page_validates_before_replacing_the_destination + PASS [ 0.180s] ( 49/176) k-wiki::api_integration mcp_maintenance_tools_validate_check_links_and_build_a_site + PASS [ 0.032s] ( 50/176) k-wiki::bundle_reader closed_frontmatter_accepts_lf_crlf_and_closing_delimiter_at_eof + PASS [ 0.021s] ( 51/176) k-wiki::bundle_reader resp_168_discovers_bundle_boundaries_and_metadata + PASS [ 0.019s] ( 52/176) k-wiki::bundle_reader resp_171_records_root_okf_version_from_bundle_index + PASS [ 0.019s] ( 53/176) k-wiki::bundle_reader resp_170_classifies_reserved_files_without_promoting_them_to_concepts + PASS [ 0.021s] ( 54/176) k-wiki::bundle_reader resp_169_parses_standard_fields_and_preserves_extensions + PASS [ 0.069s] ( 55/176) k-wiki::authoring populate_page_writes_validated_frontmatter_and_markdown_atomically + PASS [ 0.037s] ( 56/176) k-wiki::bundle_reader parser_diagnostics_exclude_source_values_and_keep_relative_locations + PASS [ 0.029s] ( 57/176) k-wiki::bundle_reader resp_172_rejects_markdown_entries_that_escape_the_bundle_root + PASS [ 0.032s] ( 58/176) k-wiki::bundle_reader unterminated_frontmatter_is_invalid_even_when_yaml_is_valid + PASS [ 0.024s] ( 59/176) k-wiki::bundle_reader walk_errors_keep_relative_location_and_safe_io_category + PASS [ 0.022s] ( 60/176) k-wiki::compilation backlinks_update_after_link_add_change_and_removal + PASS [ 0.021s] ( 61/176) k-wiki::compilation broken_fragment_external_and_rejected_links_remain_visible + PASS [ 0.023s] ( 62/176) k-wiki::compilation compilation_is_deterministic_and_namespaces_routes + PASS [ 0.022s] ( 63/176) k-wiki::compilation relative_directory_and_fragment_routes_resolve_canonically + PASS [ 0.021s] ( 64/176) k-wiki::compilation directory_indexes_history_and_citations_are_compiled_deterministically + PASS [ 0.020s] ( 65/176) k-wiki::conformance resp_173_evaluates_normative_and_recommended_profiles_separately + PASS [ 0.242s] ( 66/176) k-wiki::api_integration mcp_install_command_verifies_the_registered_single_bundle_runtime + PASS [ 0.023s] ( 67/176) k-wiki::conformance resp_175_retains_unknown_types_and_extensions_in_consume_mode + PASS [ 0.024s] ( 68/176) k-wiki::conformance resp_174_reports_errors_for_missing_or_invalid_concept_frontmatter + PASS [ 0.023s] ( 69/176) k-wiki::conformance resp_176_validates_reserved_file_structures + PASS [ 0.034s] ( 70/176) k-wiki::diagnostic_transports mcp_malformed_arguments_keep_rpc_classification + PASS [ 0.028s] ( 71/176) k-wiki::diagnostic_transports mcp_missing_concept_preserves_domain_error_on_the_wire + PASS [ 0.045s] ( 72/176) k-wiki::diagnostic_transports cli_validate_consume_accepts_error_diagnostics + PASS [ 0.283s] ( 73/176) k-wiki::api_integration mcp_install_command_uses_distinct_shared_names_for_same_basename_repositories + PASS [ 0.030s] ( 74/176) k-wiki::diagnostic_transports mcp_retryable_api_error_preserves_details_on_the_wire + PASS [ 0.045s] ( 75/176) k-wiki::diagnostic_transports mcp_stale_authoring_write_preserves_conflict_on_the_wire + PASS [ 0.030s] ( 76/176) k-wiki::diagnostics configured_root_failure_preserves_cache_and_recovers + PASS [ 0.073s] ( 77/176) k-wiki::diagnostic_transports cli_validate_warning_acceptance_depends_on_profile + PASS [ 0.039s] ( 78/176) k-wiki::diagnostics explicit_builds_for_other_roots_do_not_change_configured_reads + PASS [ 0.035s] ( 79/176) k-wiki::diagnostics external_edits_and_deletions_are_visible_on_the_next_read + PASS [ 0.038s] ( 80/176) k-wiki::diagnostics incomplete_scan_messages_are_safe_through_api_mcp_and_http + PASS [ 0.040s] ( 81/176) k-wiki::diagnostics failed_acquisition_cannot_replace_cache_even_via_permissive_build + PASS [ 0.066s] ( 82/176) k-wiki::diagnostics compiler_locations_include_frontmatter_once_and_preserve_conformance_lines + PASS [ 0.085s] ( 83/176) k-wiki::diagnostic_transports cli_validate_rejected_profiles_exit_nonzero_in_text_and_json + PASS [ 0.043s] ( 84/176) k-wiki::diagnostics maintenance_operations_share_conformance_and_compiler_diagnostics + PASS [ 0.031s] ( 85/176) k-wiki::diagnostics unchanged_reads_reuse_the_explicit_projection_generation + PASS [ 0.043s] ( 86/176) k-wiki::diagnostics malformed_source_errors_are_safe_through_api_mcp_and_http + PASS [ 0.035s] ( 87/176) k-wiki::diagnostics unterminated_frontmatter_is_reported_by_validation_and_builds + PASS [ 0.031s] ( 88/176) k-wiki::diagnostics validation_profiles_apply_to_merged_link_warnings + PASS [ 0.126s] ( 89/176) k-wiki::diagnostic_transports cli_validate_accepted_profiles_exit_zero_in_text_and_json + PASS [ 0.054s] ( 90/176) k-wiki::diagnostics unavailable_roots_use_503_while_unknown_bundles_remain_404 + PASS [ 0.029s] ( 91/176) k-wiki::projection projection_state_uses_the_repository_local_dot_kwiki_root + PASS [ 0.074s] ( 92/176) k-wiki::memory invalid_transition_rejects_without_changing_source + PASS [ 0.055s] ( 93/176) k-wiki::memory malformed_memory_is_advisory_outside_the_recommended_profile + PASS [ 0.018s] ( 94/176) k-wiki::refresh active_wiki_refresh_prevents_stale_publication_until_completion + PASS [ 0.016s] ( 95/176) k-wiki::refresh coalesces_duplicate_paths_and_produces_deterministic_batches + PASS [ 0.091s] ( 96/176) k-wiki::memory record_memory_persists_candidate_with_structured_provenance + PASS [ 0.016s] ( 97/176) k-wiki::refresh concept_index_and_log_changes_invalidate_expected_artifacts + PASS [ 0.131s] ( 98/176) k-wiki::memory default_recall_excludes_malformed_and_quarantined_memory + PASS [ 0.015s] ( 99/176) k-wiki::refresh consumer_failures_are_independent_and_report_retryability + PASS [ 0.015s] (100/176) k-wiki::refresh failed_refresh_records_diagnostics_until_a_successful_retry + PASS [ 0.117s] (101/176) k-wiki::memory recall_returns_only_valid_active_memory_in_requested_bundle + PASS [ 0.015s] (102/176) k-wiki::refresh one_debounced_burst_dispatches_each_consumer_once + PASS [ 0.016s] (103/176) k-wiki::refresh paths_are_partitioned_for_graph_wiki_or_both + PASS [ 0.015s] (104/176) k-wiki::refresh rename_delete_and_shutdown_flush_each_path_once + PASS [ 0.022s] (105/176) k-wiki::rendering concept_pages_sanitize_active_content_and_route_broken_links_to_diagnostics + PASS [ 0.021s] (106/176) k-wiki::rendering renderer_rejects_css_urls_in_concepts_and_directories_and_preserves_safe_markup + PASS [ 0.021s] (107/176) k-wiki::rendering representative_html_fixtures_stay_deterministic_for_desktop_and_narrow_layouts + PASS [ 0.186s] (108/176) k-wiki::memory independent_reader_observes_quarantine_activation_and_deletion + PASS [ 0.016s] (109/176) k-wiki::rendering route_helpers_percent_encode_reversibly_and_reject_escape_segments + PASS [ 0.174s] (110/176) k-wiki::memory supersession_preserves_prior_record_for_audit + PASS [ 0.017s] (111/176) k-wiki::search exact_identity_and_title_matches_rank_above_body_only_matches + PASS [ 0.019s] (112/176) k-wiki::rendering sanitizer_css_url_policy_is_case_insensitive + PASS [ 0.019s] (113/176) k-wiki::search filters_restrict_bundle_type_and_tag_matches + PASS [ 0.169s] (114/176) k-wiki::projection newest_generation_wins_when_competing_builds_finish_out_of_order + PASS [ 0.059s] (115/176) k-wiki::rendering rendered_site_writes_manifest_assets_and_enforces_output_root_containment + PASS [ 0.135s] (116/176) k-wiki::projection unchanged_bundle_rebuild_is_a_cache_hit + PASS [ 0.020s] (117/176) k-wiki::search serialized_index_round_trips_deterministically + PASS [ 0.138s] (118/176) k-wiki::projection publish_generation_is_atomic_and_retains_last_valid_projection_on_failure + PASS [ 0.191s] (119/176) k-wiki::memory memory_kinds_use_distinct_paths_and_recall_filters + PASS [ 0.021s] (120/176) k-wiki::search snippets_are_html_escaped_bounded_and_deterministic + PASS [ 0.021s] (121/176) k-wiki::transports cli_parses_phase8_commands + PASS [ 0.022s] (122/176) k-wiki::search snippet_windows_preserve_utf8_boundaries + PASS [ 0.025s] (123/176) k-wiki::transports cli_run_dispatches_exactly_once + PASS [ 0.021s] (124/176) k-wiki::transports cli_run_reports_the_packaged_version_without_dispatching + PASS [ 0.020s] (125/176) k-wiki::transports http_security_headers_and_safe_errors_follow_phase8_contract + PASS [ 0.022s] (126/176) k-wiki::transports cli_run_preserves_completed_command_output_and_exit_status + PASS [ 0.024s] (127/176) k-wiki::transports cli_run_emits_structured_validation_output_when_json_is_requested + PASS [ 0.022s] (128/176) k-wiki::transports mcp_initialize_uses_exact_server_display_name + PASS [ 0.017s] (129/176) k-wiki::transports mcp_tools_list_advertises_declared_metadata + PASS [ 0.029s] (130/176) k-wiki::transports mcp_protocol_errors_and_success_envelopes_remain_compatible + PASS [ 0.016s] (131/176) xtask::bin/xtask native_tests::shards::tests::empty_shard_never_runs_an_unfiltered_suite + PASS [ 0.024s] (132/176) k-wiki::transports mcp_tool_calls_dispatch_exactly_once_and_preserve_error_codes + PASS [ 0.023s] (133/176) k-wiki::transports serve_rejects_remote_binding_without_security_change + PASS [ 0.017s] (134/176) xtask::bin/xtask native_tests::tests::captured_cli_survives_cargo_replacing_its_output + PASS [ 0.017s] (135/176) xtask::bin/xtask native_tests::tests::windows_regressions_precede_the_complete_unfiltered_suite + PASS [ 0.019s] (136/176) xtask::bin/xtask native_tests::tests::partitions_every_test_target_and_keeps_new_integration_targets + PASS [ 0.024s] (137/176) xtask::bin/xtask native_tests::shards::tests::selected_exact_filters_execute_the_expected_real_harness_cases + PASS [ 0.023s] (138/176) xtask::bin/xtask native_tests::shards::tests::shards_cover_every_listed_case_once_and_bound_windows_arguments + PASS [ 0.015s] (139/176) xtask::bin/xtask release::tests::notes_only_include_the_exact_release + PASS [ 0.015s] (140/176) xtask::bin/xtask release::tests::metadata_rejects_inconsistent_versions + PASS [ 0.012s] (141/176) xtask::bin/xtask release::tests::notes_reject_missing_duplicate_and_empty_sections + PASS [ 0.044s] (142/176) xtask::bin/xtask release::workflow_tests::recovery_requires_one_target_and_forbids_ci_run_rebuilds + PASS [ 0.014s] (143/176) xtask::bin/xtask tests::archive_contract_rejects_unexpected_entries + PASS [ 0.019s] (144/176) xtask::bin/xtask tests::complete_artifact_set_rejects_mixed_provenance + PASS [ 0.010s] (145/176) xtask::bin/xtask tests::crate_size_validation_enforces_the_registry_limit + PASS [ 0.091s] (146/176) xtask::bin/xtask release::workflow_tests::staged_assets_match_the_supported_native_targets + PASS [ 0.011s] (147/176) xtask::bin/xtask tests::native_capture_requires_unique_source_bound_normal_cli_artifact + PASS [ 0.010s] (148/176) xtask::bin/xtask tests::native_capture_reuses_the_exact_test_profile_and_features + PASS [ 0.009s] (149/176) xtask::bin/xtask tests::native_target_contract_maps_names_and_binaries + PASS [ 0.023s] (150/176) xtask::bin/xtask tests::native_test_failure_cannot_authorize_artifact_production + PASS [ 0.010s] (151/176) xtask::bin/xtask tests::release_identity_validation_is_strict + PASS [ 0.009s] (152/176) xtask::bin/xtask tests::windows_native_tests_forward_bundled_extensions + PASS [ 0.016s] (153/176) xtask::bin/xtask tests::workflow_policy_rejects_automatic_rebuild_recovery + PASS [ 0.016s] (154/176) xtask::bin/xtask tests::workflow_policy_rejects_direct_release_push_trigger + PASS [ 0.016s] (155/176) xtask::bin/xtask tests::workflow_policy_rejects_github_sha_for_release_identity + PASS [ 0.016s] (156/176) xtask::bin/xtask tests::workflow_policy_rejects_missing_ci_success_guard + PASS [ 0.030s] (157/176) xtask::bin/xtask tests::workflow_policy_rejects_missing_crate_publish_retry + PASS [ 0.022s] (158/176) xtask::bin/xtask tests::workflow_policy_rejects_missing_crate_size_gates + PASS [ 0.016s] (159/176) xtask::bin/xtask tests::workflow_policy_rejects_missing_repository_release_gate + PASS [ 0.017s] (160/176) xtask::bin/xtask tests::workflow_policy_rejects_missing_triggering_run_binding + PASS [ 0.017s] (161/176) xtask::bin/xtask tests::workflow_policy_rejects_release_queue_replacement + PASS [ 0.017s] (162/176) xtask::bin/xtask tests::workflow_policy_rejects_unconditional_release_publication + PASS [ 0.031s] (163/176) xtask::bin/xtask tests::workflow_policy_rejects_unvalidated_publishers + PASS [ 0.017s] (164/176) xtask::bin/xtask tests::workflow_policy_requires_ci_completion_release_trigger + PASS [ 0.032s] (165/176) xtask::bin/xtask tests::workflow_policy_requires_publication_revalidation + PASS [ 0.010s] (166/176) xtask::bin/xtask tests::workflow_yaml_validation_rejects_unindented_heredoc_body + PASS [ 0.024s] (167/176) xtask::bin/xtask tests::workflows_reject_removed_platform_targets + PASS [ 0.697s] (168/176) xtask::bin/xtask release::workflow_tests::proposal_reports_pending_release_then_proceeds_after_finalization + PASS [ 0.848s] (169/176) xtask::bin/xtask release::workflow_tests::ci_run_recovery_dry_run_validates_without_authorizing_publication + PASS [ 1.047s] (170/176) xtask::bin/xtask release::workflow_tests::verified_release_survives_main_advancing_and_ignores_other_pending_releases + PASS [ 1.683s] (171/176) xtask::bin/xtask release::workflow_tests::publisher_rejects_conflicting_tags_and_does_not_regress_latest + PASS [ 1.888s] (172/176) xtask::bin/xtask release::workflow_tests::publisher_targets_original_sha_and_is_idempotent + PASS [ 2.127s] (173/176) xtask::bin/xtask tests::installer_rejects_removed_hosts_before_reading_archives_or_writing_destinations + PASS [ 2.423s] (174/176) xtask::bin/xtask release::workflow_tests::ordinary_commit_cannot_authorize_release_and_tagged_retry_still_can + PASS [ 4.703s] (175/176) xtask::bin/xtask release::workflow_tests::verified_release_rejects_failed_ci_and_untrusted_run_identity + PASS [ 4.925s] (176/176) xtask::bin/xtask release::workflow_tests::verified_release_rejects_untrusted_prs_and_removed_history +──────────── + Summary [ 9.196s] 176 tests run: 176 passed, 0 skipped diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-wiki-xtask.junit.xml b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-wiki-xtask.junit.xml new file mode 100644 index 00000000..481299b6 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-wiki-xtask.junit.xml @@ -0,0 +1,385 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-windows-default-feature-tree.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-windows-default-feature-tree.log new file mode 100644 index 00000000..ee834df8 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-windows-default-feature-tree.log @@ -0,0 +1,4 @@ +codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix) +├── codebase-graph feature "bundled-windows-extensions" +│ └── codebase-graph feature "default" (command-line) +└── codebase-graph feature "default" (command-line) diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-windows-optout-feature-tree.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-windows-optout-feature-tree.log new file mode 100644 index 00000000..e071b954 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integrated-windows-optout-feature-tree.log @@ -0,0 +1,590 @@ +codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-fix) +├── fs2 feature "default" +│ └── fs2 v0.4.3 +│ ├── winapi feature "default" +│ │ └── winapi v0.3.9 +│ ├── winapi feature "fileapi" +│ │ └── winapi v0.3.9 +│ ├── winapi feature "handleapi" +│ │ └── winapi v0.3.9 +│ ├── winapi feature "processthreadsapi" +│ │ └── winapi v0.3.9 +│ ├── winapi feature "std" +│ │ └── winapi v0.3.9 +│ ├── winapi feature "winbase" +│ │ └── winapi v0.3.9 +│ └── winapi feature "winerror" +│ └── winapi v0.3.9 +├── getrandom feature "default" +│ └── getrandom v0.3.4 +│ └── cfg-if feature "default" +│ └── cfg-if v1.0.4 +├── lbug feature "default" +│ └── lbug v0.19.0 +│ ├── rust_decimal v1.42.1 +│ │ ├── arrayvec v0.7.6 +│ │ └── num-traits feature "i128" +│ │ └── num-traits v0.2.19 +│ │ [build-dependencies] +│ │ └── autocfg feature "default" +│ │ └── autocfg v1.5.1 +│ ├── cxx feature "default" +│ │ ├── cxx v1.0.138 +│ │ │ ├── foldhash v0.1.5 +│ │ │ ├── cxxbridge-macro feature "default" +│ │ │ │ └── cxxbridge-macro v1.0.138 (proc-macro) +│ │ │ │ ├── proc-macro2 feature "default" +│ │ │ │ │ ├── proc-macro2 v1.0.106 +│ │ │ │ │ │ └── unicode-ident feature "default" +│ │ │ │ │ │ └── unicode-ident v1.0.24 +│ │ │ │ │ └── proc-macro2 feature "proc-macro" +│ │ │ │ │ └── proc-macro2 v1.0.106 (*) +│ │ │ │ ├── quote feature "default" +│ │ │ │ │ ├── quote v1.0.45 +│ │ │ │ │ │ └── proc-macro2 v1.0.106 (*) +│ │ │ │ │ └── quote feature "proc-macro" +│ │ │ │ │ ├── quote v1.0.45 (*) +│ │ │ │ │ └── proc-macro2 feature "proc-macro" (*) +│ │ │ │ ├── rustversion feature "default" +│ │ │ │ │ └── rustversion v1.0.22 (proc-macro) +│ │ │ │ ├── syn feature "default" +│ │ │ │ │ ├── syn v2.0.117 +│ │ │ │ │ │ ├── proc-macro2 v1.0.106 (*) +│ │ │ │ │ │ ├── quote v1.0.45 (*) +│ │ │ │ │ │ └── unicode-ident feature "default" (*) +│ │ │ │ │ ├── syn feature "clone-impls" +│ │ │ │ │ │ └── syn v2.0.117 (*) +│ │ │ │ │ ├── syn feature "derive" +│ │ │ │ │ │ └── syn v2.0.117 (*) +│ │ │ │ │ ├── syn feature "parsing" +│ │ │ │ │ │ └── syn v2.0.117 (*) +│ │ │ │ │ ├── syn feature "printing" +│ │ │ │ │ │ └── syn v2.0.117 (*) +│ │ │ │ │ └── syn feature "proc-macro" +│ │ │ │ │ ├── syn v2.0.117 (*) +│ │ │ │ │ ├── proc-macro2 feature "proc-macro" (*) +│ │ │ │ │ └── quote feature "proc-macro" (*) +│ │ │ │ └── syn feature "full" +│ │ │ │ └── syn v2.0.117 (*) +│ │ │ └── link-cplusplus feature "default" +│ │ │ └── link-cplusplus v1.0.12 +│ │ │ [build-dependencies] +│ │ │ └── cc feature "default" +│ │ │ └── cc v1.2.64 +│ │ │ ├── find-msvc-tools feature "default" +│ │ │ │ └── find-msvc-tools v0.1.9 +│ │ │ └── shlex feature "default" +│ │ │ ├── shlex v2.0.1 +│ │ │ └── shlex feature "std" +│ │ │ └── shlex v2.0.1 +│ │ │ [build-dependencies] +│ │ │ ├── cxxbridge-flags v1.0.138 +│ │ │ └── cc feature "default" (*) +│ │ ├── cxx feature "std" +│ │ │ ├── cxx v1.0.138 (*) +│ │ │ ├── cxx feature "alloc" +│ │ │ │ └── cxx v1.0.138 (*) +│ │ │ └── foldhash feature "std" +│ │ │ └── foldhash v0.1.5 +│ │ └── cxxbridge-flags feature "default" +│ │ └── cxxbridge-flags v1.0.138 +│ ├── serde_json feature "default" +│ │ ├── serde_json v1.0.150 +│ │ │ ├── memchr v2.8.2 +│ │ │ ├── serde_core v1.0.228 +│ │ │ ├── itoa feature "default" +│ │ │ │ └── itoa v1.0.18 +│ │ │ └── zmij feature "default" +│ │ │ └── zmij v1.0.21 +│ │ └── serde_json feature "std" +│ │ ├── serde_json v1.0.150 (*) +│ │ ├── memchr feature "std" +│ │ │ ├── memchr v2.8.2 +│ │ │ └── memchr feature "alloc" +│ │ │ └── memchr v2.8.2 +│ │ └── serde_core feature "std" +│ │ └── serde_core v1.0.228 +│ ├── time feature "default" +│ │ ├── time v0.3.36 +│ │ │ ├── powerfmt v0.2.0 +│ │ │ ├── deranged feature "powerfmt" +│ │ │ │ └── deranged v0.3.11 +│ │ │ │ └── powerfmt v0.2.0 +│ │ │ ├── num-conv feature "default" +│ │ │ │ └── num-conv v0.1.0 +│ │ │ └── time-core feature "default" +│ │ │ └── time-core v0.1.2 +│ │ └── time feature "std" +│ │ ├── time v0.3.36 (*) +│ │ ├── time feature "alloc" +│ │ │ └── time v0.3.36 (*) +│ │ └── deranged feature "std" +│ │ ├── deranged v0.3.11 (*) +│ │ └── deranged feature "alloc" +│ │ └── deranged v0.3.11 (*) +│ └── uuid feature "default" +│ ├── uuid v1.18.1 +│ └── uuid feature "std" +│ └── uuid v1.18.1 +│ [build-dependencies] +│ ├── cmake feature "default" +│ │ └── cmake v0.1.58 +│ │ └── cc feature "default" (*) +│ ├── rustversion feature "default" (*) +│ └── cxx-build feature "default" +│ └── cxx-build v1.0.138 +│ ├── quote v1.0.45 (*) +│ ├── cc feature "default" (*) +│ ├── proc-macro2 feature "span-locations" +│ │ └── proc-macro2 v1.0.106 (*) +│ ├── syn feature "clone-impls" (*) +│ ├── syn feature "full" (*) +│ ├── syn feature "parsing" (*) +│ ├── syn feature "printing" (*) +│ ├── codespan-reporting feature "default" +│ │ └── codespan-reporting v0.11.1 +│ │ ├── termcolor feature "default" +│ │ │ └── termcolor v1.4.1 +│ │ └── unicode-width feature "default" +│ │ ├── unicode-width v0.1.14 +│ │ └── unicode-width feature "cjk" +│ │ └── unicode-width v0.1.14 +│ └── scratch feature "default" +│ └── scratch v1.0.9 +├── serde_json feature "default" (*) +├── libc feature "default" +│ ├── libc v0.2.189 +│ └── libc feature "std" +│ └── libc v0.2.189 +├── libmimalloc-sys feature "default" +│ └── libmimalloc-sys v0.1.49 +│ └── cty feature "default" +│ └── cty v0.2.2 +│ [build-dependencies] +│ └── cc feature "default" (*) +├── libmimalloc-sys feature "extended" +│ ├── libmimalloc-sys v0.1.49 (*) +│ └── libmimalloc-sys feature "cty" +│ └── libmimalloc-sys v0.1.49 (*) +├── lzma-rs feature "default" +│ └── lzma-rs v0.3.0 +│ ├── byteorder feature "default" +│ │ ├── byteorder v1.5.0 +│ │ └── byteorder feature "std" +│ │ └── byteorder v1.5.0 +│ └── crc feature "default" +│ └── crc v3.4.0 +│ └── crc-catalog feature "default" +│ └── crc-catalog v2.5.0 +├── mimalloc feature "default" +│ └── mimalloc v0.1.52 +│ └── libmimalloc-sys v0.1.49 (*) +├── mimalloc feature "extended" +│ ├── mimalloc v0.1.52 (*) +│ └── libmimalloc-sys feature "extended" (*) +├── notify feature "default" +│ ├── notify v8.2.0 +│ │ ├── libc feature "default" (*) +│ │ ├── log feature "default" +│ │ │ └── log v0.4.32 +│ │ ├── notify-types feature "default" +│ │ │ └── notify-types v2.0.0 +│ │ ├── walkdir feature "default" +│ │ │ └── walkdir v2.5.0 +│ │ │ ├── same-file feature "default" +│ │ │ │ └── same-file v1.0.6 +│ │ │ │ └── winapi-util feature "default" +│ │ │ │ └── winapi-util v0.1.11 +│ │ │ │ ├── windows-sys feature "Win32_Foundation" +│ │ │ │ │ ├── windows-sys v0.61.2 +│ │ │ │ │ │ └── windows-link v0.2.1 +│ │ │ │ │ └── windows-sys feature "Win32" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32_Foundation" (*) +│ │ │ │ ├── windows-sys feature "Win32_Storage_FileSystem" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32_Storage" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32" (*) +│ │ │ │ ├── windows-sys feature "Win32_System_Console" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32_System" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32" (*) +│ │ │ │ ├── windows-sys feature "Win32_System_SystemInformation" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32_System" (*) +│ │ │ │ └── windows-sys feature "default" +│ │ │ │ └── windows-sys v0.61.2 (*) +│ │ │ └── winapi-util feature "default" (*) +│ │ ├── windows-sys feature "Win32_Foundation" +│ │ │ ├── windows-sys v0.60.2 +│ │ │ │ └── windows-targets v0.53.5 +│ │ │ │ └── windows_x86_64_msvc feature "default" +│ │ │ │ └── windows_x86_64_msvc v0.53.1 +│ │ │ └── windows-sys feature "Win32" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32_Foundation" (*) +│ │ ├── windows-sys feature "Win32_Security" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32" (*) +│ │ ├── windows-sys feature "Win32_Storage_FileSystem" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32_Storage" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32" (*) +│ │ ├── windows-sys feature "Win32_System_IO" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32_System" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32" (*) +│ │ ├── windows-sys feature "Win32_System_Threading" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32_System" (*) +│ │ ├── windows-sys feature "Win32_System_WindowsProgramming" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32_System" (*) +│ │ └── windows-sys feature "default" +│ │ └── windows-sys v0.60.2 (*) +│ └── notify feature "macos_fsevent" +│ ├── notify v8.2.0 (*) +│ └── notify feature "fsevent-sys" +│ └── notify v8.2.0 (*) +├── walkdir feature "default" (*) +├── windows-sys feature "Wdk_Foundation" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Wdk" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_Foundation" (*) +├── windows-sys feature "Wdk_Storage_FileSystem" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Wdk_Storage" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Wdk" (*) +├── windows-sys feature "Win32_Foundation" (*) +├── windows-sys feature "Win32_Globalization" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32" (*) +├── windows-sys feature "Win32_Security" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32" (*) +├── windows-sys feature "Win32_Security_Authorization" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_Security" (*) +├── windows-sys feature "Win32_Storage_FileSystem" (*) +├── windows-sys feature "Win32_System_Console" (*) +├── windows-sys feature "Win32_System_Diagnostics_ToolHelp" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System_Diagnostics" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_IO" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_JobObjects" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_Memory" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_Pipes" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_ProcessStatus" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_SystemServices" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_Threading" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "default" (*) +├── serde feature "default" +│ ├── serde v1.0.228 +│ │ ├── serde_core feature "result" +│ │ │ └── serde_core v1.0.228 +│ │ └── serde_derive feature "default" +│ │ └── serde_derive v1.0.228 (proc-macro) +│ │ ├── proc-macro2 feature "proc-macro" (*) +│ │ ├── quote feature "proc-macro" (*) +│ │ ├── syn feature "clone-impls" (*) +│ │ ├── syn feature "derive" (*) +│ │ ├── syn feature "parsing" (*) +│ │ ├── syn feature "printing" (*) +│ │ └── syn feature "proc-macro" (*) +│ └── serde feature "std" +│ ├── serde v1.0.228 (*) +│ └── serde_core feature "std" (*) +├── serde feature "derive" +│ ├── serde v1.0.228 (*) +│ └── serde feature "serde_derive" +│ └── serde v1.0.228 (*) +├── sha2 feature "default" +│ ├── sha2 v0.10.9 +│ │ ├── cfg-if feature "default" (*) +│ │ ├── cpufeatures feature "default" +│ │ │ └── cpufeatures v0.2.17 +│ │ └── digest feature "default" +│ │ ├── digest v0.10.7 +│ │ │ ├── block-buffer feature "default" +│ │ │ │ └── block-buffer v0.10.4 +│ │ │ │ └── generic-array feature "default" +│ │ │ │ └── generic-array v0.14.7 +│ │ │ │ └── typenum feature "default" +│ │ │ │ └── typenum v1.20.1 +│ │ │ │ [build-dependencies] +│ │ │ │ └── version_check feature "default" +│ │ │ │ └── version_check v0.9.5 +│ │ │ └── crypto-common feature "default" +│ │ │ └── crypto-common v0.1.7 +│ │ │ ├── generic-array feature "default" (*) +│ │ │ ├── generic-array feature "more_lengths" +│ │ │ │ └── generic-array v0.14.7 (*) +│ │ │ └── typenum feature "default" (*) +│ │ └── digest feature "core-api" +│ │ ├── digest v0.10.7 (*) +│ │ └── digest feature "block-buffer" +│ │ └── digest v0.10.7 (*) +│ └── sha2 feature "std" +│ ├── sha2 v0.10.9 (*) +│ └── digest feature "std" +│ ├── digest v0.10.7 (*) +│ ├── digest feature "alloc" +│ │ └── digest v0.10.7 (*) +│ └── crypto-common feature "std" +│ └── crypto-common v0.1.7 (*) +├── tree-sitter feature "default" +│ ├── tree-sitter v0.25.10 +│ │ ├── regex-syntax v0.8.11 +│ │ ├── regex feature "unicode" +│ │ │ ├── regex v1.12.4 +│ │ │ │ ├── aho-corasick v1.1.4 +│ │ │ │ │ └── memchr v2.8.2 +│ │ │ │ ├── memchr v2.8.2 +│ │ │ │ ├── regex-syntax v0.8.11 +│ │ │ │ ├── regex-automata feature "alloc" +│ │ │ │ │ └── regex-automata v0.4.14 +│ │ │ │ │ ├── aho-corasick v1.1.4 (*) +│ │ │ │ │ ├── memchr v2.8.2 +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ ├── regex-automata feature "meta" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ ├── regex-automata feature "nfa-pikevm" +│ │ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ │ └── regex-automata feature "nfa-thompson" +│ │ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ │ └── regex-automata feature "alloc" (*) +│ │ │ │ │ └── regex-automata feature "syntax" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-automata feature "alloc" (*) +│ │ │ │ ├── regex-automata feature "nfa-pikevm" (*) +│ │ │ │ └── regex-automata feature "syntax" (*) +│ │ │ ├── regex feature "unicode-age" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-age" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-age" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-age" (*) +│ │ │ ├── regex feature "unicode-bool" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-bool" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-bool" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-bool" (*) +│ │ │ ├── regex feature "unicode-case" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-case" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-case" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-case" (*) +│ │ │ ├── regex feature "unicode-gencat" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-gencat" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-gencat" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-gencat" (*) +│ │ │ ├── regex feature "unicode-perl" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-perl" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-perl" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ ├── regex-automata feature "unicode-word-boundary" +│ │ │ │ │ └── regex-automata v0.4.14 (*) +│ │ │ │ └── regex-syntax feature "unicode-perl" (*) +│ │ │ ├── regex feature "unicode-script" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-script" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-script" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-script" (*) +│ │ │ ├── regex feature "unicode-segment" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-segment" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-segment" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-segment" (*) +│ │ │ ├── regex-automata feature "unicode" +│ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ ├── regex-automata feature "unicode-age" (*) +│ │ │ │ ├── regex-automata feature "unicode-bool" (*) +│ │ │ │ ├── regex-automata feature "unicode-case" (*) +│ │ │ │ ├── regex-automata feature "unicode-gencat" (*) +│ │ │ │ ├── regex-automata feature "unicode-perl" (*) +│ │ │ │ ├── regex-automata feature "unicode-script" (*) +│ │ │ │ ├── regex-automata feature "unicode-segment" (*) +│ │ │ │ ├── regex-automata feature "unicode-word-boundary" (*) +│ │ │ │ └── regex-syntax feature "unicode" +│ │ │ │ ├── regex-syntax v0.8.11 +│ │ │ │ ├── regex-syntax feature "unicode-age" (*) +│ │ │ │ ├── regex-syntax feature "unicode-bool" (*) +│ │ │ │ ├── regex-syntax feature "unicode-case" (*) +│ │ │ │ ├── regex-syntax feature "unicode-gencat" (*) +│ │ │ │ ├── regex-syntax feature "unicode-perl" (*) +│ │ │ │ ├── regex-syntax feature "unicode-script" (*) +│ │ │ │ └── regex-syntax feature "unicode-segment" (*) +│ │ │ └── regex-syntax feature "unicode" (*) +│ │ ├── streaming-iterator feature "default" +│ │ │ └── streaming-iterator v0.1.9 +│ │ └── tree-sitter-language feature "default" +│ │ └── tree-sitter-language v0.1.8 +│ │ [build-dependencies] +│ │ ├── cc feature "default" (*) +│ │ ├── serde_json feature "default" +│ │ │ ├── serde_json v1.0.150 +│ │ │ │ ├── memchr v2.8.2 +│ │ │ │ ├── serde_core v1.0.228 +│ │ │ │ ├── indexmap feature "default" +│ │ │ │ │ ├── indexmap v2.7.1 +│ │ │ │ │ │ ├── equivalent v1.0.2 +│ │ │ │ │ │ └── hashbrown v0.15.5 +│ │ │ │ │ └── indexmap feature "std" +│ │ │ │ │ └── indexmap v2.7.1 (*) +│ │ │ │ ├── itoa feature "default" +│ │ │ │ │ └── itoa v1.0.18 +│ │ │ │ └── zmij feature "default" +│ │ │ │ └── zmij v1.0.21 +│ │ │ └── serde_json feature "std" +│ │ │ ├── serde_json v1.0.150 (*) +│ │ │ ├── memchr feature "std" +│ │ │ │ ├── memchr v2.8.2 +│ │ │ │ └── memchr feature "alloc" +│ │ │ │ └── memchr v2.8.2 +│ │ │ └── serde_core feature "std" +│ │ │ └── serde_core v1.0.228 +│ │ └── serde_json feature "preserve_order" +│ │ ├── serde_json v1.0.150 (*) +│ │ ├── serde_json feature "indexmap" +│ │ │ └── serde_json v1.0.150 (*) +│ │ └── serde_json feature "std" (*) +│ └── tree-sitter feature "std" +│ ├── tree-sitter v0.25.10 (*) +│ ├── regex feature "perf" +│ │ ├── regex v1.12.4 (*) +│ │ ├── regex feature "perf-backtrack" +│ │ │ ├── regex v1.12.4 (*) +│ │ │ └── regex-automata feature "nfa-backtrack" +│ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ └── regex-automata feature "nfa-thompson" (*) +│ │ ├── regex feature "perf-cache" +│ │ │ └── regex v1.12.4 (*) +│ │ ├── regex feature "perf-dfa" +│ │ │ ├── regex v1.12.4 (*) +│ │ │ └── regex-automata feature "hybrid" +│ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ ├── regex-automata feature "alloc" (*) +│ │ │ └── regex-automata feature "nfa-thompson" (*) +│ │ ├── regex feature "perf-inline" +│ │ │ ├── regex v1.12.4 (*) +│ │ │ └── regex-automata feature "perf-inline" +│ │ │ └── regex-automata v0.4.14 (*) +│ │ ├── regex feature "perf-literal" +│ │ │ ├── regex v1.12.4 (*) +│ │ │ └── regex-automata feature "perf-literal" +│ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ ├── regex-automata feature "perf-literal-multisubstring" +│ │ │ │ └── regex-automata v0.4.14 (*) +│ │ │ └── regex-automata feature "perf-literal-substring" +│ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ └── aho-corasick feature "perf-literal" +│ │ │ └── aho-corasick v1.1.4 (*) +│ │ └── regex feature "perf-onepass" +│ │ ├── regex v1.12.4 (*) +│ │ └── regex-automata feature "dfa-onepass" +│ │ ├── regex-automata v0.4.14 (*) +│ │ └── regex-automata feature "nfa-thompson" (*) +│ ├── regex feature "std" +│ │ ├── regex v1.12.4 (*) +│ │ ├── memchr feature "std" (*) +│ │ ├── aho-corasick feature "std" +│ │ │ ├── aho-corasick v1.1.4 (*) +│ │ │ └── memchr feature "std" (*) +│ │ ├── regex-automata feature "std" +│ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ ├── memchr feature "std" (*) +│ │ │ ├── aho-corasick feature "std" (*) +│ │ │ ├── regex-automata feature "alloc" (*) +│ │ │ └── regex-syntax feature "std" +│ │ │ └── regex-syntax v0.8.11 +│ │ └── regex-syntax feature "std" (*) +│ └── regex-syntax feature "unicode" (*) +├── tree-sitter-language feature "default" (*) +├── tree-sitter-c feature "default" +│ └── tree-sitter-c v0.24.2 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-cpp feature "default" +│ └── tree-sitter-cpp v0.23.4 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-css feature "default" +│ └── tree-sitter-css v0.25.0 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-fortran feature "default" +│ └── tree-sitter-fortran v0.6.0 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-go feature "default" +│ └── tree-sitter-go v0.25.0 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-html feature "default" +│ └── tree-sitter-html v0.23.2 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-javascript feature "default" +│ └── tree-sitter-javascript v0.25.0 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-python feature "default" +│ └── tree-sitter-python v0.25.0 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-rust feature "default" +│ └── tree-sitter-rust v0.24.2 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +└── tree-sitter-typescript feature "default" + └── tree-sitter-typescript v0.23.2 + └── tree-sitter-language feature "default" (*) + [build-dependencies] + └── cc feature "default" (*) +[build-dependencies] +└── cc feature "default" (*) diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integration-verification.json b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integration-verification.json new file mode 100644 index 00000000..838e5a94 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/integration-verification.json @@ -0,0 +1,89 @@ +{ + "repair_parent": "359d946e91c6cb3ee7e170b73c6e9bab577b0b04", + "main_parent": "9f69a0bd4b468eaa8652d933d518fafb8c596b6a", + "manual_resolution": [ + "crates/k-wiki/Cargo.toml: codebase-graph4.0.2 + pulldown-cmark0.13.5" + ], + "expected_file_hash_matches": { + "Cargo.toml": true, + "Cargo.lock": true, + "crates/k-wiki/Cargo.toml": true, + "crates/xtask/Cargo.toml": true, + "crates/xtask/src/main.rs": true, + ".github/workflows/ci.yml": true, + "docs/release.md": true, + "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/historical-reject-proxy.tar.gz": true, + "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/archived-inputs.json": true + }, + "historical_records_verified": 65, + "historical_index_bytes_unchanged": true, + "core_changes": "Same intended pretestedcombinedcontents; no manual runtime source change.", + "reviewers": { + "proposal": { + "model": "openai-codex/gpt-6.1-sol", + "thinking": "high", + "fresh": true, + "forked_transcript": false + }, + "final": { + "model": "openai-codex/gpt-6.1-sol", + "thinking": "max", + "fresh": true, + "forked_transcript": false + } + }, + "limits": [ + "Whole merge diff has preexisting rawlog whitespace from upstream/oldPR; newCargo resolution passes scoped diffcheck.", + "Final corrected pushed-head nativeCI remains required.", + "No PRmerge/release/desktopqualification/COD53closure." + ], + "executed_checks": [ + { + "command": "cargo nextest run --locked -p k-wiki -p xtask --config-file integrated-nextest.toml --profile pr158-integrated", + "exit": 0, + "passed": 176, + "failed": 0, + "skipped": 0, + "junit": "integrated-wiki-xtask.junit.xml", + "log": "integrated-wiki-xtask-tests.log" + }, + { + "command": "cargo fmt --all -- --check; cargo clippy --workspace --all-targets --all-features --locked -- -D warnings", + "exit": 0, + "logs": [ + "integrated-fmt.log", + "integrated-clippy.log" + ] + }, + { + "command": "cargo run -p xtask --locked -- release-gate; guarded cargo-audit0.22.2 unchanged exception", + "exit": 0, + "logs": [ + "integrated-release-gate.log", + "integrated-audit.log", + "integrated-time-feature-tree.log" + ] + }, + { + "command": "cargo publish --dry-run --locked --allow-dirty; cargo package root; verify-crate-size; cargo package wiki with CI path patch", + "exit": 0, + "logs": [ + "integrated-package-dry-run.log", + "integrated-crate-size.log", + "integrated-wiki-package.log" + ], + "root_crate_bytes": 8458173, + "limit": 10485760, + "limits": "Unchanged SDK supplied; no upload. Wiki archive creation, not isolated compile." + }, + { + "command": "Windows-filtered default/root optout feature trees", + "exit": 0, + "logs": [ + "integrated-windows-default-feature-tree.log", + "integrated-windows-optout-feature-tree.log" + ], + "limits": "Resolution only." + } + ] +} diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merge-final-review.md b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merge-final-review.md new file mode 100644 index 00000000..d253b8b4 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merge-final-review.md @@ -0,0 +1,43 @@ +# PR158 / COD-53 — final main-integration review + +## Verdict + +**No confirmed P0–P3 defect. Proceed with the planned normal merge commit and non-force push to existing PR158.** Local integration checks are complete. Final pushed-head native CI remains pending; this is not approval to merge PR158 into main, release, deploy, restart, or close COD-53. + +Reviewer: **GPT-6.1 Sol / Max**, same independent final-review agent originally started fresh with no inherited transcript, reused for this focused integration review. Applied adversarial-review-engineer and codebasegraph-engineer. No implementation, Git writes, builds, tests, installs, settings changes or external mutations were performed by the reviewer. Only this report was written for this pass. + +## Snapshot and integration boundary + +- Repair parent: `359d946e91c6cb3ee7e170b73c6e9bab577b0b04`. +- Pinned main parent: `9f69a0bd4b468eaa8652d933d518fafb8c596b6a`. +- Normal merge is in progress; no unmerged index entries remain. No rebase/history rewrite or PR-to-main merge is involved. +- Reviewed `merge-conflict-plan.md`, focused proposal review, actual index/diffs against both parents, expected conflict tree and `expected-integrated-inventory.json`. All **nine** expected critical-file SHA-256 values match the actual files and the previously tested combined worktree. +- Before additive integration evidence, the **entire index** equals the expected conflicted Git merge tree `49d14691a82567d05d52dd8707db786ee59778ea` except for **`crates/k-wiki/Cargo.toml` only**. Its resolved blob is `a8a46a783423043dd6374299923d84499c772cf2`. Subsequent index differences are confined to the canonical repair report and bounded integration/review evidence under its evidence directory. + +The only manual product resolution correctly keeps `codebase-graph = { version = "4.0.2", path = "../.." }` from main and `pulldown-cmark = { version = "0.13.5", default-features = false, features = ["html"] }` from the repair. The automatically merged lock moves workspace package identities to4.0.2 and retains parser0.13.5 with the already verified published checksum. No unrelated dependency/features change was introduced. + +Against the two parents, combined root manifest/lock/release documentation contain both approved lines of work; other inherited source/workflow changes are main's existing changes, not new manual implementation under this repair. Root `default = ["bundled-windows-extensions"]` remains present. Native assets, Ladybug0.19 ABI, existing COD-53 approval/spec references and historical Windows qualification bytes are preserved. The original index and all **65** historical records independently reverify, using the unchanged archived proxy member. + +## Actual verification inspected + +These checks were executed by the coordinator in the resolved integration worktree, not rerun by this reviewer. Read canonical `integration-verification.json`, raw logs and JUnit; they agree with the captured evidence. + +- **176/176 wiki + xtask tests pass, 0 failures/errors/skipped**, run `f10e8ad1-ec95-4ef4-9ced-edd3854bdc91`. JUnit has176 cases. The log explicitly compiles codebase-graph/k-wiki/xtask4.0.2 from the intended integration checkout. The count is observed, not inferred from the earlier174/44 results. +- Formatting and strict workspace/all-target/all-feature Clippy: coordinator-recorded exit0; final compilation completes without compiler warnings. +- Unchanged release gate: pass. Audit: exit0 with unchanged guarded time exception and the same two allowed cxx/tokio audit warnings; time feature tree has no parsing. No new ignore or policy bypass. +- Normal publish dry-run: pass; log explicitly compiles the extracted root source package and aborts upload because it is a dry-run. No upload occurred. +- Actual integrated root archive: **8,458,173 bytes**, SHA-256 `866f4a589df0baa4de2dc6ba1df8a1f8bb956eacfeb325449bb63873c4d133b3`, 207 members. Direct inspection confirms all four bundled XZ payloads match source and the packaged root retains default Windows bundling. The exact-byte size check passes. This is distinct from the earlier8,458,182-byte historical package measurement. +- Actual wiki archive: **140,451 bytes**, SHA-256 `964ad370f1ee621a221c38a070c2d7d0559c0dd1b98eec69ff80e02c7dc26e78`. Direct manifest inspection confirms parser lower bound0.13.5 and unchanged features. This is archive creation/inventory, not isolated wiki archive compilation. +- Windows-filtered default and explicit root opt-out trees remain correct. They establish resolution only, not Windows execution. + +Whole-parent/whole-PR diff checks report preexisting whitespace/CRLF in raw historical artifacts. Those bytes are unchanged from the relevant parent; they were not normalized to make a cosmetic check pass. The manual Cargo metadata/conflict-resolution scoped diff check passes. No blanket whole-PR whitespace pass is claimed. + +## Canonical evidence and remaining limits + +Reviewed the additive post-push main-synchronization paragraph. It states the one-block conflict, exact pinned parents, actual176-test result and new package byte count. It preserves previous measurements as historical evidence and does not label local checks new-head CI. The new canonical raw logs/JUnit match their inspected captures; executed-check fields in integration-verification.json are consistent. Adding the report's final link/retaining this review is a bounded evidence-only delivery step. + +After committing/pushing, verify the actual new two-parent head/mergeability and its own macOS/Windows CI run. Zero checks, the conflicted359d946 head, or old CI results cannot establish success. Original Windows11 prepared-environment evidence remains bound to its original source; clean-consumer qualification, full S02/A03/A04/fullA16 and aggregate COD-53 closure remain open. + +Registered graph/Scryer orientation still binds the older original checkout; exact index/source comparisons establish this integration snapshot, not a fabricated branch-specific model fingerprint. The original approved specification/approval and user CI-fix scope are unchanged. The reviewer's own Linear access limitation does not imply coordinator tracking updates were unavailable. + +No new durable memory is needed. Exact-source, no-history-rewrite, preserved historical bytes and separate local/native qualification lessons were applied. diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merge-proposal-review.md b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merge-proposal-review.md new file mode 100644 index 00000000..4db602a0 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merge-proposal-review.md @@ -0,0 +1,29 @@ +# PR158 focused main-integration proposal review — 2026-10-29 + +## Verdict + +**Proceed with specified conditions. No decision-blocking finding.** The proposed normal merge of pinned main into the repair branch is a proportionate way to remove the demonstrated CI merge conflict. This is branch integration, not authorization to merge PR158 into main, publish, release, or close COD-53. + +Reviewed `merge-conflict-plan.md` and `postpush-merge-conflicts.txt`; repair parent `359d946e91c6cb3ee7e170b73c6e9bab577b0b04`, main parent `9f69a0bd4b468eaa8652d933d518fafb8c596b6a`. Applied the adversarial-proposal-review-engineer and codebasegraph-engineer skills. Review remains read-only: no merge, product edit, build, tests, install, or Git write performed. Fresh initial review session at the requested Sol / High settings is reused for this focused material revision. + +## Evidence and option choice + +I read the supplied conflict artifact and independently inspected both committed manifests and generated conflict-tree metadata through read-only Git commands. The sole recorded content conflict is the adjacent `codebase-graph`/`pulldown-cmark` dependency block in `crates/k-wiki/Cargo.toml`. Main uses workspace version 4.0.2 and parser lower bound 0.13; the repair uses workspace version 4.0.0 and parser lower bound 0.13.5. The correct resolution retains **codebase-graph 4.0.2 + pulldown-cmark 0.13.5**, with unchanged feature declarations. The automatically merged lock metadata retains the parser repair while moving the three workspace package versions to 4.0.2. No new dependency/ABI decision follows from synchronizing already merged workspace metadata. + +A normal merge preserves history and both parents. Rebase/force-push is unnecessary. Choosing either conflict side wholesale would discard the parser floor or main's version alignment. The proposal correctly avoids both. The generated conflicted tree `49d14691a82567d05d52dd8707db786ee59778ea` is diagnostic evidence only, never a deliverable tree. + +The main-side history includes source, tests, workflows, docs and release metadata, not just the four archived helpers. These are already upstream changes, not newly implemented work under this repair. Their interactions still require final combined-tree checks. The prior combined-tree logs show release-gate success, 44 xtask tests passed, and a completed package dry-run at 4.0.2; they support feasibility but do not by themselves establish that the not-yet-created two-parent merge has passed. The parent-reported GitHub dirty/zero-check state is not independently queried here. + +## Conditions before delivery + +1. Merge exactly the pinned main SHA with the proposed normal, non-rewriting integration. Expect only the stated manifest conflict. Stop for any additional conflict or unexpected resolution; do not silently broaden manual edits. +2. Resolve only the two dependency lines as above. Preserve all main-side automatic changes and original repair semantics, Windows default bundling, native asset/ABI identities, historical archives, original 65-record index bytes, reports and hashes. Keep immutable approval/spec references unchanged. +3. Inspect the final tree against both parents and the expected resolved merge, not only the first-parent diff. The merge must retain both main ancestry and repair ancestry and contain no conflict markers. Keep additive integration/evidence notes distinct from historical evidence. +4. Execute the planned final combined-tree checks and the required focused Sol / Max final review before completion. Previous package/test evidence may be reused only with exact relevant input equivalence recorded; record resulting new head/merge and rerun affected checks. Do not treat expected test counts as results. Strict checks, audit, release policy, configuration and archive/index audits remain required. +5. Push non-force to the existing PR, verify the actual new head and mergeability, then collect its own CI outcome. Zero checks or only old-head runs are not a passing result. Unexpected remote changes require reconciliation. This review does not authorize integration settings changes, bypasses, merge/release, or platform qualification claims. + +No established defect remains in the proposed conflict resolution. The material conditional risk is ordinary combined-tree integration: upstream source/workflow changes can interact with the repair despite a one-block textual conflict. The final checks and focused review already proposed are the proportionate gate; no speculative claims, new product tests, or unrelated implementation are needed. + +## Limits and knowledge assessment + +Consulted task-local evidence and refreshed wiki memory. No new external factual premise required additional research; the earlier review established the parser advisory/MSRV facts. The current user authorization is supplied by the coordinator, not independently reconstructed from user chat. Final merged source/runtime behavior was not audited or tested here. No durable memory entry is warranted from this task-local integration review. diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-checks.json b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-checks.json new file mode 100644 index 00000000..43f90b8d --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-checks.json @@ -0,0 +1,15 @@ +{ + "tree": "baselineCImergef49fbb5 + frozenrepairdiff + additivecanonicalevidence", + "command": "cargo nextest run --locked -p xtask --config-file /private/tmp/codebasegraph-pr158-ci-40798473142/merged-nextest.toml --profile pr158-merge", + "exit": 0, + "passed": 44, + "failed": 0, + "skipped": 0, + "log": "merged-xtask-tests.log", + "junit": "merged-xtask.junit.xml", + "unchanged_release_gate_after_evidence": { + "exit": 0, + "log": "combined-evidence-release-gate.log" + }, + "product_or_archival_bytes_changed": false +} diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-package-dry-run.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-package-dry-run.log new file mode 100644 index 00000000..1e5d96b5 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-package-dry-run.log @@ -0,0 +1,79 @@ + Updating crates.io index +warning: crate codebase-graph@4.0.2 already exists on crates.io index + Packaging codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-merge) + Updating crates.io index + Packaged 207 files, 14.0MiB (8.1MiB compressed) + Verifying codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-merge) + Compiling shlex v2.0.1 + Compiling find-msvc-tools v0.1.9 + Compiling tree-sitter-language v0.1.8 + Compiling proc-macro2 v1.0.106 + Compiling quote v1.0.45 + Compiling rustversion v1.0.22 + Compiling serde_core v1.0.228 + Compiling scratch v1.0.9 + Compiling equivalent v1.0.2 + Compiling serde_json v1.0.150 + Compiling hashbrown v0.15.5 + Compiling cc v1.2.64 + Compiling termcolor v1.4.1 + Compiling unicode-width v0.1.14 + Compiling cxxbridge-flags v1.0.138 + Compiling indexmap v2.7.1 + Compiling autocfg v1.5.1 + Compiling num-traits v0.2.19 + Compiling codespan-reporting v0.11.1 + Compiling link-cplusplus v1.0.12 + Compiling libmimalloc-sys v0.1.49 + Compiling cxx v1.0.138 + Compiling cmake v0.1.58 + Compiling aho-corasick v1.1.4 + Compiling powerfmt v0.2.0 + Compiling regex-syntax v0.8.11 + Compiling rust_decimal v1.42.1 + Compiling deranged v0.3.11 + Compiling syn v2.0.117 + Compiling tree-sitter-javascript v0.25.0 + Compiling tree-sitter-cpp v0.23.4 + Compiling tree-sitter-python v0.25.0 + Compiling tree-sitter-typescript v0.23.2 + Compiling regex-automata v0.4.14 + Compiling tree-sitter-html v0.23.2 + Compiling tree-sitter-c v0.24.2 + Compiling tree-sitter-rust v0.24.2 + Compiling tree-sitter-fortran v0.6.0 + Compiling tree-sitter-css v0.25.0 + Compiling tree-sitter-go v0.25.0 + Compiling arrayvec v0.7.6 + Compiling cty v0.2.2 + Compiling time-core v0.1.2 + Compiling crc-catalog v2.5.0 + Compiling foldhash v0.1.5 + Compiling serde v1.0.228 + Compiling same-file v1.0.6 + Compiling num-conv v0.1.0 + Compiling getrandom v0.3.4 + Compiling time v0.3.36 + Compiling walkdir v2.5.0 + Compiling tree-sitter v0.25.10 + Compiling cxx-build v1.0.138 + Compiling regex v1.12.4 + Compiling crc v3.4.0 + Compiling cxxbridge-macro v1.0.138 + Compiling serde_derive v1.0.228 + Compiling lbug v0.19.0 + Compiling codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-merge/target/package/codebase-graph-4.0.2) + Compiling fsevent-sys v4.1.0 + Compiling streaming-iterator v0.1.9 + Compiling byteorder v1.5.0 + Compiling log v0.4.32 + Compiling uuid v1.18.1 + Compiling bitflags v2.13.0 + Compiling notify-types v2.0.0 + Compiling lzma-rs v0.3.0 + Compiling notify v8.2.0 + Compiling mimalloc v0.1.52 + Compiling fs2 v0.4.3 + Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.46s + Uploading codebase-graph v4.0.2 (/private/tmp/codebasegraph-pr158-ci-merge) +warning: aborting upload due to dry run diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-release-gate.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-release-gate.log new file mode 100644 index 00000000..ea917bf7 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-release-gate.log @@ -0,0 +1,43 @@ + Blocking waiting for file lock on package cache + Compiling libc v0.2.189 + Compiling proc-macro2 v1.0.106 + Compiling version_check v0.9.5 + Compiling unicode-ident v1.0.24 + Compiling quote v1.0.45 + Compiling cfg-if v1.0.4 + Compiling serde_core v1.0.228 + Compiling typenum v1.20.1 + Compiling rustix v1.1.4 + Compiling serde v1.0.228 + Compiling bitflags v2.13.0 + Compiling crc32fast v1.5.0 + Compiling zmij v1.0.21 + Compiling generic-array v0.14.7 + Compiling hashbrown v0.15.5 + Compiling simd-adler32 v0.3.10 + Compiling equivalent v1.0.2 + Compiling adler2 v2.0.1 + Compiling itoa v1.0.18 + Compiling serde_json v1.0.150 + Compiling miniz_oxide v0.9.1 + Compiling indexmap v2.7.1 + Compiling libyaml-rs v0.3.0 + Compiling ryu v1.0.23 + Compiling memchr v2.8.2 + Compiling syn v2.0.117 + Compiling serde_derive v1.0.228 + Compiling errno v0.3.14 + Compiling cpufeatures v0.2.17 + Compiling filetime v0.2.29 + Compiling flate2 v1.1.10 + Compiling xattr v1.6.1 + Compiling tar v0.4.46 + Compiling block-buffer v0.10.4 + Compiling crypto-common v0.1.7 + Compiling digest v0.10.7 + Compiling sha2 v0.10.9 + Compiling yaml_serde v0.10.7 + Compiling xtask v4.0.2 (/private/tmp/codebasegraph-pr158-ci-merge/crates/xtask) + Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.37s + Running `target/debug/xtask release-gate` +release gate passed diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-xtask-tests.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-xtask-tests.log new file mode 100644 index 00000000..ad0f3797 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-xtask-tests.log @@ -0,0 +1,51 @@ + Compiling xtask v4.0.2 (/private/tmp/codebasegraph-pr158-ci-merge/crates/xtask) + Finished `test` profile [unoptimized + debuginfo] target(s) in 1.36s +──────────── + Nextest run ID d424b847-8f02-48c0-9ec3-9f23a180ba84 with nextest profile: pr158-merge + Starting 44 tests across 1 binary + PASS [ 0.020s] ( 1/44) xtask::bin/xtask release::tests::notes_only_include_the_exact_release + PASS [ 0.021s] ( 2/44) xtask::bin/xtask release::tests::notes_reject_missing_duplicate_and_empty_sections + PASS [ 0.020s] ( 3/44) xtask::bin/xtask native_tests::tests::windows_regressions_precede_the_complete_unfiltered_suite + PASS [ 0.020s] ( 4/44) xtask::bin/xtask native_tests::tests::partitions_every_test_target_and_keeps_new_integration_targets + PASS [ 0.021s] ( 5/44) xtask::bin/xtask native_tests::shards::tests::empty_shard_never_runs_an_unfiltered_suite + PASS [ 0.024s] ( 6/44) xtask::bin/xtask release::tests::metadata_rejects_inconsistent_versions + PASS [ 0.025s] ( 7/44) xtask::bin/xtask native_tests::tests::captured_cli_survives_cargo_replacing_its_output + PASS [ 0.028s] ( 8/44) xtask::bin/xtask native_tests::shards::tests::selected_exact_filters_execute_the_expected_real_harness_cases + PASS [ 0.031s] ( 9/44) xtask::bin/xtask native_tests::shards::tests::shards_cover_every_listed_case_once_and_bound_windows_arguments + PASS [ 0.039s] (10/44) xtask::bin/xtask release::workflow_tests::recovery_requires_one_target_and_forbids_ci_run_rebuilds + PASS [ 0.013s] (11/44) xtask::bin/xtask tests::archive_contract_rejects_unexpected_entries + PASS [ 0.018s] (12/44) xtask::bin/xtask tests::complete_artifact_set_rejects_mixed_provenance + PASS [ 0.074s] (13/44) xtask::bin/xtask release::workflow_tests::staged_assets_match_the_supported_native_targets + PASS [ 0.009s] (14/44) xtask::bin/xtask tests::crate_size_validation_enforces_the_registry_limit + PASS [ 0.009s] (15/44) xtask::bin/xtask tests::native_capture_requires_unique_source_bound_normal_cli_artifact + PASS [ 0.008s] (16/44) xtask::bin/xtask tests::native_capture_reuses_the_exact_test_profile_and_features + PASS [ 0.008s] (17/44) xtask::bin/xtask tests::native_target_contract_maps_names_and_binaries + PASS [ 0.022s] (18/44) xtask::bin/xtask tests::native_test_failure_cannot_authorize_artifact_production + PASS [ 0.008s] (19/44) xtask::bin/xtask tests::release_identity_validation_is_strict + PASS [ 0.008s] (20/44) xtask::bin/xtask tests::windows_native_tests_forward_bundled_extensions + PASS [ 0.015s] (21/44) xtask::bin/xtask tests::workflow_policy_rejects_automatic_rebuild_recovery + PASS [ 0.015s] (22/44) xtask::bin/xtask tests::workflow_policy_rejects_direct_release_push_trigger + PASS [ 0.015s] (23/44) xtask::bin/xtask tests::workflow_policy_rejects_github_sha_for_release_identity + PASS [ 0.015s] (24/44) xtask::bin/xtask tests::workflow_policy_rejects_missing_ci_success_guard + PASS [ 0.029s] (25/44) xtask::bin/xtask tests::workflow_policy_rejects_missing_crate_publish_retry + PASS [ 0.021s] (26/44) xtask::bin/xtask tests::workflow_policy_rejects_missing_crate_size_gates + PASS [ 0.015s] (27/44) xtask::bin/xtask tests::workflow_policy_rejects_missing_repository_release_gate + PASS [ 0.016s] (28/44) xtask::bin/xtask tests::workflow_policy_rejects_missing_triggering_run_binding + PASS [ 0.016s] (29/44) xtask::bin/xtask tests::workflow_policy_rejects_release_queue_replacement + PASS [ 0.016s] (30/44) xtask::bin/xtask tests::workflow_policy_rejects_unconditional_release_publication + PASS [ 0.030s] (31/44) xtask::bin/xtask tests::workflow_policy_rejects_unvalidated_publishers + PASS [ 0.017s] (32/44) xtask::bin/xtask tests::workflow_policy_requires_ci_completion_release_trigger + PASS [ 0.030s] (33/44) xtask::bin/xtask tests::workflow_policy_requires_publication_revalidation + PASS [ 0.010s] (34/44) xtask::bin/xtask tests::workflow_yaml_validation_rejects_unindented_heredoc_body + PASS [ 0.024s] (35/44) xtask::bin/xtask tests::workflows_reject_removed_platform_targets + PASS [ 0.450s] (36/44) xtask::bin/xtask release::workflow_tests::ci_run_recovery_dry_run_validates_without_authorizing_publication + PASS [ 1.060s] (37/44) xtask::bin/xtask release::workflow_tests::proposal_reports_pending_release_then_proceeds_after_finalization + PASS [ 1.438s] (38/44) xtask::bin/xtask release::workflow_tests::verified_release_survives_main_advancing_and_ignores_other_pending_releases + PASS [ 1.700s] (39/44) xtask::bin/xtask release::workflow_tests::publisher_targets_original_sha_and_is_idempotent + PASS [ 1.872s] (40/44) xtask::bin/xtask release::workflow_tests::publisher_rejects_conflicting_tags_and_does_not_regress_latest + PASS [ 2.143s] (41/44) xtask::bin/xtask tests::installer_rejects_removed_hosts_before_reading_archives_or_writing_destinations + PASS [ 2.426s] (42/44) xtask::bin/xtask release::workflow_tests::ordinary_commit_cannot_authorize_release_and_tagged_retry_still_can + PASS [ 4.519s] (43/44) xtask::bin/xtask release::workflow_tests::verified_release_rejects_failed_ci_and_untrusted_run_identity + PASS [ 4.983s] (44/44) xtask::bin/xtask release::workflow_tests::verified_release_rejects_untrusted_prs_and_removed_history +──────────── + Summary [ 5.012s] 44 tests run: 44 passed, 0 skipped diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-xtask.junit.xml b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-xtask.junit.xml new file mode 100644 index 00000000..fd2ba511 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/merged-xtask.junit.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/policy-after-negative.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/policy-after-negative.log new file mode 100644 index 00000000..e197a460 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/policy-after-negative.log @@ -0,0 +1,5 @@ + Blocking waiting for file lock on package cache + Blocking waiting for file lock on package cache + Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.15s + Running `target/debug/xtask release-gate` +release gate passed diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/policy-negative.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/policy-negative.log new file mode 100644 index 00000000..2b2f15a3 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/policy-negative.log @@ -0,0 +1,7 @@ + Blocking waiting for file lock on package cache + Blocking waiting for file lock on package cache + Blocking waiting for file lock on package cache + Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.15s + Running `target/debug/xtask release-gate` +FAIL: python-file-present: ci-policy-negative-probe.py must not be maintained source. +release gate failed diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/postpush-merge-conflicts.txt b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/postpush-merge-conflicts.txt new file mode 100644 index 00000000..9961fd00 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/postpush-merge-conflicts.txt @@ -0,0 +1,10 @@ +49d14691a82567d05d52dd8707db786ee59778ea +100644 320cbc6ac3c734475ab1e3e9525cb7b2b972e7fd 1 crates/k-wiki/Cargo.toml +100644 c6e56b9e7976c26b1efe5e5ac9ee238ad2b7cd7b 2 crates/k-wiki/Cargo.toml +100644 6d43dcbd25fab4f244ac22cd28d77935500cdcd6 3 crates/k-wiki/Cargo.toml + +Auto-merging Cargo.lock +Auto-merging Cargo.toml +Auto-merging crates/k-wiki/Cargo.toml +CONFLICT (content): Merge conflict in crates/k-wiki/Cargo.toml +Auto-merging docs/release.md diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/proposal-review.md b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/proposal-review.md new file mode 100644 index 00000000..7bdda3ca --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/proposal-review.md @@ -0,0 +1,66 @@ +# PR158 / COD-53 proposal review — 2026-10-29 + +## Verdict + +**Proceed with specified conditions for the bounded CI repair. No decision-blocking finding.** This permits implementation, not merge, release, desktop qualification, or COD-53/milestone closure. + +Reviewed proposal v1 at `proposal.md`, baseline `5f68b41cebc327072cf71be770c9e5a9d1c0dad2`, plus the coordinator's explicit revisions received during review: + +1. Select `crates/k-wiki/Cargo.toml` lower bound `0.13.5` and resolve `Cargo.lock` precisely to `0.13.5`. +2. **Replace v1 paragraph B's index edit:** preserve `evidence-index.json` byte-for-byte; add `archived-inputs.json` mapping the original proxy input to the archive. Preserve all historical reports/logs/commands unchanged. A short archival note belongs in the surrounding qualification summary, not the raw evidence. + +Review mode: fresh independent read-only proposal review, requested GPT-6.1 Sol / High, no inherited transcript. Used `adversarial-proposal-review-engineer` and `codebasegraph-engineer`. No product/Git edits, builds, tests, installs, or settings changes were made by this reviewer. This review report is the only written artifact. + +## Decision and strongest case + +The requested commitment is a small reversible repair of two demonstrated CI blockers, not a platform redesign. The audit rejects an advisory-affected Markdown parser; the unchanged repository gate rejects a loose historical Python harness. A compatible patch and a byte-preserving historical archive address those causes without changing native assets, defaults, ABI, or policy. Status quo leaves both CI jobs failing. Disabling audit, adding ignores, exempting evidence directories, or renaming executable Python as text would evade the controls and is not supported. + +The coordinator reports current explicit user authorization to debug/fix PR158 CI. I treat that bounded authorization as covering a compatible incidental Markdown security patch, not as expanding the older S02 approval. The supplied canonical approval expressly excludes Ladybug/extension ABI/dependency upgrades. If actual user authorization differs from the coordinator's description, resolve that before implementation. No Ladybug upgrade is proposed. + +## Supported observations + +- `baseline-audit-job.log` and `baseline-head-audit.log` demonstrate `pulldown-cmark 0.13.4`, RUSTSEC-2026-0414, patched requirement `>=0.13.5`. Existing allowed cxx/tokio warnings remain separate; do not describe them as repaired. +- `baseline-package-job.log` demonstrates the actual CI package gate failed on `reject-proxy.py`. The head-only gate log also lists four older helpers. `main-prior-archival-fix.diff`, commit `34eac4f8644adc046093babd84ee1fdbffdae853`, records their separate archival repair. Validating the reconstructed PR merge rather than importing unrelated main changes is proportionate. +- I independently discovered `check_rust_only_files` via graph search and explicitly requested semantic change-impact context before source inspection. Its implementation rejects loose `.py` files without an evidence-directory exception. Preserving that behavior and running negative controls avoids a policy bypass. Graph orientation is from the configured repository, not independently verified as a graph built for this detached worktree; the proposal documents this limitation. +- The staged `reject-proxy-baseline.tar.gz` contains exactly one regular file, under the original full repository-relative path. Its member is 1,311 bytes, SHA-256 `ca7ada29f99cb0a6da0807d6f468c22ad81d1bce59abe5c9f743c1b03b83588f`. Archive SHA-256: `d37b3c86d978018d137375e7a30316b3ce779b2787df5037237032bdec892752`. Parent must still perform the planned independent second archive generation and final staged-byte verification. +- All **65** baseline `evidence-index.json` file records match their current bytes and hashes. The index has 330 CRLF line endings. Leaving it unchanged and using a sidecar is safer than rewriting historical index entries, and avoids text-edit newline normalization. + +## Selected dependency option + +**Use lower bound `"0.13.5"` with unchanged `default-features = false` / `features = ["html"]`, plus a lockfile resolution precisely at `0.13.5`.** Do not use an exact `=0.13.5` manifest pin. + +Lock-only is sufficient for this locked CI scan but continues to permit known-affected versions in fresh/ignored-lock resolution. Raising the lower bound excludes them without adding features, changing a public signature, or preventing later compatible patches. It is a narrow security-maintenance choice inside the described CI-fix authorization. + +Primary sources retrieved on 2026-10-29: + +- [RustSec advisory source](https://raw.githubusercontent.com/RustSec/advisory-db/main/crates/pulldown-cmark/RUSTSEC-2026-0414.md): affected parsing requires `ENABLE_WIKILINKS` (including `Options::all()`); it is disabled by default; patch is `>=0.13.5`. Absence of that option could reduce direct exploitability, but does not remove this demonstrated audit blocker or justify an ignore. +- [Upstream v0.13.4 manifest](https://raw.githubusercontent.com/pulldown-cmark/pulldown-cmark/v0.13.4/pulldown-cmark/Cargo.toml) and [v0.13.5 manifest](https://raw.githubusercontent.com/pulldown-cmark/pulldown-cmark/v0.13.5/pulldown-cmark/Cargo.toml): both declare Rust **1.71.1**, below the local wiki manifest's Rust 1.82. Their declared dependencies/features are unchanged; package version changes. Thus there is no declared MSRV/features mismatch. +- [Upstream version comparison](https://api.github.com/repos/pulldown-cmark/pulldown-cmark/compare/v0.13.4...v0.13.5): this is not only a version-string/advisory metadata change; parser implementation and build/test generation change. Version compatibility alone is not executed project compatibility evidence. + +The crates.io version API returned HTTP403; I did not rely on it. Upstream tagged manifests establish the cited declaration, not the published crate checksum. The parent must obtain/verify the registry-selected lock checksum through the project's normal Cargo interface. + +## Material conditional risk + +### PRP-01 — Parser patch compatibility is not yet executed evidence + +- **Type / priority:** Conditional risk / Material before delivery, not a blocker to the bounded implementation step. +- **Locator:** Proposal lines 7, 14, 21 and 26; upstream v0.13.4…v0.13.5 comparison linked above. +- **Premise:** The security patch remains compatible with existing wiki parser/rendering behavior and the supported build environment. +- **Mechanism:** The upstream patch changes parser logic, so an affected rendering case or API/build integration could fail despite unchanged manifest features/MSRV. This is a credible unresolved premise, not an observed local regression. +- **Resolution:** Preserve the existing feature set; inspect the exact lock/manifest diff for unrelated dependency churn; run the proposed full wiki regression tests, workspace strict checks, relevant configuration checks, and final native CI at the corrected head/merge. If unexpected behavior/API changes appear, stop the affected work and resolve scope/approval rather than changing product behavior to force green checks. + +## Required conditions and acceptance boundary + +1. Keep original index path/bytes/hash semantics intact. The new sidecar must separately identify original input, source commit, archive locator, original full member path, member byte length/hash, archive byte length/hash, and reconstruction instructions outside the current checkout. An archive-aware audit must resolve the original record through that mapping and verify every original record; a missing loose file alone must not be mislabeled corruption or silently skipped. +2. Verify two independent `git archive` invocations are byte-identical, with exactly one regular member; validate final archive/member bytes before removing the loose proxy. Preserve raw reports, logs, historical command paths, hashes, tested-source identity, and old index bytes. Do not assert the archive supplies the historical environment or newly qualifies Windows. +3. Keep Rust-only policy, CI controls, existing ignores, native SDK/assets, and product defaults unchanged. The patch does not grant ABI/license/runtime upgrade authority or fix existing cxx/tokio warnings. +4. Reproduce and pass the unchanged policy/package checks on the new synthetic merge against pinned main `9f69a0bd4b468eaa8652d933d518fafb8c596b6a`; distinguish head-only preexisting helper failures. Record exact tested revision/environment and limitations. A rerun of immutable old source cannot prove the repair. +5. Obtain the final audit, compatibility checks, package/size/wiki-source checks and fresh required final review before claiming delivery complete. Pending native SDK/platform evidence must remain explicitly pending, not counted as passed. Final Windows CI is not Windows 11 desktop qualification. + +These conditions substantially preserve the proposal's existing gates. No new claims/topology or invented product tests are needed for archival metadata. Existing checks plus direct archive/index audits are appropriate. + +## Review limits and reusable knowledge assessment + +This is a proposal decision, not an integrated-diff review. I inspected supplied canonical approval/spec text, baseline logs, prior archival diff, archive/index bytes, graph-discovered policy implementation, dependency metadata, live advisory/upstream sources, wiki memory, and applicable Scryer rules. I did not independently inspect the user's original chat or re-run parent CI/build evidence. Native compatibility and final CI remain unexecuted here. Live wiki memory supports prompt patching and auditable dependency metadata, but does not override these source checks. + +No additional durable memory is warranted from this review alone: the important facts are version-bound or task-local and belong in the repair evidence. diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/repair-snapshot.json b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/repair-snapshot.json new file mode 100644 index 00000000..c0734514 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/repair-snapshot.json @@ -0,0 +1,28 @@ +{ + "baseline": "5f68b41cebc327072cf71be770c9e5a9d1c0dad2", + "working_files": { + "Cargo.lock": { + "sha256": "0dad64ba6cbc462ff960c2c0ea645cb792013f5cadf2bad06723a05417ceb9a8", + "bytes": 52538 + }, + "crates/k-wiki/Cargo.toml": { + "sha256": "ae33600ffc67273b640969feb9cc0d9ad76128c02150034f2ba303cc432c811b", + "bytes": 1011 + }, + "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification.md": { + "sha256": "e03319dd7611d19d43650ad3df0c5e8a78c28071c8ed9252683be0ee9a512736", + "bytes": 12438 + }, + "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/archived-inputs.json": { + "sha256": "fed1f963d456b8634542f0f8c13649f9aa383c00d7dd2f7b034978de7bc5ac42", + "bytes": 1114 + }, + "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/historical-reject-proxy.tar.gz": { + "sha256": "d37b3c86d978018d137375e7a30316b3ce779b2787df5037237032bdec892752", + "bytes": 998 + } + }, + "deleted_files": [ + "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/reject-proxy.py" + ] +} diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/verification.json b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/verification.json new file mode 100644 index 00000000..0fbdb58b --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/verification.json @@ -0,0 +1,179 @@ +{ + "baseline_head": "5f68b41cebc327072cf71be770c9e5a9d1c0dad2", + "baseline_ci_run": 40798473142, + "baseline_ci_merge": "f49fbb5afe9e6c24ac410a65b61a646d72078aa2", + "pinned_main": "9f69a0bd4b468eaa8652d933d518fafb8c596b6a", + "reviewed_working_files": { + "Cargo.lock": { + "sha256": "0dad64ba6cbc462ff960c2c0ea645cb792013f5cadf2bad06723a05417ceb9a8", + "bytes": 52538 + }, + "crates/k-wiki/Cargo.toml": { + "sha256": "ae33600ffc67273b640969feb9cc0d9ad76128c02150034f2ba303cc432c811b", + "bytes": 1011 + }, + "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification.md": { + "sha256": "e03319dd7611d19d43650ad3df0c5e8a78c28071c8ed9252683be0ee9a512736", + "bytes": 12438 + }, + "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/archived-inputs.json": { + "sha256": "fed1f963d456b8634542f0f8c13649f9aa383c00d7dd2f7b034978de7bc5ac42", + "bytes": 1114 + }, + "docs/specs/CBG-PLAT-01/execution/cod53-windows-qualification-evidence/historical-reject-proxy.tar.gz": { + "sha256": "d37b3c86d978018d137375e7a30316b3ce779b2787df5037237032bdec892752", + "bytes": 998 + } + }, + "environment": { + "os": "macOS ARM64", + "cargo": "1.96.0", + "native_sdk": "Ladybug0.19.0", + "native_static_library_sha256": "a840ea7c538e67a8b9fc0d58495b5226dc9c0a5f2f144ff0c48c0f6ca1193ae6", + "native_include_and_library_directory": "/Users/rabii/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lbug-0.19.0/.cache/lbug-prebuilt/latest/lib" + }, + "executed_checks": [ + { + "command": "cargo-audit 0.22.2 audit --ignore RUSTSEC-2026-0009", + "baseline_exit": 1, + "final_exit": 0, + "logs": [ + "baseline-head-audit.log", + "final-audit.log" + ], + "limits": "Same preexisting time exception; features checked without parsing. Existing cxx and tokio informational unsound warnings unchanged." + }, + { + "command": "cargo run -p xtask --locked -- release-gate", + "tree": "baseline CI merge f49fbb5 + frozen repair diff", + "exit": 0, + "log": "merged-release-gate.log" + }, + { + "command": "same release gate with deliberate temporary loose .py", + "exit": 1, + "expected": "python-file-present", + "log": "policy-negative.log" + }, + { + "command": "same release gate after temporary probe removal", + "exit": 0, + "log": "policy-after-negative.log" + }, + { + "command": "cargo nextest run --locked -p k-wiki -p xtask --config-file /private/tmp/codebasegraph-pr158-ci-40798473142/nextest.toml --profile pr158", + "exit": 0, + "passed": 174, + "failed": 0, + "skipped": 0, + "log": "wiki-xtask-tests.log", + "junit": "wiki-xtask.junit.xml" + }, + { + "command": "cargo fmt --all -- --check", + "exit": 0, + "log": "fmt.log" + }, + { + "command": "cargo clippy --workspace --all-targets --all-features --locked -- -D warnings", + "exit": 0, + "log": "clippy.log" + }, + { + "command": "cargo publish --dry-run --locked --allow-dirty", + "tree": "baseline CI merge f49fbb5 + frozen repair diff", + "exit": 0, + "log": "merged-package-dry-run.log", + "limits": "Normal extracted package compiled using pinned native SDK. No upload." + }, + { + "command": "cargo package --locked --no-verify --allow-dirty; xtask verify-crate-size", + "exit": 0, + "logs": [ + "crate-package.log", + "crate-size.log" + ], + "archive_bytes": 8458182 + }, + { + "command": "cargo package -p k-wiki --locked --no-verify --allow-dirty --config patch.crates-io.codebase-graph.path=.", + "exit": 0, + "log": "wiki-package.log", + "limits": "Archive inventory, not isolated archive compile." + }, + { + "command": "Windows-filtered Cargo feature trees default and root no-default-features", + "exit": 0, + "logs": [ + "windows-default-feature-tree.log", + "windows-optout-feature-tree.log" + ], + "limits": "Resolution checks, not native Windows execution." + }, + { + "command": "two independent git archive invocations and original evidence-index verification", + "pass": true, + "log": "archive-verification.json", + "original_records_verified": 65, + "index_bytes_unchanged": true + } + ], + "crate_audits": [ + { + "path": "/private/tmp/codebasegraph-pr158-ci-merge/target/package/codebase-graph-4.0.2.crate", + "bytes": 8458182, + "sha256": "9f273128955240df50a9e043ac3fb203f20b39a88a7094025b6f621d9bc9871c", + "members": 207, + "assets": [ + { + "path": "assets/ladybug-extensions/0.19.0/osx_arm64/fts/libfts.lbug_extension.xz", + "sha256": "e34b00df38ced0b09993112a6d3a2d76735ecea639bb7deaf4e804351343f891", + "matches_source": true + }, + { + "path": "assets/ladybug-extensions/0.19.0/osx_arm64/json/libjson.lbug_extension.xz", + "sha256": "7d39d0ba2fe3eb41364febc09fb45aca02b37bb64a06e3a3666bfb70f49792cd", + "matches_source": true + }, + { + "path": "assets/ladybug-extensions/0.19.0/win_amd64/fts/libfts.lbug_extension.xz", + "sha256": "a8a9d74be93a54482b6bb6df7c44ead6cb751f398b87b10c990d63e2da77910d", + "matches_source": true + }, + { + "path": "assets/ladybug-extensions/0.19.0/win_amd64/json/libjson.lbug_extension.xz", + "sha256": "adf5e05d5a63c181a1be3e1e6c90a8ffb9901118171e7caf8f860af055868ada", + "matches_source": true + } + ] + }, + { + "path": "/private/tmp/codebasegraph-pr158-ci-merge/target/package/k-wiki-4.0.2.crate", + "bytes": 140452, + "sha256": "3ec816b0da0dba1cc4b9e1e4be36317c0a6b27dc85063257aa383fa8921852a5", + "members": 64, + "assets": [] + } + ], + "limitations": [ + "Final pushed-head native CI is pending.", + "Old Windows11 prepared-environment evidence remains bound to47808ac and is not repeated or promoted by this repair.", + "Full COD53 S02/A03/A04/fullA16 and aggregate qualification remain open.", + "No actual Rust1.82 full-workspace execution is asserted; parser crate declares unchanged MSRV1.71.1.", + "First local baseline compile used a nonexistent include directory and failed; corrected environment compiled without source edits.", + "Head-only baseline release-gate has4 older helpers already archived by mainPR159; actual combined-tree gate was tested without importing unrelated main changes." + ], + "reusable_knowledge_assessment": "No new durable memory. The archival procedure is already established in PR159/COD99; this version-bound repair belongs in canonical evidence.", + "baseline_ci_log_archives": { + "baseline-audit-job.log": { + "path": "baseline-audit-job.log.gz", + "decoded_sha256": "c4582c73c6ad38a86415c52c831057fc31449801f1915a23fa1cf36959109f16", + "reason": "Preserve captured timestamped log whitespace byte-for-byte in a gzip evidence file." + }, + "baseline-package-job.log": { + "path": "baseline-package-job.log.gz", + "decoded_sha256": "738dfcf7e105a387c11f62246e8ebbb3328f4390a14af6da9217c38aab37d20a", + "reason": "Preserve captured timestamped log whitespace byte-for-byte in a gzip evidence file." + } + } +} diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/wiki-package.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/wiki-package.log new file mode 100644 index 00000000..94c6d81a --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/wiki-package.log @@ -0,0 +1,3 @@ + Packaging k-wiki v4.0.2 (/private/tmp/codebasegraph-pr158-ci-merge/crates/k-wiki) + Updating crates.io index + Packaged 64 files, 694.9KiB (137.2KiB compressed) diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/wiki-xtask-tests.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/wiki-xtask-tests.log new file mode 100644 index 00000000..2de6c520 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/wiki-xtask-tests.log @@ -0,0 +1,184 @@ + Downloading crates ... + Downloaded pulldown-cmark v0.13.5 + Compiling pulldown-cmark v0.13.5 + Compiling k-wiki v4.0.0 (/private/tmp/codebasegraph-pr158-ci-fix/crates/k-wiki) + Finished `test` profile [unoptimized + debuginfo] target(s) in 12.58s +──────────── + Nextest run ID 737a3796-b8c5-4d4e-953a-44c248621ab9 with nextest profile: pr158 + Starting 174 tests across 16 binaries + PASS [ 0.029s] ( 1/174) k-wiki adapters::install::tests::failed_post_install_migration_keeps_the_install_payload_and_recovery + PASS [ 0.029s] ( 2/174) k-wiki graph_context::tests::graph_failures_degrade_without_propagating_raw_errors + PASS [ 0.029s] ( 3/174) k-wiki graph_context::tests::path_safety_rejects_foreign_absolute_and_parent_paths + PASS [ 0.029s] ( 4/174) k-wiki model::tests::public_projection_round_trips_deterministically + PASS [ 0.030s] ( 5/174) k-wiki model::tests::diagnostic_serialization_never_requires_absolute_paths + PASS [ 0.030s] ( 6/174) k-wiki graph_context::tests::public_results_are_bounded_and_path_safe + PASS [ 0.031s] ( 7/174) k-wiki api::registry::tests::registry_is_sorted_unique_and_advertises_exact_mcp_surface + PASS [ 0.032s] ( 8/174) k-wiki api::facade::tests::facade_dispatches_each_request_exactly_once + PASS [ 0.095s] ( 9/174) k-wiki::api_integration mcp_authoring_round_trip_creates_populates_reads_and_searches_a_concept + PASS [ 0.135s] ( 10/174) k-wiki adapters::install::tests::install_repository_upserts_separate_wiki_and_memory_workflows_in_both_instruction_files + PASS [ 0.137s] ( 11/174) k-wiki adapters::install::tests::install_repository_initializes_and_reuses_local_wiki_state + PASS [ 4.884s] ( 12/174) k-wiki::api_integration cli_validate_and_build_use_the_integrated_public_api + PASS [ 4.915s] ( 13/174) k-wiki::api_integration install_command_initializes_repository_local_wiki_state + PASS [ 4.940s] ( 14/174) k-wiki::api_integration mcp_install_command_keeps_registration_when_runtime_verification_fails + PASS [ 4.905s] ( 15/174) k-wiki::api_integration mcp_install_command_registers_the_repository_knowledge_bundle + PASS [ 5.000s] ( 16/174) k-wiki::api_integration mcp_install_command_dry_run_reports_per_client_targets_for_all_clients + PASS [ 5.011s] ( 17/174) k-wiki::api_integration mcp_install_command_preserves_explicit_shared_name_and_rejects_shared_k_wiki_name + PASS [ 4.983s] ( 18/174) k-wiki::api_integration mcp_install_command_rejects_conflicting_existing_entries_without_rewriting_files + PASS [ 0.072s] ( 19/174) k-wiki::api_integration mcp_install_command_requires_an_initialized_knowledge_bundle + PASS [ 5.243s] ( 20/174) k-wiki::api_integration mcp_install_command_preserves_other_repository_legacy_codex_registration + PASS [ 5.256s] ( 21/174) k-wiki::api_integration mcp_install_command_keeps_codex_project_and_local_registrations_repository_local + PASS [ 0.364s] ( 22/174) k-wiki::api_integration mcp_install_command_rejects_unreadable_legacy_config_before_local_install + PASS [ 0.031s] ( 23/174) k-wiki::api_integration mcp_lists_only_configured_bundles_and_keeps_them_readable + PASS [ 0.336s] ( 24/174) k-wiki::api_integration mcp_install_command_rejects_unsupported_clients_and_scopes + PASS [ 5.221s] ( 25/174) k-wiki::api_integration mcp_install_command_rejects_conflicting_legacy_preservation_before_writing_local_config + PASS [ 0.452s] ( 26/174) k-wiki::api_integration mcp_install_command_rejects_malformed_legacy_registration_before_local_install + PASS [ 0.067s] ( 27/174) k-wiki::api_integration mcp_stdio_binary_advertises_the_packaged_knowledge_wiki_schema + PASS [ 0.070s] ( 28/174) k-wiki::api_integration preview_http_dispatches_health_and_serves_static_content_with_security_headers + PASS [ 0.369s] ( 29/174) k-wiki::api_integration mcp_install_command_reports_unique_manual_registration_and_cleanup_instructions + PASS [ 0.098s] ( 30/174) k-wiki::api_integration mcp_memory_round_trip_records_activates_and_recalls_repository_knowledge + PASS [ 0.134s] ( 31/174) k-wiki::api_integration mcp_maintenance_tools_validate_check_links_and_build_a_site + PASS [ 0.407s] ( 32/174) k-wiki::api_integration mcp_install_command_removes_same_repository_legacy_codex_registration + PASS [ 0.029s] ( 33/174) k-wiki::api_integration wiki_graph_context_and_service_do_not_import_graph_internals + PASS [ 0.423s] ( 34/174) k-wiki::api_integration mcp_install_command_removes_legacy_shared_entry_and_reports_dry_run_cleanup + PASS [ 0.024s] ( 35/174) k-wiki::authoring authoring_frontmatter_delimiters_match_bundle_reader + PASS [ 0.027s] ( 36/174) k-wiki::authoring authoring_io_errors_use_categories_without_raw_paths_or_dependency_text + PASS [ 0.029s] ( 37/174) k-wiki::authoring create_bundle_fails_if_the_target_already_exists_without_modifying_it + PASS [ 0.115s] ( 38/174) k-wiki::api_integration mcp_stdio_memory_recall_with_unicode_keeps_the_transport_open + PASS [ 0.032s] ( 39/174) k-wiki::authoring create_page_rejects_symlink_paths_that_escape_the_bundle_root + PASS [ 0.044s] ( 40/174) k-wiki::authoring create_page_rejects_reserved_escape_and_absolute_targets + PASS [ 0.046s] ( 41/174) k-wiki::authoring create_page_creates_one_valid_concept_at_a_validated_bundle_relative_identity + PASS [ 0.049s] ( 42/174) k-wiki::authoring create_bundle_initializes_a_conformant_root_index_within_a_permitted_repository + PASS [ 0.048s] ( 43/174) k-wiki::authoring malformed_existing_frontmatter_does_not_echo_source_values + PASS [ 0.020s] ( 44/174) k-wiki::authoring production_authoring_validator_enforces_required_frontmatter + PASS [ 0.054s] ( 45/174) k-wiki::authoring populate_page_validates_before_replacing_the_destination + PASS [ 0.062s] ( 46/174) k-wiki::authoring populate_page_rejects_stale_writes_without_changing_source_content + PASS [ 0.027s] ( 47/174) k-wiki::bundle_reader invalid_bundle_root_error_omits_absolute_host_path + PASS [ 0.072s] ( 48/174) k-wiki::authoring populate_page_preserves_unknown_frontmatter_fields_during_updates + PASS [ 0.039s] ( 49/174) k-wiki::authoring unsupported_yaml_serialization_does_not_echo_tags_or_values + PASS [ 0.041s] ( 50/174) k-wiki::bundle_reader closed_frontmatter_accepts_lf_crlf_and_closing_delimiter_at_eof + PASS [ 0.258s] ( 51/174) k-wiki::api_integration mcp_install_command_verifies_the_registered_single_bundle_runtime + PASS [ 0.021s] ( 52/174) k-wiki::bundle_reader resp_169_parses_standard_fields_and_preserves_extensions + PASS [ 0.067s] ( 53/174) k-wiki::authoring populate_page_writes_validated_frontmatter_and_markdown_atomically + PASS [ 0.031s] ( 54/174) k-wiki::bundle_reader resp_168_discovers_bundle_boundaries_and_metadata + PASS [ 0.032s] ( 55/174) k-wiki::bundle_reader parser_diagnostics_exclude_source_values_and_keep_relative_locations + PASS [ 0.023s] ( 56/174) k-wiki::bundle_reader resp_171_records_root_okf_version_from_bundle_index + PASS [ 0.026s] ( 57/174) k-wiki::bundle_reader resp_170_classifies_reserved_files_without_promoting_them_to_concepts + PASS [ 0.027s] ( 58/174) k-wiki::bundle_reader resp_172_rejects_markdown_entries_that_escape_the_bundle_root + PASS [ 0.025s] ( 59/174) k-wiki::bundle_reader unterminated_frontmatter_is_invalid_even_when_yaml_is_valid + PASS [ 0.025s] ( 60/174) k-wiki::compilation broken_fragment_external_and_rejected_links_remain_visible + PASS [ 0.031s] ( 61/174) k-wiki::bundle_reader walk_errors_keep_relative_location_and_safe_io_category + PASS [ 0.031s] ( 62/174) k-wiki::compilation backlinks_update_after_link_add_change_and_removal + PASS [ 0.027s] ( 63/174) k-wiki::compilation directory_indexes_history_and_citations_are_compiled_deterministically + PASS [ 0.028s] ( 64/174) k-wiki::compilation compilation_is_deterministic_and_namespaces_routes + PASS [ 0.397s] ( 65/174) k-wiki::api_integration mcp_install_command_uses_distinct_shared_names_for_same_basename_repositories + PASS [ 0.027s] ( 66/174) k-wiki::conformance resp_174_reports_errors_for_missing_or_invalid_concept_frontmatter + PASS [ 0.031s] ( 67/174) k-wiki::conformance resp_173_evaluates_normative_and_recommended_profiles_separately + PASS [ 0.038s] ( 68/174) k-wiki::compilation relative_directory_and_fragment_routes_resolve_canonically + PASS [ 0.024s] ( 69/174) k-wiki::conformance resp_176_validates_reserved_file_structures + PASS [ 0.037s] ( 70/174) k-wiki::conformance resp_175_retains_unknown_types_and_extensions_in_consume_mode + PASS [ 0.040s] ( 71/174) k-wiki::diagnostic_transports mcp_malformed_arguments_keep_rpc_classification + PASS [ 0.034s] ( 72/174) k-wiki::diagnostic_transports mcp_missing_concept_preserves_domain_error_on_the_wire + PASS [ 0.034s] ( 73/174) k-wiki::diagnostic_transports mcp_retryable_api_error_preserves_details_on_the_wire + PASS [ 0.046s] ( 74/174) k-wiki::diagnostic_transports cli_validate_consume_accepts_error_diagnostics + PASS [ 0.038s] ( 75/174) k-wiki::diagnostics configured_root_failure_preserves_cache_and_recovers + PASS [ 0.048s] ( 76/174) k-wiki::diagnostic_transports mcp_stale_authoring_write_preserves_conflict_on_the_wire + PASS [ 0.028s] ( 77/174) k-wiki::diagnostics external_edits_and_deletions_are_visible_on_the_next_read + PASS [ 0.074s] ( 78/174) k-wiki::diagnostic_transports cli_validate_warning_acceptance_depends_on_profile + PASS [ 0.033s] ( 79/174) k-wiki::diagnostics failed_acquisition_cannot_replace_cache_even_via_permissive_build + PASS [ 0.038s] ( 80/174) k-wiki::diagnostics explicit_builds_for_other_roots_do_not_change_configured_reads + PASS [ 0.074s] ( 81/174) k-wiki::diagnostics compiler_locations_include_frontmatter_once_and_preserve_conformance_lines + PASS [ 0.049s] ( 82/174) k-wiki::diagnostics incomplete_scan_messages_are_safe_through_api_mcp_and_http + PASS [ 0.041s] ( 83/174) k-wiki::diagnostics malformed_source_errors_are_safe_through_api_mcp_and_http + PASS [ 0.106s] ( 84/174) k-wiki::diagnostic_transports cli_validate_rejected_profiles_exit_nonzero_in_text_and_json + PASS [ 0.112s] ( 85/174) k-wiki::diagnostic_transports cli_validate_accepted_profiles_exit_zero_in_text_and_json + PASS [ 0.037s] ( 86/174) k-wiki::diagnostics unavailable_roots_use_503_while_unknown_bundles_remain_404 + PASS [ 0.055s] ( 87/174) k-wiki::diagnostics maintenance_operations_share_conformance_and_compiler_diagnostics + PASS [ 0.043s] ( 88/174) k-wiki::diagnostics unchanged_reads_reuse_the_explicit_projection_generation + PASS [ 0.047s] ( 89/174) k-wiki::diagnostics unterminated_frontmatter_is_reported_by_validation_and_builds + PASS [ 0.045s] ( 90/174) k-wiki::diagnostics validation_profiles_apply_to_merged_link_warnings + PASS [ 0.064s] ( 91/174) k-wiki::memory invalid_transition_rejects_without_changing_source + PASS [ 0.044s] ( 92/174) k-wiki::projection projection_state_uses_the_repository_local_dot_kwiki_root + PASS [ 0.066s] ( 93/174) k-wiki::memory malformed_memory_is_advisory_outside_the_recommended_profile + PASS [ 0.085s] ( 94/174) k-wiki::memory recall_returns_only_valid_active_memory_in_requested_bundle + PASS [ 0.020s] ( 95/174) k-wiki::refresh active_wiki_refresh_prevents_stale_publication_until_completion + PASS [ 0.086s] ( 96/174) k-wiki::memory record_memory_persists_candidate_with_structured_provenance + PASS [ 0.019s] ( 97/174) k-wiki::refresh coalesces_duplicate_paths_and_produces_deterministic_batches + PASS [ 0.020s] ( 98/174) k-wiki::refresh concept_index_and_log_changes_invalidate_expected_artifacts + PASS [ 0.021s] ( 99/174) k-wiki::refresh consumer_failures_are_independent_and_report_retryability + PASS [ 0.142s] (100/174) k-wiki::memory default_recall_excludes_malformed_and_quarantined_memory + PASS [ 0.020s] (101/174) k-wiki::refresh failed_refresh_records_diagnostics_until_a_successful_retry + PASS [ 0.018s] (102/174) k-wiki::refresh one_debounced_burst_dispatches_each_consumer_once + PASS [ 0.018s] (103/174) k-wiki::refresh paths_are_partitioned_for_graph_wiki_or_both + PASS [ 0.018s] (104/174) k-wiki::refresh rename_delete_and_shutdown_flush_each_path_once + PASS [ 0.031s] (105/174) k-wiki::rendering concept_pages_sanitize_active_content_and_route_broken_links_to_diagnostics + PASS [ 0.100s] (106/174) k-wiki::projection unchanged_bundle_rebuild_is_a_cache_hit + PASS [ 0.183s] (107/174) k-wiki::memory independent_reader_observes_quarantine_activation_and_deletion + PASS [ 0.028s] (108/174) k-wiki::rendering renderer_rejects_css_urls_in_concepts_and_directories_and_preserves_safe_markup + PASS [ 0.117s] (109/174) k-wiki::projection publish_generation_is_atomic_and_retains_last_valid_projection_on_failure + PASS [ 0.162s] (110/174) k-wiki::projection newest_generation_wins_when_competing_builds_finish_out_of_order + PASS [ 0.054s] (111/174) k-wiki::rendering rendered_site_writes_manifest_assets_and_enforces_output_root_containment + PASS [ 0.044s] (112/174) k-wiki::rendering representative_html_fixtures_stay_deterministic_for_desktop_and_narrow_layouts + PASS [ 0.030s] (113/174) k-wiki::rendering route_helpers_percent_encode_reversibly_and_reject_escape_segments + PASS [ 0.027s] (114/174) k-wiki::search serialized_index_round_trips_deterministically + PASS [ 0.028s] (115/174) k-wiki::search exact_identity_and_title_matches_rank_above_body_only_matches + PASS [ 0.028s] (116/174) k-wiki::search snippet_windows_preserve_utf8_boundaries + PASS [ 0.033s] (117/174) k-wiki::search filters_restrict_bundle_type_and_tag_matches + PASS [ 0.035s] (118/174) k-wiki::rendering sanitizer_css_url_policy_is_case_insensitive + PASS [ 0.215s] (119/174) k-wiki::memory memory_kinds_use_distinct_paths_and_recall_filters + PASS [ 0.207s] (120/174) k-wiki::memory supersession_preserves_prior_record_for_audit + PASS [ 0.027s] (121/174) k-wiki::search snippets_are_html_escaped_bounded_and_deterministic + PASS [ 0.028s] (122/174) k-wiki::transports cli_parses_phase8_commands + PASS [ 0.028s] (123/174) k-wiki::transports cli_run_emits_structured_validation_output_when_json_is_requested + PASS [ 0.026s] (124/174) k-wiki::transports mcp_initialize_uses_exact_server_display_name + PASS [ 0.038s] (125/174) k-wiki::transports cli_run_dispatches_exactly_once + PASS [ 0.026s] (126/174) k-wiki::transports http_security_headers_and_safe_errors_follow_phase8_contract + PASS [ 0.027s] (127/174) k-wiki::transports cli_run_reports_the_packaged_version_without_dispatching + PASS [ 0.029s] (128/174) k-wiki::transports cli_run_preserves_completed_command_output_and_exit_status + PASS [ 0.038s] (129/174) k-wiki::transports mcp_protocol_errors_and_success_envelopes_remain_compatible + PASS [ 0.034s] (130/174) k-wiki::transports mcp_tools_list_advertises_declared_metadata + PASS [ 0.035s] (131/174) k-wiki::transports serve_rejects_remote_binding_without_security_change + PASS [ 0.023s] (132/174) xtask::bin/xtask native_tests::shards::tests::empty_shard_never_runs_an_unfiltered_suite + PASS [ 0.024s] (133/174) xtask::bin/xtask native_tests::tests::captured_cli_survives_cargo_replacing_its_output + PASS [ 0.046s] (134/174) k-wiki::transports mcp_tool_calls_dispatch_exactly_once_and_preserve_error_codes + PASS [ 0.022s] (135/174) xtask::bin/xtask native_tests::tests::windows_regressions_precede_the_complete_unfiltered_suite + PASS [ 0.029s] (136/174) xtask::bin/xtask native_tests::tests::partitions_every_test_target_and_keeps_new_integration_targets + PASS [ 0.037s] (137/174) xtask::bin/xtask native_tests::shards::tests::shards_cover_every_listed_case_once_and_bound_windows_arguments + PASS [ 0.038s] (138/174) xtask::bin/xtask native_tests::shards::tests::selected_exact_filters_execute_the_expected_real_harness_cases + PASS [ 0.020s] (139/174) xtask::bin/xtask release::tests::notes_only_include_the_exact_release + PASS [ 0.027s] (140/174) xtask::bin/xtask release::tests::metadata_rejects_inconsistent_versions + PASS [ 0.030s] (141/174) xtask::bin/xtask release::tests::notes_reject_missing_duplicate_and_empty_sections + PASS [ 0.029s] (142/174) xtask::bin/xtask tests::archive_contract_rejects_unexpected_entries + PASS [ 0.027s] (143/174) xtask::bin/xtask tests::complete_artifact_set_rejects_mixed_provenance + PASS [ 0.014s] (144/174) xtask::bin/xtask tests::crate_size_validation_enforces_the_registry_limit + PASS [ 0.090s] (145/174) xtask::bin/xtask release::workflow_tests::recovery_requires_one_target_and_forbids_ci_run_rebuilds + PASS [ 0.017s] (146/174) xtask::bin/xtask tests::native_capture_requires_unique_source_bound_normal_cli_artifact + PASS [ 0.013s] (147/174) xtask::bin/xtask tests::native_capture_reuses_the_exact_test_profile_and_features + PASS [ 0.012s] (148/174) xtask::bin/xtask tests::native_target_contract_maps_names_and_binaries + PASS [ 0.030s] (149/174) xtask::bin/xtask tests::native_test_failure_cannot_authorize_artifact_production + PASS [ 0.013s] (150/174) xtask::bin/xtask tests::release_identity_validation_is_strict + PASS [ 0.016s] (151/174) xtask::bin/xtask tests::windows_native_tests_forward_bundled_extensions + PASS [ 0.022s] (152/174) xtask::bin/xtask tests::workflow_policy_rejects_automatic_rebuild_recovery + PASS [ 0.021s] (153/174) xtask::bin/xtask tests::workflow_policy_rejects_direct_release_push_trigger + PASS [ 0.022s] (154/174) xtask::bin/xtask tests::workflow_policy_rejects_github_sha_for_release_identity + PASS [ 0.024s] (155/174) xtask::bin/xtask tests::workflow_policy_rejects_missing_ci_success_guard + PASS [ 0.040s] (156/174) xtask::bin/xtask tests::workflow_policy_rejects_missing_crate_publish_retry + PASS [ 0.031s] (157/174) xtask::bin/xtask tests::workflow_policy_rejects_missing_crate_size_gates + PASS [ 0.023s] (158/174) xtask::bin/xtask tests::workflow_policy_rejects_missing_triggering_run_binding + PASS [ 0.023s] (159/174) xtask::bin/xtask tests::workflow_policy_rejects_release_queue_replacement + PASS [ 0.021s] (160/174) xtask::bin/xtask tests::workflow_policy_rejects_unconditional_release_publication + PASS [ 0.071s] (161/174) xtask::bin/xtask tests::workflow_policy_rejects_unvalidated_publishers + PASS [ 0.040s] (162/174) xtask::bin/xtask tests::workflow_policy_requires_ci_completion_release_trigger + PASS [ 0.040s] (163/174) xtask::bin/xtask tests::workflow_policy_requires_publication_revalidation + PASS [ 0.014s] (164/174) xtask::bin/xtask tests::workflow_yaml_validation_rejects_unindented_heredoc_body + PASS [ 0.029s] (165/174) xtask::bin/xtask tests::workflows_reject_removed_platform_targets + PASS [ 1.759s] (166/174) xtask::bin/xtask release::workflow_tests::ci_run_recovery_dry_run_validates_without_authorizing_publication + PASS [ 2.043s] (167/174) xtask::bin/xtask release::workflow_tests::proposal_reports_pending_release_then_proceeds_after_finalization + PASS [ 2.586s] (168/174) xtask::bin/xtask release::workflow_tests::verified_release_survives_main_advancing_and_ignores_other_pending_releases + PASS [ 2.868s] (169/174) xtask::bin/xtask release::workflow_tests::publisher_targets_original_sha_and_is_idempotent + PASS [ 3.040s] (170/174) xtask::bin/xtask release::workflow_tests::publisher_rejects_conflicting_tags_and_does_not_regress_latest + PASS [ 3.290s] (171/174) xtask::bin/xtask tests::installer_rejects_removed_hosts_before_reading_archives_or_writing_destinations + PASS [ 5.257s] (172/174) xtask::bin/xtask release::workflow_tests::ordinary_commit_cannot_authorize_release_and_tagged_retry_still_can + PASS [ 10.768s] (173/174) xtask::bin/xtask release::workflow_tests::verified_release_rejects_failed_ci_and_untrusted_run_identity + PASS [ 11.239s] (174/174) xtask::bin/xtask release::workflow_tests::verified_release_rejects_untrusted_prs_and_removed_history +──────────── + Summary [ 17.221s] 174 tests run: 174 passed, 0 skipped diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/wiki-xtask.junit.xml b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/wiki-xtask.junit.xml new file mode 100644 index 00000000..6d1c843f --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/wiki-xtask.junit.xml @@ -0,0 +1,381 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/windows-default-feature-tree.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/windows-default-feature-tree.log new file mode 100644 index 00000000..9566f008 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/windows-default-feature-tree.log @@ -0,0 +1,4 @@ +codebase-graph v4.0.0 (/private/tmp/codebasegraph-pr158-ci-fix) +├── codebase-graph feature "bundled-windows-extensions" +│ └── codebase-graph feature "default" (command-line) +└── codebase-graph feature "default" (command-line) diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/windows-optout-feature-tree.log b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/windows-optout-feature-tree.log new file mode 100644 index 00000000..f4636efe --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair-evidence/windows-optout-feature-tree.log @@ -0,0 +1,590 @@ +codebase-graph v4.0.0 (/private/tmp/codebasegraph-pr158-ci-fix) +├── fs2 feature "default" +│ └── fs2 v0.4.3 +│ ├── winapi feature "default" +│ │ └── winapi v0.3.9 +│ ├── winapi feature "fileapi" +│ │ └── winapi v0.3.9 +│ ├── winapi feature "handleapi" +│ │ └── winapi v0.3.9 +│ ├── winapi feature "processthreadsapi" +│ │ └── winapi v0.3.9 +│ ├── winapi feature "std" +│ │ └── winapi v0.3.9 +│ ├── winapi feature "winbase" +│ │ └── winapi v0.3.9 +│ └── winapi feature "winerror" +│ └── winapi v0.3.9 +├── getrandom feature "default" +│ └── getrandom v0.3.4 +│ └── cfg-if feature "default" +│ └── cfg-if v1.0.4 +├── lbug feature "default" +│ └── lbug v0.19.0 +│ ├── rust_decimal v1.42.1 +│ │ ├── arrayvec v0.7.6 +│ │ └── num-traits feature "i128" +│ │ └── num-traits v0.2.19 +│ │ [build-dependencies] +│ │ └── autocfg feature "default" +│ │ └── autocfg v1.5.1 +│ ├── cxx feature "default" +│ │ ├── cxx v1.0.138 +│ │ │ ├── foldhash v0.1.5 +│ │ │ ├── cxxbridge-macro feature "default" +│ │ │ │ └── cxxbridge-macro v1.0.138 (proc-macro) +│ │ │ │ ├── proc-macro2 feature "default" +│ │ │ │ │ ├── proc-macro2 v1.0.106 +│ │ │ │ │ │ └── unicode-ident feature "default" +│ │ │ │ │ │ └── unicode-ident v1.0.24 +│ │ │ │ │ └── proc-macro2 feature "proc-macro" +│ │ │ │ │ └── proc-macro2 v1.0.106 (*) +│ │ │ │ ├── quote feature "default" +│ │ │ │ │ ├── quote v1.0.45 +│ │ │ │ │ │ └── proc-macro2 v1.0.106 (*) +│ │ │ │ │ └── quote feature "proc-macro" +│ │ │ │ │ ├── quote v1.0.45 (*) +│ │ │ │ │ └── proc-macro2 feature "proc-macro" (*) +│ │ │ │ ├── rustversion feature "default" +│ │ │ │ │ └── rustversion v1.0.22 (proc-macro) +│ │ │ │ ├── syn feature "default" +│ │ │ │ │ ├── syn v2.0.117 +│ │ │ │ │ │ ├── proc-macro2 v1.0.106 (*) +│ │ │ │ │ │ ├── quote v1.0.45 (*) +│ │ │ │ │ │ └── unicode-ident feature "default" (*) +│ │ │ │ │ ├── syn feature "clone-impls" +│ │ │ │ │ │ └── syn v2.0.117 (*) +│ │ │ │ │ ├── syn feature "derive" +│ │ │ │ │ │ └── syn v2.0.117 (*) +│ │ │ │ │ ├── syn feature "parsing" +│ │ │ │ │ │ └── syn v2.0.117 (*) +│ │ │ │ │ ├── syn feature "printing" +│ │ │ │ │ │ └── syn v2.0.117 (*) +│ │ │ │ │ └── syn feature "proc-macro" +│ │ │ │ │ ├── syn v2.0.117 (*) +│ │ │ │ │ ├── proc-macro2 feature "proc-macro" (*) +│ │ │ │ │ └── quote feature "proc-macro" (*) +│ │ │ │ └── syn feature "full" +│ │ │ │ └── syn v2.0.117 (*) +│ │ │ └── link-cplusplus feature "default" +│ │ │ └── link-cplusplus v1.0.12 +│ │ │ [build-dependencies] +│ │ │ └── cc feature "default" +│ │ │ └── cc v1.2.64 +│ │ │ ├── find-msvc-tools feature "default" +│ │ │ │ └── find-msvc-tools v0.1.9 +│ │ │ └── shlex feature "default" +│ │ │ ├── shlex v2.0.1 +│ │ │ └── shlex feature "std" +│ │ │ └── shlex v2.0.1 +│ │ │ [build-dependencies] +│ │ │ ├── cxxbridge-flags v1.0.138 +│ │ │ └── cc feature "default" (*) +│ │ ├── cxx feature "std" +│ │ │ ├── cxx v1.0.138 (*) +│ │ │ ├── cxx feature "alloc" +│ │ │ │ └── cxx v1.0.138 (*) +│ │ │ └── foldhash feature "std" +│ │ │ └── foldhash v0.1.5 +│ │ └── cxxbridge-flags feature "default" +│ │ └── cxxbridge-flags v1.0.138 +│ ├── serde_json feature "default" +│ │ ├── serde_json v1.0.150 +│ │ │ ├── memchr v2.8.2 +│ │ │ ├── serde_core v1.0.228 +│ │ │ ├── itoa feature "default" +│ │ │ │ └── itoa v1.0.18 +│ │ │ └── zmij feature "default" +│ │ │ └── zmij v1.0.21 +│ │ └── serde_json feature "std" +│ │ ├── serde_json v1.0.150 (*) +│ │ ├── memchr feature "std" +│ │ │ ├── memchr v2.8.2 +│ │ │ └── memchr feature "alloc" +│ │ │ └── memchr v2.8.2 +│ │ └── serde_core feature "std" +│ │ └── serde_core v1.0.228 +│ ├── time feature "default" +│ │ ├── time v0.3.36 +│ │ │ ├── powerfmt v0.2.0 +│ │ │ ├── deranged feature "powerfmt" +│ │ │ │ └── deranged v0.3.11 +│ │ │ │ └── powerfmt v0.2.0 +│ │ │ ├── num-conv feature "default" +│ │ │ │ └── num-conv v0.1.0 +│ │ │ └── time-core feature "default" +│ │ │ └── time-core v0.1.2 +│ │ └── time feature "std" +│ │ ├── time v0.3.36 (*) +│ │ ├── time feature "alloc" +│ │ │ └── time v0.3.36 (*) +│ │ └── deranged feature "std" +│ │ ├── deranged v0.3.11 (*) +│ │ └── deranged feature "alloc" +│ │ └── deranged v0.3.11 (*) +│ └── uuid feature "default" +│ ├── uuid v1.18.1 +│ └── uuid feature "std" +│ └── uuid v1.18.1 +│ [build-dependencies] +│ ├── cmake feature "default" +│ │ └── cmake v0.1.58 +│ │ └── cc feature "default" (*) +│ ├── rustversion feature "default" (*) +│ └── cxx-build feature "default" +│ └── cxx-build v1.0.138 +│ ├── quote v1.0.45 (*) +│ ├── cc feature "default" (*) +│ ├── proc-macro2 feature "span-locations" +│ │ └── proc-macro2 v1.0.106 (*) +│ ├── syn feature "clone-impls" (*) +│ ├── syn feature "full" (*) +│ ├── syn feature "parsing" (*) +│ ├── syn feature "printing" (*) +│ ├── codespan-reporting feature "default" +│ │ └── codespan-reporting v0.11.1 +│ │ ├── termcolor feature "default" +│ │ │ └── termcolor v1.4.1 +│ │ └── unicode-width feature "default" +│ │ ├── unicode-width v0.1.14 +│ │ └── unicode-width feature "cjk" +│ │ └── unicode-width v0.1.14 +│ └── scratch feature "default" +│ └── scratch v1.0.9 +├── serde_json feature "default" (*) +├── libc feature "default" +│ ├── libc v0.2.189 +│ └── libc feature "std" +│ └── libc v0.2.189 +├── libmimalloc-sys feature "default" +│ └── libmimalloc-sys v0.1.49 +│ └── cty feature "default" +│ └── cty v0.2.2 +│ [build-dependencies] +│ └── cc feature "default" (*) +├── libmimalloc-sys feature "extended" +│ ├── libmimalloc-sys v0.1.49 (*) +│ └── libmimalloc-sys feature "cty" +│ └── libmimalloc-sys v0.1.49 (*) +├── lzma-rs feature "default" +│ └── lzma-rs v0.3.0 +│ ├── byteorder feature "default" +│ │ ├── byteorder v1.5.0 +│ │ └── byteorder feature "std" +│ │ └── byteorder v1.5.0 +│ └── crc feature "default" +│ └── crc v3.4.0 +│ └── crc-catalog feature "default" +│ └── crc-catalog v2.5.0 +├── mimalloc feature "default" +│ └── mimalloc v0.1.52 +│ └── libmimalloc-sys v0.1.49 (*) +├── mimalloc feature "extended" +│ ├── mimalloc v0.1.52 (*) +│ └── libmimalloc-sys feature "extended" (*) +├── notify feature "default" +│ ├── notify v8.2.0 +│ │ ├── libc feature "default" (*) +│ │ ├── log feature "default" +│ │ │ └── log v0.4.32 +│ │ ├── notify-types feature "default" +│ │ │ └── notify-types v2.0.0 +│ │ ├── walkdir feature "default" +│ │ │ └── walkdir v2.5.0 +│ │ │ ├── same-file feature "default" +│ │ │ │ └── same-file v1.0.6 +│ │ │ │ └── winapi-util feature "default" +│ │ │ │ └── winapi-util v0.1.11 +│ │ │ │ ├── windows-sys feature "Win32_Foundation" +│ │ │ │ │ ├── windows-sys v0.61.2 +│ │ │ │ │ │ └── windows-link v0.2.1 +│ │ │ │ │ └── windows-sys feature "Win32" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32_Foundation" (*) +│ │ │ │ ├── windows-sys feature "Win32_Storage_FileSystem" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32_Storage" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32" (*) +│ │ │ │ ├── windows-sys feature "Win32_System_Console" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32_System" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32" (*) +│ │ │ │ ├── windows-sys feature "Win32_System_SystemInformation" +│ │ │ │ │ ├── windows-sys v0.61.2 (*) +│ │ │ │ │ └── windows-sys feature "Win32_System" (*) +│ │ │ │ └── windows-sys feature "default" +│ │ │ │ └── windows-sys v0.61.2 (*) +│ │ │ └── winapi-util feature "default" (*) +│ │ ├── windows-sys feature "Win32_Foundation" +│ │ │ ├── windows-sys v0.60.2 +│ │ │ │ └── windows-targets v0.53.5 +│ │ │ │ └── windows_x86_64_msvc feature "default" +│ │ │ │ └── windows_x86_64_msvc v0.53.1 +│ │ │ └── windows-sys feature "Win32" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32_Foundation" (*) +│ │ ├── windows-sys feature "Win32_Security" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32" (*) +│ │ ├── windows-sys feature "Win32_Storage_FileSystem" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32_Storage" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32" (*) +│ │ ├── windows-sys feature "Win32_System_IO" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32_System" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32" (*) +│ │ ├── windows-sys feature "Win32_System_Threading" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32_System" (*) +│ │ ├── windows-sys feature "Win32_System_WindowsProgramming" +│ │ │ ├── windows-sys v0.60.2 (*) +│ │ │ └── windows-sys feature "Win32_System" (*) +│ │ └── windows-sys feature "default" +│ │ └── windows-sys v0.60.2 (*) +│ └── notify feature "macos_fsevent" +│ ├── notify v8.2.0 (*) +│ └── notify feature "fsevent-sys" +│ └── notify v8.2.0 (*) +├── walkdir feature "default" (*) +├── windows-sys feature "Wdk_Foundation" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Wdk" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_Foundation" (*) +├── windows-sys feature "Wdk_Storage_FileSystem" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Wdk_Storage" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Wdk" (*) +├── windows-sys feature "Win32_Foundation" (*) +├── windows-sys feature "Win32_Globalization" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32" (*) +├── windows-sys feature "Win32_Security" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32" (*) +├── windows-sys feature "Win32_Security_Authorization" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_Security" (*) +├── windows-sys feature "Win32_Storage_FileSystem" (*) +├── windows-sys feature "Win32_System_Console" (*) +├── windows-sys feature "Win32_System_Diagnostics_ToolHelp" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System_Diagnostics" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_IO" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_JobObjects" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_Memory" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_Pipes" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_ProcessStatus" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_SystemServices" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "Win32_System_Threading" +│ ├── windows-sys v0.61.2 (*) +│ └── windows-sys feature "Win32_System" (*) +├── windows-sys feature "default" (*) +├── serde feature "default" +│ ├── serde v1.0.228 +│ │ ├── serde_core feature "result" +│ │ │ └── serde_core v1.0.228 +│ │ └── serde_derive feature "default" +│ │ └── serde_derive v1.0.228 (proc-macro) +│ │ ├── proc-macro2 feature "proc-macro" (*) +│ │ ├── quote feature "proc-macro" (*) +│ │ ├── syn feature "clone-impls" (*) +│ │ ├── syn feature "derive" (*) +│ │ ├── syn feature "parsing" (*) +│ │ ├── syn feature "printing" (*) +│ │ └── syn feature "proc-macro" (*) +│ └── serde feature "std" +│ ├── serde v1.0.228 (*) +│ └── serde_core feature "std" (*) +├── serde feature "derive" +│ ├── serde v1.0.228 (*) +│ └── serde feature "serde_derive" +│ └── serde v1.0.228 (*) +├── sha2 feature "default" +│ ├── sha2 v0.10.9 +│ │ ├── cfg-if feature "default" (*) +│ │ ├── cpufeatures feature "default" +│ │ │ └── cpufeatures v0.2.17 +│ │ └── digest feature "default" +│ │ ├── digest v0.10.7 +│ │ │ ├── block-buffer feature "default" +│ │ │ │ └── block-buffer v0.10.4 +│ │ │ │ └── generic-array feature "default" +│ │ │ │ └── generic-array v0.14.7 +│ │ │ │ └── typenum feature "default" +│ │ │ │ └── typenum v1.20.1 +│ │ │ │ [build-dependencies] +│ │ │ │ └── version_check feature "default" +│ │ │ │ └── version_check v0.9.5 +│ │ │ └── crypto-common feature "default" +│ │ │ └── crypto-common v0.1.7 +│ │ │ ├── generic-array feature "default" (*) +│ │ │ ├── generic-array feature "more_lengths" +│ │ │ │ └── generic-array v0.14.7 (*) +│ │ │ └── typenum feature "default" (*) +│ │ └── digest feature "core-api" +│ │ ├── digest v0.10.7 (*) +│ │ └── digest feature "block-buffer" +│ │ └── digest v0.10.7 (*) +│ └── sha2 feature "std" +│ ├── sha2 v0.10.9 (*) +│ └── digest feature "std" +│ ├── digest v0.10.7 (*) +│ ├── digest feature "alloc" +│ │ └── digest v0.10.7 (*) +│ └── crypto-common feature "std" +│ └── crypto-common v0.1.7 (*) +├── tree-sitter feature "default" +│ ├── tree-sitter v0.25.10 +│ │ ├── regex-syntax v0.8.11 +│ │ ├── regex feature "unicode" +│ │ │ ├── regex v1.12.4 +│ │ │ │ ├── aho-corasick v1.1.4 +│ │ │ │ │ └── memchr v2.8.2 +│ │ │ │ ├── memchr v2.8.2 +│ │ │ │ ├── regex-syntax v0.8.11 +│ │ │ │ ├── regex-automata feature "alloc" +│ │ │ │ │ └── regex-automata v0.4.14 +│ │ │ │ │ ├── aho-corasick v1.1.4 (*) +│ │ │ │ │ ├── memchr v2.8.2 +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ ├── regex-automata feature "meta" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ ├── regex-automata feature "nfa-pikevm" +│ │ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ │ └── regex-automata feature "nfa-thompson" +│ │ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ │ └── regex-automata feature "alloc" (*) +│ │ │ │ │ └── regex-automata feature "syntax" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-automata feature "alloc" (*) +│ │ │ │ ├── regex-automata feature "nfa-pikevm" (*) +│ │ │ │ └── regex-automata feature "syntax" (*) +│ │ │ ├── regex feature "unicode-age" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-age" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-age" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-age" (*) +│ │ │ ├── regex feature "unicode-bool" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-bool" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-bool" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-bool" (*) +│ │ │ ├── regex feature "unicode-case" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-case" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-case" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-case" (*) +│ │ │ ├── regex feature "unicode-gencat" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-gencat" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-gencat" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-gencat" (*) +│ │ │ ├── regex feature "unicode-perl" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-perl" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-perl" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ ├── regex-automata feature "unicode-word-boundary" +│ │ │ │ │ └── regex-automata v0.4.14 (*) +│ │ │ │ └── regex-syntax feature "unicode-perl" (*) +│ │ │ ├── regex feature "unicode-script" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-script" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-script" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-script" (*) +│ │ │ ├── regex feature "unicode-segment" +│ │ │ │ ├── regex v1.12.4 (*) +│ │ │ │ ├── regex-automata feature "unicode-segment" +│ │ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ │ └── regex-syntax feature "unicode-segment" +│ │ │ │ │ └── regex-syntax v0.8.11 +│ │ │ │ └── regex-syntax feature "unicode-segment" (*) +│ │ │ ├── regex-automata feature "unicode" +│ │ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ │ ├── regex-automata feature "unicode-age" (*) +│ │ │ │ ├── regex-automata feature "unicode-bool" (*) +│ │ │ │ ├── regex-automata feature "unicode-case" (*) +│ │ │ │ ├── regex-automata feature "unicode-gencat" (*) +│ │ │ │ ├── regex-automata feature "unicode-perl" (*) +│ │ │ │ ├── regex-automata feature "unicode-script" (*) +│ │ │ │ ├── regex-automata feature "unicode-segment" (*) +│ │ │ │ ├── regex-automata feature "unicode-word-boundary" (*) +│ │ │ │ └── regex-syntax feature "unicode" +│ │ │ │ ├── regex-syntax v0.8.11 +│ │ │ │ ├── regex-syntax feature "unicode-age" (*) +│ │ │ │ ├── regex-syntax feature "unicode-bool" (*) +│ │ │ │ ├── regex-syntax feature "unicode-case" (*) +│ │ │ │ ├── regex-syntax feature "unicode-gencat" (*) +│ │ │ │ ├── regex-syntax feature "unicode-perl" (*) +│ │ │ │ ├── regex-syntax feature "unicode-script" (*) +│ │ │ │ └── regex-syntax feature "unicode-segment" (*) +│ │ │ └── regex-syntax feature "unicode" (*) +│ │ ├── streaming-iterator feature "default" +│ │ │ └── streaming-iterator v0.1.9 +│ │ └── tree-sitter-language feature "default" +│ │ └── tree-sitter-language v0.1.8 +│ │ [build-dependencies] +│ │ ├── cc feature "default" (*) +│ │ ├── serde_json feature "default" +│ │ │ ├── serde_json v1.0.150 +│ │ │ │ ├── memchr v2.8.2 +│ │ │ │ ├── serde_core v1.0.228 +│ │ │ │ ├── indexmap feature "default" +│ │ │ │ │ ├── indexmap v2.7.1 +│ │ │ │ │ │ ├── equivalent v1.0.2 +│ │ │ │ │ │ └── hashbrown v0.15.5 +│ │ │ │ │ └── indexmap feature "std" +│ │ │ │ │ └── indexmap v2.7.1 (*) +│ │ │ │ ├── itoa feature "default" +│ │ │ │ │ └── itoa v1.0.18 +│ │ │ │ └── zmij feature "default" +│ │ │ │ └── zmij v1.0.21 +│ │ │ └── serde_json feature "std" +│ │ │ ├── serde_json v1.0.150 (*) +│ │ │ ├── memchr feature "std" +│ │ │ │ ├── memchr v2.8.2 +│ │ │ │ └── memchr feature "alloc" +│ │ │ │ └── memchr v2.8.2 +│ │ │ └── serde_core feature "std" +│ │ │ └── serde_core v1.0.228 +│ │ └── serde_json feature "preserve_order" +│ │ ├── serde_json v1.0.150 (*) +│ │ ├── serde_json feature "indexmap" +│ │ │ └── serde_json v1.0.150 (*) +│ │ └── serde_json feature "std" (*) +│ └── tree-sitter feature "std" +│ ├── tree-sitter v0.25.10 (*) +│ ├── regex feature "perf" +│ │ ├── regex v1.12.4 (*) +│ │ ├── regex feature "perf-backtrack" +│ │ │ ├── regex v1.12.4 (*) +│ │ │ └── regex-automata feature "nfa-backtrack" +│ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ └── regex-automata feature "nfa-thompson" (*) +│ │ ├── regex feature "perf-cache" +│ │ │ └── regex v1.12.4 (*) +│ │ ├── regex feature "perf-dfa" +│ │ │ ├── regex v1.12.4 (*) +│ │ │ └── regex-automata feature "hybrid" +│ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ ├── regex-automata feature "alloc" (*) +│ │ │ └── regex-automata feature "nfa-thompson" (*) +│ │ ├── regex feature "perf-inline" +│ │ │ ├── regex v1.12.4 (*) +│ │ │ └── regex-automata feature "perf-inline" +│ │ │ └── regex-automata v0.4.14 (*) +│ │ ├── regex feature "perf-literal" +│ │ │ ├── regex v1.12.4 (*) +│ │ │ └── regex-automata feature "perf-literal" +│ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ ├── regex-automata feature "perf-literal-multisubstring" +│ │ │ │ └── regex-automata v0.4.14 (*) +│ │ │ └── regex-automata feature "perf-literal-substring" +│ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ └── aho-corasick feature "perf-literal" +│ │ │ └── aho-corasick v1.1.4 (*) +│ │ └── regex feature "perf-onepass" +│ │ ├── regex v1.12.4 (*) +│ │ └── regex-automata feature "dfa-onepass" +│ │ ├── regex-automata v0.4.14 (*) +│ │ └── regex-automata feature "nfa-thompson" (*) +│ ├── regex feature "std" +│ │ ├── regex v1.12.4 (*) +│ │ ├── memchr feature "std" (*) +│ │ ├── aho-corasick feature "std" +│ │ │ ├── aho-corasick v1.1.4 (*) +│ │ │ └── memchr feature "std" (*) +│ │ ├── regex-automata feature "std" +│ │ │ ├── regex-automata v0.4.14 (*) +│ │ │ ├── memchr feature "std" (*) +│ │ │ ├── aho-corasick feature "std" (*) +│ │ │ ├── regex-automata feature "alloc" (*) +│ │ │ └── regex-syntax feature "std" +│ │ │ └── regex-syntax v0.8.11 +│ │ └── regex-syntax feature "std" (*) +│ └── regex-syntax feature "unicode" (*) +├── tree-sitter-language feature "default" (*) +├── tree-sitter-c feature "default" +│ └── tree-sitter-c v0.24.2 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-cpp feature "default" +│ └── tree-sitter-cpp v0.23.4 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-css feature "default" +│ └── tree-sitter-css v0.25.0 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-fortran feature "default" +│ └── tree-sitter-fortran v0.6.0 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-go feature "default" +│ └── tree-sitter-go v0.25.0 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-html feature "default" +│ └── tree-sitter-html v0.23.2 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-javascript feature "default" +│ └── tree-sitter-javascript v0.25.0 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-python feature "default" +│ └── tree-sitter-python v0.25.0 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +├── tree-sitter-rust feature "default" +│ └── tree-sitter-rust v0.24.2 +│ └── tree-sitter-language feature "default" (*) +│ [build-dependencies] +│ └── cc feature "default" (*) +└── tree-sitter-typescript feature "default" + └── tree-sitter-typescript v0.23.2 + └── tree-sitter-language feature "default" (*) + [build-dependencies] + └── cc feature "default" (*) +[build-dependencies] +└── cc feature "default" (*) diff --git a/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair.md b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair.md new file mode 100644 index 00000000..07296992 --- /dev/null +++ b/docs/specs/CBG-PLAT-01/execution/pr158-ci-repair.md @@ -0,0 +1,117 @@ +# PR158 — repair failed CI policy and audit checks + +## Scope and authority + +[COD-53](https://linear.app/codebasegraph/issue/COD-53), CBG-PLAT-01/S02. +User request on 2026-10-29: “at the moment debug and the fix the failing ci job of PR 158”. +The existing [approved spec rev0.10](https://github.com/rabii-chaarani/codebaseGraph/blob/1a9db7b558b60248888408daa6268a3b45f2f0df/docs/specs/CBG-PLAT-01/spec.md) +and [S02 approval](../approvals/cod53-windows-native-runtimes.md) remain unchanged. +Scryer `chg-fq8t0y` and execution brief `chg-h07kt8` record the bounded repair. +No new architectural claims or public contract changes were needed. + +Baseline PR head: `5f68b41cebc327072cf71be770c9e5a9d1c0dad2`. +[Failed CI40798473142](https://github.com/rabii-chaarani/codebaseGraph/actions/runs/40798473142) +checked synthetic merge `f49fbb5afe9e6c24ac410a65b61a646d72078aa2` +against main `9f69a0bd4b468eaa8652d933d518fafb8c596b6a`. + +## Causes and repair + +1. The package job's unchanged Rust-only repository gate rejected a loose historical + Windows harness input, `reject-proxy.py`. Preserve its exact 1,311 bytes in + `cod53-windows-qualification-evidence/historical-reject-proxy.tar.gz`, under its + original repository-relative member path. `archived-inputs.json` maps the + unchanged historical index to this member. All 65 original index records, + including their original hashes and CRLF bytes, still verify. No raw report, + command or historical verdict was rewritten. This follows the established + byte-preserving archival procedure from [PR159](https://github.com/rabii-chaarani/codebaseGraph/pull/159), + rather than adding a policy exception. +2. The audit rejected `pulldown-cmark 0.13.4` for + [RUSTSEC-2026-0414](https://rustsec.org/advisories/RUSTSEC-2026-0414). + Raise the wiki manifest lower bound to `0.13.5` and resolve only that lockfile + package to `0.13.5`. Features and other dependency versions are unchanged. + The downloaded crate checksum matches the new lock entry. Its declared Rust + minimum remains 1.71.1; this is not an executed full-workspace Rust1.82 claim. + The existing consumers do not enable the vulnerable wikilinks option, but + that does not justify bypassing the audit. Existing cxx/tokio audit informational + warnings and the guarded time exception are unchanged, not repaired here. + +No product numeric constants, Ladybug/extension ABI or assets, Windows defaults, +loader/installer behavior, CI controls or advisory ignores changed. + +## Executed verification + +Exact commands, working-file hashes, environment, results and limits: +[verification.json](pr158-ci-repair-evidence/verification.json). + +- Audit0.22.2: reproduced baseline failure; patched scan exits0. +- Unchanged release gate on the actual combined-tree contents plus the repair: + pass. A deliberate temporary loose Python file is rejected; removing it + restores the pass. The PR head alone still contains four older helper inputs + already archived separately on main by PR159; they are absent from CI's merge. +- Full wiki and xtask suite: **174/174 pass, 0 skipped**, with + [JUnit](pr158-ci-repair-evidence/wiki-xtask.junit.xml). +- Combined-tree xtask suite: **44/44 pass, 0 skipped**; the release gate also + passes after adding canonical evidence. [Checks](pr158-ci-repair-evidence/merged-checks.json). +- Formatting and strict workspace/all-target/all-feature Clippy: pass. +- Normal Cargo publish dry-run: pass, including extracted source-package compile + with the unchanged pinned Ladybug0.19 SDK. Nothing was uploaded. +- Generated root source archive: **8,458,182 bytes ≤ 10,485,760**. All four bundled + XZ payloads match source. Wiki archive creation passes with the CI path patch; + its manifest contains the patched parser lower bound. This is not an isolated + wiki archive compile. +- Windows-filtered default and explicit root opt-out feature resolution: pass; + not native execution. +- Two independent Git archives are byte-identical. Archive/member hashes and + all65 historical records verify; original index and other evidence bytes + remain unchanged. + +Local host: macOS ARM64, Cargo1.96.0. The first baseline compilation used an +incorrect include directory and failed; the corrected environment compiled +without a source change. Both logs are preserved. The registered graph/Scryer +binding describes the original older checkout, not the isolated PR branch; +exact source comparisons and local snapshot hashes are retained, and no +unrelated drift was cleared or branch-specific passing fingerprint invented. + +## Post-push main synchronization + +The reviewed repair was pushed as `359d946e91c6cb3ee7e170b73c6e9bab577b0b04`. +GitHub could not create its PR merge or start CI: the parser declaration was +adjacent to main's package-version update. A normal pinned-main integration +retains main `9f69a0bd4b468eaa8652d933d518fafb8c596b6a` and the repair history. +The only manual conflict resolution keeps `codebase-graph 4.0.2` and +`pulldown-cmark 0.13.5` in the wiki manifest. No PR merge, rebase, release, +new scope or changed approval is implied. + +The resolved critical file hashes match the combined contents already used for +local policy/package verification. The actual integrated tree passes **176/176 +wiki/xtask tests, 0 skipped**, fmt, strict workspace Clippy, unchanged release +gate/audit and the normal extracted-package publish dry-run. Its generated root +archive is **8,458,173 bytes**; the earlier package measurement remains a separate +historical result. [Integration checks](pr158-ci-repair-evidence/integration-verification.json) +and [Sol Max focused integration review](pr158-ci-repair-evidence/merge-final-review.md) +are retained separately; no confirmed P0–P3 defects were found. Older results are +not labeled new-head CI. +Historical raw evidence imported unchanged from main and the original PR has +preexisting whitespace/CRLF diagnostics. It was not rewritten to satisfy a +blanket diff check; the new manual Cargo resolution passes its scoped check. + +## Reviews and remaining gates + +Fresh independent **GPT-6.1 Sol / High** proposal review cleared the bounded +implementation with compatibility checks required: +[proposal review](pr158-ci-repair-evidence/proposal-review.md). +Fresh independent **GPT-6.1 Sol / Max** integrated source/evidence review found +**no confirmed P0–P3 defects** and cleared the bounded repair for commit/push: +[final review](pr158-ci-repair-evidence/final-review.md). It checked staged tree +`649f78da13f2e044309ebf78953730aa57b1b25c` against the baseline, including the +tracked archive, hashes, original index and executed checks. The review-link +update receives focused verification; future native CI is still a separate gate. + +Final pushed-head native macOS/Windows CI is pending. Prior Windows11 execution +remains bound to its original source and prepared environment; this repair adds +no desktop/clean-consumer qualification. Full COD-53 S02/A03/A04/fullA16 and +maintainer aggregate closure remain open. No merge, release publication, +deployment or service restart is authorized. + +Reusable knowledge assessed: no new memory is needed. Existing archival practice +and exact-revision release lessons were applied; version-bound results belong here. diff --git a/src/db_writer/extensions.rs b/src/db_writer/extensions.rs index 73004f46..5a4f4cd3 100644 --- a/src/db_writer/extensions.rs +++ b/src/db_writer/extensions.rs @@ -141,7 +141,14 @@ mod tests { #[test] fn bundled_extension_archives_decompress_before_cache_seed() { for extension in ["json", "fts"] { - let Some(bytes) = bundled_extension_bytes(extension).unwrap() else { + let bytes = bundled_extension_bytes(extension).unwrap(); + #[cfg(all( + target_os = "windows", + target_arch = "x86_64", + feature = "bundled-windows-extensions" + ))] + assert!(bytes.is_some(), "{extension} extension should be bundled"); + let Some(bytes) = bytes else { continue; }; assert!(bytes.len() > 500_000, "{extension} extension is truncated");