Skip to content

Close the findings of the 0.7.0 release audit - #265

Merged
devmaxxx merged 2 commits into
mainfrom
fix/0-7-0-release-audit
Oct 19, 2026
Merged

devmaxxx merged 2 commits into
mainfrom
fix/0-7-0-release-audit

Conversation

@devmaxxx

Copy link
Copy Markdown
Owner

Summary

  • Redaction (Redact secrets written inside indexed files #262) keeps provider rules only. The catch-all rules (generic-api-key, kingfisher.generic/http/auth/curl, curl-auth-, hashicorp-tf-password, kingfisher.credentials.1, kingfisher.uri.1) flagged 53 spans on the beauty-crm bench fixture, none of them a secret, and one cost FR-CAL-155 its edge. A span that holds a graph or requirement id is never redacted. A database URL on a loopback host (localhost, 127., ::1, 0.0.0.0) or with an interpolated or masked password is left as written; any other host is still redacted. The fixture now has 0 redactions.
  • Switch: redact_secrets = false in zerograph.toml, or ZEROGRAPH_REDACT_SECRETS for one run. Documented in docs/configuration.md, including that coverage is by provider pattern and a generic password = "..." is not caught.
  • zerograph families redacts the example lines it prints.
  • Double hook: the plugin hook is silent on every event that committed 0.6.x entries in .claude/settings.json still answer (when their script exists), and under Codex on events left in $CODEX_HOME/hooks.json. Codex reads no repo-level hooks file, so the machine file is the analogue. Codex copy synced.
  • npm-pack rewrites HTML src="..." to the tagged raw URL, so the README logo renders on npm.
  • Release notes: redaction and its switch, cache_status and reindex building without a store, the double-hook fix, and a Before upgrading line for the GRAMMAR 6 to 7 full re-read.
  • mcp help names the plugins. Comparison GIF shows each frame for 10 s.

Test plan

  • cargo test --all-targets (new: tests/redaction.rs, the exact fixture false positives, id spans, loopback DB URLs)
  • cargo clippy --all-targets -- -D warnings
  • node tests from ci.yml: 83 pass (new legacy-hook silence tests fail without the fix)
  • claude plugin validate --strict on agent/claude-code and agent/codex; claude plugin test 26 pass
  • scripts/npm-pack.sh dry run: logo points at raw v0.7.0
  • Fixture re-scan: 0 redactions, was 53

Redaction keeps provider rules only. The catch-all rules (generic-api-key,
kingfisher.generic/http/auth/curl, curl-auth-*, hashicorp-tf-password,
credentials.1, uri.1) flagged 53 spans on the bench fixture, none a secret,
and one cost FR-CAL-155 its edge. A span that holds a graph or requirement
id is never redacted, and a database URL on a loopback host or with an
interpolated or masked password is left as written. The fixture now
redacts nothing.

redact_secrets = false in zerograph.toml, or ZEROGRAPH_REDACT_SECRETS for
one run, turns redaction off. zerograph families now redacts the lines it
prints, as the extractor does.

The plugin hook stays silent on every event that committed 0.6.x entries
in .claude/settings.json still answer, and under Codex on the events left
in $CODEX_HOME/hooks.json, so a session hears one brief.

npm-pack rewrites an HTML src="..." to the tagged raw URL, so the README
logo shows on the npm page. The 0.7.0 notes name the redaction, the two
MCP tool changes, the double-hook fix and the GRAMMAR 6 to 7 re-read. The
mcp help names the plugins. The comparison GIF shows each frame 10 s.
Codex sets CLAUDE_PLUGIN_ROOT as well as PLUGIN_ROOT, so the hook could not
tell the harnesses apart and under Codex read Claude's legacy settings. The
Codex plugin's hook command now passes --codex (main({harness:'codex'}) on
Windows). A legacy entry silences the plugin only where its matcher matches
the tool, the session source or the agent type, and a Codex entry spelled
with ~, $HOME or ${HOME} is found.

The loopback and placeholder exemption applies to the database URL rules
only, so a provider token in a local URL is still redacted. The host is
parsed as an address rather than matched by prefix, and a password counts
as a placeholder only when the whole of it has that shape.

cache_status is listed as a new tool and reindex as a change.
@devmaxxx
devmaxxx merged commit f2b19b0 into main Oct 19, 2026
4 checks passed
@devmaxxx
devmaxxx deleted the fix/0-7-0-release-audit branch October 19, 2026 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant