Skip to content

feat(index): record parser coverage receipts - #23

Open
odvcencio wants to merge 3 commits into
mainfrom
codex/parse-coverage-receipts
Open

feat(index): record parser coverage receipts#23
odvcencio wants to merge 3 commits into
mainfrom
codex/parse-coverage-receipts

Conversation

@odvcencio

@odvcencio odvcencio commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • store per-file parser coverage receipts in index schema 0.3.0
  • distinguish clean, partial, stopped, generated, and unknown parse outcomes
  • expose coverage through canopy index coverage and the gts_coverage MCP tool
  • propagate parser confidence into reports, changed-file reviews, and file guardrails
  • attach scoped parser health to task-conditioned context bundles
  • report bounded issue files and a unique untrusted-file count
  • compare parser health between current and baseline executive reports
  • rebuild stale caches when their schema predates coverage receipts
  • surface coverage changes in watch baselines

The receipts preserve top-most ERROR and MISSING regions, parser stop reasons when available, recovered-region decisions, and generated-file fast paths. A clean receipt means no actionable parser gap was detected; it does not claim complete grammar or tag-query semantics.

Legacy context packing remains unchanged. Parser health is additive on task-conditioned bundle responses and bundle-mode JSON output.

Companion gotreesitter PR: #979. It exposes bound-tree analysis paths for a later dependency update.

Validation

  • GOWORK=off go test ./...
  • GOWORK=off go vet ./...
  • GOWORK=off go test -race ./internal/indexcoverage ./internal/mcp ./cmd/canopy
  • GOWORK=off go run ./cmd/canopy index coverage . --no-cache --limit 20
  • live self-index: 302 files clean, 0 gaps, 0 parse errors
  • live executive report: 302 clean files and 0 untrusted files
  • live changed-only review: 24 indexed changed files, clean parser health, blast radius 31
  • live context bundle: 77 selected items across 30 parser-clean files
  • live current-versus-baseline parser-health comparison
  • git diff --check origin/main...HEAD

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