duhem 0.1.0
What's Changed
- Add Claude Code skills for the Duhem repo by @tikazyq in #1
- Replace stub README with a minimal landing doc by @tikazyq in #2
- Add CLAUDE.md system prompt with Onsager dogfood orientation by @tikazyq in #4
- docs(skills): stop hard-wrapping prose in spec issue bodies by @tikazyq in #6
- feat(infra): scaffold Cargo workspace, toolchain, and CI baseline by @tikazyq in #7
- feat(schema): Verification Definition v0.1 types + chumsky expression AST by @tikazyq in #13
- feat(actions): ui/* v1 minimal slice — navigate, click, assert-element by @tikazyq in #14
- feat(judge): three-state verdict aggregation v1 by @tikazyq in #16
- feat(evidence): append-only run trace v1 by @tikazyq in #18
- feat(runtime): expression evaluator v1 by @tikazyq in #17
- feat(runtime): minimal step executor by @tikazyq in #19
- feat(schema,cli): typed input catalog by @tikazyq in #24
- feat(actions): api/* v1 minimal slice — api/call by @tikazyq in #25
- feat(runtime): setup-step ordering (#20) by @tikazyq in #26
- chore(skills): install plan-dag from onsager-ai/onsager-skills by @tikazyq in #27
- chore(skills): sync plan-dag from onsager-skills by @tikazyq in #28
- chore(skills): sync plan-dag from onsager-skills by @tikazyq in #29
- issue-spec: sync abstract skill from onsager-skills by @tikazyq in #30
- chore(skills): sync plan-dag PNG target from onsager-skills by @tikazyq in #31
- chore(skills): sync plan-dag visual encoding from onsager-skills by @tikazyq in #32
- chore(skills): sync plan-dag SVG/HTML targets from onsager-skills by @tikazyq in #39
- feat(cli): duhem run flags — filter, headed, evidence-dir, reporter by @tikazyq in #40
- feat(actions): ui/* rest-of-slice — type, select, assert-url, assert-state by @tikazyq in #41
- feat(cli): duhem run flags — inputs-file, dry-run, seed (#33) by @tikazyq in #42
- feat(cli): reporter plugins — RunSummary contract + subprocess loader (#34) by @tikazyq in #43
- chore(skills): sync plan-dag from onsager-skills (PNG-only renderer) by @tikazyq in #45
- feat(actions): api/observe — passive HTTP observation via Playwright (#38) by @tikazyq in #44
- spec(dogfood): first Onsager Verification Definition — create-project flow by @tikazyq in #46
- feat(integration): duhem/run composite action + dogfood workflow by @tikazyq in #47
- chore(skills): sync plan-dag from onsager-skills by @tikazyq in #55
- chore: consolidate dev skills into onsager-ai/dev-skills by @tikazyq in #56
- chore: install onsager-ai/dev-skills on SessionStart in cloud by @tikazyq in #57
- feat(schema,docs): formalize schema versioning discipline by @tikazyq in #59
- feat(cli): duhem init — scaffold a Verification Definition skeleton (#48) by @tikazyq in #58
- feat(cli,schema): root manifest loader — multi-leaf duhem run by @tikazyq in #60
- feat(runtime,schema): environment provisioning v1 —
up:/down:hooks by @tikazyq in #61 - docs: Phase 0 status sync across README, CLAUDE.md, dev-process, justfile, spec §14, Appendix D by @tikazyq in #65
- chore(skills): retire draft/planned/in-progress spec status labels by @tikazyq in #64
- refactor(actions,runtime): drive ui/* via official Playwright sidecar by @tikazyq in #73
- feat(actions): restore api/observe on the Playwright sidecar (#72) by @tikazyq in #74
- fix(actions): emit valid internal:has-text for Locator text (#75) by @tikazyq in #76
- ci: run ui/* + api/observe smoke in a Chromium lane (#77) by @tikazyq in #78
- feat(dogfood): retire create-project VD, target the spec-plan flow by @tikazyq in #80
- fix(dogfood): seed workflow with a UUID node id; confirm the seam live by @tikazyq in #81
- feat(actions): operator-pluggable sidecar browser; dogfood runs green live by @tikazyq in #83
- feat(dashboard): web dashboard MVP + live streaming — JSON API, SPA, CLI/export, SSE by @tikazyq in #88
- docs(skills): pre-push sync — name the real recipes, drop Phase-0 framing by @tikazyq in #89
- docs(spec): §10–§11 audit clarifying bundle — true six prose claims to code by @tikazyq in #96
- refactor(skills): migrate to global pre-push / pr-lifecycle by @tikazyq in #98
- feat(dogfood): Arbor create-and-ship-app VD — proven green live by @tikazyq in #103
- feat(judge): nested JSON navigation in path references by @tikazyq in #106
- feat(actions): cli/invoke — run a command, capture exit/stdout/stderr by @tikazyq in #107
- feat(actions): db/query + db/seed — assert and seed real SQL state by @tikazyq in #108
- fix(actions): sidecar auto-discovers an installed Chromium by @tikazyq in #109
- feat(dogfood): Crawlab create-project VD + env-script spawn fix by @tikazyq in #112
- feat(dogfood): Crawlab UI sign-in + dashboard VD (Vue surface) by @tikazyq in #114
- feat(actions): api/poll — poll an endpoint until a response condition holds by @tikazyq in #116
- feat(runtime): $runtime.format — compose values (dynamic URLs) without scripting by @tikazyq in #118
- feat(runtime): more pure $runtime helpers — concat/len/lower/upper/trim/replace/default by @tikazyq in #120
- feat(actions): db/query — MongoDB read path (#121) by @tikazyq in #122
- feat(dogfood): Crawlab spider→task scheduling lifecycle VD (#123) by @tikazyq in #124
- feat(cli): validate accepts a VD directory (#125) by @tikazyq in #126
- feat(reporter): surface which assertion failed (#125) by @tikazyq in #128
- feat(runtime): skip the browser for page-free verifications (#125) by @tikazyq in #127
- feat(dx): complete + harden the DX pass (#129) by @tikazyq in #130
- feat(schema): manifest-level shared environment — provision a suite once (#131) by @tikazyq in #132
- feat(schema): publish a JSON Schema for VD + manifest YAML (schemars) by @tikazyq in #136
- feat(schema): validate scans with: payloads — bare missing refs hard-fail by @tikazyq in #137
- feat(schema): manifest environments: block + CLI --environment (#68) by @tikazyq in #138
- feat(schema): leaf inputs inherit from the manifest via inherits: (#135) by @tikazyq in #139
- feat(cli): manifest discovery — ancestor walk, .duhem.yml alias, -f override (#69) by @tikazyq in #140
- feat(schema): root manifest defaults: block — timeout/inconclusive/retry (#66) by @tikazyq in #142
- feat(schema): root manifest includes: block — shared + local composition (#67) by @tikazyq in #141
- docs(license): relicense to Apache-2.0; open-source posture by @tikazyq in #144
- docs(readme): public README + CONTRIBUTING for the OSS release by @tikazyq in #146
- ci(release): npm + GitHub Releases distribution pipeline for the duhem CLI by @tikazyq in #145
- docs(release): cut v0.1.0 CHANGELOG section by @tikazyq in #147
New Contributors
Full Changelog: https://github.com/onsager-ai/duhem/commits/v0.1.0