Skip to content

v0.7.0: Zensical Docs, Engine Hardening, and Astro Expansion

Choose a tag to compare

@JacksonFergusonDev JacksonFergusonDev released this 02 May 23:58
· 684 commits to main since this release

Summary

This release introduces a massive architectural shift to Protostar's documentation pipeline, moving deep-dives to a dedicated ReadTheDocs deployment. Under the hood, the core execution engine gets heavily hardened with task-level subprocess timeouts, bulletproof SIGINT handling, and strict tooling boundaries. For the computational crowd, the Astro preset gets a serious "batteries-included" upgrade.

New Official Documentation

Head over to the Official Documentation for:

  • Command Reference: Full flags and capabilities for init and generate.
  • Domain Presets: Matrices for Scientific, Astrophysics, ML, DSP, and Embedded workflows.
  • Configuration & Shell Autocomplete: Setting up global defaults, CLI autocompletion, and advanced AST overrides.
  • Architecture Mechanics: Deep dives into the Orchestrator, Executor, and Manifest lifecycle.

Core Engine & CLI Mechanics

  • Task-Level Timeouts: Subprocess execution is no longer unbounded. Heavy network operations (like uv or pip dependency resolution) are now capped at a 600s timeout, preventing the orchestrator from hanging indefinitely on dropped connections.
  • Context-Aware Status Rendering: The TUI now surfaces intelligent, domain-specific status descriptions during the realization phase (e.g., "Installing pre-commit git hooks") instead of dumping raw subprocess arrays to the terminal.
  • Strict Tooling Boundaries: Deprecated the hardcoded Python requirement in favor of dynamic language constraints. The CLI and interactive wizard will now actively intercept and block you from scaffolding mismatched toolchains (like trying to drop Ruff onto a Rust-only workspace).
  • SIGINT & TTY Routing: Trapped Ctrl+C to fail silently and exit cleanly with POSIX code 130, stopping the CLI from spilling raw stack traces or the argparse help manual upon cancellation. Additionally, hoisted the --force flag logic above the TTY environment check, allowing headless scripts to overwrite collisions without hanging on interactive prompts.
  • AST Merging & Determinism: Squashed a tomlkit bug that stacked triple-newlines during deep-merge overwrites, localized IDE interpreter settings strictly to Python module generation, and forced .gitignore payload sorting to eliminate arbitrary diff churn.

Astrophysics & Scientific Stack

  • Expanded Astro Preset (-a): The astrophysics footprint now natively bundles the standard scientific computing matrix (numpy, scipy, pandas, matplotlib) alongside astropy, meaning you no longer need to stack the -s and -a flags.
  • Automated Notebook Versioning: Automatically installs and configures nbdime (nbdime config-git --enable) during post-install tasks, permanently resolving the Jupyter JSON diff nightmare for research repositories.

Documentation & Assets

  • Zensical & ReadTheDocs Migration: Evicted the bloated deep-dive documentation from the README.md and migrated to a custom zensical (Material derivative) framework on ReadTheDocs. Includes a custom Slate dark-mode UI with proper CSS specificity flattening.
  • Automated SVG Fixtures: The CLI help matrices are now generated programmatically via rich.console into deterministic SVGs. This process is fully typed, sandboxed, and enforced in CI—if the CLI arguments change but the docs aren't updated, the build fails.
  • VHS Integration & Static Branding: Swapped the computationally expensive animated Lorenz attractor scripts for clean, lightweight static SVGs, and introduced vhs tapes for programmatic TUI screen recording.

Build System & CI

  • Justfile Optimization: Replaced the legacy Makefile with a justfile. All execution targets now trigger a silent uv sync --all-extras --dev pre-flight check, guaranteeing sub-millisecond dependency determinism.
  • Telemetry Parsing: Extracted the inline YAML benchmark script into scripts/parse_benchmarks.py. Hyperfine results for both headless and interactive paths are now properly routed to the GitHub Pages performance dashboard.
  • Dependency Trimming: Removed redundant configurations in pyproject.toml and explicitly excluded internal scripts/assets from the Hatch sdist target to keep the PyPI package lean.