Skip to content

Changelog

  • feat(e9c): replay bundle CLI flow + modular command refactor (single commit) (#168) @Rul1an
  • E9b: Scrubbing + bundle verify (scrub, read_bundle_tar_gz, verify_bundle) (#166) @Rul1an
  • feat(e9d.3): harden replay contract + strategic positioning & DX plan (#172) @Rul1an
  • feat(e9d.2): enforce core network deny for offline replay (#171) @Rul1an
  • feat(e9d.1): harden replay coverage contract and exit-profile stability (#170) @Rul1an
  • feat(e9c): replay bundle CLI flow + modular command refactor (single commit) (#168) @Rul1an
  • E9b: Scrubbing + bundle verify (scrub, read_bundle_tar_gz, verify_bundle) (#166) @Rul1an
  • feat(p0): init --from-trace, PR comment bot, SARIF truncation fix (#174) @Rul1an
  • feat(e9d.3): harden replay contract + strategic positioning & DX plan (#172) @Rul1an
  • feat(e9d.2): enforce core network deny for offline replay (#171) @Rul1an
  • feat(e9d.1): harden replay coverage contract and exit-profile stability (#170) @Rul1an
  • feat(e9c): replay bundle CLI flow + modular command refactor (single commit) (#168) @Rul1an
  • E9b: Scrubbing + bundle verify (scrub, read_bundle_tar_gz, verify_bundle) (#166) @Rul1an
  • feat(generate): add --diff policy evolution output (P1-A, clean) (#177) @Rul1an
  • feat(p0): init --from-trace, PR comment bot, SARIF truncation fix (#174) @Rul1an
  • feat(e9d.3): harden replay contract + strategic positioning & DX plan (#172) @Rul1an
  • feat(e9d.2): enforce core network deny for offline replay (#171) @Rul1an
  • feat(e9d.1): harden replay coverage contract and exit-profile stability (#170) @Rul1an
  • feat(e9c): replay bundle CLI flow + modular command refactor (single commit) (#168) @Rul1an
  • E9b: Scrubbing + bundle verify (scrub, read_bundle_tar_gz, verify_bundle) (#166) @Rul1an
  • feat(explain): add --compliance-pack hints and coverage summary (P1-B) (#179) @Rul1an
  • feat(generate): add --diff policy evolution output (P1-A, clean) (#177) @Rul1an
  • feat(p0): init --from-trace, PR comment bot, SARIF truncation fix (#174) @Rul1an
  • feat(e9d.3): harden replay contract + strategic positioning & DX plan (#172) @Rul1an
  • feat(e9d.2): enforce core network deny for offline replay (#171) @Rul1an
  • feat(e9d.1): harden replay coverage contract and exit-profile stability (#170) @Rul1an
  • feat(e9c): replay bundle CLI flow + modular command refactor (single commit) (#168) @Rul1an
  • E9b: Scrubbing + bundle verify (scrub, read_bundle_tar_gz, verify_bundle) (#166) @Rul1an
  • ci: always publish required CI check for docs-only pull requests (#182) @Rul1an
  • docs(cli): add explain reference and define compliance coverage semantics (#180) @Rul1an
  • feat(explain): add --compliance-pack hints and coverage summary (P1-B) (#179) @Rul1an
  • feat(generate): add --diff policy evolution output (P1-A, clean) (#177) @Rul1an
  • feat(p0): init --from-trace, PR comment bot, SARIF truncation fix (#174) @Rul1an
  • feat(e9d.3): harden replay contract + strategic positioning & DX plan (#172) @Rul1an
  • feat(e9d.2): enforce core network deny for offline replay (#171) @Rul1an
  • feat(e9d.1): harden replay coverage contract and exit-profile stability (#170) @Rul1an
  • feat(e9c): replay bundle CLI flow + modular command refactor (single commit) (#168) @Rul1an
  • E9b: Scrubbing + bundle verify (scrub, read_bundle_tar_gz, verify_bundle) (#166) @Rul1an

  • dx: merge P0/P1 DX roadmap slices into main (#191) @Rul1an

  • fix(watch): edge harden coarse-mtime detection and fallback (#190) @Rul1an
  • docs(cli): harden generate/explain parity contracts (#189) @Rul1an
  • fix(watch): harden deterministic path diffing (#188) @Rul1an
  • feat(dx): add init --hello-trace golden path scaffold (#187) @Rul1an
  • feat(action-v2.1): add compliance pack failure modes + contract tests (#185) @Rul1an
  • dx: merge P0/P1 DX roadmap slices into main (#196) @Rul1an
  • refactor(cli): derive watch/replay RunArgs from shared defaults (#195) @Rul1an
  • fix(doctor): align dry-run exit code with diagnostics contract (#194) @Rul1an
  • fix(init): colocate --hello-trace output with --config path (#193) @Rul1an
  • dx: merge P0/P1 DX roadmap slices into main (#191) @Rul1an
  • fix(watch): edge harden coarse-mtime detection and fallback (#190) @Rul1an
  • docs(cli): harden generate/explain parity contracts (#189) @Rul1an
  • fix(watch): harden deterministic path diffing (#188) @Rul1an
  • feat(dx): add init --hello-trace golden path scaffold (#187) @Rul1an
  • feat(action-v2.1): add compliance pack failure modes + contract tests (#185) @Rul1an

  • feat(dx-wave-a2/a3): merge strict-options + canonical init templates into main (#202) @Rul1an

  • feat(dx-wave-a3): canonicalize init/template config writing (#200) @Rul1an
  • feat(dx-wave-a2): remove run/ci strict env mutation via explicit options (#199) @Rul1an
  • feat(dx-wave-a1): centralize run/ci error classification + RFC-001 (#198) @Rul1an
  • feat(dx-wave-b1): unify run/ci pipeline and reduce command coupling (#204) @Rul1an
  • feat(dx-wave-a2/a3): merge strict-options + canonical init templates into main (#202) @Rul1an
  • feat(dx-wave-a3): canonicalize init/template config writing (#200) @Rul1an
  • feat(dx-wave-a2): remove run/ci strict env mutation via explicit options (#199) @Rul1an
  • feat(dx-wave-a1): centralize run/ci error classification + RFC-001 (#198) @Rul1an
  • refactor(dx-wave-b2): extract command dispatch module and reduce mod.rs coupling (#205) @Rul1an
  • feat(dx-wave-b1): unify run/ci pipeline and reduce command coupling (#204) @Rul1an
  • feat(dx-wave-a2/a3): merge strict-options + canonical init templates into main (#202) @Rul1an
  • feat(dx-wave-a3): canonicalize init/template config writing (#200) @Rul1an
  • feat(dx-wave-a2): remove run/ci strict env mutation via explicit options (#199) @Rul1an
  • feat(dx-wave-a1): centralize run/ci error classification + RFC-001 (#198) @Rul1an
  • feat(dx-wave-c4): harden run-id tracking beyond ring buffer (#219) @Rul1an
  • feat(dx-wave-c3): add reproducible profile-store perf harness (#218) @Rul1an
  • feat(dx-wave-c2): reduce runner clone overhead + emit runner_clone_ms (#217) @Rul1an
  • feat(dx-wave-c1): add reproducible verify/lint perf harness (#213) @Rul1an
  • feat(dx-wave-c0): add perf trigger metrics and wave-c guardrails (#212) @Rul1an
  • docs(wave-c): add metrics-gated C0-C4 execution blueprint (#210) @Rul1an
  • feat(dx-wave-b3): rename init pack flag to preset (compat) (#209) @Rul1an
  • feat(dx-wave-b3): rename init pack flag to preset (compat) (#206) @Rul1an
  • refactor(dx-wave-b2): extract command dispatch module and reduce mod.rs coupling (#205) @Rul1an
  • feat(dx-wave-b1): unify run/ci pipeline and reduce command coupling (#204) @Rul1an
  • feat(dx-wave-a2/a3): merge strict-options + canonical init templates into main (#202) @Rul1an
  • feat(dx-wave-a3): canonicalize init/template config writing (#200) @Rul1an
  • feat(dx-wave-a2): remove run/ci strict env mutation via explicit options (#199) @Rul1an
  • feat(dx-wave-a1): centralize run/ci error classification + RFC-001 (#198) @Rul1an
  • fix(dx-wave-c4): harden run-id dedupe bookkeeping (#220) @Rul1an
  • feat(dx-wave-c4): harden run-id tracking beyond ring buffer (#219) @Rul1an
  • feat(dx-wave-c3): add reproducible profile-store perf harness (#218) @Rul1an
  • feat(dx-wave-c2): reduce runner clone overhead + emit runner_clone_ms (#217) @Rul1an
  • feat(dx-wave-c1): add reproducible verify/lint perf harness (#213) @Rul1an
  • feat(dx-wave-c0): add perf trigger metrics and wave-c guardrails (#212) @Rul1an
  • docs(wave-c): add metrics-gated C0-C4 execution blueprint (#210) @Rul1an
  • feat(dx-wave-b3): rename init pack flag to preset (compat) (#209) @Rul1an
  • feat(dx-wave-b3): rename init pack flag to preset (compat) (#206) @Rul1an
  • refactor(dx-wave-b2): extract command dispatch module and reduce mod.rs coupling (#205) @Rul1an
  • feat(dx-wave-b1): unify run/ci pipeline and reduce command coupling (#204) @Rul1an
  • feat(dx-wave-a2/a3): merge strict-options + canonical init templates into main (#202) @Rul1an
  • feat(dx-wave-a3): canonicalize init/template config writing (#200) @Rul1an
  • feat(dx-wave-a2): remove run/ci strict env mutation via explicit options (#199) @Rul1an
  • feat(dx-wave-a1): centralize run/ci error classification + RFC-001 (#198) @Rul1an

  • test(trace): freeze from_path parser contracts before decomposition (#228) @Rul1an

  • test(monitor): freeze CLI monitor failure-path contract (#227) @Rul1an
  • ci(kernel-matrix): skip cleanup-runner while matrix is disabled (#226) @Rul1an
  • refactor(sim): deduplicate attack test-bundle generation (#225) @Rul1an
  • refactor(storage): deduplicate result rehydration and episode graph loading (#223) @Rul1an
  • refactor(evidence): unify severity model and remove lint duplication (#222) @Rul1an
  • refactor(trace): decompose from_path into extract-only helpers (#230) @Rul1an
  • test(trace): freeze from_path parser contracts before decomposition (#228) @Rul1an
  • test(monitor): freeze CLI monitor failure-path contract (#227) @Rul1an
  • ci(kernel-matrix): skip cleanup-runner while matrix is disabled (#226) @Rul1an
  • refactor(sim): deduplicate attack test-bundle generation (#225) @Rul1an
  • refactor(storage): deduplicate result rehydration and episode graph loading (#223) @Rul1an
  • refactor(evidence): unify severity model and remove lint duplication (#222) @Rul1an
  • refactor(runner): decompose run_test_with_policy extract-only (#237) @Rul1an
  • fix(trace): default tool-only trace fixtures to input=ignore (#236) @Rul1an
  • test(runner): freeze retry/flake/on_error contracts before decomposition (#233) @Rul1an
  • fix(trace): harden episode-end/EOF metadata merge semantics (#232) @Rul1an
  • refactor(trace): decompose from_path into extract-only helpers (#230) @Rul1an
  • test(trace): freeze from_path parser contracts before decomposition (#228) @Rul1an
  • test(monitor): freeze CLI monitor failure-path contract (#227) @Rul1an
  • ci(kernel-matrix): skip cleanup-runner while matrix is disabled (#226) @Rul1an
  • refactor(sim): deduplicate attack test-bundle generation (#225) @Rul1an
  • refactor(storage): deduplicate result rehydration and episode graph loading (#223) @Rul1an
  • refactor(evidence): unify severity model and remove lint duplication (#222) @Rul1an
  • fix(args_valid): enforce policy allow/deny in runtime path (#238) @Rul1an
  • refactor(runner): decompose run_test_with_policy extract-only (#237) @Rul1an
  • fix(trace): default tool-only trace fixtures to input=ignore (#236) @Rul1an
  • test(runner): freeze retry/flake/on_error contracts before decomposition (#233) @Rul1an
  • fix(trace): harden episode-end/EOF metadata merge semantics (#232) @Rul1an
  • refactor(trace): decompose from_path into extract-only helpers (#230) @Rul1an
  • test(trace): freeze from_path parser contracts before decomposition (#228) @Rul1an
  • test(monitor): freeze CLI monitor failure-path contract (#227) @Rul1an
  • ci(kernel-matrix): skip cleanup-runner while matrix is disabled (#226) @Rul1an
  • refactor(sim): deduplicate attack test-bundle generation (#225) @Rul1an
  • refactor(storage): deduplicate result rehydration and episode graph loading (#223) @Rul1an
  • refactor(evidence): unify severity model and remove lint duplication (#222) @Rul1an
  • refactor(storage-e1): unify run writes and canonicalize started_at (#242) @Rul1an
  • docs(rfc): add RFC-002 code-health remediation plan (#241) @Rul1an
  • refactor(monitor): extract run_linux helpers (extract-only) (#239) @Rul1an
  • fix(args_valid): enforce policy allow/deny in runtime path (#238) @Rul1an
  • refactor(runner): decompose run_test_with_policy extract-only (#237) @Rul1an
  • fix(trace): default tool-only trace fixtures to input=ignore (#236) @Rul1an
  • test(runner): freeze retry/flake/on_error contracts before decomposition (#233) @Rul1an
  • fix(trace): harden episode-end/EOF metadata merge semantics (#232) @Rul1an
  • refactor(trace): decompose from_path into extract-only helpers (#230) @Rul1an
  • test(trace): freeze from_path parser contracts before decomposition (#228) @Rul1an
  • test(monitor): freeze CLI monitor failure-path contract (#227) @Rul1an
  • ci(kernel-matrix): skip cleanup-runner while matrix is disabled (#226) @Rul1an
  • refactor(sim): deduplicate attack test-bundle generation (#225) @Rul1an
  • refactor(storage): deduplicate result rehydration and episode graph loading (#223) @Rul1an
  • refactor(evidence): unify severity model and remove lint duplication (#222) @Rul1an
  • refactor(metrics-e2b): centralize policy warning dedup semantics (#246) @Rul1an
  • refactor(metrics-e2a): unify tool-call extraction across metrics (#245) @Rul1an
  • docs(rfc-002): harden E1 stop-lines and gates from review (#244) @Rul1an
  • refactor(storage-e1): unify run writes and canonicalize started_at (#242) @Rul1an
  • docs(rfc): add RFC-002 code-health remediation plan (#241) @Rul1an
  • refactor(monitor): extract run_linux helpers (extract-only) (#239) @Rul1an
  • fix(args_valid): enforce policy allow/deny in runtime path (#238) @Rul1an
  • refactor(runner): decompose run_test_with_policy extract-only (#237) @Rul1an
  • fix(trace): default tool-only trace fixtures to input=ignore (#236) @Rul1an
  • test(runner): freeze retry/flake/on_error contracts before decomposition (#233) @Rul1an
  • fix(trace): harden episode-end/EOF metadata merge semantics (#232) @Rul1an
  • refactor(trace): decompose from_path into extract-only helpers (#230) @Rul1an
  • test(trace): freeze from_path parser contracts before decomposition (#228) @Rul1an
  • test(monitor): freeze CLI monitor failure-path contract (#227) @Rul1an
  • ci(kernel-matrix): skip cleanup-runner while matrix is disabled (#226) @Rul1an
  • refactor(registry-e2c): freeze digest contracts and dedup helpers (#247) @Rul1an
  • refactor(metrics-e2b): centralize policy warning dedup semantics (#246) @Rul1an
  • refactor(metrics-e2a): unify tool-call extraction across metrics (#245) @Rul1an
  • docs(rfc-002): harden E1 stop-lines and gates from review (#244) @Rul1an
  • refactor(storage-e1): unify run writes and canonicalize started_at (#242) @Rul1an
  • docs(rfc): add RFC-002 code-health remediation plan (#241) @Rul1an
  • refactor(monitor): extract run_linux helpers (extract-only) (#239) @Rul1an
  • fix(args_valid): enforce policy allow/deny in runtime path (#238) @Rul1an
  • refactor(runner): decompose run_test_with_policy extract-only (#237) @Rul1an
  • fix(trace): default tool-only trace fixtures to input=ignore (#236) @Rul1an
  • test(runner): freeze retry/flake/on_error contracts before decomposition (#233) @Rul1an
  • fix(trace): harden episode-end/EOF metadata merge semantics (#232) @Rul1an
  • refactor(trace): decompose from_path into extract-only helpers (#230) @Rul1an
  • test(trace): freeze from_path parser contracts before decomposition (#228) @Rul1an
  • refactor(registry-e3b): keep legacy DSSE helper test-local (#252) @Rul1an
  • test(registry-e3a): freeze legacy digest/signature contracts (#250) @Rul1an
  • refactor(registry-e2c): freeze digest contracts and dedup helpers (#247) @Rul1an
  • refactor(metrics-e2b): centralize policy warning dedup semantics (#246) @Rul1an
  • refactor(metrics-e2a): unify tool-call extraction across metrics (#245) @Rul1an
  • docs(rfc-002): harden E1 stop-lines and gates from review (#244) @Rul1an
  • refactor(storage-e1): unify run writes and canonicalize started_at (#242) @Rul1an
  • docs(rfc): add RFC-002 code-health remediation plan (#241) @Rul1an
  • refactor(monitor): extract run_linux helpers (extract-only) (#239) @Rul1an
  • fix(args_valid): enforce policy allow/deny in runtime path (#238) @Rul1an
  • refactor(runner): decompose run_test_with_policy extract-only (#237) @Rul1an
  • fix(trace): default tool-only trace fixtures to input=ignore (#236) @Rul1an
  • test(runner): freeze retry/flake/on_error contracts before decomposition (#233) @Rul1an
  • fix(trace): harden episode-end/EOF metadata merge semantics (#232) @Rul1an
  • chore(core-e4b): tighten error-mapping comments (#254) @Rul1an
  • refactor(registry-e3b): keep legacy DSSE helper test-local (#252) @Rul1an
  • test(registry-e3a): freeze legacy digest/signature contracts (#250) @Rul1an
  • refactor(registry-e2c): freeze digest contracts and dedup helpers (#247) @Rul1an
  • refactor(metrics-e2b): centralize policy warning dedup semantics (#246) @Rul1an
  • refactor(metrics-e2a): unify tool-call extraction across metrics (#245) @Rul1an
  • docs(rfc-002): harden E1 stop-lines and gates from review (#244) @Rul1an
  • refactor(storage-e1): unify run writes and canonicalize started_at (#242) @Rul1an
  • docs(rfc): add RFC-002 code-health remediation plan (#241) @Rul1an
  • refactor(monitor): extract run_linux helpers (extract-only) (#239) @Rul1an
  • fix(args_valid): enforce policy allow/deny in runtime path (#238) @Rul1an
  • refactor(runner): decompose run_test_with_policy extract-only (#237) @Rul1an
  • fix(trace): default tool-only trace fixtures to input=ignore (#236) @Rul1an
  • test(runner): freeze retry/flake/on_error contracts before decomposition (#233) @Rul1an
  • chore(core-e4d): normalize AllowedOnError comment (#256) @Rul1an
  • chore(core-e4b): tighten error-mapping comments (#254) @Rul1an
  • chore(core-e4a): clean stale comments in runner and diagnostics (#253) @Rul1an
  • refactor(registry-e3b): keep legacy DSSE helper test-local (#252) @Rul1an
  • test(registry-e3a): freeze legacy digest/signature contracts (#250) @Rul1an
  • refactor(registry-e2c): freeze digest contracts and dedup helpers (#247) @Rul1an
  • refactor(metrics-e2b): centralize policy warning dedup semantics (#246) @Rul1an
  • refactor(metrics-e2a): unify tool-call extraction across metrics (#245) @Rul1an
  • docs(rfc-002): harden E1 stop-lines and gates from review (#244) @Rul1an
  • refactor(storage-e1): unify run writes and canonicalize started_at (#242) @Rul1an
  • docs(rfc): add RFC-002 code-health remediation plan (#241) @Rul1an
  • refactor(monitor): extract run_linux helpers (extract-only) (#239) @Rul1an
  • fix(args_valid): enforce policy allow/deny in runtime path (#238) @Rul1an
  • refactor(runner): decompose run_test_with_policy extract-only (#237) @Rul1an
  • test(generate-e5-g1): freeze generate ingest/mode/diff contracts (#260) @Rul1an
  • docs(rfc-003): add generate decomposition plan and refresh RFC-002 status (#259) @Rul1an
  • chore(core-e4d): normalize AllowedOnError comment (#256) @Rul1an
  • chore(cli-e4c): reduce config-path comment noise (#255) @Rul1an
  • chore(core-e4b): tighten error-mapping comments (#254) @Rul1an
  • chore(core-e4a): clean stale comments in runner and diagnostics (#253) @Rul1an
  • refactor(registry-e3b): keep legacy DSSE helper test-local (#252) @Rul1an
  • test(registry-e3a): freeze legacy digest/signature contracts (#250) @Rul1an
  • refactor(registry-e2c): freeze digest contracts and dedup helpers (#247) @Rul1an
  • refactor(metrics-e2b): centralize policy warning dedup semantics (#246) @Rul1an
  • refactor(metrics-e2a): unify tool-call extraction across metrics (#245) @Rul1an
  • docs(rfc-002): harden E1 stop-lines and gates from review (#244) @Rul1an
  • refactor(storage-e1): unify run writes and canonicalize started_at (#242) @Rul1an
  • docs(rfc): add RFC-002 code-health remediation plan (#241) @Rul1an
  • refactor(generate-e5-g2): extract args/model DTO layer (no logic move) (#262) @Rul1an
  • test(generate-e5-g1): freeze generate ingest/mode/diff contracts (#260) @Rul1an
  • docs(rfc-003): add generate decomposition plan and refresh RFC-002 status (#259) @Rul1an
  • chore(core-e4d): normalize AllowedOnError comment (#256) @Rul1an
  • chore(cli-e4c): reduce config-path comment noise (#255) @Rul1an
  • chore(core-e4b): tighten error-mapping comments (#254) @Rul1an
  • chore(core-e4a): clean stale comments in runner and diagnostics (#253) @Rul1an
  • refactor(registry-e3b): keep legacy DSSE helper test-local (#252) @Rul1an
  • test(registry-e3a): freeze legacy digest/signature contracts (#250) @Rul1an
  • refactor(registry-e2c): freeze digest contracts and dedup helpers (#247) @Rul1an
  • refactor(metrics-e2b): centralize policy warning dedup semantics (#246) @Rul1an
  • refactor(metrics-e2a): unify tool-call extraction across metrics (#245) @Rul1an
  • docs(rfc-002): harden E1 stop-lines and gates from review (#244) @Rul1an
  • refactor(generate-e5-g3): extract ingest/aggregation layer (no behavior drift) (#264) @Rul1an
  • refactor(generate-e5-g2): extract args/model DTO layer (no logic move) (#262) @Rul1an
  • test(generate-e5-g1): freeze generate ingest/mode/diff contracts (#260) @Rul1an
  • docs(rfc-003): add generate decomposition plan and refresh RFC-002 status (#259) @Rul1an
  • chore(core-e4d): normalize AllowedOnError comment (#256) @Rul1an
  • chore(cli-e4c): reduce config-path comment noise (#255) @Rul1an
  • chore(core-e4b): tighten error-mapping comments (#254) @Rul1an
  • chore(core-e4a): clean stale comments in runner and diagnostics (#253) @Rul1an
  • refactor(registry-e3b): keep legacy DSSE helper test-local (#252) @Rul1an
  • test(registry-e3a): freeze legacy digest/signature contracts (#250) @Rul1an
  • refactor(registry-e2c): freeze digest contracts and dedup helpers (#247) @Rul1an
  • refactor(metrics-e2b): centralize policy warning dedup semantics (#246) @Rul1an
  • refactor(metrics-e2a): unify tool-call extraction across metrics (#245) @Rul1an
  • refactor(generate-e5-g4): extract profile/classification layer (no logic drift) (#266) @Rul1an
  • refactor(generate-e5-g3): extract ingest/aggregation layer (no behavior drift) (#264) @Rul1an
  • refactor(generate-e5-g2): extract args/model DTO layer (no logic move) (#262) @Rul1an
  • test(generate-e5-g1): freeze generate ingest/mode/diff contracts (#260) @Rul1an
  • docs(rfc-003): add generate decomposition plan and refresh RFC-002 status (#259) @Rul1an
  • chore(core-e4d): normalize AllowedOnError comment (#256) @Rul1an
  • chore(cli-e4c): reduce config-path comment noise (#255) @Rul1an
  • chore(core-e4b): tighten error-mapping comments (#254) @Rul1an
  • chore(core-e4a): clean stale comments in runner and diagnostics (#253) @Rul1an
  • refactor(registry-e3b): keep legacy DSSE helper test-local (#252) @Rul1an
  • test(registry-e3a): freeze legacy digest/signature contracts (#250) @Rul1an
  • refactor(registry-e2c): freeze digest contracts and dedup helpers (#247) @Rul1an
  • refactor(generate-e5-g5): extract diff subsystem (no behavior drift) (#268) @Rul1an
  • refactor(generate-e5-g4): extract profile/classification layer (no logic drift) (#266) @Rul1an
  • refactor(generate-e5-g3): extract ingest/aggregation layer (no behavior drift) (#264) @Rul1an
  • refactor(generate-e5-g2): extract args/model DTO layer (no logic move) (#262) @Rul1an
  • test(generate-e5-g1): freeze generate ingest/mode/diff contracts (#260) @Rul1an
  • docs(rfc-003): add generate decomposition plan and refresh RFC-002 status (#259) @Rul1an
  • chore(core-e4d): normalize AllowedOnError comment (#256) @Rul1an
  • chore(cli-e4c): reduce config-path comment noise (#255) @Rul1an
  • chore(core-e4b): tighten error-mapping comments (#254) @Rul1an
  • chore(core-e4a): clean stale comments in runner and diagnostics (#253) @Rul1an
  • refactor(registry-e3b): keep legacy DSSE helper test-local (#252) @Rul1an
  • test(registry-e3a): freeze legacy digest/signature contracts (#250) @Rul1an

  • feat(demo): upgrade demo strategy with privacy-first hero, 16:9 tapes, and devcontainer (#283) @Rul1an

  • docs(governance): sweep structure, archive redundant, sync RFC/roadmap status (#282) @Rul1an
  • fix(monitor): avoid partial move of --ebpf args in linux monitor path (#281) @Rul1an
  • chore(ci): bump PyO3/maturin-action from 1.49.4 to 1.50.0 (#277) app/dependabot
  • chore(ci): bump github/codeql-action from 3.32.1 to 3.32.2 (#276) app/dependabot
  • chore(ci): bump peter-evans/create-pull-request from 7.0.5 to 7.0.11 (#275) app/dependabot
  • docs(rfc-004): converge O2 status evidence across RFC docs (#273) @Rul1an
  • feat(demo): upgrade demo strategy with privacy-first hero, 16:9 tapes, and devcontainer (#283) @Rul1an
  • docs(governance): sweep structure, archive redundant, sync RFC/roadmap status (#282) @Rul1an
  • fix(monitor): avoid partial move of --ebpf args in linux monitor path (#281) @Rul1an
  • chore(ci): bump PyO3/maturin-action from 1.49.4 to 1.50.0 (#277) app/dependabot
  • chore(ci): bump github/codeql-action from 3.32.1 to 3.32.2 (#276) app/dependabot
  • chore(ci): bump peter-evans/create-pull-request from 7.0.5 to 7.0.11 (#275) app/dependabot
  • docs(rfc-004): converge O2 status evidence across RFC docs (#273) @Rul1an
  • feat(demo): upgrade demo strategy with privacy-first hero, 16:9 tapes, and devcontainer (#283) @Rul1an
  • docs(governance): sweep structure, archive redundant, sync RFC/roadmap status (#282) @Rul1an
  • fix(monitor): avoid partial move of --ebpf args in linux monitor path (#281) @Rul1an
  • chore(ci): bump PyO3/maturin-action from 1.49.4 to 1.50.0 (#277) app/dependabot
  • chore(ci): bump github/codeql-action from 3.32.1 to 3.32.2 (#276) app/dependabot
  • chore(ci): bump peter-evans/create-pull-request from 7.0.5 to 7.0.11 (#275) app/dependabot
  • docs(rfc-004): converge O2 status evidence across RFC docs (#273) @Rul1an

  • feat(evidence): CICD Starter Pack + merge-gates (ADR-023) (#289) @Rul1an

  • feat(pack-engine): implement local discovery (ADR-021) and SOC2 baseline (ADR-022) (#287) @Rul1an
  • feat(evidence): ADR-024 E1 — VerifyLimitsOverrides (Sim Hardening foundation) (#291) @Rul1an
  • feat(evidence): CICD Starter Pack + merge-gates (ADR-023) (#289) @Rul1an
  • feat(pack-engine): implement local discovery (ADR-021) and SOC2 baseline (ADR-022) (#287) @Rul1an
  • feat(adr-024): E2–E6 sim hardening — CLI flags, integrity attacks, report metadata (#293) @Rul1an
  • feat(evidence): ADR-024 E1 — VerifyLimitsOverrides (Sim Hardening foundation) (#291) @Rul1an
  • feat(evidence): CICD Starter Pack + merge-gates (ADR-023) (#289) @Rul1an
  • feat(pack-engine): implement local discovery (ADR-021) and SOC2 baseline (ADR-022) (#287) @Rul1an
  • feat(adr-024): E2–E6 sim hardening — CLI flags, integrity attacks, report metadata (#293) @Rul1an
  • feat(evidence): ADR-024 E1 — VerifyLimitsOverrides (Sim Hardening foundation) (#291) @Rul1an
  • feat(evidence): CICD Starter Pack + merge-gates (ADR-023) (#289) @Rul1an
  • feat(pack-engine): implement local discovery (ADR-021) and SOC2 baseline (ADR-022) (#287) @Rul1an

  • fix(ci): work around self-hosted _actions permission error in eBPF job (#309) @Rul1an

  • refactor(evidence): split json_strict into module (#307) @Rul1an
  • refactor(registry): centralize REGISTRY_USER_AGENT constant (#306) @Rul1an
  • hardening(ci): pin actions and tighten workflow security (#312) @Rul1an
  • fix(ci): work around self-hosted _actions permission error in eBPF job (#309) @Rul1an
  • refactor(evidence): split json_strict into module (#307) @Rul1an
  • refactor(registry): centralize REGISTRY_USER_AGENT constant (#306) @Rul1an
  • ci(wave0): land split guardrails + robust semver baseline fetch (#329) @Rul1an
  • fix(ci): ensure cargo in PATH for eBPF self-hosted Install Dependencies step (#328) @Rul1an
  • hardening(ci): pin actions and tighten workflow security (#312) @Rul1an
  • fix(ci): work around self-hosted _actions permission error in eBPF job (#309) @Rul1an
  • refactor(registry): split canonicalize.rs into module (#308) @Rul1an
  • refactor(evidence): split json_strict into module (#307) @Rul1an
  • refactor(registry): centralize REGISTRY_USER_AGENT constant (#306) @Rul1an
  • refactor(writer-step3): split writer behind stable facade (#332) @Rul1an
  • refactor(verify-step2): mechanical split behind stable verify facade (#331) @Rul1an
  • ci(wave0): land split guardrails + robust semver baseline fetch (#329) @Rul1an
  • fix(ci): ensure cargo in PATH for eBPF self-hosted Install Dependencies step (#328) @Rul1an
  • hardening(ci): pin actions and tighten workflow security (#312) @Rul1an
  • fix(ci): work around self-hosted _actions permission error in eBPF job (#309) @Rul1an
  • chore(release): sync workspace to v2.18.0 (#334) @Rul1an
  • refactor(writer-step3): split writer behind stable facade (#332) @Rul1an
  • refactor(verify-step2): mechanical split behind stable verify facade (#331) @Rul1an
  • ci(wave0): land split guardrails + robust semver baseline fetch (#329) @Rul1an
  • fix(ci): ensure cargo in PATH for eBPF self-hosted Install Dependencies step (#328) @Rul1an
  • hardening(ci): pin actions and tighten workflow security (#312) @Rul1an

  • docs(ci/wave4): default review BASE_REF to origin/main (#346) @Rul1an

  • refactor(wave4): finalize cache thinness + explain split on main (#345) @Rul1an
  • refactor(wave4-step3): split explain behind stable facade (#344) @Rul1an
  • refactor(wave4-step2x): thin cache facade behind cache_next boundaries (#343) @Rul1an
  • chore(stack): promote wave3/wave4 integration branch to main (#341) @Rul1an
  • refactor(wave4-step2): split lockfile/cache behind stable facades (#340) @Rul1an
  • refactor(wave5-step3): close verify split behind stable facade (#351) @Rul1an
  • refactor(verify-step2): scaffold split behind stable facade (#349) @Rul1an
  • test/docs(wave5-step1): freeze verify contracts before split (#348) @Rul1an
  • docs(ci/wave4): default review BASE_REF to origin/main (#346) @Rul1an
  • refactor(wave4): finalize cache thinness + explain split on main (#345) @Rul1an
  • refactor(wave4-step3): split explain behind stable facade (#344) @Rul1an
  • refactor(wave4-step2x): thin cache facade behind cache_next boundaries (#343) @Rul1an
  • chore(stack): promote wave3/wave4 integration branch to main (#341) @Rul1an
  • refactor(wave4-step2): split lockfile/cache behind stable facades (#340) @Rul1an
  • docs(ci/wave6-step1): freeze CI hardening baseline and reviewer gates (#353) @Rul1an
  • docs(plan): sync wave5 status and verify_internal wording (#352) @Rul1an
  • refactor(wave5-step3): close verify split behind stable facade (#351) @Rul1an
  • refactor(verify-step2): scaffold split behind stable facade (#349) @Rul1an
  • test/docs(wave5-step1): freeze verify contracts before split (#348) @Rul1an
  • docs(ci/wave4): default review BASE_REF to origin/main (#346) @Rul1an
  • refactor(wave4): finalize cache thinness + explain split on main (#345) @Rul1an
  • refactor(wave4-step3): split explain behind stable facade (#344) @Rul1an
  • refactor(wave4-step2x): thin cache facade behind cache_next boundaries (#343) @Rul1an
  • chore(stack): promote wave3/wave4 integration branch to main (#341) @Rul1an
  • refactor(wave4-step2): split lockfile/cache behind stable facades (#340) @Rul1an
  • ci(wave6-step3): add non-blocking nightly safety lane + reviewer gates (#356) @Rul1an
  • ci(wave6-step2): add release attestation producer+verify pair (#355) @Rul1an
  • docs(ci/wave6-step1): freeze CI hardening baseline and reviewer gates (#353) @Rul1an
  • docs(plan): sync wave5 status and verify_internal wording (#352) @Rul1an
  • refactor(wave5-step3): close verify split behind stable facade (#351) @Rul1an
  • refactor(verify-step2): scaffold split behind stable facade (#349) @Rul1an
  • test/docs(wave5-step1): freeze verify contracts before split (#348) @Rul1an
  • docs(ci/wave4): default review BASE_REF to origin/main (#346) @Rul1an
  • refactor(wave4): finalize cache thinness + explain split on main (#345) @Rul1an
  • refactor(wave4-step3): split explain behind stable facade (#344) @Rul1an
  • refactor(wave4-step2x): thin cache facade behind cache_next boundaries (#343) @Rul1an
  • chore(stack): promote wave3/wave4 integration branch to main (#341) @Rul1an
  • refactor(wave4-step2): split lockfile/cache behind stable facades (#340) @Rul1an

  • docs(adr025): promote Step3 C3 closure to main (#390) @Rul1an

  • docs(adr025): Step3 closure (promotion criteria + reviewer gates) (C3) (#389) @Rul1an
  • ci(adr025): add nightly readiness aggregation workflow + report script (Step3 C2) (#388) @Rul1an
  • ci(adr025): add SHA-pinned nightly soak workflow + reviewer gate (Step3 C1) (#387) @Rul1an
  • feat(sim): implement ADR-025 soak report v1 generation + schema validation + determinism (B2) (#386) @Rul1an
  • ADR-025 I1: promote Step1+Step2(B1) to main (#384) @Rul1an
  • feat(sim): add ADR-025 soak CLI parse and stub dispatch (B1) (#382) @Rul1an
  • ADR-025 I1 Step1: freeze plan + soak report v1 schema (#381) @Rul1an

  • docs(adr025): promote Step4C closure artifacts to main (#399) @Rul1an

  • docs(adr025): Step4C closure (runbook + reviewer gates + roadmap sync) (#398) @Rul1an
  • ci(adr025): promote Step4B release-lane readiness enforcement to main (#397) @Rul1an
  • ci(adr025): enforce soak readiness policy in release lane (Step4B) (#396) @Rul1an
  • docs(adr025): freeze Step4 soak enforcement policy v1 (Step4A) (#394) @Rul1an
  • ci(adr025): relax C3 gate fragility with local-action + permission allowlist (C3.2) (#393) @Rul1an
  • ci(adr025): harden Step3 C3 reviewer gate contracts (C3.1) (#391) @Rul1an

  • docs(adr026): close A2A rollout with checklist + review pack (A2A Step3) (#453) @Rul1an

  • feat(adr026): add A2A adapter MVP + conformance fixtures (A2A Step2) (#452) @Rul1an
  • docs(adr026): freeze A2A follow-up contract + crate skeleton (A2A Step1) (#451) @Rul1an
  • docs(adr011-012): sync signing boundary to open-core policy (#449) @Rul1an
  • docs(adr026): close adapter rollout with checklist + review pack (Step3) (#446) @Rul1an
  • feat(adr026): add ACP adapter MVP + conformance fixtures (Step2) (#445) @Rul1an
  • feat(adr026): add ACP adapter MVP + conformance fixtures (Step2) (#444) @Rul1an
  • feat(adr026): freeze adapter API contract + reviewer gate (Step1) (#443) @Rul1an
  • fix(adr025-i2): align closure evaluator with soak schema version (#442) @Rul1an
  • docs(adr016): sync SOC2 baseline open-core status + roadmap (#441) @Rul1an
  • ci: harden docs-only CI publication and perf triggering (#455) @Rul1an
  • docs(adr026): close A2A rollout with checklist + review pack (A2A Step3) (#453) @Rul1an
  • feat(adr026): add A2A adapter MVP + conformance fixtures (A2A Step2) (#452) @Rul1an
  • docs(adr026): freeze A2A follow-up contract + crate skeleton (A2A Step1) (#451) @Rul1an
  • docs(adr011-012): sync signing boundary to open-core policy (#449) @Rul1an
  • docs(adr026): close adapter rollout with checklist + review pack (Step3) (#446) @Rul1an
  • feat(adr026): add ACP adapter MVP + conformance fixtures (Step2) (#445) @Rul1an
  • feat(adr026): add ACP adapter MVP + conformance fixtures (Step2) (#444) @Rul1an
  • feat(adr026): freeze adapter API contract + reviewer gate (Step1) (#443) @Rul1an
  • fix(adr025-i2): align closure evaluator with soak schema version (#442) @Rul1an
  • docs(adr016): sync SOC2 baseline open-core status + roadmap (#441) @Rul1an
  • docs(adr026): freeze AttachmentWriter host boundary (E2A) (#461) @Rul1an
  • feat(adr026): add adapter metadata identity to API and events (Stab E0B) (#460) @Rul1an
  • docs(adr026): freeze adapter metadata contract (E0A) (#458) @Rul1an
  • fix(adr026): preserve ACP attributes and lossiness invariants (Stab E1) (#457) @Rul1an
  • ci: harden docs-only CI publication and perf triggering (#455) @Rul1an
  • docs(adr026): close A2A rollout with checklist + review pack (A2A Step3) (#453) @Rul1an
  • feat(adr026): add A2A adapter MVP + conformance fixtures (A2A Step2) (#452) @Rul1an
  • docs(adr026): freeze A2A follow-up contract + crate skeleton (A2A Step1) (#451) @Rul1an
  • docs(adr011-012): sync signing boundary to open-core policy (#449) @Rul1an
  • docs(adr026): close adapter rollout with checklist + review pack (Step3) (#446) @Rul1an
  • feat(adr026): add ACP adapter MVP + conformance fixtures (Step2) (#445) @Rul1an
  • feat(adr026): add ACP adapter MVP + conformance fixtures (Step2) (#444) @Rul1an
  • feat(adr026): freeze adapter API contract + reviewer gate (Step1) (#443) @Rul1an
  • fix(adr025-i2): align closure evaluator with soak schema version (#442) @Rul1an
  • docs(adr016): sync SOC2 baseline open-core status + roadmap (#441) @Rul1an

  • docs(adr026): sync accepted status and roadmap progress (#471) @Rul1an

  • ci: auto-merge generated docs update PRs (#470) @Rul1an
  • docs(adr026): close parser hardening rollout with checklist and review pack (Stab E4C) (#469) @Rul1an
  • feat(adr026): harden adapter parser caps and property tests (Stab E4B) (#468) @Rul1an
  • docs(adr026): freeze parser hardening boundary + reviewer gate (Stab E4A) (#467) @Rul1an
  • feat(adr026): canonicalize event digests and enforce key-order independence (Stab E3B) (#466) @Rul1an
  • feat(adr026): canonicalize event digests and enforce key-order independence (Stab E3B) (#465) @Rul1an
  • docs(adr026): freeze UCP follow-up contract + crate skeleton (UCP Step1) (#473) @Rul1an
  • docs(adr026): sync accepted status and roadmap progress (#471) @Rul1an
  • ci: auto-merge generated docs update PRs (#470) @Rul1an
  • docs(adr026): close parser hardening rollout with checklist and review pack (Stab E4C) (#469) @Rul1an
  • feat(adr026): harden adapter parser caps and property tests (Stab E4B) (#468) @Rul1an
  • docs(adr026): freeze parser hardening boundary + reviewer gate (Stab E4A) (#467) @Rul1an
  • feat(adr026): canonicalize event digests and enforce key-order independence (Stab E3B) (#466) @Rul1an
  • feat(adr026): canonicalize event digests and enforce key-order independence (Stab E3B) (#465) @Rul1an

  • docs(adr026): sync UCP accepted status + roadmap progress (#478) @Rul1an

  • docs(adr026): close UCP rollout with checklist + review pack (UCP Step3) (#476) @Rul1an
  • feat(adr026): add UCP adapter MVP + conformance fixtures (UCP Step2) (#475) @Rul1an
  • docs(adr026): freeze adapter distribution policy (#480) @Rul1an
  • docs(adr026): sync UCP accepted status + roadmap progress (#478) @Rul1an
  • docs(adr026): close UCP rollout with checklist + review pack (UCP Step3) (#476) @Rul1an
  • feat(adr026): add UCP adapter MVP + conformance fixtures (UCP Step2) (#475) @Rul1an
  • docs(adr025): accept ADR-025 status on main (#482) @Rul1an
  • docs(adr026): freeze adapter distribution policy (#480) @Rul1an
  • docs(adr026): sync UCP accepted status + roadmap progress (#478) @Rul1an
  • docs(adr026): close UCP rollout with checklist + review pack (UCP Step3) (#476) @Rul1an
  • feat(adr026): add UCP adapter MVP + conformance fixtures (UCP Step2) (#475) @Rul1an

  • docs(adr013): sync accepted status in ADR index (#486) @Rul1an

  • docs(adr024): sync superseded status in ADR index (#484) @Rul1an
  • docs(experiment): freeze MCP fragmented IPI plan + policy contract (#488) @Rul1an
  • docs(adr013): sync accepted status in ADR index (#486) @Rul1an
  • docs(adr024): sync superseded status in ADR index (#484) @Rul1an
  • docs(exp): close fragmented IPI experiment rollout (Step3) (#491) @Rul1an
  • test(exp): add fragmented IPI MCP harness + scoring (Step2) (#490) @Rul1an
  • docs(experiment): freeze MCP fragmented IPI plan + policy contract (#488) @Rul1an
  • docs(adr013): sync accepted status in ADR index (#486) @Rul1an
  • docs(adr024): sync superseded status in ADR index (#484) @Rul1an
  • docs(exp): publish fragmented IPI experiment results + rerun guide (#493) @Rul1an
  • docs(exp): close fragmented IPI experiment rollout (Step3) (#491) @Rul1an
  • test(exp): add fragmented IPI MCP harness + scoring (Step2) (#490) @Rul1an
  • docs(experiment): freeze MCP fragmented IPI plan + policy contract (#488) @Rul1an
  • docs(adr013): sync accepted status in ADR index (#486) @Rul1an
  • docs(adr024): sync superseded status in ADR index (#484) @Rul1an
  • docs(exp): add results discussion and follow-up framing (#495) @Rul1an
  • docs(exp): publish fragmented IPI experiment results + rerun guide (#493) @Rul1an
  • docs(exp): close fragmented IPI experiment rollout (Step3) (#491) @Rul1an
  • test(exp): add fragmented IPI MCP harness + scoring (Step2) (#490) @Rul1an
  • docs(experiment): freeze MCP fragmented IPI plan + policy contract (#488) @Rul1an
  • docs(adr013): sync accepted status in ADR index (#486) @Rul1an
  • docs(adr024): sync superseded status in ADR index (#484) @Rul1an
  • docs(exp): freeze fragmented IPI ablation study contract (Step1) (#497) @Rul1an
  • docs(exp): add results discussion and follow-up framing (#495) @Rul1an
  • docs(exp): publish fragmented IPI experiment results + rerun guide (#493) @Rul1an
  • docs(exp): close fragmented IPI experiment rollout (Step3) (#491) @Rul1an
  • test(exp): add fragmented IPI MCP harness + scoring (Step2) (#490) @Rul1an
  • docs(experiment): freeze MCP fragmented IPI plan + policy contract (#488) @Rul1an
  • docs(adr013): sync accepted status in ADR index (#486) @Rul1an
  • docs(adr024): sync superseded status in ADR index (#484) @Rul1an
  • test(exp): add fragmented IPI ablation harness modes (Step2) (#499) @Rul1an
  • docs(exp): freeze fragmented IPI ablation study contract (Step1) (#497) @Rul1an
  • docs(exp): add results discussion and follow-up framing (#495) @Rul1an
  • docs(exp): publish fragmented IPI experiment results + rerun guide (#493) @Rul1an
  • docs(exp): close fragmented IPI experiment rollout (Step3) (#491) @Rul1an
  • test(exp): add fragmented IPI MCP harness + scoring (Step2) (#490) @Rul1an
  • docs(experiment): freeze MCP fragmented IPI plan + policy contract (#488) @Rul1an
  • docs(adr013): sync accepted status in ADR index (#486) @Rul1an
  • docs(adr024): sync superseded status in ADR index (#484) @Rul1an
  • docs(exp): freeze ablation live-enable contract (#501) @Rul1an
  • test(exp): add fragmented IPI ablation harness modes (Step2) (#499) @Rul1an
  • docs(exp): freeze fragmented IPI ablation study contract (Step1) (#497) @Rul1an
  • docs(exp): add results discussion and follow-up framing (#495) @Rul1an
  • docs(exp): publish fragmented IPI experiment results + rerun guide (#493) @Rul1an
  • docs(exp): close fragmented IPI experiment rollout (Step3) (#491) @Rul1an
  • test(exp): add fragmented IPI MCP harness + scoring (Step2) (#490) @Rul1an
  • docs(experiment): freeze MCP fragmented IPI plan + policy contract (#488) @Rul1an
  • docs(adr013): sync accepted status in ADR index (#486) @Rul1an
  • docs(adr024): sync superseded status in ADR index (#484) @Rul1an
  • test(exp): enable live ablation harness wiring (#503) @Rul1an
  • docs(exp): freeze ablation live-enable contract (#501) @Rul1an
  • test(exp): add fragmented IPI ablation harness modes (Step2) (#499) @Rul1an
  • docs(exp): freeze fragmented IPI ablation study contract (Step1) (#497) @Rul1an
  • docs(exp): add results discussion and follow-up framing (#495) @Rul1an
  • docs(exp): publish fragmented IPI experiment results + rerun guide (#493) @Rul1an
  • docs(exp): close fragmented IPI experiment rollout (Step3) (#491) @Rul1an
  • test(exp): add fragmented IPI MCP harness + scoring (Step2) (#490) @Rul1an
  • docs(experiment): freeze MCP fragmented IPI plan + policy contract (#488) @Rul1an
  • docs(adr013): sync accepted status in ADR index (#486) @Rul1an
  • docs(adr024): sync superseded status in ADR index (#484) @Rul1an

  • test(exp): add fragmented IPI compat host (#513) @Rul1an

  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • fix(exp): harden live ablation env handling (#510) @Rul1an
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • fix(exp): harden live ablation env handling (#510) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.4 to 3.32.5 (#507) app/dependabot
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • fix(exp): harden live ablation env handling (#510) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.4 to 3.32.5 (#507) app/dependabot
  • chore(ci): bump PyO3/maturin-action from 1.50.0 to 1.50.1 (#505) app/dependabot
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • fix(exp): harden live ablation env handling (#510) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.4 to 3.32.5 (#507) app/dependabot
  • chore(ci): bump PyO3/maturin-action from 1.50.0 to 1.50.1 (#505) app/dependabot
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • fix(exp): harden live ablation env handling (#510) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.4 to 3.32.5 (#507) app/dependabot
  • chore(ci): bump PyO3/maturin-action from 1.50.0 to 1.50.1 (#505) app/dependabot
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • fix(exp): harden live ablation env handling (#510) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.4 to 3.32.5 (#507) app/dependabot
  • chore(ci): bump PyO3/maturin-action from 1.50.0 to 1.50.1 (#505) app/dependabot
  • docs(exp): publish live ablation results + rerun guide (#520) @Rul1an
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • fix(exp): harden live ablation env handling (#510) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.4 to 3.32.5 (#507) app/dependabot
  • chore(ci): bump PyO3/maturin-action from 1.50.0 to 1.50.1 (#505) app/dependabot
  • docs(exp): promote hermetic ablation rerun provenance (#522) @Rul1an
  • docs(exp): publish live ablation results + rerun guide (#520) @Rul1an
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • fix(exp): harden live ablation env handling (#510) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.4 to 3.32.5 (#507) app/dependabot
  • chore(ci): bump PyO3/maturin-action from 1.50.0 to 1.50.1 (#505) app/dependabot
  • docs(exp): freeze wrap-bypass variant contract (#524) @Rul1an
  • docs(exp): promote hermetic ablation rerun provenance (#522) @Rul1an
  • docs(exp): publish live ablation results + rerun guide (#520) @Rul1an
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • fix(exp): harden live ablation env handling (#510) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.4 to 3.32.5 (#507) app/dependabot
  • chore(ci): bump PyO3/maturin-action from 1.50.0 to 1.50.1 (#505) app/dependabot
  • test(exp): add wrap-bypass ablation scorer and fixtures (Step2) (#526) @Rul1an
  • docs(exp): freeze wrap-bypass variant contract (#524) @Rul1an
  • docs(exp): promote hermetic ablation rerun provenance (#522) @Rul1an
  • docs(exp): publish live ablation results + rerun guide (#520) @Rul1an
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • fix(exp): harden live ablation env handling (#510) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.4 to 3.32.5 (#507) app/dependabot
  • docs(exp): publish wrap-bypass live results + rerun guide (#528) @Rul1an
  • test(exp): add wrap-bypass ablation scorer and fixtures (Step2) (#526) @Rul1an
  • docs(exp): freeze wrap-bypass variant contract (#524) @Rul1an
  • docs(exp): promote hermetic ablation rerun provenance (#522) @Rul1an
  • docs(exp): publish live ablation results + rerun guide (#520) @Rul1an
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • fix(exp): harden live ablation env handling (#510) @Rul1an
  • docs(exp): freeze second sink variant contract (#530) @Rul1an
  • docs(exp): publish wrap-bypass live results + rerun guide (#528) @Rul1an
  • test(exp): add wrap-bypass ablation scorer and fixtures (Step2) (#526) @Rul1an
  • docs(exp): freeze wrap-bypass variant contract (#524) @Rul1an
  • docs(exp): promote hermetic ablation rerun provenance (#522) @Rul1an
  • docs(exp): publish live ablation results + rerun guide (#520) @Rul1an
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • test(exp): add second sink class generality harness (Step2) (#532) @Rul1an
  • docs(exp): freeze second sink variant contract (#530) @Rul1an
  • docs(exp): publish wrap-bypass live results + rerun guide (#528) @Rul1an
  • test(exp): add wrap-bypass ablation scorer and fixtures (Step2) (#526) @Rul1an
  • docs(exp): freeze wrap-bypass variant contract (#524) @Rul1an
  • docs(exp): promote hermetic ablation rerun provenance (#522) @Rul1an
  • docs(exp): publish live ablation results + rerun guide (#520) @Rul1an
  • test(exp): add fragmented IPI compat host (#513) @Rul1an
  • docs(exp): publish second-sink live results + rerun guide (#534) @Rul1an
  • test(exp): add second sink class generality harness (Step2) (#532) @Rul1an
  • docs(exp): freeze second sink variant contract (#530) @Rul1an
  • docs(exp): publish wrap-bypass live results + rerun guide (#528) @Rul1an
  • test(exp): add wrap-bypass ablation scorer and fixtures (Step2) (#526) @Rul1an
  • docs(exp): freeze wrap-bypass variant contract (#524) @Rul1an
  • docs(exp): promote hermetic ablation rerun provenance (#522) @Rul1an
  • docs(exp): publish live ablation results + rerun guide (#520) @Rul1an
  • docs(exp): publish second-sink live results + rerun guide (#534) @Rul1an
  • test(exp): add second sink class generality harness (Step2) (#532) @Rul1an
  • docs(exp): freeze second sink variant contract (#530) @Rul1an
  • docs(exp): publish wrap-bypass live results + rerun guide (#528) @Rul1an
  • test(exp): add wrap-bypass ablation scorer and fixtures (Step2) (#526) @Rul1an
  • docs(exp): freeze wrap-bypass variant contract (#524) @Rul1an
  • docs(exp): promote hermetic ablation rerun provenance (#522) @Rul1an
  • docs(exp): publish live ablation results + rerun guide (#520) @Rul1an
  • test(exp): add sink failure variant harness + scoring (#539) @Rul1an
  • docs(exp): freeze sink failure variant contract (#538) @Rul1an
  • docs(exp): publish second-sink live results + rerun guide (#534) @Rul1an
  • test(exp): add second sink class generality harness (Step2) (#532) @Rul1an
  • docs(exp): freeze second sink variant contract (#530) @Rul1an
  • docs(exp): publish wrap-bypass live results + rerun guide (#528) @Rul1an
  • test(exp): add wrap-bypass ablation scorer and fixtures (Step2) (#526) @Rul1an
  • docs(exp): freeze wrap-bypass variant contract (#524) @Rul1an
  • docs(exp): promote hermetic ablation rerun provenance (#522) @Rul1an
  • docs(exp): publish live ablation results + rerun guide (#520) @Rul1an
  • docs(exp): publish sink-failure live results + rerun guide (#541) @Rul1an
  • test(exp): add sink failure variant harness + scoring (#539) @Rul1an
  • docs(exp): freeze sink failure variant contract (#538) @Rul1an
  • docs(exp): publish second-sink live results + rerun guide (#534) @Rul1an
  • test(exp): add second sink class generality harness (Step2) (#532) @Rul1an
  • docs(exp): freeze second sink variant contract (#530) @Rul1an
  • docs(exp): publish wrap-bypass live results + rerun guide (#528) @Rul1an
  • test(exp): add wrap-bypass ablation scorer and fixtures (Step2) (#526) @Rul1an
  • docs(exp): freeze wrap-bypass variant contract (#524) @Rul1an
  • docs(exp): promote hermetic ablation rerun provenance (#522) @Rul1an
  • docs(exp): freeze cross-session decay contract (#543) @Rul1an
  • docs(exp): publish sink-failure live results + rerun guide (#541) @Rul1an
  • test(exp): add sink failure variant harness + scoring (#539) @Rul1an
  • docs(exp): freeze sink failure variant contract (#538) @Rul1an
  • docs(exp): publish second-sink live results + rerun guide (#534) @Rul1an
  • test(exp): add second sink class generality harness (Step2) (#532) @Rul1an
  • docs(exp): freeze second sink variant contract (#530) @Rul1an
  • docs(exp): publish wrap-bypass live results + rerun guide (#528) @Rul1an
  • test(exp): add wrap-bypass ablation scorer and fixtures (Step2) (#526) @Rul1an
  • docs(exp): freeze wrap-bypass variant contract (#524) @Rul1an
  • test(exp): add cross-session decay runner + scorer (#545) @Rul1an
  • docs(exp): freeze cross-session decay contract (#543) @Rul1an
  • docs(exp): publish sink-failure live results + rerun guide (#541) @Rul1an
  • test(exp): add sink failure variant harness + scoring (#539) @Rul1an
  • docs(exp): freeze sink failure variant contract (#538) @Rul1an
  • docs(exp): publish second-sink live results + rerun guide (#534) @Rul1an
  • test(exp): add second sink class generality harness (Step2) (#532) @Rul1an
  • docs(exp): freeze second sink variant contract (#530) @Rul1an
  • docs(exp): publish wrap-bypass live results + rerun guide (#528) @Rul1an
  • test(exp): add wrap-bypass ablation scorer and fixtures (Step2) (#526) @Rul1an

  • docs(exp): publish cross-session decay live results + rerun guide (#549) @Rul1an

  • test(exp): fix cross-session decay controls + gate semantics (#547) @Rul1an
  • docs(exp): freeze cross-session decay k+2/k+3 extension (#551) @Rul1an
  • docs(exp): publish cross-session decay live results + rerun guide (#549) @Rul1an
  • test(exp): fix cross-session decay controls + gate semantics (#547) @Rul1an
  • test(exp): extend cross-session decay across full active window (#554) @Rul1an
  • test(exp): extend cross-session decay across full active window (#553) @Rul1an
  • docs(exp): freeze cross-session decay k+2/k+3 extension (#551) @Rul1an
  • docs(exp): publish cross-session decay live results + rerun guide (#549) @Rul1an
  • test(exp): fix cross-session decay controls + gate semantics (#547) @Rul1an
  • docs(exp): publish full-window cross-session decay results (#556) @Rul1an
  • test(exp): extend cross-session decay across full active window (#554) @Rul1an
  • test(exp): extend cross-session decay across full active window (#553) @Rul1an
  • docs(exp): freeze cross-session decay k+2/k+3 extension (#551) @Rul1an
  • docs(exp): publish cross-session decay live results + rerun guide (#549) @Rul1an
  • test(exp): fix cross-session decay controls + gate semantics (#547) @Rul1an
  • docs(roadmap): prioritize route governance core (#558) @Rul1an
  • docs(exp): publish full-window cross-session decay results (#556) @Rul1an
  • test(exp): extend cross-session decay across full active window (#554) @Rul1an
  • test(exp): extend cross-session decay across full active window (#553) @Rul1an
  • docs(exp): freeze cross-session decay k+2/k+3 extension (#551) @Rul1an
  • docs(exp): publish cross-session decay live results + rerun guide (#549) @Rul1an
  • test(exp): fix cross-session decay controls + gate semantics (#547) @Rul1an
  • feat(policy): enforce MCP rules by tool classes (B1) (#561) @Rul1an
  • docs(roadmap): prioritize route governance core (#558) @Rul1an
  • docs(exp): publish full-window cross-session decay results (#556) @Rul1an
  • test(exp): extend cross-session decay across full active window (#554) @Rul1an
  • test(exp): extend cross-session decay across full active window (#553) @Rul1an
  • docs(exp): freeze cross-session decay k+2/k+3 extension (#551) @Rul1an
  • docs(exp): publish cross-session decay live results + rerun guide (#549) @Rul1an
  • test(exp): fix cross-session decay controls + gate semantics (#547) @Rul1an
  • docs(policy): freeze coverage report contract for tool/route completeness (A3) (#563) @Rul1an
  • feat(policy): enforce MCP rules by tool classes (B1) (#561) @Rul1an
  • docs(roadmap): prioritize route governance core (#558) @Rul1an
  • docs(exp): publish full-window cross-session decay results (#556) @Rul1an
  • test(exp): extend cross-session decay across full active window (#554) @Rul1an
  • test(exp): extend cross-session decay across full active window (#553) @Rul1an
  • docs(exp): freeze cross-session decay k+2/k+3 extension (#551) @Rul1an
  • docs(exp): publish cross-session decay live results + rerun guide (#549) @Rul1an
  • test(exp): fix cross-session decay controls + gate semantics (#547) @Rul1an
  • feat(coverage): generate coverage_report_v1 from JSONL inputs (B3.1) (#565) @Rul1an
  • docs(policy): freeze coverage report contract for tool/route completeness (A3) (#563) @Rul1an
  • feat(policy): enforce MCP rules by tool classes (B1) (#561) @Rul1an
  • docs(roadmap): prioritize route governance core (#558) @Rul1an
  • docs(exp): publish full-window cross-session decay results (#556) @Rul1an
  • test(exp): extend cross-session decay across full active window (#554) @Rul1an
  • test(exp): extend cross-session decay across full active window (#553) @Rul1an
  • docs(exp): freeze cross-session decay k+2/k+3 extension (#551) @Rul1an
  • docs(exp): publish cross-session decay live results + rerun guide (#549) @Rul1an
  • test(exp): fix cross-session decay controls + gate semantics (#547) @Rul1an
  • feat(coverage): emit coverage reports from mcp wrap decision logs (B3.2) (#567) @Rul1an
  • feat(coverage): generate coverage_report_v1 from JSONL inputs (B3.1) (#565) @Rul1an
  • docs(policy): freeze coverage report contract for tool/route completeness (A3) (#563) @Rul1an
  • feat(policy): enforce MCP rules by tool classes (B1) (#561) @Rul1an
  • docs(roadmap): prioritize route governance core (#558) @Rul1an
  • docs(exp): publish full-window cross-session decay results (#556) @Rul1an
  • test(exp): extend cross-session decay across full active window (#554) @Rul1an
  • test(exp): extend cross-session decay across full active window (#553) @Rul1an
  • docs(exp): freeze cross-session decay k+2/k+3 extension (#551) @Rul1an
  • docs(exp): publish cross-session decay live results + rerun guide (#549) @Rul1an
  • test(exp): fix cross-session decay controls + gate semantics (#547) @Rul1an
  • docs(policy): freeze session/state window contract for MCP governance (A2) (#569) @Rul1an
  • feat(coverage): emit coverage reports from mcp wrap decision logs (B3.2) (#567) @Rul1an
  • feat(coverage): generate coverage_report_v1 from JSONL inputs (B3.1) (#565) @Rul1an
  • docs(policy): freeze coverage report contract for tool/route completeness (A3) (#563) @Rul1an
  • feat(policy): enforce MCP rules by tool classes (B1) (#561) @Rul1an
  • docs(roadmap): prioritize route governance core (#558) @Rul1an
  • docs(exp): publish full-window cross-session decay results (#556) @Rul1an
  • test(exp): extend cross-session decay across full active window (#554) @Rul1an
  • test(exp): extend cross-session decay across full active window (#553) @Rul1an
  • docs(exp): freeze cross-session decay k+2/k+3 extension (#551) @Rul1an
  • docs(exp): publish cross-session decay live results + rerun guide (#549) @Rul1an
  • docs(policy): freeze session/state window contract for MCP governance (A2) (#569) @Rul1an
  • feat(coverage): emit coverage reports from mcp wrap decision logs (B3.2) (#567) @Rul1an
  • feat(coverage): generate coverage_report_v1 from JSONL inputs (B3.1) (#565) @Rul1an
  • docs(policy): freeze coverage report contract for tool/route completeness (A3) (#563) @Rul1an
  • feat(policy): enforce MCP rules by tool classes (B1) (#561) @Rul1an
  • docs(adr027): freeze tool taxonomy contract (#560) @Rul1an
  • docs(roadmap): prioritize route governance core (#558) @Rul1an
  • docs(exp): publish full-window cross-session decay results (#556) @Rul1an
  • test(exp): extend cross-session decay across full active window (#554) @Rul1an
  • test(exp): extend cross-session decay across full active window (#553) @Rul1an
  • docs(exp): freeze cross-session decay k+2/k+3 extension (#551) @Rul1an
  • docs(ops): close MCP taxonomy + coverage line with runbook + reviewer gate (C-slice) (#572) @Rul1an
  • docs(policy): freeze session/state window contract for MCP governance (A2) (#569) @Rul1an
  • feat(coverage): emit coverage reports from mcp wrap decision logs (B3.2) (#567) @Rul1an
  • feat(coverage): generate coverage_report_v1 from JSONL inputs (B3.1) (#565) @Rul1an
  • docs(policy): freeze coverage report contract for tool/route completeness (A3) (#563) @Rul1an
  • feat(policy): enforce MCP rules by tool classes (B1) (#561) @Rul1an
  • docs(adr027): freeze tool taxonomy contract (#560) @Rul1an
  • docs(roadmap): prioritize route governance core (#558) @Rul1an
  • docs(exp): publish full-window cross-session decay results (#556) @Rul1an
  • test(exp): extend cross-session decay across full active window (#554) @Rul1an
  • test(exp): extend cross-session decay across full active window (#553) @Rul1an
  • feat(mcp): add informational --state-window-out export (B1) (#574) @Rul1an
  • docs(ops): close MCP taxonomy + coverage line with runbook + reviewer gate (C-slice) (#572) @Rul1an
  • docs(policy): freeze session/state window contract for MCP governance (A2) (#569) @Rul1an
  • feat(coverage): emit coverage reports from mcp wrap decision logs (B3.2) (#567) @Rul1an
  • feat(coverage): generate coverage_report_v1 from JSONL inputs (B3.1) (#565) @Rul1an
  • docs(policy): freeze coverage report contract for tool/route completeness (A3) (#563) @Rul1an
  • feat(policy): enforce MCP rules by tool classes (B1) (#561) @Rul1an
  • docs(adr027): freeze tool taxonomy contract (#560) @Rul1an
  • docs(roadmap): prioritize route governance core (#558) @Rul1an
  • docs(exp): publish full-window cross-session decay results (#556) @Rul1an
  • docs(ops): close MCP session/state export line with runbook + reviewer gate (C-slice) (#576) @Rul1an
  • feat(mcp): add informational --state-window-out export (B1) (#574) @Rul1an
  • docs(ops): close MCP taxonomy + coverage line with runbook + reviewer gate (C-slice) (#572) @Rul1an
  • docs(policy): freeze session/state window contract for MCP governance (A2) (#569) @Rul1an
  • feat(coverage): emit coverage reports from mcp wrap decision logs (B3.2) (#567) @Rul1an
  • feat(coverage): generate coverage_report_v1 from JSONL inputs (B3.1) (#565) @Rul1an
  • docs(policy): freeze coverage report contract for tool/route completeness (A3) (#563) @Rul1an
  • feat(policy): enforce MCP rules by tool classes (B1) (#561) @Rul1an
  • docs(adr027): freeze tool taxonomy contract (#560) @Rul1an
  • docs(roadmap): prioritize route governance core (#558) @Rul1an
  • docs(policy): freeze B4 DX contract for coverage + wrap (#578) @Rul1an
  • docs(ops): close MCP session/state export line with runbook + reviewer gate (C-slice) (#576) @Rul1an
  • feat(mcp): add informational --state-window-out export (B1) (#574) @Rul1an
  • docs(ops): close MCP taxonomy + coverage line with runbook + reviewer gate (C-slice) (#572) @Rul1an
  • docs(policy): freeze session/state window contract for MCP governance (A2) (#569) @Rul1an
  • feat(coverage): emit coverage reports from mcp wrap decision logs (B3.2) (#567) @Rul1an
  • feat(coverage): generate coverage_report_v1 from JSONL inputs (B3.1) (#565) @Rul1an
  • docs(policy): freeze coverage report contract for tool/route completeness (A3) (#563) @Rul1an
  • feat(policy): enforce MCP rules by tool classes (B1) (#561) @Rul1an
  • docs(adr027): freeze tool taxonomy contract (#560) @Rul1an
  • feat(cli): B4 DX polish for coverage format/file input + wrap export logging (#580) @Rul1an
  • docs(policy): freeze B4 DX contract for coverage + wrap (#578) @Rul1an
  • docs(ops): close MCP session/state export line with runbook + reviewer gate (C-slice) (#576) @Rul1an
  • feat(mcp): add informational --state-window-out export (B1) (#574) @Rul1an
  • docs(ops): close MCP taxonomy + coverage line with runbook + reviewer gate (C-slice) (#572) @Rul1an
  • docs(policy): freeze session/state window contract for MCP governance (A2) (#569) @Rul1an
  • feat(coverage): emit coverage reports from mcp wrap decision logs (B3.2) (#567) @Rul1an
  • feat(coverage): generate coverage_report_v1 from JSONL inputs (B3.1) (#565) @Rul1an
  • docs(policy): freeze coverage report contract for tool/route completeness (A3) (#563) @Rul1an
  • feat(policy): enforce MCP rules by tool classes (B1) (#561) @Rul1an

  • docs(policy): freeze Coverage v1.1 DX polish contract (A-slice) (#585) @Rul1an

  • docs(architecture): sync ADR index and roadmap after B4 (#583) @Rul1an
  • docs(ops): close Coverage v1.1 line with runbook + reviewer gate (C-slice) (#588) @Rul1an
  • docs(policy): freeze Coverage v1.1 DX polish contract (A-slice) (#585) @Rul1an
  • docs(architecture): sync ADR index and roadmap after B4 (#583) @Rul1an
  • docs(ops): close Coverage v1.1 line with runbook + reviewer gate (C-slice) (#588) @Rul1an
  • feat(coverage): add --out-md and --routes-top (v1.1 DX polish) (#587) @Rul1an
  • docs(policy): freeze Coverage v1.1 DX polish contract (A-slice) (#585) @Rul1an
  • docs(architecture): sync ADR index and roadmap after B4 (#583) @Rul1an
  • chore(release): prepare v2.19.0 (#591) @Rul1an
  • docs(ops): close Coverage v1.1 line with runbook + reviewer gate (C-slice) (#588) @Rul1an
  • feat(coverage): add --out-md and --routes-top (v1.1 DX polish) (#587) @Rul1an
  • docs(policy): freeze Coverage v1.1 DX polish contract (A-slice) (#585) @Rul1an
  • docs(architecture): sync ADR index and roadmap after B4 (#583) @Rul1an
  • chore(release): prepare v3.0.0 (#593) @Rul1an
  • chore(release): prepare v3.0.0 (#591) @Rul1an
  • docs(ops): close Coverage v1.1 line with runbook + reviewer gate (C-slice) (#588) @Rul1an
  • feat(coverage): add --out-md and --routes-top (v1.1 DX polish) (#587) @Rul1an
  • docs(policy): freeze Coverage v1.1 DX polish contract (A-slice) (#585) @Rul1an
  • docs(architecture): sync ADR index and roadmap after B4 (#583) @Rul1an
  • ci(release): pin attest-build-provenance action by sha (#595) @Rul1an
  • chore(release): prepare v3.0.0 (#593) @Rul1an
  • chore(release): prepare v3.0.0 (#591) @Rul1an
  • docs(ops): close Coverage v1.1 line with runbook + reviewer gate (C-slice) (#588) @Rul1an
  • feat(coverage): add --out-md and --routes-top (v1.1 DX polish) (#587) @Rul1an
  • docs(policy): freeze Coverage v1.1 DX polish contract (A-slice) (#585) @Rul1an
  • docs(architecture): sync ADR index and roadmap after B4 (#583) @Rul1an

  • docs(split/wave8a-step1): freeze a2a split scope and gates (#598) @Rul1an

  • refactor(split/wave8a-step2): mechanical a2a adapter module split (#605) @Rul1an
  • docs(split/wave8a-step1): freeze a2a split scope and gates (#598) @Rul1an
  • refactor(split/wave8a-step2): mechanical a2a adapter module split (#605) @Rul1an
  • docs(split/wave8a-step3): close a2a wave with final gate (#600) @Rul1an
  • docs(split/wave8a-step1): freeze a2a split scope and gates (#598) @Rul1an
  • refactor(split/wave8a-step2): mechanical a2a adapter module split (#605) @Rul1an
  • docs(split/wave8b-step1): freeze ucp split scope and gates (#601) @Rul1an
  • docs(split/wave8a-step3): close a2a wave with final gate (#600) @Rul1an
  • docs(split/wave8a-step1): freeze a2a split scope and gates (#598) @Rul1an
  • refactor(split/wave8a-step2): mechanical a2a adapter module split (#605) @Rul1an
  • refactor(split/wave8b-step2): mechanical ucp adapter module split (#602) @Rul1an
  • docs(split/wave8b-step1): freeze ucp split scope and gates (#601) @Rul1an
  • docs(split/wave8a-step3): close a2a wave with final gate (#600) @Rul1an
  • docs(split/wave8a-step1): freeze a2a split scope and gates (#598) @Rul1an
  • refactor(split/wave8a-step2): mechanical a2a adapter module split (#605) @Rul1an
  • docs(split/wave8b-step3): close ucp wave with final gate (#603) @Rul1an
  • refactor(split/wave8b-step2): mechanical ucp adapter module split (#602) @Rul1an
  • docs(split/wave8b-step1): freeze ucp split scope and gates (#601) @Rul1an
  • docs(split/wave8a-step3): close a2a wave with final gate (#600) @Rul1an
  • docs(split/wave8a-step1): freeze a2a split scope and gates (#598) @Rul1an
  • docs(c1-c): close wave c1 with final layout and gate (#619) @Rul1an
  • refactor(c1-b3): split env filter into focused modules (#618) @Rul1an
  • refactor(c1-b2): split replay command behind thin facade (#617) @Rul1an
  • refactor(c1-b1): split cli args mod behind thin facade (#616) @Rul1an
  • refactor(split/c1-a): freeze cli surface scope and reviewer gate (#615) @Rul1an
  • refactor(split/t1-b3): mechanically split contract_exit_codes tests (#614) @Rul1an
  • refactor(split/t1-b2): mechanically split verify_internal tests (#613) @Rul1an
  • refactor(split/t1-b1): mechanically split parity test target (#612) @Rul1an
  • refactor(split/t1-a): freeze test hardening scope and reviewer gate (#611) @Rul1an
  • refactor(split/wave8a-step2): mechanical a2a adapter module split (#605) @Rul1an
  • docs(split/wave8b-step3): close ucp wave with final gate (#603) @Rul1an
  • refactor(split/wave8b-step2): mechanical ucp adapter module split (#602) @Rul1an
  • docs(split/wave8b-step1): freeze ucp split scope and gates (#601) @Rul1an
  • docs(split/wave8a-step3): close a2a wave with final gate (#600) @Rul1an
  • chore(mandate-step1): freeze review pack and reviewer gate (#621) @Rul1an
  • docs(c1-c): close wave c1 with final layout and gate (#619) @Rul1an
  • refactor(c1-b3): split env filter into focused modules (#618) @Rul1an
  • refactor(c1-b2): split replay command behind thin facade (#617) @Rul1an
  • refactor(c1-b1): split cli args mod behind thin facade (#616) @Rul1an
  • refactor(split/c1-a): freeze cli surface scope and reviewer gate (#615) @Rul1an
  • refactor(split/t1-b3): mechanically split contract_exit_codes tests (#614) @Rul1an
  • refactor(split/t1-b2): mechanically split verify_internal tests (#613) @Rul1an
  • refactor(split/t1-b1): mechanically split parity test target (#612) @Rul1an
  • refactor(split/t1-a): freeze test hardening scope and reviewer gate (#611) @Rul1an
  • refactor(split/wave8a-step2): mechanical a2a adapter module split (#605) @Rul1an
  • docs(split/wave8b-step3): close ucp wave with final gate (#603) @Rul1an
  • refactor(split/wave8b-step2): mechanical ucp adapter module split (#602) @Rul1an
  • refactor(mandate-step2): extract mandate_store tests mechanically (#625) @Rul1an
  • chore(mandate-step1): freeze review pack and reviewer gate (#621) @Rul1an
  • docs(c1-c): close wave c1 with final layout and gate (#619) @Rul1an
  • refactor(c1-b3): split env filter into focused modules (#618) @Rul1an
  • refactor(c1-b2): split replay command behind thin facade (#617) @Rul1an
  • refactor(c1-b1): split cli args mod behind thin facade (#616) @Rul1an
  • refactor(split/c1-a): freeze cli surface scope and reviewer gate (#615) @Rul1an
  • refactor(split/t1-b3): mechanically split contract_exit_codes tests (#614) @Rul1an
  • refactor(split/t1-b2): mechanically split verify_internal tests (#613) @Rul1an
  • refactor(split/t1-b1): mechanically split parity test target (#612) @Rul1an
  • refactor(split/t1-a): freeze test hardening scope and reviewer gate (#611) @Rul1an
  • refactor(split/wave8a-step2): mechanical a2a adapter module split (#605) @Rul1an
  • refactor(mandate-step2): extract mandate_store tests mechanically (#625) @Rul1an
  • chore(mandate-step3): close split with final reviewer gates (#623) @Rul1an
  • chore(mandate-step1): freeze review pack and reviewer gate (#621) @Rul1an
  • docs(c1-c): close wave c1 with final layout and gate (#619) @Rul1an
  • refactor(c1-b3): split env filter into focused modules (#618) @Rul1an
  • refactor(c1-b2): split replay command behind thin facade (#617) @Rul1an
  • refactor(c1-b1): split cli args mod behind thin facade (#616) @Rul1an
  • refactor(split/c1-a): freeze cli surface scope and reviewer gate (#615) @Rul1an
  • refactor(split/t1-b3): mechanically split contract_exit_codes tests (#614) @Rul1an
  • refactor(split/t1-b2): mechanically split verify_internal tests (#613) @Rul1an
  • refactor(split/t1-b1): mechanically split parity test target (#612) @Rul1an
  • refactor(split/t1-a): freeze test hardening scope and reviewer gate (#611) @Rul1an

[2026-03-06]

  • ci(release): pin attest-build-provenance action by sha (#595) @Rul1an
  • chore(release): prepare v3.0.0 (#593) @Rul1an
  • chore(release): prepare v3.0.0 (#591) @Rul1an
  • docs(ops): close Coverage v1.1 line with runbook + reviewer gate (C-slice) (#588) @Rul1an
  • feat(coverage): add --out-md and --routes-top (v1.1 DX polish) (#587) @Rul1an
  • docs(policy): freeze Coverage v1.1 DX polish contract (A-slice) (#585) @Rul1an
  • docs(architecture): sync ADR index and roadmap after B4 (#583) @Rul1an

[2026-03-05]

  • docs(architecture): sync ADR index and roadmap after B4 (#583) @Rul1an
  • docs(ops): close B4 DX line with runbook + reviewer gate (C-slice) (#582) @Rul1an
  • feat(cli): B4 DX polish for coverage format/file input + wrap export logging (#580) @Rul1an
  • docs(policy): freeze B4 DX contract for coverage + wrap (#578) @Rul1an
  • docs(ops): close MCP session/state export line with runbook + reviewer gate (C-slice) (#576) @Rul1an
  • feat(mcp): add informational --state-window-out export (B1) (#574) @Rul1an
  • docs(ops): close MCP taxonomy + coverage line with runbook + reviewer gate (C-slice) (#572) @Rul1an
  • docs(policy): freeze session/state window contract for MCP governance (A2) (#569) @Rul1an
  • feat(coverage): emit coverage reports from mcp wrap decision logs (B3.2) (#567) @Rul1an
  • feat(coverage): generate coverage_report_v1 from JSONL inputs (B3.1) (#565) @Rul1an

[2026-03-04]

  • test(exp): fix cross-session decay controls + gate semantics (#547) @Rul1an
  • test(exp): add cross-session decay runner + scorer (#545) @Rul1an
  • docs(exp): freeze cross-session decay contract (#543) @Rul1an
  • docs(exp): publish sink-failure live results + rerun guide (#541) @Rul1an
  • test(exp): add sink failure variant harness + scoring (#539) @Rul1an
  • docs(exp): freeze sink failure variant contract (#538) @Rul1an
  • docs(exp): publish second-sink live results + rerun guide (#534) @Rul1an
  • test(exp): add second sink class generality harness (Step2) (#532) @Rul1an
  • docs(exp): freeze second sink variant contract (#530) @Rul1an
  • docs(exp): publish wrap-bypass live results + rerun guide (#528) @Rul1an

[2026-03-03]

  • docs(exp): freeze fragmented IPI compat-host contract (#511) @Rul1an
  • test(exp): enable live ablation harness wiring (#503) @Rul1an
  • docs(exp): freeze ablation live-enable contract (#501) @Rul1an
  • test(exp): add fragmented IPI ablation harness modes (Step2) (#499) @Rul1an
  • docs(exp): freeze fragmented IPI ablation study contract (Step1) (#497) @Rul1an
  • docs(exp): add results discussion and follow-up framing (#495) @Rul1an
  • docs(exp): publish fragmented IPI experiment results + rerun guide (#493) @Rul1an
  • docs(exp): close fragmented IPI experiment rollout (Step3) (#491) @Rul1an
  • test(exp): add fragmented IPI MCP harness + scoring (Step2) (#490) @Rul1an
  • docs(experiment): freeze MCP fragmented IPI plan + policy contract (#488) @Rul1an
  • docs(adr013): sync accepted status in ADR index (#486) @Rul1an

[2026-03-02]

  • docs(adr024): sync superseded status in ADR index (#484) @Rul1an
  • docs(adr025): accept ADR-025 status on main (#482) @Rul1an
  • docs(adr026): freeze adapter distribution policy (#480) @Rul1an
  • docs(adr026): sync UCP accepted status + roadmap progress (#478) @Rul1an
  • docs(adr026): close UCP rollout with checklist + review pack (UCP Step3) (#476) @Rul1an
  • feat(adr026): add UCP adapter MVP + conformance fixtures (UCP Step2) (#475) @Rul1an

[2026-03-01]

  • docs(adr026): close UCP rollout with checklist + review pack (UCP Step3) (#476) @Rul1an
  • feat(adr026): add UCP adapter MVP + conformance fixtures (UCP Step2) (#475) @Rul1an
  • docs(adr026): freeze UCP follow-up contract + crate skeleton (UCP Step1) (#473) @Rul1an
  • docs(adr026): sync accepted status and roadmap progress (#471) @Rul1an
  • ci: auto-merge generated docs update PRs (#470) @Rul1an
  • docs(adr026): close parser hardening rollout with checklist and review pack (Stab E4C) (#469) @Rul1an
  • feat(adr026): harden adapter parser caps and property tests (Stab E4B) (#468) @Rul1an
  • docs(adr026): freeze parser hardening boundary + reviewer gate (Stab E4A) (#467) @Rul1an
  • feat(adr026): canonicalize event digests and enforce key-order independence (Stab E3B) (#466) @Rul1an
  • feat(adr026): canonicalize event digests and enforce key-order independence (Stab E3B) (#465) @Rul1an

[2026-02-28]

  • docs(adr026): close parser hardening rollout with checklist and review pack (Stab E4C) (#469) @Rul1an
  • feat(adr026): harden adapter parser caps and property tests (Stab E4B) (#468) @Rul1an
  • docs(adr026): freeze parser hardening boundary + reviewer gate (Stab E4A) (#467) @Rul1an
  • feat(adr026): canonicalize event digests and enforce key-order independence (Stab E3B) (#466) @Rul1an
  • feat(adr026): canonicalize event digests and enforce key-order independence (Stab E3B) (#465) @Rul1an
  • docs(adr026): freeze canonicalization and hash boundary (Stab E3A) (#463) @Rul1an
  • feat(adr026): add host AttachmentWriter policy + tests (Stab E2B) (#462) @Rul1an
  • docs(adr026): freeze AttachmentWriter host boundary (E2A) (#461) @Rul1an
  • feat(adr026): add adapter metadata identity to API and events (Stab E0B) (#460) @Rul1an
  • docs(adr026): freeze adapter metadata contract (E0A) (#458) @Rul1an
  • fix(adr026): preserve ACP attributes and lossiness invariants (Stab E1) (#457) @Rul1an
  • ci: harden docs-only CI publication and perf triggering (#455) @Rul1an
  • docs(adr026): close A2A rollout with checklist + review pack (A2A Step3) (#453) @Rul1an
  • feat(adr026): add A2A adapter MVP + conformance fixtures (A2A Step2) (#452) @Rul1an
  • docs(adr026): freeze A2A follow-up contract + crate skeleton (A2A Step1) (#451) @Rul1an
  • docs(adr011-012): sync signing boundary to open-core policy (#449) @Rul1an

[2026-02-27]

  • docs(adr011-012): sync signing boundary to open-core policy (#449) @Rul1an
  • docs(adr026): close adapter rollout with checklist + review pack (Step3) (#446) @Rul1an
  • feat(adr026): add ACP adapter MVP + conformance fixtures (Step2) (#445) @Rul1an
  • feat(adr026): add ACP adapter MVP + conformance fixtures (Step2) (#444) @Rul1an
  • feat(adr026): freeze adapter API contract + reviewer gate (Step1) (#443) @Rul1an
  • fix(adr025-i2): align closure evaluator with soak schema version (#442) @Rul1an
  • docs(adr016): sync SOC2 baseline open-core status + roadmap (#441) @Rul1an
  • docs(adr): sync ADR-024/025 status with implemented rollout on main (#440) @Rul1an
  • docs(adrs): sync index with open-core ADR-021..025 status map (#439) @Rul1an
  • docs(open-core): split SOC2 baseline vs pro status and sync boundary (#438) @Rul1an
  • docs(adr025): mark roadmap audit-kit/closure scope complete + gate (#437) @Rul1an
  • docs(adr023): close starter pack docs follow-up + reviewer gate (#435) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.3 to 3.32.4 (#426) app/dependabot

[2026-02-26]

  • docs(adr023): close starter pack docs follow-up + reviewer gate (#435) @Rul1an
  • docs(open-core): sync ADR-011 boundary and ADR-021 roadmap status (#434) @Rul1an
  • docs(adr025): sync I2/I3 ADR status to closed-loop + roadmap (#433) @Rul1an
  • docs(adr025): close P3 index consolidation with closure gate + status sync (P3 C) (#432) @Rul1an
  • docs(adr025): populate ADR-025 index with links and artifact map (P3 B) (#425) @Rul1an
  • docs(adr025): freeze P3 ADR-025 index contract + reviewer gate (P3 A) (#424) @Rul1an
  • docs(adr025): close I3 Step4 rollout with runbook + reviewer gate (Step4C) (#423) @Rul1an
  • ci(adr025): wire I3 Step4B OTel release integration (attach default) (#422) @Rul1an
  • docs(adr025): freeze I3 OTel release integration contract + policy v1 (I3 Step4A) (#421) @Rul1an
  • docs(adr025): close I3 stabilization loop with ops/docs sync + gate (I3 Stab C) (#420) @Rul1an
  • tests(adr025): harden I3 OTel bridge determinism with edge-case fixtures (I3 Stab B) (#419) @Rul1an
  • docs(adr025): freeze I3 stabilization policy + reviewer gate (I3 Stab A) (#418) @Rul1an
  • ci(adr025): add informational nightly OTel bridge workflow + reviewer gate (I3 Step3) (#417) @Rul1an
  • ci(adr025): implement I3 OTel bridge report generator + deterministic tests (I3 Step2) (#416) @Rul1an
  • docs(adr025): freeze I3 OTel bridge contract + schema v1 (I3 Step1) (#415) @Rul1an
  • ci(adr025): add closure release decision JSON log + tests (Stab D) (#414) @Rul1an

[2026-02-19]

  • ci(adr025): relax C3 gate fragility with local-action + permission allowlist (C3.2) (#393) @Rul1an
  • ci(adr025): harden Step3 C3 reviewer gate contracts (C3.1) (#391) @Rul1an
  • docs(adr025): promote Step3 C3 closure to main (#390) @Rul1an
  • docs(adr025): Step3 closure (promotion criteria + reviewer gates) (C3) (#389) @Rul1an
  • ci(adr025): add nightly readiness aggregation workflow + report script (Step3 C2) (#388) @Rul1an
  • ci(adr025): add SHA-pinned nightly soak workflow + reviewer gate (Step3 C1) (#387) @Rul1an
  • feat(sim): implement ADR-025 soak report v1 generation + schema validation + determinism (B2) (#386) @Rul1an
  • ADR-025 I1: promote Step1+Step2(B1) to main (#384) @Rul1an
  • feat(sim): add ADR-025 soak CLI parse and stub dispatch (B1) (#382) @Rul1an
  • ADR-025 I1 Step1: freeze plan + soak report v1 schema (#381) @Rul1an

[2026-02-18]

  • ADR-025 I1 Step1: freeze plan + soak report v1 schema (#381) @Rul1an
  • ci(ebpf): fix cargo resolution in self-hosted verify script (#379) @Rul1an
  • docs(ci/split): sync roadmap + closure docs and fix nightly token (#378) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.2 to 3.32.3 (#372) app/dependabot

[2026-02-17]

  • docs(ci/split): sync roadmap + closure docs and fix nightly token (#378) @Rul1an
  • refactor(wave7c-step3): close judge/json_strict split behind thin facades (#377) @Rul1an
  • chore(ci): bump github/codeql-action from 3.32.2 to 3.32.3 (#372) app/dependabot
  • refactor(wave7c-step2): mechanically split judge/json_strict behind stable facades (#371) @Rul1an
  • docs(plan): sync Wave7 closed-loop status and queue snapshot (#370) @Rul1an
  • docs(ci/wave7c-step1): freeze judge/json_strict contracts before split (#369) @Rul1an
  • refactor(wave7b-step3): promote loader/store closure to main (#368) @Rul1an
  • refactor(wave7b-step3): close loader/store split with thin testless facade (#367) @Rul1an
  • refactor(wave7b-step2): mechanically split loader/store behind stable facades (#366) @Rul1an
  • docs(ci): freeze loader/store contracts before split (Wave7B Step1) (#364) @Rul1an
  • refactor(core): close authorizer split behind thin facade (Wave7A Step3) (#363) @Rul1an
  • ci(wave6-step4): add informational nightly readiness reporting lane (#362) @Rul1an
  • ci(wave6-step4): add nightly_status artifact + deterministic classification mapping (#360) @Rul1an
  • docs/ci(wave6-step4): freeze nightly promotion policy criteria + reviewer gates (#359) @Rul1an
  • docs(plan): close out Wave6 status after merged CI hardening (#358) @Rul1an

[2026-02-15]

  • ci(wave6-step4): add informational nightly readiness reporting lane (#362) @Rul1an
  • ci(wave6-step4): add nightly_status artifact + deterministic classification mapping (#360) @Rul1an
  • docs/ci(wave6-step4): freeze nightly promotion policy criteria + reviewer gates (#359) @Rul1an
  • docs(plan): close out Wave6 status after merged CI hardening (#358) @Rul1an
  • ci(wave6-step3): add non-blocking nightly safety lane + reviewer gates (#356) @Rul1an
  • ci(wave6-step2): add release attestation producer+verify pair (#355) @Rul1an
  • docs(ci/wave6-step1): freeze CI hardening baseline and reviewer gates (#353) @Rul1an
  • docs(plan): sync wave5 status and verify_internal wording (#352) @Rul1an
  • refactor(wave5-step3): close verify split behind stable facade (#351) @Rul1an
  • refactor(verify-step2): scaffold split behind stable facade (#349) @Rul1an
  • test/docs(wave5-step1): freeze verify contracts before split (#348) @Rul1an
  • docs(ci/wave4): default review BASE_REF to origin/main (#346) @Rul1an
  • refactor(wave4): finalize cache thinness + explain split on main (#345) @Rul1an
  • refactor(wave4-step3): split explain behind stable facade (#344) @Rul1an
  • refactor(wave4-step2x): thin cache facade behind cache_next boundaries (#343) @Rul1an

[2026-02-14]

  • refactor(wave4): finalize cache thinness + explain split on main (#345) @Rul1an
  • refactor(wave4-step3): split explain behind stable facade (#344) @Rul1an
  • refactor(wave4-step2x): thin cache facade behind cache_next boundaries (#343) @Rul1an
  • chore(stack): promote wave3/wave4 integration branch to main (#341) @Rul1an
  • refactor(wave4-step2): split lockfile/cache behind stable facades (#340) @Rul1an
  • docs(ci/wave4-step1): freeze lockfile/cache contracts before split (#339) @Rul1an
  • refactor(wave3-step2): scaffold monitor/trace split behind stable facades (#338) @Rul1an
  • test/docs(wave3-step1): behavior freeze for monitor + trace hotspots (#337) @Rul1an
  • refactor(core): split runner + mandate_store behind stable facades (Wave2 Step2) (#336) @Rul1an
  • chore(release): sync workspace to v2.18.0 (#334) @Rul1an
  • refactor(writer-step3): split writer behind stable facade (#332) @Rul1an
  • refactor(verify-step2): mechanical split behind stable verify facade (#331) @Rul1an
  • ci(wave0): land split guardrails + robust semver baseline fetch (#329) @Rul1an
  • fix(ci): ensure cargo in PATH for eBPF self-hosted Install Dependencies step (#328) @Rul1an

[2026-02-13]

  • refactor(evidence): split json_strict into module (#307) @Rul1an
  • refactor(registry): centralize REGISTRY_USER_AGENT constant (#306) @Rul1an
  • refactor(registry): extract integration tests to tests/registry_client.rs (Step 0) (#305) @Rul1an
  • fix(ci): re-enable self-hosted runner jobs after _actions cache cleanup (#304) @Rul1an
  • refactor(registry): split client.rs into mod, http, helpers (#302) @Rul1an
  • refactor(cli): args split Phase A+B — common, run, baseline, bundle, policy (#300) @Rul1an
  • feat(evidence): E2 Phase 3 verify --eval (evaluation sidecar verification) (#299) @Rul1an
  • feat(evidence): E2 writer split + façade polish (#298) @Rul1an

[2026-02-12]

  • refactor(cli): args split Phase A+B — common, run, baseline, bundle, policy (#300) @Rul1an
  • feat(evidence): E2 Phase 3 verify --eval (evaluation sidecar verification) (#299) @Rul1an
  • feat(evidence): E2 writer split + façade polish (#298) @Rul1an
  • feat(sim): ADR-025 E1.1 Soak Two-Mode — artifact vs run, clap contract, stub (#297) @Rul1an
  • feat(adr-024): E2–E6 sim hardening — CLI flags, integrity attacks, report metadata (#293) @Rul1an
  • feat(evidence): ADR-024 E1 — VerifyLimitsOverrides (Sim Hardening foundation) (#291) @Rul1an
  • feat(evidence): CICD Starter Pack + merge-gates (ADR-023) (#289) @Rul1an
  • feat(pack-engine): implement local discovery (ADR-021) and SOC2 baseline (ADR-022) (#287) @Rul1an

[2026-02-11]

  • feat(pack-engine): implement local discovery (ADR-021) and SOC2 baseline (ADR-022) (#287) @Rul1an
  • feat(demo): upgrade demo strategy with privacy-first hero, 16:9 tapes, and devcontainer (#283) @Rul1an
  • docs(governance): sweep structure, archive redundant, sync RFC/roadmap status (#282) @Rul1an
  • fix(monitor): avoid partial move of --ebpf args in linux monitor path (#281) @Rul1an
  • chore(ci): bump PyO3/maturin-action from 1.49.4 to 1.50.0 (#277) app/dependabot
  • chore(ci): bump github/codeql-action from 3.32.1 to 3.32.2 (#276) app/dependabot
  • chore(ci): bump peter-evans/create-pull-request from 7.0.5 to 7.0.11 (#275) app/dependabot
  • docs(rfc-004): converge O2 status evidence across RFC docs (#273) @Rul1an

[2026-02-10]

  • docs(governance): sweep structure, archive redundant, sync RFC/roadmap status (#282) @Rul1an
  • fix(monitor): avoid partial move of --ebpf args in linux monitor path (#281) @Rul1an
  • chore(ci): bump PyO3/maturin-action from 1.49.4 to 1.50.0 (#277) app/dependabot
  • chore(ci): bump github/codeql-action from 3.32.1 to 3.32.2 (#276) app/dependabot
  • chore(ci): bump peter-evans/create-pull-request from 7.0.5 to 7.0.11 (#275) app/dependabot
  • refactor(rfc-004): close O3/O4/O5 (monitor split, typed hot-path, parity fence) (#274) @Rul1an
  • docs(rfc-004): converge O2 status evidence across RFC docs (#273) @Rul1an
  • refactor(generate-e5-g6): make generate.rs orchestrator-only (#271) @Rul1an
  • fix(generate): reject non-finite float CLI args (#270) @Rul1an
  • refactor(generate-e5-g5): extract diff subsystem (no behavior drift) (#268) @Rul1an
  • refactor(generate-e5-g4): extract profile/classification layer (no logic drift) (#266) @Rul1an
  • refactor(generate-e5-g3): extract ingest/aggregation layer (no behavior drift) (#264) @Rul1an
  • refactor(generate-e5-g2): extract args/model DTO layer (no logic move) (#262) @Rul1an

[2026-02-09]

  • test(monitor): freeze CLI monitor failure-path contract (#227) @Rul1an
  • ci(kernel-matrix): skip cleanup-runner while matrix is disabled (#226) @Rul1an
  • refactor(sim): deduplicate attack test-bundle generation (#225) @Rul1an
  • refactor(storage): deduplicate result rehydration and episode graph loading (#223) @Rul1an
  • refactor(evidence): unify severity model and remove lint duplication (#222) @Rul1an
  • fix(dx-wave-c4): harden run-id dedupe bookkeeping (#220) @Rul1an
  • feat(dx-wave-c4): harden run-id tracking beyond ring buffer (#219) @Rul1an
  • feat(dx-wave-c3): add reproducible profile-store perf harness (#218) @Rul1an
  • feat(dx-wave-c2): reduce runner clone overhead + emit runner_clone_ms (#217) @Rul1an
  • feat(dx-wave-c1): add reproducible verify/lint perf harness (#213) @Rul1an
  • feat(dx-wave-c0): add perf trigger metrics and wave-c guardrails (#212) @Rul1an
  • docs(wave-c): add metrics-gated C0-C4 execution blueprint (#210) @Rul1an
  • feat(dx-wave-b3): rename init pack flag to preset (compat) (#209) @Rul1an
  • feat(dx-wave-b3): rename init pack flag to preset (compat) (#206) @Rul1an
  • refactor(dx-wave-b2): extract command dispatch module and reduce mod.rs coupling (#205) @Rul1an
  • feat(dx-wave-b1): unify run/ci pipeline and reduce command coupling (#204) @Rul1an

[2026-02-08]

  • feat(dx-wave-a1): centralize run/ci error classification + RFC-001 (#198) @Rul1an
  • dx: merge P0/P1 DX roadmap slices into main (#196) @Rul1an
  • refactor(cli): derive watch/replay RunArgs from shared defaults (#195) @Rul1an
  • fix(doctor): align dry-run exit code with diagnostics contract (#194) @Rul1an
  • fix(init): colocate --hello-trace output with --config path (#193) @Rul1an
  • dx: merge P0/P1 DX roadmap slices into main (#191) @Rul1an
  • fix(watch): edge harden coarse-mtime detection and fallback (#190) @Rul1an
  • docs(cli): harden generate/explain parity contracts (#189) @Rul1an
  • fix(watch): harden deterministic path diffing (#188) @Rul1an
  • feat(dx): add init --hello-trace golden path scaffold (#187) @Rul1an
  • feat(action-v2.1): add compliance pack failure modes + contract tests (#185) @Rul1an

[2026-02-07]

  • ci: always publish required CI check for docs-only pull requests (#182) @Rul1an
  • docs(cli): add explain reference and define compliance coverage semantics (#180) @Rul1an
  • feat(explain): add --compliance-pack hints and coverage summary (P1-B) (#179) @Rul1an
  • feat(generate): add --diff policy evolution output (P1-A, clean) (#177) @Rul1an
  • feat(p0): init --from-trace, PR comment bot, SARIF truncation fix (#174) @Rul1an
  • feat(e9d.3): harden replay contract + strategic positioning & DX plan (#172) @Rul1an
  • feat(e9d.2): enforce core network deny for offline replay (#171) @Rul1an
  • feat(e9d.1): harden replay coverage contract and exit-profile stability (#170) @Rul1an
  • feat(e9c): replay bundle CLI flow + modular command refactor (single commit) (#168) @Rul1an
  • E9b: Scrubbing + bundle verify (scrub, read_bundle_tar_gz, verify_bundle) (#166) @Rul1an

[2026-02-06]

  • E9b: Scrubbing + bundle verify (scrub, read_bundle_tar_gz, verify_bundle) (#166) @Rul1an
  • E9a: Replay bundle core — manifest, container, path policy (E9.1–E9.3) (#165) @Rul1an
  • feat(E4.3): Progress N/M during run — completion order + throttle (#164) @Rul1an
  • feat(E6a.3): no-pass-through invariant — sensitive headers + E2E test (#163) @Rul1an
  • feat(P1): mcp-deny-code, mcp-op-class, init-provider-template, runner-metric-override (#162) @Rul1an
  • feat: E2.3 SARIF limits + TODOs doc + cli-verify + monitor-strict-warn (#161) @Rul1an
  • feat(e2.3): SARIF limits — truncate + omitted_count + sarif.omitted in run/summary (#160) @Rul1an
  • feat(pr1): E7.5 E_JUDGE_UNCERTAIN + E7.2 seeds + E7.3 judge metrics in output (#159) @Rul1an
  • feat(P0): Default Gate ready — reason_code_version + summary.json + v2 exit docs (#132) @Rul1an
  • feat(ci): add auto-update docs workflow (#131) @Rul1an
  • fix(ci): resolve failed PR jobs — _actions chown + Criterion continue-on-error (#129) @Rul1an
  • chore(deny): ignore RUSTSEC-2023-0071 for jsonwebtoken 10 bump (#128) @Rul1an
  • fix(ci): chown _work/_actions on self-hosted to fix Kernel Matrix checkout EPERM (#127) @Rul1an
  • fix(sim): relax SANITY assert when differential ran (#126) @Rul1an
  • fix(ci): ensure .dockerignore excludes target before eBPF Docker build (#125) @Rul1an
  • fix(ci): eBPF self-hosted pre-clean target to avoid EPERM on checkout (#124) @Rul1an
  • fix(deps): jsonschema 0.40 compatibility (#123) @Rul1an
  • fix(evidence): object_store 0.13 compatibility (#122) @Rul1an
  • fix(ci): pre-create assay-test secret on self-hosted to avoid Landlock EPERM (#121) @Rul1an

See CHANGELOG.md