Skip to content

Close the #18 audit's minor findings (hermetic git tests, containment hardening, full-provider conformance) - #62

Merged
YellowSnnowmann merged 3 commits into
tinyhumansai:mainfrom
YellowSnnowmann:feat/18-audit-minors
Aug 19, 2026
Merged

Close the #18 audit's minor findings (hermetic git tests, containment hardening, full-provider conformance)#62
YellowSnnowmann merged 3 commits into
tinyhumansai:mainfrom
YellowSnnowmann:feat/18-audit-minors

Conversation

@YellowSnnowmann

Copy link
Copy Markdown
Contributor

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:

Finding Fix
sources git tests inherit ~/.gitconfigcommit.gpgsign=true parks the test binary on pinentry forever git_ok nulls GIT_CONFIG_GLOBAL/SYSTEM, disables signing per invocation
engine-containment.sh regex bypasses: extern crate tinycortex, tinycortex ::, // inside a string eating a same-line real use strings stripped before comments; pattern widened; all three probes verified caught, prose still ignored
criterion 5's honest gap: the 18-family TinycortexProvider was 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 pass
adapter docs claim the engine and contract Memory traits are separate — false since the upstream contract re-export docs corrected after verifying the chain: tinycortex::memory::Memorytinycortex_api::traitstinymemory_api::traits::Memory

Held 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.

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
@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3201b255-28ac-4b82-8b45-96bb25e64868


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@tinysweeper tinysweeper Bot added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Aug 19, 2026

@tinysweeper tinysweeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

tinysweeper found nothing blocking. Approving.

$0.0000 · 0 in / 0 out · 490 embedded · openrouter/openai/text-embedding-3-small

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.
@YellowSnnowmann

Copy link
Copy Markdown
Contributor Author

Note on 6c51d60's message: the github-actions Dependabot ecosystem was already configured (dependabot.yml has carried it below the cargo group), so the commit adds only the SHA pins — 21 refs, tag kept as a trailing comment. The message's last clause overstates; the pins and their bump path are real.

@tinysweeper

tinysweeper Bot commented Aug 19, 2026

Copy link
Copy Markdown

How this change flows

0 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
Loading

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.

tinysweeper 0.1.0

@YellowSnnowmann
YellowSnnowmann merged commit f8bd9af into tinyhumansai:main Aug 19, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant