Close the #18 audit's minor findings (hermetic git tests, containment hardening, full-provider conformance) - #62
Conversation
containment check, full-provider conformance, true docs Four items from the tinyhumansai#18 end-to-end audit, each small, none deferrable without cost: 1. The sources git tests inherited the developer's global git config, so a machine with `commit.gpgsign = true` parked the whole test binary on a pinentry prompt -- the exact hang that ate hours of this arc's own build time. `git_ok` now nulls GIT_CONFIG_GLOBAL/SYSTEM and disables signing per invocation. 2. The audit probed `engine-containment.sh` and found three regex bypasses: `extern crate tinycortex`, whitespace before `::`, and a `//` inside a string literal eating the rest of a line that also held a real use. String literals are now stripped before comments, and the pattern covers `extern crate` and spaced `::`. All three probes now fail the script; prose still passes. 3. Criterion 5 had an honest gap its own docs admitted: the eighteen- family `TinycortexProvider` was never conformance-tested, only the mandatory-three composition. It needs the host's process-global embedding seam, which makes in-lib tests order-dependent -- so it gets the integration target the doc promised, owning the global for its whole binary: `tests/full_provider_conformance.rs`, running `assert_provider` plus the retains-writes pin over a real workspace store. The in-lib doc now points at it instead of apologising. 4. The adapter's crate docs still claimed the engine and contract Memory traits were "separate traits over the same values" -- false since the upstream contract re-export: `tinycortex::memory::Memory` is `tinymemory_api::traits::Memory` (verified through tinycortex_api's re-export chain). Docs now say what is true. cargo test -p tinymemory-tinycortex --test full_provider_conformance: 2 passed cargo test -p tinymemory-sources (default): 58 passed; github git tests green under a signing-enabled global config scripts/ci/engine-containment.sh: holds; three bypass probes caught
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The promise made on tinyhumansai#61's two tinysweeper threads, kept after that PR merged so its new matrix jobs are covered too: a tag or branch is mutable, and whoever owns the action's repo can repoint it and run new code with this workflow's secrets. All 21 `uses:` refs now name a full commit SHA with the tag kept as a trailing comment for readability, and Dependabot gains the `github-actions` ecosystem so the pins move by reviewable PR rather than by rot.
|
Note on 6c51d60's message: the |
How this change flows0 changed behaviours across 10 relationships. 5 surrounding behaviours are shown (60 graph nodes walked). 30 further behaviours left out to keep the diagram readable. flowchart LR
n0["provider_over"]:::impacted
n1["fetch_existing_bare_advances_local_heads"]:::impacted
n2["join"]:::impacted
n3["...isting_bare_refreshes_default_branch_head"]:::impacted
n4["git_ok"]:::impacted
n0 -->|calls| n2
n0 -->|tests| n2
n1 -->|calls| n2
n1 -->|tests| n2
n1 -->|calls| n4
n1 -->|tests| n4
n3 -->|calls| n2
n3 -->|tests| n2
n3 -->|calls| n4
n3 -->|tests| n4
classDef changed fill:#0d4429,stroke:#238636,color:#e6edf3
classDef impacted fill:#161b22,stroke:#6e7681,color:#c9d1d9
classDef flagged fill:#5a1e02,stroke:#d93f0b,color:#ffffff
classDef blocking fill:#67060c,stroke:#f85149,color:#ffffff
Green: changed behaviour. Grey: surrounding behaviour. Arrows name the call, use, implementation, or test relationship. Orange: has findings. Red: has a finding that blocks the merge. |
The remaining actionable findings from #18's end-to-end audit — the minors that survived after #48 (in-PR fixes), #60 (pin-bump compat) and #61 (the #59 batch) took the majors:
~/.gitconfig—commit.gpgsign=trueparks the test binary on pinentry forevergit_oknullsGIT_CONFIG_GLOBAL/SYSTEM, disables signing per invocationengine-containment.shregex bypasses:extern crate tinycortex,tinycortex ::,//inside a string eating a same-line real useTinycortexProviderwas never conformance-tested (its own docs said "not written yet")tests/full_provider_conformance.rs— its own integration target owning the process-global embedding seam,assert_provider+ retains-writes over a real workspace store. 2 tests passMemorytraits are separate — false since the upstream contract re-exporttinycortex::memory::Memory→tinycortex_api::traits→tinymemory_api::traits::MemoryHeld out deliberately: repo-wide action SHA-pinning (promised on #61's tinysweeper threads) — it must include #61's new ci.yml lines, so it lands after #61 merges; and the tinycortex-side audit-writer change + openhuman-side bump items, which are other repos.
Validation: full-provider conformance 2/2, sources 58/58 (git tests green under a signing-enabled global config), containment probes caught, clippy clean.