Repository navigation
Releases: Pa004/shadowBox
Release list
v0.4.0: calibrate, serve, k8s, UI overhaul
Headless plus server plus UI, installable with no clone:
pipx install shadowbox==0.4.0
shadowbox init --out demo
New since v0.3.2: serve command, Kubernetes importer with format autodetect, D1Store plus injectable app factory, permissive CORS, stratified replay sampling, React plus Cytoscape Studio, full OpenDesign UI overhaul (7-zone dashboard, tabs with deep links, light theme, guided tour), calibration v1 plus v2 (latency, capacity, queues, agreement gate), split engine/model confidence in UI and reports, Rootline-style README with live screenshots, MIT license.
Verified: 56 pytest green, strict mypy plus ruff clean, CI green on tag, clean PyPI install simulates the golden card identically, live Worker healthy.
v0.3.2: serve, k8s, cloud, studio
Headless plus server plus UI, all installable with no clone:
pipx install shadowbox==0.3.2
shadowbox init --out demo
New since v0.3.1: serve command for the local API, Kubernetes manifest importer with format autodetect, D1Store plus injectable app factory (Cloudflare Worker live), permissive CORS for browser clients, stratified replay sampling, React plus Cytoscape Studio (also live on Pages), PyPI classifiers plus README badges.
Verified: 46 pytest green, strict mypy plus ruff clean, CI green on tag, clean PyPI install simulates the golden card identically (5000/6000 ok, p99 34ms).
v0.3.1: cloud live
Live Cloudflare deploy, verified end to end: static demo plus FastAPI plus D1 at https://shadowbox-api.pablodo004.workers.dev, with identical hashes local vs cloud.
New since v0.3.0: init command with wheel-bundled example and 7 chaos cards, D1Store plus create_app factory with per-request D1 binding, ASSETS catch-all for the static demo, serve command, package-metadata version, vendor script for the worker bundle, Studio in CI.
Install: pipx install shadowbox==0.3.1 (or uvx). No clone needed: shadowbox init --out demo.
v0.3.0: PyPI debut
Install from PyPI, no clone, no git. The name shadowbox is now yours.
pipx install shadowbox
or per-run: uvx shadowbox --help
Onboard in one minute:
shadowbox init --out demo
cd demo (or stay; pass paths)
shadowbox validate model.yaml --scenario scenarios/db-failure.yaml
shadowbox simulate model.yaml --scenario cards/db-down.yaml --seed 42 --out report.json
shadowbox compare --a base.json --b report.json
shadowbox serve --port 8000
What is inside 0.3.0: deterministic seeded engine with golden hash, exact p50/p90/p95/p99, compose importer, 7 wheel-bundled chaos cards, local FastAPI server with SQLite, static demo with time-travel replay, React plus Cytoscape Studio source.
Full changelog: M0 contracts, M1 engine, M2 importer plus cards, M3 compare, M4a API, M4b cloud scaffold, M5a replay, M5b studio, serve command, init plus packaging, PyPI trusted publishing.
v0.2.1: no-clone onboarding
Use without cloning: uvx installs the tool plus example and chaos cards.
uvx --from "shadowbox @ git+https://github.com/Pa004/shadowBox.git@v0.2.1" shadowbox init --out demo
shadowbox validate model.yaml --scenario scenarios/db-failure.yaml
shadowbox simulate model.yaml --scenario cards/db-down.yaml --seed 42
New: init command (example plus 7 cards scaffold, E_EXISTS guard), wheel-bundled data via importlib.resources, canonical data moved into src/shadowbox/data with history-preserving renames, serve version from package metadata. Verified end-to-end from an isolated install: 5000/6000 ok, p99 34ms.
Fixes along the way: hatchling excludes git-ignored model.yaml (force-include), Typer single-command flattening, Rich help width in CI, vite pair alignment.
v0.2.0: server, replay, studio
On top of v0.1.0 headless MVP.
New: local FastAPI server plus SQLite store (serve command, 7 endpoints with paginated events), Cloudflare scaffold (wrangler plus D1 schema plus static demo), time-travel replay in the static demo and in the new React plus Cytoscape Studio (apps/studio, strict TS), request samples with arrival and finish times.
Verify: ruff plus strict mypy clean, 33 pytest green, CI green, golden hash pinned, SLO 840k events in 0.6s on i7-1255U.
Studio build is yours: cd apps/studio, npm install, npm run build.
v0.1.0: headless MVP
Executable architectural model for safe what-if experimentation. Simulation output always carries assumptions, confidence, and seed — never presented as production measurement.
Quickstart (Python 3.13, uv, no card, offline-capable):
uv python pin 3.13
uv venv
uv sync --group dev
uv run shadowbox import --from examples/checkout/docker-compose.yaml --out model.yaml
uv run shadowbox validate examples/checkout/model.yaml --scenario examples/checkout/scenarios/db-failure.yaml
uv run shadowbox simulate examples/checkout/model.yaml --scenario examples/checkout/scenarios/db-failure.yaml --seed 42 --out report.json
uv run shadowbox compare --a base.json --b report.json
uv run shadowbox serve --port 8000
What is inside: deterministic engine (seeded, golden hash), exact p50/p90/p95/p99, compose importer, 7 chaos cards, FastAPI server with SQLite, static web demo with time-travel replay, 33 tests (unit, golden, property, integration). Benchmarks: 85k events in ~0.05s, 840k in ~0.6s (i7-1255U, SLO 50k events under 2s).
Full changelog: M0 contracts, M1 engine, M2 importer plus cards, M3 compare, M4a API, M4b cloud scaffold, M5a replay, serve command.