v0.9.20
Highlights
- Goal mode now carries durable progress across continuation turns. Working notes, lifecycle state, turn counts, elapsed time, and token usage are recorded and restored so long-running work can continue without losing its execution context.
- Completion claims are independently verified. Explicit or generated acceptance criteria are checked against recent execution evidence; failed reviews return actionable feedback instead of silently accepting partial work, while stale verdicts are discarded if the goal changes during grading.
- Budgets are enforced across the full goal lifecycle. Turn, token, and wall-clock limits are normalized safely, grader usage is included in accounting, and resource exhaustion stops goal execution with a recorded blocked outcome.
- Goal transitions are safer. Resume, interruption, cancellation, approval cancellation, context compaction, side questions, and post-write/spec-critic continuations now preserve a coherent single active execution boundary.
- Coverage was expanded substantially. Contract tests now exercise goal persistence, budget edges, grading, usage accounting, hooks, compaction, interruptions, and lifecycle recovery.
Compatibility notes
- Calling
UpdateGoalwithcompletemay now trigger one or two verification model calls. If evidence is insufficient, the goal remains active and the reviewer feedback is returned for another iteration. - An active goal restored from disk is paused after resume, preventing surprise autonomous work until the user explicitly resumes it.
- Node.js
>=22.19.0remains required. This release is distributed through npm; no native executable artifacts are included.
Verification
- GitHub CI passed on Linux and Windows for npm source commit
bcc4e5a. - Full local workspace suite: 5,207 tests passed, 50 skipped, and 2 todo across 412 passing test files.
- Typecheck, lint (0 errors), Sherif, full build, publint, package type checks, local CLI smoke, and npm package dry-run passed.
- The dry-run tarball integrity matches the published
@liumir/lmcode@0.9.20registry artifact, and the published CLI reports0.9.20.
Full Changelog: v0.9.19...v0.9.20