@davidorex/pi-context 0.28.1 → 0.30.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.
package/dist/context.js CHANGED
@@ -23,7 +23,7 @@ import path from "node:path";
23
23
  import { fileURLToPath } from "node:url";
24
24
  import { appendManyToTypedFileIfAbsent, writeTypedFile } from "./block-api.js";
25
25
  import { assertSubstrateName, mintSubstrateId, resolveContextDir, SCHEMAS_DIR, tryResolveContextDir, } from "./context-dir.js";
26
- import { registerSubstrate } from "./context-registry.js";
26
+ import { loadRegistry, registerSubstrate } from "./context-registry.js";
27
27
  import { ValidationError, validateFromFile } from "./schema-validator.js";
28
28
  export function normalizeEndpoint(e) {
29
29
  if (typeof e === "string") {
@@ -352,6 +352,47 @@ export function appendRelationForDir(substrateDir, edge, ctx) {
352
352
  const r = appendRelationsForDir(substrateDir, [edge], ctx);
353
353
  return { appended: r.appended > 0 };
354
354
  }
355
+ /**
356
+ * Remove the single closure-table edge whose (parent, child, relation_type)
357
+ * triple matches `match` by the SAME `identityKey` dedup identity
358
+ * `appendRelation` uses to detect exact-duplicates — so `removeRelation` is
359
+ * symmetric with `appendRelation` (`remove(append(x))` restores the prior set).
360
+ * `ordinal` is NOT part of identity (a re-filing with a different sibling order
361
+ * is the same edge for both append-dedup and removal). Loads the current edge
362
+ * set, filters OUT the matching edge, and `writeRelations` the filtered set.
363
+ *
364
+ * Returns `{ removed: boolean }` — true iff an edge was actually removed; an
365
+ * absent edge is an idempotent no-op (`{ removed: false }`, and the file is NOT
366
+ * rewritten in that case). The match-endpoint forms (string / structured item /
367
+ * lens_bin) compare via `endpointIdentity`, identical to the append side.
368
+ *
369
+ * `ctx` is threaded through to `writeRelationsForDir` for attestation parity;
370
+ * the relations schema is a flat array with no envelope author fields, so
371
+ * stamping is a structural no-op today (same semantics as the rest of the
372
+ * relations write surface).
373
+ */
374
+ export function removeRelation(cwd, match, ctx) {
375
+ return removeRelationForDir(resolveContextDir(cwd), match, ctx);
376
+ }
377
+ /**
378
+ * Dir-targeted twin of `removeRelation` (Cycle-1 `*ForDir` pattern). Operates on
379
+ * `<substrateDir>/relations.json` against the ALREADY-RESOLVED substrate dir —
380
+ * no `.pi-context.json` pointer resolution. `removeRelation` is a thin wrapper
381
+ * resolving the active dir; behaviour is byte-identical when called via cwd.
382
+ * Uses the SAME `identityKey` dedup identity as `appendRelationsForDir`, so only
383
+ * the exact (parent, child, relation_type) edge is dropped — a same-parent
384
+ * different-relation_type edge and a same-relation_type different-child edge both
385
+ * survive.
386
+ */
387
+ export function removeRelationForDir(substrateDir, match, ctx) {
388
+ const existing = loadRelationsForDir(substrateDir);
389
+ const targetKey = identityKey(match);
390
+ const filtered = existing.filter((e) => identityKey(e) !== targetKey);
391
+ if (filtered.length === existing.length)
392
+ return { removed: false };
393
+ writeRelationsForDir(substrateDir, filtered, ctx);
394
+ return { removed: true };
395
+ }
355
396
  /**
356
397
  * Atomic, AJV-validated write of `<resolveContextDir(cwd)>/config.json`.
357
398
  * Delegates to block-api's `writeTypedFile` against the bundled config schema.
@@ -371,6 +412,118 @@ export function writeConfig(cwd, config, ctx) {
371
412
  export function writeConfigForDir(substrateDir, config, ctx) {
372
413
  writeTypedFile(configPathForDir(substrateDir), bundledSchemaPath("config"), config, ctx, "config.json");
373
414
  }
415
+ /**
416
+ * A config is a SKELETON when it carries NO vocabulary content — the minimal
417
+ * schema-valid shape that `initProject` / `switchAndCreate` write so a substrate
418
+ * has a tool-driven config from bootstrap (FGAP-001 / DEC-0001). Identity /
419
+ * scaffold fields (`schema_version`, `root`, `substrate_id`) are IGNORED here —
420
+ * a skeleton can carry a minted `substrate_id` and still be empty of vocabulary.
421
+ *
422
+ * Used by `adoptConception` (accept-all overwrites a skeleton but never a
423
+ * populated config) and `deriveBootstrapState` (a skeleton config is the
424
+ * `skeleton` bootstrap state — onward paths: accept-all OR amend/edit).
425
+ */
426
+ export function isSkeletonConfig(config) {
427
+ // A skeleton carries NO vocabulary content in ANY registry. The ONLY fields
428
+ // permitted to be present in a skeleton are the identity / scaffold scalars
429
+ // `schema_version`, `root`, `substrate_id` — EVERY other config field (every
430
+ // registry) must be empty/absent. Derive the registry set from
431
+ // `REGISTRY_DESCRIPTORS` (the single source enumerating all addressable
432
+ // registries) so a registry added there is automatically covered here; the
433
+ // descriptor `kind` dictates the emptiness test: `map` → no own keys; every
434
+ // array kind (`keyed-array` / `string-array` / `value-array`) → zero length.
435
+ for (const [registry, descriptor] of Object.entries(REGISTRY_DESCRIPTORS)) {
436
+ const value = config[registry];
437
+ if (descriptor.kind === "map") {
438
+ if (Object.keys((value ?? {})).length > 0) {
439
+ return false;
440
+ }
441
+ }
442
+ else if ((value ?? []).length > 0) {
443
+ return false;
444
+ }
445
+ }
446
+ return true;
447
+ }
448
+ /**
449
+ * Write the minimal schema-valid SKELETON config to the active substrate's
450
+ * `config.json` (FGAP-001 / DEC-0001) — pointer-resolving like `adoptConception`:
451
+ * resolves the substrate dir from the `.pi-context.json` pointer. NEVER-CLOBBER:
452
+ * returns `{ written: false }` without writing when a config already exists, so a
453
+ * populated (or already-skeleton) config is preserved. Otherwise builds
454
+ * `{ schema_version: "1.0.0", block_kinds: [], root, substrate_id: <minted> }`
455
+ * and writes it via `writeConfigForDir` (atomic tmp+rename + whole-config AJV).
456
+ *
457
+ * The skeleton mints its `substrate_id` via `mintSubstrateId` — the SAME function
458
+ * `adoptConception` uses — and registers it in the project-root registry via
459
+ * `registerSubstrate` (the SAME registration call `adoptConception` makes), so the
460
+ * substrate carries content-addressed identity from bootstrap and the id is
461
+ * resolvable project-wide. A later accept-all that overwrites the skeleton READS
462
+ * and PRESERVES this on-disk id (see `adoptConception`), so identity is stable
463
+ * across `init → accept-all`. `schema_version` is the "1.0.0" literal the packaged
464
+ * `samples/conception.json` declares.
465
+ *
466
+ * The TS `ConfigBlock` type requires fields beyond the runtime AJV authority
467
+ * (`schemas/config.schema.json` requires only `schema_version` + `block_kinds`),
468
+ * so the skeleton is cast `as unknown as ConfigBlock` — runtime validation in
469
+ * `writeConfigForDir` enforces only the schema.
470
+ */
471
+ export function writeSkeletonConfig(cwd, ctx) {
472
+ const substrateDir = resolveContextDir(cwd); // throws BootstrapNotFoundError if no pointer
473
+ const root = path.relative(cwd, substrateDir);
474
+ if (loadConfig(cwd) !== null) {
475
+ return { written: false };
476
+ }
477
+ const substrate_id = mintSubstrateId();
478
+ const skeleton = {
479
+ schema_version: "1.0.0",
480
+ block_kinds: [],
481
+ root,
482
+ substrate_id,
483
+ };
484
+ writeConfigForDir(substrateDir, skeleton, ctx);
485
+ registerSubstrate(cwd, substrate_id, root, []);
486
+ return { written: true };
487
+ }
488
+ /**
489
+ * Reconcile the now-active substrate's identity into the project-root registry
490
+ * after a bootstrap-pointer flip (`switchToExisting` / `switchAndCreate` call
491
+ * this post-flip). A `/context switch` onto a config-bearing substrate whose
492
+ * `substrate_id` was never registered (e.g. an externally-authored or
493
+ * separately-bootstrapped substrate) would otherwise leave the id unregistered,
494
+ * and `validateContext`'s SoT-drift invariant would raise a false
495
+ * `substrate_id_unregistered`.
496
+ *
497
+ * Behaviour, operating on the active substrate resolved from the pointer:
498
+ * - No `substrate_id` on the active config (a pre-identity substrate): skip,
499
+ * mirroring the SoT-drift invariant's own absence-skip.
500
+ * - The id is already registered (any entry present): leave it untouched. A
501
+ * present-but-different-dir entry is deliberately NOT overwritten here — that
502
+ * is genuine registry drift and is left for `validateContext` to surface as
503
+ * `substrate_id_registry_mismatch`.
504
+ * - The id is absent from the registry: register it under the active substrate
505
+ * dir (project-root-relative) with empty aliases.
506
+ */
507
+ export function reconcileActiveSubstrateRegistration(cwd) {
508
+ const dir = resolveContextDir(cwd);
509
+ // Reconciliation is best-effort — a config that cannot be loaded/validated is
510
+ // left for `context-validate` to surface; the switch itself must not break.
511
+ let config;
512
+ try {
513
+ config = loadConfig(cwd);
514
+ }
515
+ catch {
516
+ return { registered: false };
517
+ }
518
+ const id = config?.substrate_id;
519
+ if (!id)
520
+ return { registered: false };
521
+ const entry = loadRegistry(cwd)?.substrates?.[id];
522
+ if (entry)
523
+ return { registered: false };
524
+ registerSubstrate(cwd, id, path.relative(cwd, dir), []);
525
+ return { registered: true };
526
+ }
374
527
  /**
375
528
  * accept-all: adopt the package's canonical packaged conception
376
529
  * (samples/conception.json) as this substrate's config.json (DEC-0037 / DEC-0038
@@ -386,7 +539,11 @@ export function adoptConception(cwd) {
386
539
  const root = path.relative(cwd, contextDirAbs);
387
540
  const cfgPath = configPath(cwd);
388
541
  const existing = loadConfig(cwd);
389
- if (existing) {
542
+ // Never-clobber a POPULATED config (DEC-0011/0038 offer-don't-impose). A
543
+ // SKELETON config (FGAP-001 / DEC-0001 — written by init / switch -c, empty of
544
+ // vocabulary) IS overwritten by the catalog: it carries no vocabulary to
545
+ // protect, and the existing on-disk substrate_id is read + preserved below.
546
+ if (existing && !isSkeletonConfig(existing)) {
390
547
  return {
391
548
  adopted: false,
392
549
  configPath: path.relative(cwd, cfgPath),
@@ -399,19 +556,18 @@ export function adoptConception(cwd) {
399
556
  const samplesRoot = path.resolve(here, "..", "samples");
400
557
  const conception = JSON.parse(fs.readFileSync(path.join(samplesRoot, "conception.json"), "utf-8"));
401
558
  conception.root = root; // SET root from the resolved substrate dir — the conception template ships none (DEC-0041)
402
- // Mint + register the per-substrate content-addressed substrate_id (Cycle 4).
403
- // config.json is the sole SoT for substrate_id and first exists here at
404
- // adopt-time (init only scaffolds the pointer + dirs), so minting wires into
405
- // this path rather than bare init. Idempotent: skip the mint if the
406
- // conception already carries a valid substrate_id (it ships none, so this
407
- // mints on a fresh accept-all; a second accept-all returns early above on the
408
- // existing-config branch, so this block never re-mints). registerSubstrate
409
- // upserts the active substrate into the project-root registry under `root`
410
- // (the project-root-relative substrate dir) with empty aliases the
411
- // SoT-drift invariant in validateContext then passes for this substrate.
412
- if (typeof conception.substrate_id !== "string" || conception.substrate_id.length === 0) {
413
- conception.substrate_id = mintSubstrateId();
414
- }
559
+ // Resolve + register the per-substrate content-addressed substrate_id.
560
+ // config.json is the SoT for substrate_id. When a SKELETON config already
561
+ // exists (init / switch -c minted + registered an id), accept-all PRESERVES
562
+ // that on-disk id so identity is stable across `init accept-all`. With no
563
+ // prior config (a fresh accept-all reaching here, `existing` null), mint a new
564
+ // id the packaged conception ships none. registerSubstrate then upserts the
565
+ // active substrate into the project-root registry under `root` (the
566
+ // project-root-relative substrate dir) with empty aliases; for the preserved-id
567
+ // case it re-upserts the SAME id idempotently. The SoT-drift invariant in
568
+ // validateContext then passes for this substrate.
569
+ conception.substrate_id =
570
+ existing?.substrate_id && existing.substrate_id.length > 0 ? existing.substrate_id : mintSubstrateId();
415
571
  writeConfig(cwd, conception);
416
572
  registerSubstrate(cwd, conception.substrate_id, root, []);
417
573
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,iCAAiC,CAAC;AAqM7F;;;;;;;;;;;;;;GAcG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBACf,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAU/C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA0DrG;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,aAAa,CAqFhG;AAuHD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAyCjH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAY7F;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CA2BlG;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAqCtF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAyC7F;AAsFD,QAAA,MAAM,SAAS,GAAI,IAAI,YAAY,SAyRlC,CAAC;AAEF,eAAe,SAAS,CAAC;AAEzB,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,aAAa,GACb,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAErG,OAAO,EACN,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,UAAU,EACV,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,EACN,YAAY,EACZ,WAAW,EACX,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,GAChB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import fs from "node:fs";
7
7
  import path from "node:path";
8
8
  import { fileURLToPath } from "node:url";
9
9
  import { readBlock } from "./block-api.js";
10
- import { adoptConception, installedBlockDestPath, installedSchemaDestPath, loadConfig, loadContext, } from "./context.js";
10
+ import { adoptConception, installedBlockDestPath, installedSchemaDestPath, loadConfig, loadContext, reconcileActiveSubstrateRegistration, writeSkeletonConfig, } from "./context.js";
11
11
  import { BootstrapNotFoundError, flipBootstrapPointer, resolveContextDir, SCHEMAS_DIR, schemasDir, tryResolveContextDir, writeBootstrapPointer, } from "./context-dir.js";
12
12
  import { contextState, findAppendableBlocks, validateContext } from "./context-sdk.js";
13
13
  import { cleanGitEnv } from "./git-env.js";
@@ -252,6 +252,14 @@ export function initProject(cwd, contextDir) {
252
252
  skipped.push(`${path.relative(cwd, dir)}/`);
253
253
  }
254
254
  }
255
+ // Write the minimal schema-valid SKELETON config (FGAP-001 / DEC-0001) so the
256
+ // substrate has a tool-driven config from bootstrap — onward paths are
257
+ // /context accept-all (adopt the packaged catalog) OR amend-config / edit
258
+ // (build a custom vocabulary). NEVER-CLOBBER: an idempotent re-init over an
259
+ // existing config (skeleton or populated) leaves it untouched.
260
+ const skeleton = writeSkeletonConfig(cwd);
261
+ const configRel = `${path.relative(cwd, path.join(projectDirPath, "config.json"))}`;
262
+ (skeleton.written ? created : skipped).push(configRel);
255
263
  return { created, skipped };
256
264
  }
257
265
  /**
@@ -381,14 +389,17 @@ function handleInit(args, ctx) {
381
389
  if (created.length === 0 && skipped.length > 0) {
382
390
  lines.push("Project already initialized — nothing to do.");
383
391
  }
392
+ lines.push("");
393
+ lines.push("The substrate now carries a skeleton config (schema-valid, empty of vocabulary). Two onward paths: run /context accept-all to adopt the packaged catalog, OR amend-config / edit config.json to build a custom vocabulary.");
384
394
  ctx.ui.notify(lines.join("\n"), "info");
385
395
  }
386
396
  /**
387
397
  * /context accept-all — adopt the canonical packaged conception
388
398
  * (samples/conception.json) as this substrate's config.json. Writes config only
389
- * (no asset materialization — run /context install after). Idempotent: never
390
- * overwrites an existing config. Requires the substrate to be initialized first
391
- * (a bootstrap pointer must exist).
399
+ * (no asset materialization — run /context install after). Skeleton-aware
400
+ * (FGAP-001 / DEC-0001): overwrites a SKELETON config (the empty-of-vocabulary
401
+ * config init / switch -c writes) but never a POPULATED one. Requires the
402
+ * substrate to be initialized first (a bootstrap pointer must exist).
392
403
  */
393
404
  function handleAcceptAll(_args, ctx) {
394
405
  let r;
@@ -403,7 +414,7 @@ function handleAcceptAll(_args, ctx) {
403
414
  throw err;
404
415
  }
405
416
  if (!r.adopted) {
406
- ctx.ui.notify("config.json already present — not overwritten.", "info");
417
+ ctx.ui.notify("config.json already carries a populated vocabulary — not overwritten.", "info");
407
418
  return;
408
419
  }
409
420
  ctx.ui.notify(`Adopted canonical config (root: ${r.root}, ${r.schemaCount} schemas / ${r.blockCount} blocks declared). Run /context install to materialize them.`, "info");
@@ -492,6 +503,20 @@ export function switchAndCreate(cwd, newContextDir, writerIdentity) {
492
503
  created.push(`${path.relative(cwd, dir)}/`);
493
504
  }
494
505
  }
506
+ // Write the minimal schema-valid SKELETON config (FGAP-001 / DEC-0001) so the
507
+ // freshly-created substrate has a tool-driven config from bootstrap — onward
508
+ // paths are /context accept-all OR amend-config / edit. NEVER-CLOBBER via
509
+ // writeSkeletonConfig (a re-creation over an existing config leaves it).
510
+ const skeleton = writeSkeletonConfig(cwd);
511
+ if (skeleton.written) {
512
+ created.push(`${path.relative(cwd, path.join(projectDirPath, "config.json"))}`);
513
+ }
514
+ // Reconcile the now-active substrate's identity into the project-root
515
+ // registry. writeSkeletonConfig registers a freshly-minted id, but when the
516
+ // target dir already carried a config (never-clobber returned written:false)
517
+ // its id may be unregistered — register it here so the SoT-drift invariant
518
+ // does not raise a false substrate_id_unregistered.
519
+ reconcileActiveSubstrateRegistration(cwd);
495
520
  return { created };
496
521
  }
497
522
  /**
@@ -511,6 +536,10 @@ export function switchToExisting(cwd, targetDir, writerIdentity) {
511
536
  throw new Error(`/context switch: target dir '${targetDir}' has no config.json at ${targetConfigPath} — refusing to flip the bootstrap pointer to a non-substrate dir. Use '/context switch -c ${targetDir}' to bootstrap a fresh substrate at that dir AND flip the pointer.`);
512
537
  }
513
538
  flipBootstrapPointer(cwd, targetDir, writerIdentity);
539
+ // Register the now-active substrate's identity if the target carried a
540
+ // config-bearing-but-unregistered substrate_id, so the SoT-drift invariant
541
+ // does not raise a false substrate_id_unregistered after the flip.
542
+ reconcileActiveSubstrateRegistration(cwd);
514
543
  }
515
544
  /**
516
545
  * Flip the bootstrap pointer back to the previous_contextDir (parallel to
@@ -536,6 +565,12 @@ export function switchToPrevious(cwd, writerIdentity) {
536
565
  throw new Error(`/context switch -: existing pointer at ${bootstrapPath} lacks a string contextDir; refuses to flip an unreadable pointer`);
537
566
  }
538
567
  flipBootstrapPointer(cwd, previous, writerIdentity);
568
+ // Register the now-active substrate's identity if flipping back landed on a
569
+ // config-bearing-but-unregistered substrate_id, so the SoT-drift invariant
570
+ // does not raise a false substrate_id_unregistered after the flip. Mirrors
571
+ // switchToExisting / switchAndCreate; only reached on a successful flip
572
+ // (the absent-previous_contextDir path throws above).
573
+ reconcileActiveSubstrateRegistration(cwd);
539
574
  return { from: current, to: previous };
540
575
  }
541
576
  /**
@@ -661,8 +696,8 @@ function handleSwitch(args, ctx) {
661
696
  return;
662
697
  }
663
698
  const { created } = switchAndCreate(ctx.cwd, target, writerIdentity);
664
- const createdLine = created.length > 0 ? ` (created ${created.length} dirs: ${created.join(", ")})` : "";
665
- ctx.ui.notify(`Switched bootstrap pointer to new substrate '${target}'${createdLine}. Run /context accept-all + /context install to populate.`, "info");
699
+ const createdLine = created.length > 0 ? ` (created: ${created.join(", ")})` : "";
700
+ ctx.ui.notify(`Switched bootstrap pointer to new substrate '${target}'${createdLine}. The substrate now carries a skeleton config (schema-valid, empty of vocabulary). Two onward paths: /context accept-all (adopt the packaged catalog, then /context install) OR amend-config / edit config.json (build a custom vocabulary).`, "info");
666
701
  return;
667
702
  }
668
703
  if (tokens[0] === "-") {