Phase 1: Strategy-Differentiating Revocation Artifacts and Figure Pipeline #81

Merged
erikinkinen merged 7 commits from 1-strategy-differentiating-revocation-artifacts-and-figure-pipeline into main 2026-03-06 13:49:09 +01:00
Owner

Closes #79

Summary

Implements Issue #79: Strategy-Differentiating Revocation Artifacts and Figure Pipeline.

This PR shifts Phase 1 analysis from revoke-only/size-only comparisons to strategy trade-offs by:

  • adding strategy-separating workloads to CLI + sweep,
  • emitting per-run metrics_v2 artifacts in sweep outputs,
  • upgrading the figure pipeline to consume metrics_v2 + event logs,
  • producing deterministic trade-off plots.

What Changed

  1. New workload support wired end-to-end
  • Added/connected:
    • deep_tree_mid_subtree_revoke
    • root_revoke_with_large_unrelated_background
    • shared_descendant_revoke
  • aes simulate now validates flags/minima/forbidden-flag combos for all new workloads.
  • Sweep config parser accepts strict JSON schemas for the new workload shapes.
  1. Sweep artifact model extended
  • Per-run outputs now include:
    • event_log.jsonl
    • metrics_v1.json
    • metrics_v2.json
  • runs.csv now includes metrics_v2_path.
  1. Figure pipeline migrated to strategy-differentiating metrics
  • Plotting now consumes:
    • dataset-level runs.csv / metrics_long.csv contract,
    • per-run metrics_v2.json and event_log.jsonl referenced by runs.csv.
  • Added deterministic plots (PNG + SVG):
    • immediate_vs_total_cost_by_strategy
    • completeness_vs_total_cost_by_workload
    • residual_risk_vs_revoke_latency
    • metadata_overhead_vs_completeness
    • post_revoke_hot_path_cost
    • depth_sensitivity_completeness
    • depth_sensitivity_total_cost
    • fanout_sensitivity_completeness
    • fanout_sensitivity_total_cost
  1. Canonical figure sweep configs updated
  • Cost/completeness canonical configs now include strategy-separating workloads for stronger differentiation in plots.
  1. Documentation and tests updated
  • Updated docs/phase1.md for:
    • new workload schemas and minima,
    • sweep artifact updates (metrics_v2),
    • new figure pipeline inputs/outputs.
  • Updated/expanded tests:
    • CLI simulate/sweep coverage for new workloads and strict validation,
    • sweep CSV expectations (metrics_v2_path),
    • figure contract + determinism tests and smoke test output list.

Validation

Executed and passing:

  • aes_cli_simulate_tests
  • aes_cli_sweep_tests
  • aes_metrics_runner_tests
  • aes_revocation_outcome_metrics_tests
  • aes_phase1_figures_tests
  • aes_phase1_figures_smoke_test
  • plus regression slice:
    • aes_event_log_reader_tests
    • aes_event_log_replay_tests
    • aes_revocation_strategy_tests
    • aes_strategy_equivalence_tests
    • aes_invalid_event_determinism_tests

Notes

This branch history was rewritten to align commit subjects with Issue #79.

Closes #79 ## Summary Implements **Issue #79: Strategy-Differentiating Revocation Artifacts and Figure Pipeline**. This PR shifts Phase 1 analysis from revoke-only/size-only comparisons to strategy trade-offs by: - adding strategy-separating workloads to CLI + sweep, - emitting per-run `metrics_v2` artifacts in sweep outputs, - upgrading the figure pipeline to consume `metrics_v2` + event logs, - producing deterministic trade-off plots. ## What Changed 1. New workload support wired end-to-end - Added/connected: - `deep_tree_mid_subtree_revoke` - `root_revoke_with_large_unrelated_background` - `shared_descendant_revoke` - `aes simulate` now validates flags/minima/forbidden-flag combos for all new workloads. - Sweep config parser accepts strict JSON schemas for the new workload shapes. 2. Sweep artifact model extended - Per-run outputs now include: - `event_log.jsonl` - `metrics_v1.json` - `metrics_v2.json` - `runs.csv` now includes `metrics_v2_path`. 3. Figure pipeline migrated to strategy-differentiating metrics - Plotting now consumes: - dataset-level `runs.csv` / `metrics_long.csv` contract, - per-run `metrics_v2.json` and `event_log.jsonl` referenced by `runs.csv`. - Added deterministic plots (PNG + SVG): - `immediate_vs_total_cost_by_strategy` - `completeness_vs_total_cost_by_workload` - `residual_risk_vs_revoke_latency` - `metadata_overhead_vs_completeness` - `post_revoke_hot_path_cost` - `depth_sensitivity_completeness` - `depth_sensitivity_total_cost` - `fanout_sensitivity_completeness` - `fanout_sensitivity_total_cost` 4. Canonical figure sweep configs updated - Cost/completeness canonical configs now include strategy-separating workloads for stronger differentiation in plots. 5. Documentation and tests updated - Updated `docs/phase1.md` for: - new workload schemas and minima, - sweep artifact updates (`metrics_v2`), - new figure pipeline inputs/outputs. - Updated/expanded tests: - CLI simulate/sweep coverage for new workloads and strict validation, - sweep CSV expectations (`metrics_v2_path`), - figure contract + determinism tests and smoke test output list. ## Validation Executed and passing: - `aes_cli_simulate_tests` - `aes_cli_sweep_tests` - `aes_metrics_runner_tests` - `aes_revocation_outcome_metrics_tests` - `aes_phase1_figures_tests` - `aes_phase1_figures_smoke_test` - plus regression slice: - `aes_event_log_reader_tests` - `aes_event_log_replay_tests` - `aes_revocation_strategy_tests` - `aes_strategy_equivalence_tests` - `aes_invalid_event_determinism_tests` ## Notes This branch history was rewritten to align commit subjects with **Issue #79**.
erikinkinen added this to the Phase 1 milestone 2026-03-06 13:46:48 +01:00
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erikinkinen/AES!81
No description provided.