You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+11-1Lines changed: 11 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
10
10
11
11
## [Unreleased]
12
12
13
+
## [1.11.0] - 2026-06-26
14
+
15
+
### Added
16
+
-**`loom install` now gives every project a user-owned `CLAUDE-LOCAL.md`.** Re-running `loom install` to pick up a newer Loom contract used to overwrite `.loom/CLAUDE.md` and destroy any project-local AI rules kept there. Install now creates a separate root `CLAUDE-LOCAL.md` — once, if absent, and **never overwritten, not even with `--force`** — and makes the root `CLAUDE.md` import both `@.loom/CLAUDE.md` (Loom-owned, regenerated every install) and `@CLAUDE-LOCAL.md` (yours). Put your project-specific AI rules in `CLAUDE-LOCAL.md` and they now survive every contract upgrade. The installed contract template gained a "File ownership" section spelling this out.
17
+
-**`loom_append_done` accepts a batch `steps` array** to author a whole done doc in one call (step-ordered upsert, atomic fail-loud on an unknown step). The single `{ stepNumber, notes }` form is unchanged.
18
+
19
+
### Fixed
20
+
-**`loom_close_plan` no longer writes a stub done doc.** It had been delegating the done-doc body to an AI client that returned a fixed `TODO` placeholder whenever no API key was set — i.e. in every Claude Code session — silently writing a stub and marking the plan done regardless of the notes you passed. It now writes your notes verbatim (or appends a `## Closing notes` section to an existing per-step done doc) and fails loudly when there is nothing to write, instead of stubbing.
21
+
13
22
## [1.10.2] - 2026-06-22
14
23
15
24
### Fixed
@@ -505,7 +514,8 @@ the loop has been dogfooded on Loom itself across two threads.
505
514
-**Physical Template Files**
506
515
`.loom/templates/` replaced by body generators in `core/bodyGenerators/`.
Copy file name to clipboardExpand all lines: loom/ai-integration/loom-install-claude/chats/loom-install-claude-chat-001.md
+39-2Lines changed: 39 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ version: 2
9
9
tags: []
10
10
parent_id: null
11
11
requires_load: []
12
-
last_ai_block: 6
12
+
last_ai_block: 10
13
13
---
14
14
# loom-install-claude Chat
15
15
@@ -203,4 +203,41 @@ docs/CLI_USER_GUIDE.md
203
203
loom/refs/cli-commands-reference.md
204
204
205
205
fold in the fix for `cwd`, do it now
206
-
then commit
206
+
then commit
207
+
208
+
## AI:
209
+
210
+
All three follow-ups done and committed to `main` as `5cd6f79` (11 files, build clean, full suite green).
211
+
212
+
**Docs updated:**
213
+
-`docs/CLI_USER_GUIDE.md` — install section now explains the two-file ownership model + the command table entry.
214
+
-`loom/refs/cli-commands-reference.md` — `loom install` entry rewritten with the Loom-owned vs user-owned split.
215
+
216
+
**`cwd` fix folded in:**`initLocal` now takes an injected `cwd` (`deps.cwd ?? process.cwd()`); `installWorkspace` passes `cwd: root`. The use-case is `process.cwd()`-pure now — the test dropped its `chdir` workaround and still passes, which is the proof. Standalone `loom init` is unchanged (still defaults to `process.cwd()`).
217
+
218
+
**On your earlier open question** (whether the chord-flow backups go in the repo): `docs/internal/` is gitignored, so the backups *and* the extracted `docs/internal/chord-flow-claude/CLAUDE-LOCAL.md` stay local — nothing chord-flow-specific got committed here. The extraction is sitting there ready for you to copy to `J:/src/chord-flow/CLAUDE-LOCAL.md`.
219
+
220
+
This isn't released yet — it ships whenever you next run `/do-release`. Once it's out, your chord-flow recovery sequence is: copy the extracted `CLAUDE-LOCAL.md` over, set chord-flow's root `CLAUDE.md` to the two-import block, upgrade the CLI, then `loom install`.
221
+
222
+
Next: waiting for direction — nothing pending unless you want me to kick off a release.
223
+
224
+
## Rafa:
225
+
226
+
I pushed
227
+
do-release 1.10.3 (last 2 commits was 2 fixes) or tell me if you consider 1.11.0 better
228
+
229
+
## AI:
230
+
231
+
**Go with `1.11.0`.** The "2 fixes" framing isn't quite right — here's what's actually in the release since `v1.10.2`:
232
+
233
+
```
234
+
5cd6f79 feat: loom install gives projects a user-owned CLAUDE-LOCAL.md
235
+
d327c3f docs: record append_done batch live-verify
236
+
1a83f2b fix: loom_close_plan writes verbatim done docs, never a stub
237
+
```
238
+
239
+
So it's **1 feat + 1 fix + 1 docs**, not two fixes. The CLAUDE-LOCAL.md commit is a genuine new user-facing capability — a new file, new install behavior, a new section in the installed contract. Under semver that's a **MINOR** bump (`1.11.0`). `1.10.3` (PATCH) is reserved for backwards-compatible bug fixes only, and this release adds new behavior, so it would under-state what shipped.
240
+
241
+
Recommendation: `/do-release 1.11.0`.
242
+
243
+
(I can't run the release myself — it goes through your `/do-release` command. Fire it whenever you're ready.)
0 commit comments