nosedive 2026.9.3 → 2026.9.4

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.
package/COMMANDS.md CHANGED
@@ -18,7 +18,7 @@ Invoked directly by humans, or indirectly via agents.
18
18
  #### [Add repo to feat](kb/16b4fee2-cc6c-5c29-9327-fde39a35b0a8.md)
19
19
 
20
20
  ```sh
21
- npx -y nosedive@2026.9.3 add-repo.feat --help
21
+ npx -y nosedive@2026.9.4 add-repo.feat --help
22
22
  ```
23
23
  ```md
24
24
  Usage: nosedive add-repo.feat <repo-id-or-name> [--ref <ref>] [--work-branch <branch>]
@@ -31,7 +31,7 @@ More: nosedive render 16b4fee2-cc6c-5c29-9327-fde39a35b0a8
31
31
  #### [Append log](kb/f29ec670-caea-5b77-ba51-c7dba1468b0b.md)
32
32
 
33
33
  ```sh
34
- npx -y nosedive@2026.9.3 append-log.dive --help
34
+ npx -y nosedive@2026.9.4 append-log.dive --help
35
35
  ```
36
36
  ```md
37
37
  Usage: nosedive append-log.dive [--label <text>] [--gist <line>] < body
@@ -44,7 +44,7 @@ More: nosedive render f29ec670-caea-5b77-ba51-c7dba1468b0b
44
44
  #### [Bail](kb/337b18d6-1cca-57b5-8d26-bb6aef1f50e9.md)
45
45
 
46
46
  ```sh
47
- npx -y nosedive@2026.9.3 bail --help
47
+ npx -y nosedive@2026.9.4 bail --help
48
48
  ```
49
49
  ```md
50
50
  Usage: nosedive bail --reason "<why>"
@@ -57,7 +57,7 @@ More: nosedive render 337b18d6-1cca-57b5-8d26-bb6aef1f50e9
57
57
  #### [Dehydrate repo](kb/32123800-a61d-5ea1-8b85-98c288b127b3.md)
58
58
 
59
59
  ```sh
60
- npx -y nosedive@2026.9.3 dehydrate-repo.workspace --help
60
+ npx -y nosedive@2026.9.4 dehydrate-repo.workspace --help
61
61
  ```
62
62
  ```md
63
63
  Usage: nosedive dehydrate-repo.workspace <repo-id-or-name-or-workspace-path> [--force]
@@ -70,7 +70,7 @@ More: nosedive render 32123800-a61d-5ea1-8b85-98c288b127b3
70
70
  #### [Dump backlog](kb/cf4c3d4b-5b5c-5e5d-98e5-af659f591aa1.md)
71
71
 
72
72
  ```sh
73
- npx -y nosedive@2026.9.3 dump-backlog --help
73
+ npx -y nosedive@2026.9.4 dump-backlog --help
74
74
  ```
75
75
  ```md
76
76
  Usage: nosedive dump-backlog
@@ -83,12 +83,12 @@ More: nosedive render cf4c3d4b-5b5c-5e5d-98e5-af659f591aa1
83
83
  #### [Find](kb/2e5cd9a9-769a-5eda-8617-868c70f13757.md)
84
84
 
85
85
  ```sh
86
- npx -y nosedive@2026.9.3 find --help
86
+ npx -y nosedive@2026.9.4 find --help
87
87
  ```
88
88
  ```md
89
- Usage: nosedive find <role> [<term>] [--scope <repo>] [--min-age <duration>] [--max-age <duration>]
89
+ Usage: nosedive find <role> [<term>] [--kind <slug>] [--scope <repo>] [--min-age <duration>] [--max-age <duration>]
90
90
 
91
- List backlog-reachable documents by role, optionally filtering by term, scope and age.
91
+ List backlog-reachable documents by role, optionally filtering by term, kind, scope and age.
92
92
 
93
93
  More: nosedive render 2e5cd9a9-769a-5eda-8617-868c70f13757
94
94
  ```
@@ -96,7 +96,7 @@ More: nosedive render 2e5cd9a9-769a-5eda-8617-868c70f13757
96
96
  #### [Hydrate repo](kb/c4e93002-2925-58bd-9b70-d917017a9fc7.md)
97
97
 
98
98
  ```sh
99
- npx -y nosedive@2026.9.3 hydrate-repo.workspace --help
99
+ npx -y nosedive@2026.9.4 hydrate-repo.workspace --help
100
100
  ```
101
101
  ```md
102
102
  Usage: nosedive hydrate-repo.workspace <repo-id-or-name> [--at <ref>] [--read-only]
@@ -109,7 +109,7 @@ More: nosedive render c4e93002-2925-58bd-9b70-d917017a9fc7
109
109
  #### [Jump](kb/f2373f5f-d30d-5d5d-967c-bef56346bbb9.md)
110
110
 
111
111
  ```sh
112
- npx -y nosedive@2026.9.3 jump --help
112
+ npx -y nosedive@2026.9.4 jump --help
113
113
  ```
114
114
  ```md
115
115
  Usage: nosedive jump [<dive-ref>]
@@ -122,7 +122,7 @@ More: nosedive render f2373f5f-d30d-5d5d-967c-bef56346bbb9
122
122
  #### [Land](kb/587d3f73-2534-5179-b111-ce6c83d6814d.md)
123
123
 
124
124
  ```sh
125
- npx -y nosedive@2026.9.3 land --help
125
+ npx -y nosedive@2026.9.4 land --help
126
126
  ```
127
127
  ```md
128
128
  Usage: nosedive land [--hard]
@@ -135,7 +135,7 @@ More: nosedive render 587d3f73-2534-5179-b111-ce6c83d6814d
135
135
  #### [List dives](kb/116ff634-3742-51ba-977f-44fc5b21e9e4.md)
136
136
 
137
137
  ```sh
138
- npx -y nosedive@2026.9.3 list-dives --help
138
+ npx -y nosedive@2026.9.4 list-dives --help
139
139
  ```
140
140
  ```md
141
141
  Usage: nosedive list-dives [<feat-or-deck>] [--include-historical] [--json]
@@ -148,7 +148,7 @@ More: nosedive render 116ff634-3742-51ba-977f-44fc5b21e9e4
148
148
  #### [Mint](kb/e8909eff-aee5-54f2-9ce2-85c2582e39f0.md)
149
149
 
150
150
  ```sh
151
- npx -y nosedive@2026.9.3 mint --help
151
+ npx -y nosedive@2026.9.4 mint --help
152
152
  ```
153
153
  ```md
154
154
  Usage: nosedive mint [count] [--ms <utcmillis>] [--ts <iso8601>]
@@ -161,7 +161,7 @@ More: nosedive render e8909eff-aee5-54f2-9ce2-85c2582e39f0
161
161
  #### [Note](kb/6274f51e-664f-5b93-a828-52f699161e9a.md)
162
162
 
163
163
  ```sh
164
- npx -y nosedive@2026.9.3 note --help
164
+ npx -y nosedive@2026.9.4 note --help
165
165
  ```
166
166
  ```md
167
167
  Usage: nosedive note [<kind>:] <gist words...> [--scope <repo>]... [--title <text>] [--body -]
@@ -174,7 +174,7 @@ More: nosedive render 6274f51e-664f-5b93-a828-52f699161e9a
174
174
  #### [Nuke](kb/3570e756-f8e7-5e95-b911-09d7d116cd23.md)
175
175
 
176
176
  ```sh
177
- npx -y nosedive@2026.9.3 nuke --help
177
+ npx -y nosedive@2026.9.4 nuke --help
178
178
  ```
179
179
  ```md
180
180
  Usage: nosedive nuke --config|--workspace
@@ -187,7 +187,7 @@ More: nosedive render 3570e756-f8e7-5e95-b911-09d7d116cd23
187
187
  #### [Pack](kb/9e28155b-b018-5e00-a3a1-707593167e1e.md)
188
188
 
189
189
  ```sh
190
- npx -y nosedive@2026.9.3 pack --help
190
+ npx -y nosedive@2026.9.4 pack --help
191
191
  ```
192
192
  ```md
193
193
  Usage: nosedive pack
@@ -200,7 +200,7 @@ More: nosedive render 9e28155b-b018-5e00-a3a1-707593167e1e
200
200
  #### [Plan](kb/162068fe-62ff-5f56-945a-76b24ffeb439.md)
201
201
 
202
202
  ```sh
203
- npx -y nosedive@2026.9.3 plan --help
203
+ npx -y nosedive@2026.9.4 plan --help
204
204
  ```
205
205
  ```md
206
206
  Usage: nosedive plan [<context>]
@@ -213,7 +213,7 @@ More: nosedive render 162068fe-62ff-5f56-945a-76b24ffeb439
213
213
  #### [Preflight](kb/67187c8d-2e4e-5fc5-b8fd-d0805acd0f2e.md)
214
214
 
215
215
  ```sh
216
- npx -y nosedive@2026.9.3 preflight --help
216
+ npx -y nosedive@2026.9.4 preflight --help
217
217
  ```
218
218
  ```md
219
219
  Usage: nosedive preflight
@@ -226,7 +226,7 @@ More: nosedive render 67187c8d-2e4e-5fc5-b8fd-d0805acd0f2e
226
226
  #### [Record a dive](kb/c583519a-95c3-59e8-90fd-0d3003b4b8d1.md)
227
227
 
228
228
  ```sh
229
- npx -y nosedive@2026.9.3 record.dive --help
229
+ npx -y nosedive@2026.9.4 record.dive --help
230
230
  ```
231
231
  ```md
232
232
  Usage: nosedive record.dive [<dive>] [--ref <dive-ref>] [--feat <feat-ref>] [--effort <feat-ref>] [--gist <gist>] [--title <title>] [--brief <brief>] [--diver <email>] [--takeover] [--packer] [--clear-scopes] [--upscope <repo-ref>]... [--unscope <repo-ref>]... [--work-branch <branch>] [--repin [<ref>]] [--scope <repo-ref>] [--free]
@@ -239,7 +239,7 @@ More: nosedive render c583519a-95c3-59e8-90fd-0d3003b4b8d1
239
239
  #### [Record a feat](kb/fb3d90e6-9dbf-5f1c-9919-6653d12fe085.md)
240
240
 
241
241
  ```sh
242
- npx -y nosedive@2026.9.3 record.feat --help
242
+ npx -y nosedive@2026.9.4 record.feat --help
243
243
  ```
244
244
  ```md
245
245
  Usage: nosedive record.feat [<feat>] [--gist <gist>] [--name <slug>] [--parent <feat>] [--no-parent] [--scope <repo-ref>]...
@@ -252,7 +252,7 @@ More: nosedive render fb3d90e6-9dbf-5f1c-9919-6653d12fe085
252
252
  #### [Record a gate](kb/2c678acb-b4b8-5623-a900-12939da5d472.md)
253
253
 
254
254
  ```sh
255
- npx -y nosedive@2026.9.3 record.gate --help
255
+ npx -y nosedive@2026.9.4 record.gate --help
256
256
  ```
257
257
  ```md
258
258
  Usage: nosedive record.gate [<gate>] [--gist <gist>] [--feat <feat-ref>] [--repo <repo-ref>] [--name <slug>] [--height <n>] [--flaky] [--no-flaky] [--note <text>] [--no-note] [--action <test|land>]
@@ -265,7 +265,7 @@ More: nosedive render 2c678acb-b4b8-5623-a900-12939da5d472
265
265
  #### [Record a repo](kb/6640f6d5-567d-51bd-b2ba-6239a7a58707.md)
266
266
 
267
267
  ```sh
268
- npx -y nosedive@2026.9.3 record.repo --help
268
+ npx -y nosedive@2026.9.4 record.repo --help
269
269
  ```
270
270
  ```md
271
271
  Usage: nosedive record.repo [<repo>] [--remote <clone-url-or-local-path>] [--url <page-url>] [--name <slug>] [--base-branch <branch>]
@@ -278,7 +278,7 @@ More: nosedive render 6640f6d5-567d-51bd-b2ba-6239a7a58707
278
278
  #### [Render](kb/9b0241b2-f03f-5594-a537-60a3b4372ee9.md)
279
279
 
280
280
  ```sh
281
- npx -y nosedive@2026.9.3 render --help
281
+ npx -y nosedive@2026.9.4 render --help
282
282
  ```
283
283
  ```md
284
284
  Usage: nosedive render <uuid> [--gist]
@@ -291,7 +291,7 @@ More: nosedive render 9b0241b2-f03f-5594-a537-60a3b4372ee9
291
291
  #### [Scan](kb/88bf4e10-3fd7-58c0-a247-f2dae9c886e3.md)
292
292
 
293
293
  ```sh
294
- npx -y nosedive@2026.9.3 scan --help
294
+ npx -y nosedive@2026.9.4 scan --help
295
295
  ```
296
296
  ```md
297
297
  Usage: nosedive scan --repo <repo-id-or-name>
@@ -304,7 +304,7 @@ More: nosedive render 88bf4e10-3fd7-58c0-a247-f2dae9c886e3
304
304
  #### [Seed](kb/34c8e9fb-9629-5767-9a81-914f78c63b68.md)
305
305
 
306
306
  ```sh
307
- npx -y nosedive@2026.9.3 seed --help
307
+ npx -y nosedive@2026.9.4 seed --help
308
308
  ```
309
309
  ```md
310
310
  Usage: nosedive seed [--file <path>]... [--headless] [--no-push]
@@ -317,7 +317,7 @@ More: nosedive render 34c8e9fb-9629-5767-9a81-914f78c63b68
317
317
  #### [Test](kb/1e62a79d-4e06-552d-be5a-4c59c85f86bf.md)
318
318
 
319
319
  ```sh
320
- npx -y nosedive@2026.9.3 test --help
320
+ npx -y nosedive@2026.9.4 test --help
321
321
  ```
322
322
  ```md
323
323
  Usage: nosedive test [--full] [--via <doc-ref>] [<gate-ref>...]
@@ -330,7 +330,7 @@ More: nosedive render 1e62a79d-4e06-552d-be5a-4c59c85f86bf
330
330
  #### [Update backlog](kb/f5a5a431-dca3-5e3c-ae84-feb8cd64e96b.md)
331
331
 
332
332
  ```sh
333
- npx -y nosedive@2026.9.3 update-backlog --help
333
+ npx -y nosedive@2026.9.4 update-backlog --help
334
334
  ```
335
335
  ```md
336
336
  Usage: nosedive update-backlog [--inject <ref>]...
@@ -343,7 +343,7 @@ More: nosedive render f5a5a431-dca3-5e3c-ae84-feb8cd64e96b
343
343
  #### [Whoami](kb/a40303c1-1362-523f-b095-49178354f878.md)
344
344
 
345
345
  ```sh
346
- npx -y nosedive@2026.9.3 whoami --help
346
+ npx -y nosedive@2026.9.4 whoami --help
347
347
  ```
348
348
  ```md
349
349
  Usage: nosedive whoami
@@ -694,8 +694,7 @@ function posixRelPath(from, to) {
694
694
  return relative2(from, to).replaceAll("\\", "/");
695
695
  }
696
696
  function featDocTitle(doc, leafSlug2) {
697
- const body = parseMarkdownDoc(readFileSync2(doc.path, "utf8"), formatPath(doc.path)).body;
698
- return firstMarkdownHeading(body, titleFromSlug(leafSlug2));
697
+ return doc.h1 ?? titleFromSlug(leafSlug2);
699
698
  }
700
699
  function backlogDocTitle(doc) {
701
700
  return featDocTitle(doc, doc.name.split(".").filter(Boolean)[0] ?? doc.id);
@@ -1084,11 +1083,12 @@ function readKbDoc(path, bridgeDir) {
1084
1083
  // `featRef` below, so every `doc.kind === "feat"` check downstream (dive
1085
1084
  // ownership, gate feats, repo-feat scoping) works with bridges that still
1086
1085
  // spell it the old way.
1087
- kind: fm.scalars.kind === "effort" ? "feat" : fm.scalars.kind,
1086
+ kind: fm.scalars.kind === "effort" ? "feat" : fm.scalars.kind ?? "unclassified",
1088
1087
  // A doc with no `gist:` has no gist, not the string `undefined`:
1089
1088
  // the field is typed as present, so every reader would
1090
1089
  // otherwise have to guard a value the type says cannot happen.
1091
1090
  gist: fm.scalars.gist ?? "",
1091
+ h1: /^#\s+(.+?)\s*$/m.exec(text)?.[1]?.trim() || void 0,
1092
1092
  hasBrief: DIVE_BRIEF_HEADING_PATTERN.test(text),
1093
1093
  lastLog: latestLoggedSection(text),
1094
1094
  repoPath: kbMetaPath(fm.nested.meta?.path),
@@ -9317,12 +9317,13 @@ function parseFindArgs(args, io) {
9317
9317
  let minAgeMs;
9318
9318
  let maxAgeMs;
9319
9319
  const scopes = [];
9320
+ const kinds = [];
9320
9321
  const positional = [];
9321
9322
  for (let index = 0; index < args.length; index += 1) {
9322
9323
  const arg = args[index];
9323
9324
  if (arg === "-h" || arg === "--help") {
9324
9325
  printCommandHelp("find", io);
9325
- return { help: true, scopes };
9326
+ return { help: true, scopes, kinds };
9326
9327
  }
9327
9328
  if (arg === "--min-age") {
9328
9329
  minAgeMs = parseAge(arg, args[++index]);
@@ -9338,6 +9339,12 @@ function parseFindArgs(args, io) {
9338
9339
  scopes.push(value);
9339
9340
  continue;
9340
9341
  }
9342
+ if (arg === "--kind") {
9343
+ const value = args[++index];
9344
+ if (!value) throw new Error("find --kind requires a kind");
9345
+ kinds.push(assertSlug(value, "find --kind"));
9346
+ continue;
9347
+ }
9341
9348
  if (arg.startsWith("--")) throw new Error(`unknown find option: ${arg}`);
9342
9349
  positional.push(arg);
9343
9350
  }
@@ -9348,7 +9355,7 @@ function parseFindArgs(args, io) {
9348
9355
  throw new Error(`unsupported find role: ${role} (expected dive, feat, gate, repo, or note)`);
9349
9356
  if (minAgeMs !== void 0 && maxAgeMs !== void 0 && minAgeMs >= maxAgeMs)
9350
9357
  throw new Error("find --min-age must be shorter than --max-age");
9351
- return { role, term, minAgeMs, maxAgeMs, scopes, help: false };
9358
+ return { role, term, minAgeMs, maxAgeMs, scopes, kinds, help: false };
9352
9359
  }
9353
9360
  function ageMs(bridgeDir, doc) {
9354
9361
  const path = toPosixPath(relative22(bridgeDir, doc.path));
@@ -9401,8 +9408,8 @@ function findDocs(root, docs, role, term, bridgeDir, options) {
9401
9408
  }
9402
9409
  const normalized = term ? slugFromGist(term, Number.MAX_SAFE_INTEGER) : void 0;
9403
9410
  if (term && !normalized) return [];
9404
- return [...selected.entries()].map(([id, declaredBy]) => ({ doc: byId.get(id), declaredBy })).filter(
9405
- ({ doc }) => !normalized || doc.name.includes(normalized) || Boolean(slugFromGist(doc.gist, Number.MAX_SAFE_INTEGER)?.includes(normalized))
9411
+ return [...selected.entries()].map(([id, declaredBy]) => ({ doc: byId.get(id), declaredBy })).filter(({ doc }) => options.kinds.length === 0 || options.kinds.includes(doc.kind)).filter(
9412
+ ({ doc }) => !normalized || doc.name.includes(normalized) || Boolean(slugFromGist(doc.gist, Number.MAX_SAFE_INTEGER)?.includes(normalized)) || Boolean(slugFromGist(doc.h1 ?? "", Number.MAX_SAFE_INTEGER)?.includes(normalized))
9406
9413
  ).filter(
9407
9414
  ({ doc, declaredBy }) => scopeIds.size === 0 || effectiveScopes(doc, declaredBy).some((scope) => scopeIds.has(scope.repoId))
9408
9415
  ).map(({ doc }) => doc).filter((doc) => {
@@ -9416,12 +9423,19 @@ function renderFindResults(role, docs) {
9416
9423
  const heading = `${role.slice(0, 1).toUpperCase()}${role.slice(1)}s`;
9417
9424
  const lines = [`## ${heading}`, ""];
9418
9425
  if (docs.length === 0) lines.push("No matches.");
9419
- else
9420
- lines.push(
9421
- ...docs.map(
9422
- (doc) => `- [${backlogDocTitle(doc)}](${doc.relPath})${doc.gist ? `: ${doc.gist}` : ""}`
9423
- )
9424
- );
9426
+ else {
9427
+ const byKind = /* @__PURE__ */ new Map();
9428
+ for (const doc of docs) byKind.set(doc.kind, [...byKind.get(doc.kind) ?? [], doc]);
9429
+ for (const [index, kind] of [...byKind.keys()].sort((left, right) => left.localeCompare(right)).entries()) {
9430
+ if (index > 0) lines.push("");
9431
+ lines.push(`### ${kind}`, "");
9432
+ lines.push(
9433
+ ...(byKind.get(kind) ?? []).map(
9434
+ (doc) => `- [${backlogDocTitle(doc)}](${doc.relPath})${doc.gist ? `: ${doc.gist}` : ""}`
9435
+ )
9436
+ );
9437
+ }
9438
+ }
9425
9439
  return lines;
9426
9440
  }
9427
9441
 
@@ -9440,7 +9454,8 @@ function run33(args, _runtime) {
9440
9454
  const found = findDocs(root, docs, options.role, options.term, rc.bridgeDir, {
9441
9455
  minAgeMs: options.minAgeMs,
9442
9456
  maxAgeMs: options.maxAgeMs,
9443
- scopeIds: resolveFindScopes(docs, options.scopes)
9457
+ scopeIds: resolveFindScopes(docs, options.scopes),
9458
+ kinds: options.kinds
9444
9459
  });
9445
9460
  for (const line of renderFindResults(options.role, found)) io.log(line);
9446
9461
  }, args);
package/dist/cli.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  renderPackageKbGist,
5
5
  runCli,
6
6
  uuidLike
7
- } from "./chunk-4KAAM7JN.js";
7
+ } from "./chunk-NWZNRCX6.js";
8
8
 
9
9
  // src/cli.ts
10
10
  runCli().catch((err) => {
package/dist/nosedive.js CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  reconcileDocLink,
16
16
  renderedSurfaceDigest,
17
17
  runCli
18
- } from "./chunk-4KAAM7JN.js";
18
+ } from "./chunk-NWZNRCX6.js";
19
19
  export {
20
20
  collectDiveGates,
21
21
  collectFeatGates,
@@ -2,10 +2,10 @@
2
2
  kind: command
3
3
  id: 2e5cd9a9-769a-5eda-8617-868c70f13757
4
4
  name: find@2
5
- gist: "List backlog-reachable documents by role, optionally filtering by term, scope and age."
5
+ gist: "List backlog-reachable documents by role, optionally filtering by term, kind, scope and age."
6
6
  scopes: []
7
7
  meta:
8
- usage: nosedive find <role> [<term>] [--scope <repo>] [--min-age <duration>] [--max-age <duration>]
8
+ usage: nosedive find <role> [<term>] [--kind <slug>] [--scope <repo>] [--min-age <duration>] [--max-age <duration>]
9
9
  adapter: kb/artifacts/2e5cd9a9-769a-5eda-8617-868c70f13757.mjs
10
10
  entrypoint: L2__find
11
11
  ---
@@ -17,9 +17,16 @@ whose relation ends in the requested role. The backlog's scoped repos are
17
17
  walked too, so the notes and gates a repo carries are reachable, and they are
18
18
  themselves what `find repo` lists -- a repo is named by the backlog's `scopes:`,
19
19
  never by a link, so no relation could ever select one. Duplicate targets print
20
- once. With a term, keep documents whose name or slugified gist contains the
21
- slugified term. Matches render as backlog entries do: a markdown
22
- link titled by the document's H1, or by its name where it has none.
20
+ once. With a term, keep documents whose name, slugified gist, or H1 contains
21
+ the slugified term. Matches group under their kind, alphabetically, with the
22
+ existing path order kept within each group. Each match renders as a markdown
23
+ link titled by the document's H1, or by its name where it has none. A document
24
+ without `kind:` is grouped as `unclassified`; legacy `kind: effort` documents
25
+ remain `feat` documents when read.
26
+
27
+ `--kind <slug>` may be repeated and keeps documents whose own `kind:` matches
28
+ any supplied slug. Kinds are open-ended, so a valid kind not present in the
29
+ selected role simply prints `No matches.` rather than guessing a closed list.
23
30
 
24
31
  `--scope <repo>` takes a repo name or id, may be repeated, and keeps a document
25
32
  that scopes any of the named repos. It also limits which repos are walked.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nosedive",
3
- "version": "2026.9.3",
3
+ "version": "2026.9.4",
4
4
  "description": "Turns a plain notes repo into a bridge: one repo that holds the plan and drives agentic work across your other repos.",
5
5
  "keywords": [
6
6
  "cli",