@rasensio/aidlc-content 1.85.0 → 1.87.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,6 +38,10 @@ and the `worktree_path` it was taken from. It goes **stale** after `claim_timeou
38
38
  60, set in `.aidlc/config.yaml`) — a long conversation will outlive its own claim, and re-claiming
39
39
  renews it.
40
40
 
41
+ Completing an instance releases its claim: the `aidlc transition` that completes it removes the claim
42
+ file and logs the release. A claim left on a completed instance by an older CLI is orphaned —
43
+ `aidlc status` warns about it and `aidlc status --prune` removes it.
44
+
41
45
  Note the wrinkle, because it will bite you: `owner` in a phase file is a *label*, not a lock. Nothing
42
46
  in the CLI writes it. The ownership gate resolves the current actor from the live claim, falling back
43
47
  to `$USER` when no claim is live. So a phase file whose `owner` was hand-written to one identity,
@@ -73,8 +77,13 @@ inside it before starting the agent session.
73
77
  concurrency check told a second session in the same checkout it had "nothing to collide on",
74
78
  while the roadmap read a `.aidlc/` that did not exist. It was deleted rather than kept beside the
75
79
  new one: a helper answering the wrong question is how one mistake reached five callers.
76
- `aidlc start --worktree` in a nested project still writes to the new worktree's top; that is
77
- item-20261009-worktree-start-in-nested-project.
80
+ `worktree.ts` `createWorktree` uses the same path rule through `projectPathInCheckout`: the new
81
+ worktree goes beside the *checkout*, not beside the project, and the instance, its cost shim and
82
+ its actions use the worktree's copy of the project. For a project at `packages/<name>` the project's
83
+ `../` is still inside the repository, so a worktree there showed up in the main checkout as an
84
+ untracked folder that `git add -A` would commit, and the state landed at a top no command reads.
85
+ The `Worktree:` line `aidlc start` prints names that copy, because it is the directory to work
86
+ in and the one autopilot launches its agent in; a `Checkout:` line names the top when it differs.
78
87
  - `packages/cli/src/state` — instance folders, `phase-<name>.yaml`, and the append-only
79
88
  `transitions.log`.
80
89
  - `packages/cli/src/commands/claim.ts` — the `claim` and `release` commands, which also write the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rasensio/aidlc-content",
3
- "version": "1.85.0",
3
+ "version": "1.87.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -86,7 +86,7 @@ Two sessions sharing one checkout collide on **git**, not on state: creating a b
86
86
  3. A live claim that does **not** share this working directory: say so in one line and proceed with no gate. Knowing another instance is in flight is useful even when it cannot interfere; silence would be worse.
87
87
  4. Not a git repo, or no live claim sharing this working directory → proceed normally, no gate.
88
88
  5. A live claim sharing this working directory → present exactly three options and proceed with none until one is chosen:
89
- 1. **Start in a separate worktree (recommended)** — `git worktree add -b <prefix>/<YYYYMMDD>-<name> <worktree_dir>/<repo>-<name> main` (prefix per template: bugfix→fix, micro-task/spike→chore, else feat; `worktree_dir` from the `concurrency:` config block, default `../`). Do all further work for the new instance inside that worktree; set `AIDLC_WORKTREE=1` before firing `on-instance-start` actions so the branch action no-ops. CLI shortcut: `aidlc start <template> --name <name> --worktree`.
89
+ 1. **Start in a separate worktree (recommended)** — `git worktree add -b <prefix>/<YYYYMMDD>-<name> <worktree_dir>/<repo>-<name> main` (prefix per template: bugfix→fix, micro-task/spike→chore, else feat; `worktree_dir` from the `concurrency:` config block, default `../`, resolved from the repository's top and `<repo>` its directory name — for a project below the repository root, never from the project). Do all further work for the new instance inside that worktree's copy of the project (`<worktree>/<project path>`); set `AIDLC_WORKTREE=1` before firing `on-instance-start` actions so the branch action no-ops. CLI shortcut: `aidlc start <template> --name <name> --worktree`.
90
90
  2. **Stop** — come back when the other instance is done.
91
91
  3. **Continue in this checkout, no code changes** — record `branch: null` in the new `instance.yaml`; entering Implementation stays blocked until a branch exists. CLI shortcut: `aidlc start <template> --name <name> --no-code`.
92
92
  6. `concurrency.mode: forbid` in config replaces the menu with a hard stop while another session is live — **any** live session, sharing this working directory or not. Someone choosing a hard stop is choosing it for reasons this gate should not second-guess.