runcomposer v0.1.0
Changelog
0.1.0 — 2026-07-07
First release: DESIGN.md phases P0–P3 complete, each independently
judge-verified against the design.
Core & spec (P0/P1)
- runspec 1.0: versioned, JSON-isomorphic run spec with published JSON
Schema;runcomposer validate(incl. the--for-dispatchprofile) with
the §3 versioning policy (strict known fields, MINOR-forward tolerance,
refuse higher MAJOR). - Lossless tag-filter AST (literal /
prefix:/regex:, AND/OR/NOT),
selection compile with fixed intersection semantics, catalog snapshots. - sqlite RunStore (normative schema), full run lifecycle
(COMPOSED → RUNNING → AWAITING_RESULTS → COMPLETE, computed completion),
export dispatches,runcomposer-exec— the vendorable single-file
stdlib-only spec consumer writing theruncomposer_run.jsonmarker. - CLI: validate · demo · catalog · compile · spec · dispatch · runs ·
ingest · gc · export · serve. Compose/preview HTTP API. - React UI (en + de, all literals in locale files), taxonomy tree, SVAR
filter builder behind an adapter, auto-compiled preview, runner-aware
compose footer — pre-bundled in the wheel, no Node needed to evaluate.
Ingestion transports (P2a)
- Token-guarded results push API (
POST /api/v1/runs/{id}/results),
file-drop inbox watcher, quarantine inbox with attach/promote, content-hash
idempotency (byte-identical = no-op, same-shard redelivery = last-writer-
wins), markerspec_sha256verification,runcomposer gcretention.
Execution (P2b)
robotframeworkTestSource (id = longname) androbot-poolrunner:
shared process pool, partition fan-out, duration-balanced chunking with
documented round-robin cold start, live verdicts via the injected Robot
listener, per-dispatch artifact isolation, §3.3 drift refusal /
allow_driftintersection with SKIP-reason-drift. Defused
robot-output-xmlparser. All behind theruncomposer[robot]extra.
Reach (P3)
- Defused
junit-xmlparser + pytest example corpus (manifestaliases
map native junit names onto nodeids — the framework-agnosticism proof). - History-based selection (
failed@latest,run:<id>,before:<time>)
withderived_fromprovenance;runs --failed-in latest,
spec --from-history, UI quick-pick. - CTRF export (
runcomposer export <run> --format ctrf). ci-triggerrunner + the thin CI-side consumer stage (reproducible
Jenkins-in-docker underci/jenkins/): webhook-out completion and a
build-API polling fallback; session-bound CSRF crumb handling.
Post-P3 polish
- ci-trigger dispatches record the SPEC_JSON hash so §5 marker verification
works on the CI path. - robot-pool: user
listenerpass-through andpre_run_hooks(completing
the §6.2a option list). - Clearer error when a history selection matches nothing; push requests with
a mismatched declared format are rejected;gcno longer leaves empty
artifact directories.