@amalgm/shell 0.1.54 → 0.1.56

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/PURPOSE.md CHANGED
@@ -260,9 +260,11 @@ shell only assembles.
260
260
  disappear from registration. Registering an enclosing parent reuses every
261
261
  known descendant UUID and rewrites containment/root projection atomically;
262
262
  overlapping registrations never create a second identity family.
263
- Register success is scoped to the selected workspace's SQLite row,
264
- immutable content, cloud-head membership, and healthy coverage; it never
265
- waits for unrelated Watch traffic across the machine to become silent.
263
+ Register success is scoped to the selected workspace's SQLite row, its
264
+ exact durable reference row, immutable content, cloud-head membership for
265
+ both identities, and healthy coverage; merely finding a previously
266
+ discovered nested target is not completed registration. It never waits for
267
+ unrelated Watch traffic across the machine to become silent.
266
268
  Registration consumes the suspicion created when Watch reconciles the new
267
269
  durable root and never widens that evidence to existing roots. Any
268
270
  unrelated suspicion remains ordinary ongoing work of the same host.
@@ -423,6 +425,48 @@ shell only assembles.
423
425
  bounded busy wait rather than turning ordinary concurrent writes into
424
426
  immediate failures.
425
427
 
428
+ 51. **Receive wakes one Live-owned Apply rail.** An Inbox commit is the
429
+ event-driven doorbell; startup and restart also drain unresolved Inbox
430
+ work. Live selects the newest accepted result on each UUID and owns intent,
431
+ local-work protection, retry, and Verify decisions. Shell supplies one
432
+ persistent SQLite store plus type-specific filesystem, cache, and Git
433
+ effects. Apply never polls and never writes either Record queue.
434
+
435
+ 52. **Visible Apply follows durable identity.** Before any filesystem effect,
436
+ Shell persists one intent. Immutable cargo is prepared privately beneath
437
+ the materialized root's reserved `.amalgm/` control tree, which Detect
438
+ structurally excludes. A final guard, recoverable reveal, exact reread, and
439
+ one SQLite transaction then update entity rows, the detection notebook,
440
+ resolved Inbox proof, and the intent. A crash resumes the same intent; it
441
+ never invents another entity or treats private preparation as user ground.
442
+
443
+ 53. **One ground-effect boundary serves every local writer.** Detect,
444
+ Register, Add, Add recovery, and Apply serialize their filesystem plus
445
+ SQLite projection effects through the same host boundary. Apply may
446
+ prepare immutable cargo without holding the filesystem, but its final
447
+ guard, reveal, Verify, and SQLite completion exclude Detect. Add establishes
448
+ singular Watch coverage before releasing the boundary. A watcher may ring
449
+ throughout, but Detect observes only the complete state before or after a
450
+ transaction, never its half-written middle. A local save observed before
451
+ or during reveal is restored and passed through ordinary Detect + Record
452
+ before accepted ground may replace it. Equal accepted truth at the same
453
+ UUID and address advances proof without a redundant write. Watch stays
454
+ active throughout, and its Apply-created ring settles to notebook equality
455
+ without an outgoing echo. The Inbox may know cloud-only entities that this
456
+ machine does not materialize: core-ground Apply consults the current
457
+ portable enrollment policy before creating an intent, so excluded entities
458
+ retain history without receiving local rows or bytes.
459
+
460
+ 54. **Repository Apply is Card + Checkpoint + identity as one result.** Shell
461
+ imports the immutable Git transport chain, materializes Card and
462
+ Checkpoint, verifies the resulting repository state, and projects the exact
463
+ transported child UUID map transactionally. Sender capture rechecks Git
464
+ identity after Card + Checkpoint capture and retries if Git crossed that
465
+ boundary, so one parcel cannot mix pre-operation worktree hashes with a
466
+ post-operation Card. A Checkpoint path with no UUID widens to full Detect
467
+ before publication. Gaining or losing `.git` keeps the containing UUID and
468
+ changes only its type rail.
469
+
426
470
  ## Relationship to amalgm-engine
427
471
 
428
472
  Stage 1 cut the bricks out of the engine. Stage 2 proves them here, composed.
@@ -10,11 +10,12 @@
10
10
  */
11
11
  import { createHash, randomUUID } from "node:crypto";
12
12
  import { existsSync, lstatSync, readFileSync, readdirSync, readlinkSync } from "node:fs";
13
- import { join, posix, resolve, sep } from "node:path";
14
- import { canonicalVersion, checkContentManifest, classifyFile, createLocalEntityRecord, createUserGroundEnrollmentPolicy, detectedChangeProposal, encodeEntityRecord, membershipHash, } from "@amalgm/live";
13
+ import { join, posix, resolve } from "node:path";
14
+ import { canonicalVersion, checkContentManifest, classifyFile, createLocalEntityRecord, createUserGroundEnrollmentPolicy, detectedChangeProposal, encodeEntityRecord, indexRepositoryTerritory, membershipHash, } from "@amalgm/live";
15
15
  import Database from "better-sqlite3";
16
16
  import { captureContentFile, sealCapturedArtifact } from "../content-cache-host.js";
17
17
  import { captureRepository, hasGitMarker, inspectRepositoryTransportFile, } from "../git-repository-host.js";
18
+ import { canonicalizeGitIdentity, inspectGitRegistration, sameGitIdentity, } from "../git-registration-host.js";
18
19
  import { exactTextReplay } from "./portable.js";
19
20
  const ROW_SELECT = `
20
21
  SELECT resource_id AS resourceId, root_uuid AS rootUUID,
@@ -160,7 +161,6 @@ export class NamedDetectRuntime {
160
161
  const membershipParents = new Set();
161
162
  const evidence = [];
162
163
  const prepared = [];
163
- const moveSources = [];
164
164
  let repositoryBoundary = false;
165
165
  for (const observation of observations) {
166
166
  const paths = observation.suspicion.paths;
@@ -187,7 +187,6 @@ export class NamedDetectRuntime {
187
187
  if (this.enclosedByRepository(exact)) {
188
188
  repositoryBoundary = true;
189
189
  }
190
- moveSources.push(absolutePath);
191
190
  }
192
191
  return { path, absolutePath, exact, stats };
193
192
  });
@@ -225,7 +224,7 @@ export class NamedDetectRuntime {
225
224
  return { handled: false, evidence: [] };
226
225
  }
227
226
  const file = await this.captureFile({
228
- root, path, absolutePath, stats, parent, exact, moveSources,
227
+ root, path, absolutePath, stats, parent, exact,
229
228
  });
230
229
  scope = {
231
230
  items: file.item ? [file.item] : [],
@@ -240,7 +239,7 @@ export class NamedDetectRuntime {
240
239
  return { handled: false, evidence: [] };
241
240
  }
242
241
  const link = this.captureLink({
243
- root, path, absolutePath, stats, parent, exact, moveSources,
242
+ root, path, absolutePath, stats, parent, exact,
244
243
  });
245
244
  if (!link)
246
245
  return { handled: false, evidence: [] };
@@ -258,7 +257,6 @@ export class NamedDetectRuntime {
258
257
  stats,
259
258
  parent,
260
259
  policy,
261
- moveSources,
262
260
  });
263
261
  if (!directory)
264
262
  return { handled: false, evidence: [] };
@@ -407,7 +405,17 @@ export class NamedDetectRuntime {
407
405
  }
408
406
  if (stats.isSymbolicLink() && exact.type === "link") {
409
407
  const target = readlinkSync(exact.absolutePath);
410
- const payloadVersion = sha256Hex(Buffer.from(target, "utf8"));
408
+ const targetBytes = Buffer.from(target, "utf8");
409
+ const payloadVersion = sha256Hex(targetBytes);
410
+ // Record may become sendable in the same SQLite transaction below;
411
+ // immutable cargo therefore has to be sealed during this truth read,
412
+ // exactly like ordinary file capture.
413
+ sealCapturedArtifact(this.cacheDir, {
414
+ entityId: exact.uuid,
415
+ entityType: "link",
416
+ kind: "link",
417
+ contentHash: payloadVersion,
418
+ }, targetBytes);
411
419
  const result = {
412
420
  ...exact,
413
421
  version: canonicalVersion({
@@ -436,9 +444,43 @@ export class NamedDetectRuntime {
436
444
  if (!repository || !directory)
437
445
  return null;
438
446
  const priorRows = this.rowsUnderPath.all(repository.rootUUID, repository.relativePath, repository.relativePath, repository.relativePath, repository.relativePath);
439
- const currentRows = priorRows.map((row) => leafRows.get(row.uuid) ?? row);
440
447
  const previousIdentity = repositoryIdentity(repository, priorRows);
441
- const identity = repositoryIdentity(repository, currentRows);
448
+ const priorByOwnedPath = new Map(previousIdentity.map((entry) => [entry.path, entry.uuid]));
449
+ const priorByUuid = new Map(priorRows.map((row) => [row.uuid, row]));
450
+ // A Card transition can make a formerly dirty path clean without emitting
451
+ // a worktree event for that path. Refresh every nearest-owned clean leaf
452
+ // from Git's index/object database before sealing the identity map; this
453
+ // reads no worktree bytes and prevents the receiver from correcting the
454
+ // sender's stale evidence as an otherwise-valid echo.
455
+ const cleanLeaves = inspectGitRegistration(repository.absolutePath).cleanLeaves;
456
+ for (const [path, clean] of cleanLeaves) {
457
+ const uuid = priorByOwnedPath.get(path);
458
+ const base = uuid ? (leafRows.get(uuid) ?? priorByUuid.get(uuid)) : undefined;
459
+ if (!base || (clean.type !== "link"
460
+ && clean.type !== "file.text" && clean.type !== "file.binary"))
461
+ continue;
462
+ const version = canonicalVersion({
463
+ type: clean.type,
464
+ parentUUID: base.parentUUID,
465
+ name: base.name,
466
+ status: base.status,
467
+ payloadVersion: clean.payloadVersion,
468
+ }, sha256Hex);
469
+ if (base.type === clean.type
470
+ && base.payloadVersion === clean.payloadVersion
471
+ && base.version === version)
472
+ continue;
473
+ leafRows.set(base.uuid, {
474
+ ...base,
475
+ type: clean.type,
476
+ version,
477
+ payloadVersion: clean.payloadVersion,
478
+ transportVersion: null,
479
+ contentVerifiedAtMs: Date.now(),
480
+ });
481
+ }
482
+ const currentRows = priorRows.map((row) => leafRows.get(row.uuid) ?? row);
483
+ let identity = repositoryIdentity(repository, currentRows);
442
484
  let prior = null;
443
485
  let priorLayout = null;
444
486
  if (repository.payloadVersion && repository.transportVersion) {
@@ -462,7 +504,28 @@ export class NamedDetectRuntime {
462
504
  }
463
505
  }
464
506
  }
465
- const captured = captureRepository(repository.absolutePath, identity, prior, prior ? previousIdentity : null);
507
+ let captured = null;
508
+ let coherent = false;
509
+ for (let attempt = 0; attempt < 3; attempt += 1) {
510
+ captured = captureRepository(repository.absolutePath, identity, prior, prior ? previousIdentity : null);
511
+ const identityPaths = new Set(identity.map((entry) => entry.path));
512
+ if (captured.state.checkpoint.untracked.some((entry) => !identityPaths.has(entry.path))) {
513
+ // The Checkpoint found ground for which this named pass has no durable
514
+ // UUID yet. Widen to the ordinary reconciliation lane so bytes and
515
+ // identity enter one repository record, never an identity-only echo
516
+ // on the receiving machine.
517
+ return null;
518
+ }
519
+ const after = canonicalizeGitIdentity(identity, inspectGitRegistration(repository.absolutePath));
520
+ if (sameGitIdentity(after, identity)) {
521
+ coherent = true;
522
+ break;
523
+ }
524
+ identity = after;
525
+ }
526
+ if (!coherent || !captured) {
527
+ throw new Error("repository identity did not settle during Detect capture");
528
+ }
466
529
  if (captured.bytes) {
467
530
  sealCapturedArtifact(this.cacheDir, {
468
531
  entityId: repository.uuid,
@@ -579,8 +642,8 @@ export class NamedDetectRuntime {
579
642
  return row?.receivedThrough ?? 0;
580
643
  }
581
644
  async captureFile(input) {
582
- const { root, path, absolutePath, stats, parent, exact, moveSources } = input;
583
- const base = exact ?? this.uniqueMovedBase(stats.dev, stats.ino, absolutePath, moveSources);
645
+ const { root, path, absolutePath, stats, parent, exact } = input;
646
+ const base = exact ?? this.uniqueMovedBase(stats.dev, stats.ino, absolutePath);
584
647
  const fingerprintTrusted = base !== null
585
648
  && base.relativePath === path
586
649
  && this.materializedByUuid.get(base.uuid) !== undefined
@@ -655,7 +718,7 @@ export class NamedDetectRuntime {
655
718
  const exact = this.rowAtPath.get(input.root.rootUUID, input.path);
656
719
  if (exact && !["workspace", "folder"].includes(exact.type))
657
720
  return null;
658
- const base = exact ?? this.uniqueMovedBase(input.stats.dev, input.stats.ino, input.absolutePath, input.moveSources);
721
+ const base = exact ?? this.uniqueMovedBase(input.stats.dev, input.stats.ino, input.absolutePath);
659
722
  if (base && !["workspace", "folder"].includes(base.type))
660
723
  return null;
661
724
  const uuid = base?.uuid ?? randomUUID();
@@ -700,7 +763,6 @@ export class NamedDetectRuntime {
700
763
  stats,
701
764
  parent: parentRow,
702
765
  exact: this.rowAtPath.get(input.root.rootUUID, path),
703
- moveSources: input.moveSources,
704
766
  });
705
767
  if (!link)
706
768
  return null;
@@ -721,7 +783,6 @@ export class NamedDetectRuntime {
721
783
  stats,
722
784
  parent: parentRow,
723
785
  policy: input.policy,
724
- moveSources: input.moveSources,
725
786
  });
726
787
  if (!nested)
727
788
  return null;
@@ -741,7 +802,6 @@ export class NamedDetectRuntime {
741
802
  stats,
742
803
  parent: parentRow,
743
804
  exact: this.rowAtPath.get(input.root.rootUUID, path),
744
- moveSources: input.moveSources,
745
805
  });
746
806
  const identity = file.item?.result
747
807
  ?? this.rowAtPath.get(input.root.rootUUID, path);
@@ -792,8 +852,8 @@ export class NamedDetectRuntime {
792
852
  };
793
853
  }
794
854
  captureLink(input) {
795
- const { root, path, absolutePath, stats, parent, exact, moveSources } = input;
796
- const base = exact ?? this.uniqueMovedBase(stats.dev, stats.ino, absolutePath, moveSources);
855
+ const { root, path, absolutePath, stats, parent, exact } = input;
856
+ const base = exact ?? this.uniqueMovedBase(stats.dev, stats.ino, absolutePath);
797
857
  if (base && base.type !== "link")
798
858
  return null;
799
859
  const fingerprintTrusted = base !== null
@@ -813,15 +873,25 @@ export class NamedDetectRuntime {
813
873
  && base.filesystemMode === stats.mode
814
874
  && base.payloadVersion !== null;
815
875
  const target = canReuseMovedTarget ? null : readlinkSync(absolutePath);
876
+ const targetBytes = target === null ? null : Buffer.from(target, "utf8");
877
+ const uuid = base?.uuid ?? randomUUID();
816
878
  const payloadVersion = target === null
817
879
  ? base?.payloadVersion ?? null
818
- : sha256Hex(Buffer.from(target, "utf8"));
880
+ : sha256Hex(targetBytes);
819
881
  if (!payloadVersion)
820
882
  return null;
883
+ if (targetBytes) {
884
+ sealCapturedArtifact(this.cacheDir, {
885
+ entityId: uuid,
886
+ entityType: "link",
887
+ kind: "link",
888
+ contentHash: payloadVersion,
889
+ }, targetBytes);
890
+ }
821
891
  const result = {
822
892
  resourceId: root.resourceId,
823
893
  rootUUID: root.rootUUID,
824
- uuid: base?.uuid ?? randomUUID(),
894
+ uuid,
825
895
  type: "link",
826
896
  parentUUID: parent.uuid,
827
897
  name: posix.basename(path),
@@ -885,10 +955,14 @@ export class NamedDetectRuntime {
885
955
  const ignore = join(this.userRoot, ".amalgmignore");
886
956
  return createUserGroundEnrollmentPolicy(existsSync(ignore) ? readFileSync(ignore, "utf8") : "");
887
957
  }
888
- uniqueMovedBase(deviceNumber, inode, absolutePath, moveSources) {
958
+ uniqueMovedBase(deviceNumber, inode, absolutePath) {
889
959
  const candidates = this.rowsAtPhysicalIdentity.all(deviceNumber, inode)
890
960
  .filter((row) => row.absolutePath !== absolutePath
891
- && moveSources.some((source) => row.absolutePath === source || row.absolutePath.startsWith(`${source}${sep}`))
961
+ // Windows may name only the destination of a rename. The entity
962
+ // projection proves this physical identity was still materialized
963
+ // before the current observation; notebook-only rows deliberately do
964
+ // not qualify, so a later inode reuse cannot steal missing identity.
965
+ && this.materializedByUuid.get(row.uuid) !== undefined
892
966
  && !existsSync(row.absolutePath));
893
967
  return candidates.length === 1 ? candidates[0] : null;
894
968
  }
@@ -929,14 +1003,7 @@ function tryLstat(path) {
929
1003
  }
930
1004
  }
931
1005
  function repositoryIdentity(repository, rows) {
932
- const repositories = rows.filter((row) => row.type === "repo.git");
933
- const ownerOf = (row) => repositories
934
- .filter((candidate) => candidate.uuid !== row.uuid
935
- && (candidate.relativePath === ""
936
- || row.relativePath.startsWith(`${candidate.relativePath}/`)))
937
- .sort((left, right) => right.relativePath.length - left.relativePath.length)[0] ?? null;
938
- return rows
939
- .filter((row) => row.uuid !== repository.uuid && ownerOf(row)?.uuid === repository.uuid)
1006
+ return indexRepositoryTerritory(rows).ownedBy(repository.uuid)
940
1007
  .map((row) => ({
941
1008
  path: repository.relativePath
942
1009
  ? row.relativePath.slice(repository.relativePath.length + 1)
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/detection/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/detection/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /** Node filesystem, immutable-cache, Git, and Verify effects for Live Apply. */
2
+ import { type EntityApplyEffectsPort, type EntityApplyIntent, type EntityApplyPlan, type TransferArtifact } from "@amalgm/live";
3
+ import { EntityApplySqliteStore } from "./entity-apply-store.js";
4
+ export interface LocalApplyArtifact {
5
+ readonly file: string;
6
+ readonly bytes: number;
7
+ readonly contentHash: string;
8
+ }
9
+ export interface EntityApplyHostOptions {
10
+ readonly databaseFile: string;
11
+ readonly userRoot: string;
12
+ readonly cacheDir: string;
13
+ readonly bindingDir: string;
14
+ readonly readContent: (artifact: TransferArtifact) => Promise<LocalApplyArtifact>;
15
+ /** Must return only after Detect + Record made a raced local result durable. */
16
+ readonly captureLocal: (intent: EntityApplyIntent, plan: EntityApplyPlan, position: "before-reveal" | "after-reveal") => Promise<void>;
17
+ /** Serializes final Apply truth mutation with the host's Detect observation. */
18
+ readonly acquireGround: () => Promise<() => void>;
19
+ readonly now?: () => number;
20
+ }
21
+ /** One persistent machine-effect owner for the Apply rail lifetime. */
22
+ export declare class EntityApplyHost {
23
+ #private;
24
+ readonly store: EntityApplySqliteStore;
25
+ readonly effects: EntityApplyEffectsPort;
26
+ constructor(options: EntityApplyHostOptions);
27
+ close(): void;
28
+ }