Summary
AI-DLC 2.10.0 strengthens Construction checkpoints and human authority, allows compatible harnesses to coexist in one project, and improves reliability across worktrees, hooks, workflow parsing, diagnostics, and Windows environments.
Upgrade
aidlc update
cd /path/to/project
aidlc config --yes
aidlc doctorRun the project refresh between workflows. When a project contains multiple harnesses, run aidlc config --harness <name> --yes for each harness you want to refresh.
Manual-copy users must replace the complete runtime/<harness>/ tree from aidlc-copy-runtime-2.10.0.tar.gz. This installation path requires Bun but does not require the native aidlc executable.
Fresh install
macOS and Linux
curl -fsSL https://github.com/awslabs/aidlc-workflows/releases/download/v2.10.0/install.sh | sh -s -- --version 2.10.0Windows PowerShell
irm https://github.com/awslabs/aidlc-workflows/releases/download/v2.10.0/install.ps1 -OutFile install.ps1
./install.ps1 -Version 2.10.0Highlights
Workflow authority and recovery
- Construction is reviewed at verified Unit and batch checkpoints.
- Guards more clearly separate agent execution boundaries from approval gates controlled by humans.
- Common refusal and recovery paths now identify an executable next step.
- Stage questions, gate replies, Testing Posture fields, story maps, claim sources, and traceability records are parsed more reliably.
Harnesses and configuration
- Compatible, non-colliding harnesses can coexist in the same project.
- Harnesses share a neutral
AGENTS.mdonboarding block while retaining their native setup. - Configuration preserves the current model provider unless Amazon Bedrock is explicitly selected.
- Kiro IDE delegation, Copilot routing, compiled tool dispatch, and engine child execution now follow the correct native paths.
Worktrees and lifecycle
- Bolt branches, references, and worktrees are scoped by intent, preventing collisions between parallel work.
- Parked Bolt attempts restore byte-for-byte without invoking checkout filters.
- Construction and CodeKB resolve the correct project identity from linked Git worktrees.
- Windows drive-letter matching, Linux hook PATH detection, and older doctor heartbeat locations are handled correctly.
- Retired
--initand--forceflags are consumed safely, while unsupported positional arguments produce explicit errors.
What's Changed
- fix(config): one quiet line for --show, and honest source options on a copy-channel refresh by @apackeer in #1185
- fix: resolve the zero-Unit code-generation location in the traceability sensor by @vnlebaoduy in #1179
- fix: keep a JSON-scalar gate reply instead of parsing it away by @wowzoo in #1186
- fix: discover stage-level summary questions when units are skipped by @apackeer in #1110
- fix: name the accepted values in review-path refusals (#1082) by @vivibui in #1194
- fix: route compiled gate-sensor dispatch through the engine namespace by @chiliec in #1166
- fix: refuse orphaned positionals at intent-create instead of storing a truncated description (#1114) by @vivibui in #1195
- fix: make /aidlc compose scopes durable across an engine reinstall by @DrakeRHEE in #1159
- test: skip POSIX gate-sensor fixture on Windows by @apackeer in #1208
- fix: make compiled dispatch exhaustive over TOOLS so native review briefs route (#1070) by @apackeer in #1115
- docs: refresh roadmap against current main by @leandrodamascena in #1144
- fix(ci): simplify AI PR review execution by @leandrodamascena in #1153
- fix: accept the documented (Recommended) label decorator at gate replies by @jisu-im-dev in #1023
- fix: resolve repo identity from the main checkout so a git worktree finds its codekb by @jstrunk in #1205
- fix: accept recommended option labels at stage gates by @apackeer in #1133
- fix(ci): pin AI review controls to the default branch and explain rejected reviews by @apackeer in #1225
- fix: make guard recovery executable across workflow states by @apackeer in #1149
- fix(kiro-ide): let approved Code Generation delegate instead of refusing it as an opaque mutation (#1175) by @vivibui in #1204
- fix: restore a parked Bolt attempt byte-exact without running checkout filters by @apackeer in #1234
- fix: allow Construction from a git worktree outside the main checkout by @jstrunk in #1206
- docs: replace semicolons that break two sequenceDiagram blocks by @justinhsu1477 in #1237
- fix: read a wrapped Testing Posture field value whole instead of its first line by @vnlebaoduy in #1193
- fix: join FR-keyed story-map rows when user-stories is skipped by @vnlebaoduy in #1176
- fix: end a wrapped field value only at a structured field head by @apackeer in #1254
- feat: review Construction at verified Unit and batch checkpoints by @apackeer in #1150
- fix(doctor): read the Linux login-independent PATH sources for the hook PATH baseline by @vnlebaoduy in #1191
- fix: name the worktree that holds bolt- and state the nesting rule accurately by @apackeer in #1253
- fix: recompute the stage diary path when runtime-graph.json is absent by @rafaelgsr in #1230
- fix: only advise a missing reviewer dispatch record when one was owed by @wowzoo in #1236
- fix: route /aidlc park and team-board to the orchestrator instead of the freeform funnel by @mahezsh in #1112
- docs: flag statusline $cost as a misleading list-price estimate under Bedrock by @SaRedfiche in #1232
- fix: tell the user when a Bolt attempt is set aside, and make its recovery discoverable by @apackeer in #1255
- fix: owe the reviewer dispatch record per unit under an invoke-swarm by @apackeer in #1256
- fix: keep read-only
nextforms conversational on Copilot and normalize launcher options in the Kiro guard by @apackeer in #1260 - feat(config): allow non-colliding harnesses to coexist in one project by @fsatsuki in #1199
- fix: state the minted record-dir shape in the onboarding template (#1009) by @vnlebaoduy in #1131
- fix: scope Bolt worktrees, branches and refs by intent so parallel intents never collide by @apackeer in #1261
- feat(ci): add conversation-aware multi-model PR review by @leandrodamascena in #1275
- feat(ci): add AI review for issue intent and direction by @leandrodamascena in #1280
- feat(config): share a harness-neutral AGENTS.md block across harnesses by @apackeer in #1268
- fix: validate audited Branch name and Worktree path in worktree info before the protocol interpolates them (#1281) by @apackeer in #1284
- fix: keep the current provider unless Bedrock is selected by @leandrodamascena in #1101
- fix(claim-sources): fold multi-line assumption confirmations before matching by @mittalpk in #1156
- feat(ci): add AIDA review decisions and PR labels by @leandrodamascena in #1293
- feat(ci): add AIDA issue labels and UX summaries by @leandrodamascena in #1296
- fix(claim-sources): keep a definition-shaped line inside a paragraph visible by @apackeer in #1295
- fix(hooks): route each engine child through the dispatcher, not a bare bun by @vnlebaoduy in #1250
- feat(tests): isolate parallel test runs and add native terminal validation by @apackeer in #1216
- feat(aida): findings ledger with /aida maintainer commands by @leandrodamascena in #1305
- docs: explain development and release process by @apackeer in #1307
- fix(aida): ledger identity via judge ledgerId, evaluable anchors, strict /aida batches, verdict refresh both ways by @leandrodamascena in #1308
- feat(aida): incremental review scope per lens, deferred out-of-scope findings, /aida full by @leandrodamascena in #1312
- feat(aida): judge dispositions bind restatements by id; security lenses emit structured evidence by @leandrodamascena in #1316
- feat(aida): the next action follows finding severity alone; readiness and risk inform, never decide by @leandrodamascena in #1319
- fix: consume retired --init/--force flags instead of leaking them into intent descriptions by @apackeer in #982
- test: register retired flag classifier coverage by @leandrodamascena in #1361
- fix(doctor): read hook heartbeats left at the pre-engine-dir path by @vnlebaoduy in #1240
- fix(aida): a folded higher-severity duplicate publishes its own body; deferral rationale never stacks explanations by @leandrodamascena in #1359
- fix(ci): require live coverage and parallelize platform tests by @apackeer in #1311
- fix(ci): keep AIDA issue reviews when repository evidence is unsupported by @leandrodamascena in #1364
- fix: name a working next step in the refusals operators actually hit by @rafaelgsr in #1322
- fix(ci): correct Codex readiness and composed scope checks by @apackeer in #1365
- fix(ci): preload system modules for Windows Codex readiness by @apackeer in #1367
- fix: correct session-skill command references and document CLI fallback by @gpmattoo in #1363
- fix: make the guards a fence for the agents and a gate the human holds the key to by @apackeer in #1262
- fix: match record-root paths case-insensitively on Windows so Kiro IDE artifact writes are audited by @apackeer in #1201
- chore(release): prepare v2.10.0 by @leandrodamascena in #1380
New Contributors
- @vnlebaoduy made their first contribution in #1179
- @chiliec made their first contribution in #1166
- @DrakeRHEE made their first contribution in #1159
- @jisu-im-dev made their first contribution in #1023
- @justinhsu1477 made their first contribution in #1237
- @mittalpk made their first contribution in #1156
- @gpmattoo made their first contribution in #1363
Full Changelog: v2.9.0...v2.10.0