Skip to content

v0.8.0

Choose a tag to compare

@prabhuakshay prabhuakshay released this 25 Jun 04:48

forge v0.8.0 tightens the env-drift gate, sharpens the docs, and removes dead code — a correctness-and-honesty release.

Changed

  • env_scan detects the env reads it was silently missing. The drift scan now recognises os.environ.pop(...) and os.environ.setdefault(...) (both read the variable, just like .get()), and captures variable names in any case rather than UPPER_CASE only. Environment variables are case-sensitive on POSIX, so a read like os.getenv("debug_mode") is real config that onboarding must document — matching only [A-Z…] quietly dropped every lower/mixed-case read on the floor. The drift check compares names verbatim, the way the OS resolves them (pydantic-settings stays case-folded, since it resolves env vars case-insensitively). This makes the /forge:audit env check and the Stop gate's drift check catch undocumented configuration they previously let through.

Removed

  • lib/state.clear_dirty — dead code with no caller (record_pass clears the dirty set inline). No command, hook, or documented behaviour referenced it.

Documentation

  • README now states plainly that only two agents are evidence-bounddoc-sync-auditor and reference-auditor must cite a file:line for every finding — while python-quality-auditor, doc-gap-scanner, and python-test-author are advisory/generative.
  • README's Stop gate description now says when it fires (turn-end), what it runs (format/lint whole-tree, mypy scoped to changed files and skipped when nothing is dirty, env drift — never the test suite), and that failures are fed back rather than walling off.
  • docs/state-schema.md documents that dirty_py clears only on a green check, so it intentionally accumulates past audit/review passes.
  • /forge:docs report header no longer looks like a subcommand; /forge:release gives the concrete command for listing commits since the last tag; the lib/ layout list now includes status (caught by the doc-sync auditor during this release).

Internal

  • Closed branch-coverage gaps in lib/cmdscan (91%→98%) and lib/state (89%→96%); suite total 94%→96%, 272 tests.

Full changelog: v0.7.0...v0.8.0