Repository navigation
v0.7.0
Final stable release of 0.7.0. Major release spanning rc1 → rc2 → rc3 → final, consolidating all changes since v0.6.0 (~140 commits across 8 feature areas).
1. Replay workflow (trajectory / lifecycle / exec replay)
Deterministic replay of recorded SWE-bench trajectories against sandbox backends. Three modes: exec_only (long-lived continuous exec, baseline), lifecycle (create_all then per-step resume/pause via aenv LifecycleCapable; oversubscription via snapshot memory reuse), trajectory (ephemeral create_one/kill_one via aenv EphemeralCapable; oversubscription via queue limiting + launch_interval_sec pacing).
Replay stack #114-#134 mega-merge: trajectory loading + cached pool, ReplayStep/Trajectory dataclasses, ReplayTaskRunner/ReplayRoundRunner, RoundRobinTaskManager replay wiring, LifecycleSeriesWriter (thread-safe JSONL series), 6-timestamp _run_slice, admission controllers, ReplayMetrics segment lists + retry accumulators, QPS-gate exec bucket, report formatting + e2e smoke.
Follow-ons: lifecycle hot-path contention fix #161 (writer drain thread - root cause of ~4x wall inflation), exec_only lifecycle-series writer fix #190, manifest as authoritative run set #196, two-tier per-run aggregation #197, e2b SDK pin <2.47 for AENV #203, replay.yaml action_timeout=300s #207/#209, per-step action text, replay.py split into config+formatter #192.
2. Aenv provider (lifecycle + ephemeral capabilities)
New --provider aenv: subclasses E2BProvider, reuses E2B SDK pointed at an AENV server via E2B_API_URL. Adds pause/resume (E2B beta_pause/Sandbox.connect), create_one/kill_one (trajectory mode), snapshot_sizes. default_replay_mode = lifecycle. Satisfies LifecycleCapable + EphemeralCapable + SnapshotSizeCapable. Documented in CLAUDE.md #169.
3. Oversub benchmark driver + cross-arch comparison
- oversub-bench (#143-#150): standalone driver over the kernel; emits run_summary.json + sweep-config YAML. Kernel emits raw facts, driver computes valid. Flushes partial artifacts on interrupt #150, round_count pass-through #149, terminal phase logs #164, traj denominator fix #163.
- oversub-compare #191: manifest-driven join of N sweep dirs (ARM baseline vs x86 freq/L3 configs); emits tidy + ratio-summary + 4-sheet xlsx. Per-run row collapse #200.
- Ctrl+C teardown for sweep #225 and replay stress #224.
4. RFC 0002 - workflow plugin architecture
Internal refactor, no CLI breaking changes. TaskRunner ABC + WorkflowSpec registry + RunContext #177, migrate runners + collapse dispatch #178, typed WorkflowConfigBase views #179/#180, report layer onto ReportFormatters strategies #181, drop hardcoded workflow set #182. Data-driven capability error hint #175. RFC accepted/Active #170/#174.
5. vm_monitor enhancements
- Always-on raw snapshots #213/#219: /proc/meminfo + /proc/vmstat + /proc/stat + per-cpu + per-VM + per-device /sys/block + ublk-daemon jiffies, written to raw_data/ on a background daemon thread.
- PSS field #210 (smaps_rollup, <2% perturbation); ublk-daemon cores + fleet-total PSS timeline #211.
- iostat-style disk capture #185 (IOPS + avg request size); disk util_pct 100x fix #221.
- Per-collector --no-X switches + devkit mem/topdown split #186; guaranteed resource_report.xlsx + opt-out chart phase #189; ksys rotation fix #223.
- Log capture rotation #220; host CPU utilization curve #202; --host-proc #229; reclaim-stall rates #230; SVG into svg/ subdir #231; host_resources.xlsx raw-CSV consumer #222; cubesandbox VMM type #218.
- CI: vm_monitor test job #226; fixture relocation #227; standalone usage guide EN/ZH #206.
6. cubesandbox provider (Cloud Hypervisor microVM, full lifecycle)
New full-lifecycle provider #136 RFC then #214 Phase1 exec then #215 Phase2 lifecycle: exec + pause/resume + create_one/kill_one + snapshot_sizes. RFC relocated to docs/dev/rfcs/0003 #216. vm_monitor integration + real snapshot_sizes deferred.
7. Observability workbook (_obs.xlsx)
8-sheet workbook: Overview, Per-step timings, Lifecycle overhead, Trajectory summary, Step detail, Concurrency states, Gantt, Snapshot sizes. Per-step timing + lifecycle overhead % in Overview #183/#184/#201/#204. Atomic xlsx write + legend fix; per-trajectory replay_result.json export. Name shortened #162. matplotlib core dep for Gantt PNG #165.
8. Document bench + misc
pdf/xlsx document bench configs #188; optimized Dockerfiles PGO+LTO CPython 3.12.3; docs reorganized into architecture/guide/dev #166; env_provider tests grouped by provider #199; TaskManager into task_manager package #194/#195; issue templates to RFC guide #217; httpx/httpcore logging capped at WARNING.
Version indexes
- pyproject.toml: 0.7.0rc3 to 0.7.0
- version.py: 0.5.0/alpha to 0.7.0/stable (synced single-source-of-truth header).
No CLI breaking changes.