Skip to content

feat(mutation): operator parallelism, multi-format reports, and history tracking#75

Merged
yuchou87 merged 15 commits into
mainfrom
feat/mutation-v2
May 10, 2026
Merged

feat(mutation): operator parallelism, multi-format reports, and history tracking#75
yuchou87 merged 15 commits into
mainfrom
feat/mutation-v2

Conversation

@yuchou87

Copy link
Copy Markdown
Contributor

Summary

  • B3 — Operator Parallelization: engine.go now runs operators concurrently, each with its own proxy instance. Bounded by --operator-concurrency (default 2); inner --concurrency still controls per-operator case parallelism.
  • B1 — Richer Report Formats: --report-format json,markdown,html,all flag writes multi-format reports. RenderMarkdown produces a survivor risk table; RenderHTML produces a self-contained heatmap (inline CSS, no external deps). "all" expands to all three.
  • B2 — History Tracking: --history prints a trend table of past runs from .caseforge/mutation/runs/ including delta (↑/↓/—) and 7-day average score. --target and --cases are not required when using --history.

New flags

Flag Default Purpose
--operator-concurrency 2 Operators running in parallel
--report-format json Comma-separated: json,markdown,html,all
--history false Print score history (no live run)
--history-limit 10 Max runs to display

Test Plan

  • go test ./... -count=1 — all packages pass
  • ./scripts/acceptance.sh — 265/265 pass (AT-404 through AT-409 are new)
  • go vet ./... — clean
  • --report-format jsn (typo) fails immediately with clear error before any mutation run
  • --history works without --target or --cases
  • LoadHistory limit applied after JSON filter (non-JSON files don't consume limit slots)

@yuchou87 yuchou87 merged commit 17df839 into main May 10, 2026
1 check passed
@yuchou87 yuchou87 deleted the feat/mutation-v2 branch May 10, 2026 12:33
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