Repository navigation
v0.6.0: The Architecture & Execution Hardening Update
·
717 commits
to main
since this release
Summary
This release focuses on deep architectural decoupling, bulletproofing the execution phase, and ensuring the configuration state remains predictable and firmly tracked. We’ve rebuilt the core orchestration engine to cleanly separate state manifestation from disk I/O, hardened the TOML parsers against edge-case mutations, and shifted our benchmarking to capture true out-of-process cold starts.
🏗️ Core Architecture & DAG Lifecycles
- State vs. Execution Split: The monolithic orchestrator has been decoupled.
Orchestratornow acts strictly as a state machine for manifest aggregation, while the newSystemExecutorhandles all highly-volatile filesystem I/O and subprocess execution. - DAG Execution Ordering Fix: Resolved a critical execution ordering bug by introducing a
post_install_tasksqueue. Virtual environment binaries (likepre-commitanddirenv) are now strictly guaranteed to execute after the dependency resolution phase completes. - Dynamic CLI Routing: Extracted abstraction leaks by pushing iteration logic into the
PresetModuleandBootstrapModulebase classes. Tooling modules and presets now evaluate dynamically, meaning future language additions require zero modifications to the core parser.
🛡️ Configuration & Injection Safety
- Runtime Type Validation: The configuration parser now uses
typing.get_type_hintsto gracefully reject malformed TOML inputs and fall back to safe defaults, entirely avoiding the import overhead of Pydantic. - Strict Scope Boundaries: Hard-enforced the partition between global initializations and local workspace generation. The orchestrator now actively strips
[env],[presets], and[dev]blocks from local.protostar.tomlfiles to prevent configuration drift. - Deterministic AST Merges: TOML injections now utilize structural parity guards (e.g., ensuring a
Tableonly merges with aTable), and plain-text injections are protected by MD5 payload hashes to ensure idempotency even if users modify the generated logic. - O(1) Config Loading: Implemented an in-memory class-level cache to eliminate repeated disk I/O when loading configurations across the CLI lifecycle.
📉 Graceful Degradation & Telemetry
- Partial Success States: If a package manager (
uvorpip) encounters a fatal error like a network timeout, the orchestrator no longer crashes. It degrades gracefully, trapping thestderrpayload and surfacing aPARTIAL SUCCESSwarning, preserving the 99% of the environment that was successfully scaffolded. - Rich OSC 8 Hyperlinks: The crash reporter UI has been upgraded. Massive URL-encoded GitHub issue payloads are now hidden behind clean, clickable terminal hyperlinks.
- Subprocess Security:
$EDITORenvironment variables are now safely tokenized usingshlex.split(), preventingFileNotFoundErrorcrashes for complex arguments (e.g.,export EDITOR="code --wait").
🧪 Benchmarking & Test Infrastructure
- True Cold-Start Benchmarks: Migrated from
pytest-benchmarktohyperfine. Latency benchmarking now executes entirely out-of-process to capture true Python boot times and CLI initialization overhead, natively integrated into our CI pipeline to gate regressions. - 95% Test Coverage: Completely overhauled the test suite to execute true E2E subprocesses within
tmp_pathsandboxes. XDG base directories are now actively isolated during testing to prevent host-machine configuration leakage. - Strict Local Enforcement: Expanded Ruff linting rules (
RUF,N,RET) and configured a hardfail_under = 90coverage floor for local execution, ensuring high standards before code ever hits the cloud.