Repository navigation
v0.1.0
·
1671 commits
to refs/heads/main
since this release
What's Changed
- style(cli): normalize help punctuation to end with periods (#497) @Cyrax321
- fix(cli): add ellipsis when goal truncated in runs and tree (#496) @Cyrax321
- fix(cli): clarify observe output when tool_name missing (#495) @Cyrax321
- feat(budgets): refusal surfaces name authorization and budget report shows per-auth rows (Fixes #414) (#465) @Cyrax321
- fix(observations): reject bool in payload bytes field (#462) @Newer1107
- ci: deploy docs to Vercel from main only (#355) @Cyrax321
- fix(recovery): tighten replayguard types for strict mypy (#248) @Cyrax321
- fix(recovery): close gate, escalation and reconcile correctness issues in the ledger (#183) @Cyrax321
- feat: resume returns goal; drop CONTINUUM_TASK.md overhead (#6) (#80) @Cyrax321
- docs: detect interrupted run and ask resume-vs-new (#6) (#79) @Cyrax321
- docs: new task never resumes an unrelated old run (#6) (#78) @Cyrax321
- docs: explicit task overrides CONTINUUM_TASK.md on resume (#6) (#77) @Cyrax321
- docs: make CONTINUUM auto-resume hands-free (#6) (#76) @Cyrax321
- feat: auto-detect and resume the active interrupted run (#6) (#75) @Cyrax321
- docs: add a separate API reference (#23) (#74) @Cyrax321
- feat: register continuum-mcp with Claude Code via .mcp.json (#73) @Cyrax321
- feat(mcp): bind caller credentials to identity with per-client tokens (#7) (#72) @Cyrax321
- fix(attest): wire attestation into CI and correct stale docstring (#24) (#71) @Cyrax321
- ci(release): migrate release workflow to uv (#27) (#70) @Cyrax321
- fix(actions): only treat known file suffixes as stem-derived (#67) (#69) @Cyrax321
- fix(adapter): declare captured environment so drift blocks resume (#25) (#68) @Cyrax321
- test: add regression test for OpenAI adapter arg binding (#37) (#66) @Cyrax321
- fix: stop _identity_match from falsely deduplicating distinct actions (#64) (#65) @Cyrax321
- fix: close seven correctness issues from the C1 triage backlog (#61) @Cyrax321
- chore: apply ruff format to the serve sidecar files (#62) @Cyrax321
- feat(observability): metrics collector and Phase 14 recovery dashboard (A2) (#60) @Cyrax321
- docs(bench): reflect 5 implemented scenarios after #58 (#59) @Cyrax321
- docs(bench): correct CONTINUUM-Bench status to reflect shipped harness (#57) @Cyrax321
- feat(bench): expand CONTINUUM-Bench scenario suite with crash-timing scenarios (#58) @Cyrax321
🚀 Features
- fix: make SQLiteStorage.close idempotent (#347) @VedantMadane
🐛 Bug Fixes
- fix: show absolute path in gate config error messages (#340) @aastha-m22
- fix(serve): delete the dead auth gate and pin the policy the sidecar really has (#95) (#99) @Adhi1-2
- fix: report the failing storage path unescaped so it is copy-pasteable (#94) (#97) @Adhi1-2
- fix(mcp): report a missing 'mcp' extra instead of an import traceback (#87) (#93) @Adhi1-2
- fix(serve): let a sidecar client resume without a memorized id or task file (#92) @abyyxhek
- fix(mcp): make a failed cold start leak free and diagnosable (#87) (#90) @Adhi1-2
- fix(benchmark): close SQLiteStorage handles so continuum benchmark runs on Windows (#89) @abyyxhek
- fix(validator): report UNKNOWN, not VALID, for unverifiable model assumptions (#54) @as950118
- fix(extractor): collapse ids repeated within a single LLM proposal (closes #41) (#52) @dchaudhari7177
- fix(extractor): fall back to deterministic state on malformed LLM proposal (#56) @lesbass
- fix(cli): make replay actually confirm the stored version (closes #31) (#50) @dchaudhari7177
- fix(adapters): keep a result dict holding the envelope key intact on cache hit (closes #44) (#53) @dchaudhari7177
- fix(mcp): reject negative progress counters even when total is omitted (#51) @lesbass
🔌 Adapters
- feat(adapters): native LangGraph checkpointer over CONTINUUM storage (#246) @Cyrax321
- feat(adapters): thin adapters for CrewAI, AutoGen and Pydantic AI (#229) @Cyrax321
- feat(cli): install observation hooks for Gemini CLI and Codex CLI (#224) @Cyrax321
- feat(cli): pre-action gate enforcing ledger claims before side effects (#220) @Cyrax321
- perf(adapters): resolve optional SDK adapters lazily (PEP 562) (#219) @Cyrax321
- fix(adapters): keep a result dict holding the envelope key intact on cache hit (closes #44) (#53) @dchaudhari7177
📚 Documentation
- fix(gateway): answer malformed JSON with 400 instead of an empty body (#505) @abyyxhek
- docs: note pair programming with Co-authored-by in CONTRIBUTING (#500) @Cyrax321
- docs(cli): make --json discoverability explicit in CLI docs (#498) @Cyrax321
- docs(cli): fix diff example to include required versions (#491) @Cyrax321
- docs(cli): show --total flag in benchmark table (#490) @Cyrax321
- docs: launch assets for 0.1.0 (Refs #400) (#492) @Cyrax321
- docs: concepts and how-to for constraint pinning with honest scope (Refs #420) (#489) @Cyrax321
- fix(gate): strip surrounding whitespace from derived key values (#488) @abyyxhek
- feat(rewind): atomic dual-state rewind (Refs #292) (#486) @Cyrax321
- feat(pins): surface constraint-pin verdicts in resume and validate (Refs #419) (#463) @Cyrax321
- chore: add compose.yaml for Postgres contract tests (#450) @Cyrax321
- docs(adapters): embeddability sprint with tested harness hook recipes (#448) @Cyrax321
- docs: embeddability sprint with tested harness hook recipes (#445) @Cyrax321
- fix(budgets): write through a symlinked registry and keep its owner (#442) @abyyxhek
- fix(budgets): reject boolean limits, save atomically, name the bad value (#441) @abyyxhek
- fix(cli): make complete idempotent (#440) @quangshuynh
- docs: celebrate continuum-agent 0.1.0 on PyPI (#439) @Cyrax321
- ci: add markdown linter to catch unbalanced fences (#435) @Cyrax321
- [#388] cut CHANGELOG 0.1.0 heading (#431) @Cyrax321
- docs: list every CLI subcommand in the api reference (#363) @tasodoufu
- [#388] written release checklist for the maintainer gate (#423) @Cyrax321
- docs: explain stale editable install metadata (#422) @timothyanderson096-ocdealcheck
- docs: restore the Project Structure code fence in CONTRIBUTING (#375) @Cyrax321
- fix(state): an unprojectable log can degrade instead of killing every command (#383) (#385) @Cyrax321
- feat(mcp): record the model behind a run so drift can be detected (#380) @Cyrax321
- fix(budgets): count retries per operation, not per action type (#378) @Cyrax321
- fix(ledger): same filename in a different directory is different work (#376) @Cyrax321
- fix(ledger): complete must not assert an outcome nobody verified (#374) @Cyrax321
- fix(cli): verify must not certify a run that cannot be projected (#384) @Cyrax321
- revert: take back confirm_gate fix to credit #377 (#381) @Cyrax321
- fix(recovery): do not say nothing is wrong over an unresolved side effect (#379) @Cyrax321
- fix(mcp): reconcile the action the recovery guidance actually names (#373) @Cyrax321
- fix(mcp): a rejected progress update must not brick the run (#372) @Cyrax321
- docs: clarify mypy runs in CI, not pre-commit (#354) @unmoha
- fix(actions): serialise ActionLedger claims with the run lease (#350) @abyyxhek
- fix(mcp): stop the retry budget defeating idempotency, and name what is actually missing (#311) @Cyrax321
- docs: add pre-commit example with ruff hooks to CONTRIBUTING (#341) @unmoha
- docs: months-scale upgrade spec plus live web synthesis and STATUS checklist (#339) @Cyrax321
- ci: build and smoke-test a wheel artifact on every push to main (#310) @Cyrax321
- fix(dashboard): bind 127.0.0.1 by default (loopback hardening) (#272) @Cyrax321
- docs: record 2026-08-24 full-gate audit, refresh README counts, add architecture section 19 (#299) @Cyrax321
- feat(recovery): semantic similarity backends for the replay guard (#300) @Cyrax321
- feat(distribution): add Docker image, Codespaces, and git-install paths (#277) @Cyrax321
- fix(storage): harden compaction per the #253 review (#260) @Cyrax321
- docs: tighten README, add install and related-work references, strip em dashes (#274) @Cyrax321
- docs: refresh README with current numbers and resolved references (#273) @Cyrax321
- feat(recovery): multi-agent parent/child runs and aggregated contracts (#264) @Cyrax321
- docs(mcp): document the CONNECTION_CLOSED failure mode and the eleventh tool (#256) @Parthipashok04
- feat(dashboard): human-in-the-loop surface for request_human runs (#257) @Cyrax321
- feat(recovery): run-level retry budgets enforced at claim time (#255) @Cyrax321
- feat(storage): event-log compaction with archive table (schema v5) (#253) @Cyrax321
- fix(postgres): ship lg_* tables in _SCHEMA; rewrite contract suite (#251) @Cyrax321
- feat(serve): production server mode - PG CI + HTTP transport (#249) @Cyrax321
- feat(recovery): replay-safety guard as a portable primitive (#247) @Cyrax321
- feat(adapters): native LangGraph checkpointer over CONTINUUM storage (#246) @Cyrax321
- feat(mcp): record and brief reasoning summaries across interruptions (#245) @Cyrax321
- docs: seven-level testing guide covering every seam (#234) @Cyrax321
- docs: refresh README for enforced durability and new integrations (#233) @Cyrax321
- fix(gateway): body-size cap; refresh CLI reference for new surfaces (#232) @Cyrax321
- feat(cli): continuum complete + README harness-wiring refresh (#231) @Cyrax321
- feat(cli): enforcing HTTP gateway for registered upstreams (#230) @Cyrax321
- feat(adapters): thin adapters for CrewAI, AutoGen and Pydantic AI (#229) @Cyrax321
- feat(otel): mirror tool-call spans into the event log (#228) @Cyrax321
- feat(cli): session briefing injects durable state without CLAUDE.md (#227) @Cyrax321
- feat(recovery): render actionable next steps on resume and validate (#225) @Cyrax321
- feat(recovery): surface post-checkpoint observations in the contract (#223) @Cyrax321
- feat(cli): install observation hooks for Gemini CLI and Codex CLI (#224) @Cyrax321
- feat(cli): reconciler registry settles uncertain actions with probes (#222) @Cyrax321
- perf(storage): index cross-run idempotency claims (schema v3) (#221) @Cyrax321
- feat(cli): pre-action gate enforcing ledger claims before side effects (#220) @Cyrax321
- perf(adapters): resolve optional SDK adapters lazily (PEP 562) (#219) @Cyrax321
- feat(cli): record observed tool completions via host-side hooks (#210) @Cyrax321
- fix: close the five issues from the 2026-08-22 audit (#201-#205) (#206) @Cyrax321
- docs: add CI status badge to README (#199) @Cyrax321
- docs(changelog): correct the serve resume test count to six (#96) @abyyxhek
⚙️ Infrastructure
- chore(deps): bump actions/upload-artifact from 4 to 7 (#476) @dependabot[bot]
- chore(deps): bump docker/setup-buildx-action from 3 to 4 (#478) @dependabot[bot]
- chore(deps): bump actions/download-artifact from 4 to 8 (#474) @dependabot[bot]
- chore(deps): bump docker/build-push-action from 6 to 7 (#480) @dependabot[bot]
- chore(deps): bump docker/metadata-action from 5 to 6 (#482) @dependabot[bot]
- chore(deps): bump openai-agents from 0.21.1 to 0.22.0 (#477) @dependabot[bot]
- chore(deps): bump mcp from 2.0.0 to 2.1.0 (#475) @dependabot[bot]
- chore(deps): bump langchain from 1.3.15 to 1.3.17 (#481) @dependabot[bot]
- chore(deps): bump ruff from 0.16.3 to 0.16.4 (#473) @dependabot[bot]
- ci: add markdown linter to catch unbalanced fences (#435) @Cyrax321
- ci: build and smoke-test a wheel artifact on every push to main (#310) @Cyrax321
- ci: extend test matrix to macOS and Windows (#200) @Cyrax321
- feat(distribution): add Docker image, Codespaces, and git-install paths (#277) @Cyrax321
- ci: post a notice when new commits reset an approval (#263) @Cyrax321
- ci: apply PR status labels in base repo context (#262) @Cyrax321
- feat(serve): production server mode - PG CI + HTTP transport (#249) @Cyrax321
- fix: close the five issues from the 2026-08-22 audit (#201-#205) (#206) @Cyrax321
- chore(deps): bump actions/github-script from 7 to 9 (#196) @dependabot[bot]
- build(deps): bump ruff from 0.16.2 to 0.16.3 (#195) @dependabot[bot]
- chore(deps): bump actions/labeler from 5 to 7 (#197) @dependabot[bot]
- chore(deps): bump actions/upload-pages-artifact from 3 to 5 (#192) @dependabot[bot]
- chore(deps): bump actions/first-interaction from 1 to 3 (#194) @dependabot[bot]
- chore(deps): bump actions/checkout from 6 to 7 (#193) @dependabot[bot]
🧪 Tests & Benchmarks
- fix(dashboard): escape all user fields on list and detail pages (Refs #334) (#515) @Cyrax321
- fix(tests): close file-backed storage before unlink on Windows (#514) @Cyrax321
- test: add regression test for render_key with whitespace-only value (#512) (#513) @mhaye9545
- bench: unsafe-edit e2e with corpus registration (Fixes #410) (#506) @Cyrax321
- fix(gateway): answer malformed JSON with 400 instead of an empty body (#505) @abyyxhek
- feat(cli): render precondition refusals and lineage summaries (Refs #409) (#504) @Cyrax321
- feat(recovery): structured attempt memory with falsification lessons (Fixes #313) (#499) @Cyrax321
- fix(gate): strip surrounding whitespace from derived key values (#488) @abyyxhek
- feat(rewind): atomic dual-state rewind (Refs #292) (#486) @Cyrax321
- bench(fault): fresh-key reissuance scenario and corpus registration (Refs #415) (#483) @Cyrax321
- test(mcp): fix slim full mode count to 12 after plan upsert (Fixes #470) (#472) @Cyrax321
- test(mcp): include continuum_record_plan in tool count (Fixes #470) (#471) @Cyrax321
- test(state): enforce projection bookkeeping invariant (Refs #386) (#464) @Cyrax321
- feat(state): durable structured plan via PLAN_UPSERT (Refs #312) (#467) @Cyrax321
- fix(budgets): reject bool action type caps (#466) @Samearth17
- feat(pins): surface constraint-pin verdicts in resume and validate (Refs #419) (#463) @Cyrax321
- feat(analysis): advisory prefix-trust score with mode-invariance guarantee (#458) @Cyrax321
- fix(budgets): reject bool counters in hand-built helpers (#461) @Samearth17
- [#391] reconstruction accounting present/absent/unverifiable per pin (#457) @Cyrax321
- fix(storage): create parent directory for sqlite:// URLs (#447) @Cyrax321
- bench: fault-injection chaos suite with detection-rate and unsafe-resume metrics (#446) @Cyrax321
- fix(budgets): write through a symlinked registry and keep its owner (#442) @abyyxhek
- test: regression test for StateCheckpoint.verify with tampered hash (#444) @Cyrax321
- feat(mcp): instant resume detection, scoped confirm, and slim tool subset (#438) @Cyrax321
- fix(budgets): reject boolean limits, save atomically, name the bad value (#441) @abyyxhek
- fix(cli): make complete idempotent (#440) @quangshuynh
- feat(interchange): content-addressed evidence export for external consumers (#437) @Cyrax321
- feat(provenance): non-amplification invariant for derived artifacts (#436) @Cyrax321
- [#389] enforce preconditions on fork with rationale payloads (#433) @Cyrax321
- [#391] projector folds pins into SemanticState (#432) @Cyrax321
- [#390] deterministic authorization identity from keys or identity tokens (#430) @Cyrax321
- [#389] pure precondition derivation over event prefixes (#428) @Cyrax321
- [#391] CONSTRAINT_PINNED event type with hash-only guarantees (#425) @Cyrax321
- [#390] authorization-bound budget registry schema (#424) @Cyrax321
- fix: clarify authentication errors (#353) @adity982
- fix(state): an unprojectable log can degrade instead of killing every command (#383) (#385) @Cyrax321
- feat(mcp): record the model behind a run so drift can be detected (#380) @Cyrax321
- fix(budgets): count retries per operation, not per action type (#378) @Cyrax321
- fix(ledger): same filename in a different directory is different work (#376) @Cyrax321
- fix(ledger): complete must not assert an outcome nobody verified (#374) @Cyrax321
- fix(cli): verify must not certify a run that cannot be projected (#384) @Cyrax321
- revert: take back confirm_gate fix to credit #377 (#381) @Cyrax321
- fix(recovery): do not say nothing is wrong over an unresolved side effect (#379) @Cyrax321
- fix(mcp): reconcile the action the recovery guidance actually names (#373) @Cyrax321
- fix(mcp): a rejected progress update must not brick the run (#372) @Cyrax321
- fix(storage): use-after-close must say it was closed, and pin idempotent close (#352) @Cyrax321
- fix: every registry error names an absolute path, completing #333 (#351) @Cyrax321
- fix(actions): serialise ActionLedger claims with the run lease (#350) @abyyxhek
- fix: attest-verify must not pass a tampered chain; fork must produce a usable child (#348) @Cyrax321
- fix(mcp): stop the retry budget defeating idempotency, and name what is actually missing (#311) @Cyrax321
- fix: Improve backoff delay error message (#343) @stoppo22
- test: cover Origin self_certified variants (#344) @stoppo22
- fix(dashboard): bind 127.0.0.1 by default (loopback hardening) (#272) @Cyrax321
- feat(recovery): semantic similarity backends for the replay guard (#300) @Cyrax321
- fix(tests): inherit the parent environment when spawning child processes (#212) @abyyxhek
- feat(actions): consumed-grant tracking, deny Authority Resurrection (#269) (#287) @Cyrax321
- Informed retry: engine-authored prior-attempt summaries on recovery surfaces (#265) (#275) @Cyrax321
- Fork semantics: audited divergent continuations at the tool boundary (#259) (#286) @Cyrax321
- fix(storage): harden compaction per the #253 review (#260) @Cyrax321
- fix(windows): make hooks, the test suite and the smoke script portable (#252) @Parthipashok04
- feat(recovery): multi-agent parent/child runs and aggregated contracts (#264) @Cyrax321
- feat(dashboard): human-in-the-loop surface for request_human runs (#257) @Cyrax321
- feat(recovery): run-level retry budgets enforced at claim time (#255) @Cyrax321
- feat(storage): event-log compaction with archive table (schema v5) (#253) @Cyrax321
- fix(postgres): ship lg_* tables in _SCHEMA; rewrite contract suite (#251) @Cyrax321
- feat(serve): production server mode - PG CI + HTTP transport (#249) @Cyrax321
- feat(recovery): replay-safety guard as a portable primitive (#247) @Cyrax321
- feat(adapters): native LangGraph checkpointer over CONTINUUM storage (#246) @Cyrax321
- feat(mcp): record and brief reasoning summaries across interruptions (#245) @Cyrax321
- fix(gateway): body-size cap; refresh CLI reference for new surfaces (#232) @Cyrax321
- feat(cli): continuum complete + README harness-wiring refresh (#231) @Cyrax321
- feat(cli): enforcing HTTP gateway for registered upstreams (#230) @Cyrax321
- feat(adapters): thin adapters for CrewAI, AutoGen and Pydantic AI (#229) @Cyrax321
- feat(otel): mirror tool-call spans into the event log (#228) @Cyrax321
- feat(cli): session briefing injects durable state without CLAUDE.md (#227) @Cyrax321
- test(guidance): make the stdio round trip environment-portable (#226) @Cyrax321
- feat(recovery): render actionable next steps on resume and validate (#225) @Cyrax321
- feat(recovery): surface post-checkpoint observations in the contract (#223) @Cyrax321
- feat(cli): install observation hooks for Gemini CLI and Codex CLI (#224) @Cyrax321
- feat(cli): reconciler registry settles uncertain actions with probes (#222) @Cyrax321
- perf(storage): index cross-run idempotency claims (schema v3) (#221) @Cyrax321
- feat(cli): pre-action gate enforcing ledger claims before side effects (#220) @Cyrax321
- perf(adapters): resolve optional SDK adapters lazily (PEP 562) (#219) @Cyrax321
- feat(cli): record observed tool completions via host-side hooks (#210) @Cyrax321
- fix: close the five issues from the 2026-08-22 audit (#201-#205) (#206) @Cyrax321
- fix(benchmark): close SQLiteStorage handles so continuum benchmark runs on Windows (#89) @abyyxhek
What's Changed
- Fix self-certified progress relabelled UNKNOWN by --tolerate-unknown (issue #48) by @sharyaropensource in #55
- fix(mcp): reject negative progress counters even when total is omitted by @lesbass in #51
- fix(adapters): keep a result dict holding the envelope key intact on cache hit (closes #44) by @dchaudhari7177 in #53
- fix(cli): make replay actually confirm the stored version (closes #31) by @dchaudhari7177 in #50
- fix(extractor): fall back to deterministic state on malformed LLM proposal by @lesbass in #56
- fix(extractor): collapse ids repeated within a single LLM proposal (closes #41) by @dchaudhari7177 in #52
- feat(bench): expand CONTINUUM-Bench scenario suite with crash-timing scenarios by @Cyrax321 in #58
- fix(cli): reject --upto values that exclude RUN_STARTED with a clear message by @sharyaropensource in #39
- docs(bench): correct CONTINUUM-Bench status to reflect shipped harness by @Cyrax321 in #57
- docs(bench): reflect 5 implemented scenarios after #58 by @Cyrax321 in #59
- fix(validator): report UNKNOWN, not VALID, for unverifiable model assumptions by @as950118 in #54
- feat(observability): metrics collector and Phase 14 recovery dashboard (A2) by @Cyrax321 in #60
- chore: apply ruff format to the serve sidecar files by @Cyrax321 in #62
- fix: close seven correctness issues from the C1 triage backlog by @Cyrax321 in #61
- fix: stop _identity_match from falsely deduplicating distinct actions (#64) by @Cyrax321 in #65
- test: add regression test for OpenAI adapter arg binding (#37) by @Cyrax321 in #66
- fix(adapter): declare captured environment so drift blocks resume (#25) by @Cyrax321 in #68
- fix(actions): only treat known file suffixes as stem-derived (#67) by @Cyrax321 in #69
- ci(release): migrate release workflow to uv (#27) by @Cyrax321 in #70
- fix(attest): wire attestation into CI and correct stale docstring (#24) by @Cyrax321 in #71
- feat(mcp): bind caller credentials to identity with per-client tokens (#7) by @Cyrax321 in #72
- feat: register continuum-mcp with Claude Code via .mcp.json by @Cyrax321 in #73
- docs: add a separate API reference (#23) by @Cyrax321 in #74
- feat: auto-detect and resume the active interrupted run (#6) by @Cyrax321 in #75
- docs: make CONTINUUM auto-resume hands-free (#6) by @Cyrax321 in #76
- docs: explicit task overrides CONTINUUM_TASK.md on resume (#6) by @Cyrax321 in #77
- docs: new task never resumes an unrelated old run (#6) by @Cyrax321 in #78
- docs: detect interrupted run and ask resume-vs-new (#6) by @Cyrax321 in #79
- feat: resume returns goal; drop CONTINUUM_TASK.md overhead (#6) by @Cyrax321 in #80
- fix(benchmark): close SQLiteStorage handles so continuum benchmark runs on Windows by @abyyxhek in #89
- fix(mcp): make a failed cold start leak free and diagnosable (#87) by @Adhi1-2 in #90
- fix(serve): let a sidecar client resume without a memorized id or task file by @abyyxhek in #92
- fix(mcp): report a missing 'mcp' extra instead of an import traceback (#87) by @Adhi1-2 in #93
- docs(changelog): correct the serve resume test count to six by @abyyxhek in #96
- fix: report the failing storage path unescaped so it is copy-pasteable (#94) by @Adhi1-2 in #97
- fix(serve): delete the dead auth gate and pin the policy the sidecar really has (#95) by @Adhi1-2 in #99
- fix(recovery): close gate, escalation and reconcile correctness issues in the ledger by @Cyrax321 in #183
- chore(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #193
- docs: add CI status badge to README by @Cyrax321 in #199
- chore(deps): bump actions/first-interaction from 1 to 3 by @dependabot[bot] in #194
- chore(deps): bump actions/upload-pages-artifact from 3 to 5 by @dependabot[bot] in #192
- chore(deps): bump actions/labeler from 5 to 7 by @dependabot[bot] in #197
- build(deps): bump ruff from 0.16.2 to 0.16.3 by @dependabot[bot] in #195
- chore(deps): bump actions/github-script from 7 to 9 by @dependabot[bot] in #196
- fix: close the five issues from the 2026-08-22 audit (#201-#205) by @Cyrax321 in #206
- feat(cli): record observed tool completions via host-side hooks by @Cyrax321 in #210
- perf(adapters): resolve optional SDK adapters lazily (PEP 562) by @Cyrax321 in #219
- feat(cli): pre-action gate enforcing ledger claims before side effects by @Cyrax321 in #220
- perf(storage): index cross-run idempotency claims (schema v3) by @Cyrax321 in #221
- feat(cli): reconciler registry settles uncertain actions with probes by @Cyrax321 in #222
- feat(cli): install observation hooks for Gemini CLI and Codex CLI by @Cyrax321 in #224
- feat(recovery): surface post-checkpoint observations in the contract by @Cyrax321 in #223
- feat(recovery): render actionable next steps on resume and validate by @Cyrax321 in #225
- test(guidance): make the stdio round trip environment-portable by @Cyrax321 in #226
- feat(cli): session briefing injects durable state without CLAUDE.md by @Cyrax321 in #227
- feat(otel): mirror tool-call spans into the event log by @Cyrax321 in #228
- feat(adapters): thin adapters for CrewAI, AutoGen and Pydantic AI by @Cyrax321 in #229
- feat(cli): enforcing HTTP gateway for registered upstreams by @Cyrax321 in #230
- feat(cli): continuum complete + README harness-wiring refresh by @Cyrax321 in #231
- fix(gateway): body-size cap; refresh CLI reference for new surfaces by @Cyrax321 in #232
- docs: refresh README for enforced durability and new integrations by @Cyrax321 in #233
- docs: seven-level testing guide covering every seam by @Cyrax321 in #234
- feat(mcp): record and brief reasoning summaries across interruptions by @Cyrax321 in #245
- feat(adapters): native LangGraph checkpointer over CONTINUUM storage by @Cyrax321 in #246
- feat(recovery): replay-safety guard as a portable primitive by @Cyrax321 in #247
- fix(recovery): tighten replayguard types for strict mypy by @Cyrax321 in #248
- feat(serve): production server mode - PG CI + HTTP transport by @Cyrax321 in #249
- fix(postgres): ship lg_* tables in _SCHEMA; rewrite contract suite by @Cyrax321 in #251
- test(postgres): rewrite contract suite against the modern surface by @Cyrax321 in #250
- feat(storage): event-log compaction with archive table (schema v5) by @Cyrax321 in #253
- feat(recovery): run-level retry budgets enforced at claim time by @Cyrax321 in #255
- feat(dashboard): human-in-the-loop surface for request_human runs by @Cyrax321 in #257
- docs(mcp): document the CONNECTION_CLOSED failure mode and the eleventh tool by @Parthipashok04 in #256
- ci: apply PR status labels in base repo context by @Cyrax321 in #262
- ci: post a notice when new commits reset an approval by @Cyrax321 in #263
- feat(recovery): multi-agent parent/child runs and aggregated contracts by @Cyrax321 in #264
- fix(windows): make hooks, the test suite and the smoke script portable by @Parthipashok04 in #252
- docs: refresh README with current numbers and resolved references by @Cyrax321 in #273
- docs: tighten README, add install and related-work references, strip em dashes by @Cyrax321 in #274
- fix(storage): harden compaction per the #253 review by @Cyrax321 in #260
- Fork semantics: audited divergent continuations at the tool boundary (#259) by @Cyrax321 in #286
- feat(distribution): add Docker image, Codespaces, and git-install paths by @Cyrax321 in #277
- Informed retry: engine-authored prior-attempt summaries on recovery surfaces (#265) by @Cyrax321 in #275
- feat(actions): consumed-grant tracking, deny Authority Resurrection (#269) by @Cyrax321 in #287
- fix(tests): inherit the parent environment when spawning child processes by @abyyxhek in #212
- ci: extend test matrix to macOS and Windows by @Cyrax321 in #200
- feat(recovery): semantic similarity backends for the replay guard by @Cyrax321 in #300
- docs: record 2026-08-24 full-gate audit, refresh README counts, add architecture section 19 by @Cyrax321 in #299
- fix(dashboard): bind 127.0.0.1 by default (loopback hardening) by @Cyrax321 in #272
- ci: build and smoke-test a wheel artifact on every push to main by @Cyrax321 in #310
- docs: months-scale upgrade spec plus live web synthesis and STATUS checklist by @Cyrax321 in #339
- docs: add pre-commit example with ruff hooks to CONTRIBUTING by @unmoha in #341
- test: cover Origin self_certified variants by @stoppo22 in #344
- fix: Improve backoff delay error message by @stoppo22 in #343
- fix(mcp): stop the retry budget defeating idempotency, and name what is actually missing by @Cyrax321 in #311
- fix: attest-verify must not pass a tampered chain; fork must produce a usable child by @Cyrax321 in #348
- fix(actions): serialise ActionLedger claims with the run lease by @abyyxhek in #350
- fix: make SQLiteStorage.close idempotent by @VedantMadane in #347
- fix: show absolute path in gate config error messages by @aastha-m22 in #340
- fix: every registry error names an absolute path, completing #333 by @Cyrax321 in #351
- fix(storage): use-after-close must say it was closed, and pin idempotent close by @Cyrax321 in #352
- ci: deploy docs to Vercel from main only by @Cyrax321 in #355
- docs: clarify mypy runs in CI, not pre-commit by @unmoha in #354
- fix(mcp): a rejected progress update must not brick the run by @Cyrax321 in #372
- fix(mcp): reconcile the action the recovery guidance actually names by @Cyrax321 in #373
- fix(recovery): do not say nothing is wrong over an unresolved side effect by @Cyrax321 in #379
- revert: take back confirm_gate fix to credit #377 by @Cyrax321 in #381
- fix(cli): verify must not certify a run that cannot be projected by @Cyrax321 in #384
- fix(ledger): complete must not assert an outcome nobody verified by @Cyrax321 in #374
- fix(ledger): same filename in a different directory is different work by @Cyrax321 in #376
- fix(budgets): count retries per operation, not per action type by @Cyrax321 in #378
- feat(mcp): record the model behind a run so drift can be detected by @Cyrax321 in #380
- fix(state): an unprojectable log can degrade instead of killing every command (#383) by @Cyrax321 in #385
- docs: restore the Project Structure code fence in CONTRIBUTING by @Cyrax321 in #375
- fix: clarify authentication errors by @adity982 in #353
- docs: explain stale editable install metadata by @timothyanderson096-ocdealcheck in #422
- [#390] authorization-bound budget registry schema by @Cyrax321 in #424
- [#388] written release checklist for the maintainer gate by @Cyrax321 in #423
- [#391] CONSTRAINT_PINNED event type with hash-only guarantees by @Cyrax321 in #425
- [#389] pure precondition derivation over event prefixes by @Cyrax321 in #428
- docs: list every CLI subcommand in the api reference by @tasodoufu in #363
- [#388] cut CHANGELOG 0.1.0 heading by @Cyrax321 in #431
- [#390] deterministic authorization identity from keys or identity tokens by @Cyrax321 in #430
- [#391] projector folds pins into SemanticState by @Cyrax321 in #432
- [#389] enforce preconditions on fork with rationale payloads by @Cyrax321 in #433
- ci: add markdown linter to catch unbalanced fences by @Cyrax321 in #435
- feat(provenance): non-amplification invariant for derived artifacts by @Cyrax321 in #436
- feat(interchange): content-addressed evidence export for external consumers by @Cyrax321 in #437
- docs: celebrate continuum-agent 0.1.0 on PyPI by @Cyrax321 in #439
- fix(cli): make complete idempotent by @quangshuynh in #440
- fix(budgets): reject boolean limits, save atomically, name the bad value by @abyyxhek in #441
- feat(mcp): instant resume detection, scoped confirm, and slim tool subset by @Cyrax321 in #438
- test: regression test for StateCheckpoint.verify with tampered hash by @Cyrax321 in #444
- fix(budgets): write through a symlinked registry and keep its owner by @abyyxhek in #442
- docs: embeddability sprint with tested harness hook recipes by @Cyrax321 in #445
- docs(adapters): embeddability sprint with tested harness hook recipes by @Cyrax321 in #448
- bench: fault-injection chaos suite with detection-rate and unsafe-resume metrics by @Cyrax321 in #446
- fix(storage): create parent directory for sqlite:// URLs by @Cyrax321 in #447
- [#391] reconstruction accounting present/absent/unverifiable per pin by @Cyrax321 in #457
- fix(budgets): reject bool counters in hand-built helpers by @Samearth17 in #461
- chore: add compose.yaml for Postgres contract tests by @Cyrax321 in #450
- fix(observations): reject bool in payload bytes field by @Newer1107 in #462
- feat(analysis): advisory prefix-trust score with mode-invariance guarantee by @Cyrax321 in #458
- feat(pins): surface constraint-pin verdicts in resume and validate (Refs #419) by @Cyrax321 in #463
- fix(budgets): reject bool action type caps by @Samearth17 in #466
- feat(state): durable structured plan via PLAN_UPSERT (Refs #312) by @Cyrax321 in #467
- feat(budgets): refusal surfaces name authorization and budget report shows per-auth rows (Fixes #414) by @Cyrax321 in #465
- test(state): enforce projection bookkeeping invariant (Refs #386) by @Cyrax321 in #464
- test(mcp): include continuum_record_plan in tool count (Fixes #470) by @Cyrax321 in #471
- test(mcp): fix slim full mode count to 12 after plan upsert (Fixes #470) by @Cyrax321 in #472
- chore(deps): bump ruff from 0.16.3 to 0.16.4 by @dependabot[bot] in #473
- chore(deps): bump langchain from 1.3.15 to 1.3.17 by @dependabot[bot] in #481
- chore(deps): bump mcp from 2.0.0 to 2.1.0 by @dependabot[bot] in #475
- chore(deps): bump openai-agents from 0.21.1 to 0.22.0 by @dependabot[bot] in #477
- chore(deps): bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #482
- chore(deps): bump docker/build-push-action from 6 to 7 by @dependabot[bot] in https://github.com/Cyrax321/CONTINUUM/pull/480
- chore(deps): bump actions/download-artifact from 4 to 8 by @dependabot[bot] in https://github.com/Cyrax321/CONTINUUM/pull/474
- chore(deps): bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in https://github.com/Cyrax321/CONTINUUM/pull/478
- chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in https://github.com/Cyrax321/CONTINUUM/pull/476
- bench(fault): fresh-key reissuance scenario and corpus registration (Refs #415) by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/483
- feat(rewind): atomic dual-state rewind (Refs #292) by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/486
- fix(gate): strip surrounding whitespace from derived key values by @abyyxhek in https://github.com/Cyrax321/CONTINUUM/pull/488
- docs: concepts and how-to for constraint pinning with honest scope (Refs #420) by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/489
- docs: launch assets for 0.1.0 (Refs #400) by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/492
- docs(cli): show --total flag in benchmark table by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/490
- docs(cli): fix diff example to include required versions by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/491
- fix(cli): clarify observe output when tool_name missing by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/495
- fix(cli): add ellipsis when goal truncated in runs and tree by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/496
- style(cli): normalize help punctuation to end with periods by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/497
- docs(cli): make --json discoverability explicit in CLI docs by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/498
- docs: note pair programming with Co-authored-by in CONTRIBUTING by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/500
- feat(recovery): structured attempt memory with falsification lessons (Fixes #313) by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/499
- feat(cli): render precondition refusals and lineage summaries (Refs #409) by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/504
- fix(gateway): answer malformed JSON with 400 instead of an empty body by @abyyxhek in https://github.com/Cyrax321/CONTINUUM/pull/505
- bench: unsafe-edit e2e with corpus registration (Fixes #410) by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/506
- test: add regression test for render_key with whitespace-only value (#512) by @mhaye9545 in https://github.com/Cyrax321/CONTINUUM/pull/513
- fix(tests): close file-backed storage before unlink on Windows by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/514
- fix(dashboard): escape all user fields on list and detail pages (Refs #334) by @Cyrax321 in https://github.com/Cyrax321/CONTINUUM/pull/515
New Contributors
- @sharyaropensource made their first contribution in #55
- @lesbass made their first contribution in #51
- @dchaudhari7177 made their first contribution in #53
- @Cyrax321 made their first contribution in #58
- @as950118 made their first contribution in #54
- @abyyxhek made their first contribution in #89
- @Adhi1-2 made their first contribution in #90
- @dependabot[bot] made their first contribution in #193
- @Parthipashok04 made their first contribution in #256
- @unmoha made their first contribution in #341
- @stoppo22 made their first contribution in #344
- @VedantMadane made their first contribution in #347
- @aastha-m22 made their first contribution in #340
- @adity982 made their first contribution in #353
- @timothyanderson096-ocdealcheck made their first contribution in #422
- @tasodoufu made their first contribution in #363
- @quangshuynh made their first contribution in #440
- @Samearth17 made their first contribution in #461
- @Newer1107 made their first contribution in #462
- @mhaye9545 made their first contribution in https://github.com/Cyrax321/CONTINUUM/pull/513
Full Changelog: https://github.com/Cyrax321/CONTINUUM/commits/v0.1.0