@amalgm/shell 0.1.137 → 0.1.139

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
@@ -291,9 +291,13 @@ shell only assembles.
291
291
  destinations, and an interrupted Add may retain them only with disposable
292
292
  chunk evidence beside the ground database. Resume rereads and re-hashes
293
293
  every retained chunk against the pinned manifest, downloads every missing
294
- or corrupt chunk, proves the ordered whole-artifact hash, and fsyncs each
295
- completed file before rows or reveal are trusted. Links and repository
296
- transports keep their type-specific cache and adapter rails.
294
+ or corrupt chunk, and proves the ordered whole-artifact hash. Durability
295
+ is one explicit barrier over the whole staged tree — every file,
296
+ duplicate, and repository — that must succeed before entity rows are
297
+ committed or ground is revealed; no staged file is fsynced on its own. A
298
+ failed barrier leaves the intent retained, no rows committed, no visible
299
+ destination, and staging re-proven as untrusted on retry. Links and
300
+ repository transports keep their type-specific cache and adapter rails.
297
301
  One recovered Add intent that cannot currently be satisfied remains
298
302
  durable and reports its exact failure, but it cannot hold unrelated machine
299
303
  readiness or other Add responsibilities hostage.
@@ -581,7 +585,17 @@ shell only assembles.
581
585
  work. Live selects the newest accepted result on each UUID and owns intent,
582
586
  local-work protection, retry, and Verify decisions. Shell supplies one
583
587
  persistent SQLite store plus type-specific filesystem, cache, and Git
584
- effects. Apply never polls and never writes either Record queue.
588
+ effects. Apply never polls and never writes either Record queue. A failed
589
+ or conflicted lane parks: its durable intent stays, the failure is reported
590
+ with its attempt and backoff, and the lane re-runs only when that backoff
591
+ elapses, its entity's input changes, or, for a conflict, another lane's
592
+ progress may have moved the occupant. The Detect pass behind the lane's
593
+ own capture is a wake like any other and can never re-run it, so a parked
594
+ lane costs one bounded attempt at a time, never a Detect storm. An
595
+ accepted destination already held by a different recorded active entity is
596
+ a conflict named in evidence, never a local save to capture. The park timer
597
+ and attempt count are process-local: after restart, the durable intent is
598
+ re-proved once and, if still blocked, parks again from attempt one.
585
599
 
586
600
  52. **Visible Apply follows durable identity.** Before any filesystem effect,
587
601
  Shell persists one intent. Its first read-only preflight is optimistic and
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The set-level durability law for Files Add.
3
+ *
4
+ * Staged content is verified while it streams and is never trusted until it
5
+ * is re-proven, so no staged file needs to be durable before the next one is
6
+ * written. What must hold is one barrier: after every file, duplicate, and
7
+ * repository has been materialized, the whole staged tree is durable before
8
+ * entity rows are committed or ground is revealed. A failed barrier fails the
9
+ * Add with its intent retained — nothing committed, nothing visible — and the
10
+ * retry re-proves the staging as untrusted substrate.
11
+ *
12
+ * Linux settles the filesystem holding the staging root in one syncfs(2) —
13
+ * coreutils `sync -f` — so twelve thousand small files cost one journal
14
+ * flush rather than one commit each serialized through the journal. Node
15
+ * exposes no syncfs, so that is one child process. Elsewhere every regular
16
+ * file and directory under the root is flushed through its own handle:
17
+ * libuv's fsync is F_FULLFSYNC on macOS and FlushFileBuffers on Windows,
18
+ * where NTFS's own log carries the directory entries with their files. A
19
+ * directory-only fsync never guarantees file contents and is never used.
20
+ */
21
+ export type DurabilityBarrier = (root: string) => Promise<void>;
22
+ export declare const durabilityBarrier: DurabilityBarrier;
@@ -0,0 +1,72 @@
1
+ /**
2
+ * The set-level durability law for Files Add.
3
+ *
4
+ * Staged content is verified while it streams and is never trusted until it
5
+ * is re-proven, so no staged file needs to be durable before the next one is
6
+ * written. What must hold is one barrier: after every file, duplicate, and
7
+ * repository has been materialized, the whole staged tree is durable before
8
+ * entity rows are committed or ground is revealed. A failed barrier fails the
9
+ * Add with its intent retained — nothing committed, nothing visible — and the
10
+ * retry re-proves the staging as untrusted substrate.
11
+ *
12
+ * Linux settles the filesystem holding the staging root in one syncfs(2) —
13
+ * coreutils `sync -f` — so twelve thousand small files cost one journal
14
+ * flush rather than one commit each serialized through the journal. Node
15
+ * exposes no syncfs, so that is one child process. Elsewhere every regular
16
+ * file and directory under the root is flushed through its own handle:
17
+ * libuv's fsync is F_FULLFSYNC on macOS and FlushFileBuffers on Windows,
18
+ * where NTFS's own log carries the directory entries with their files. A
19
+ * directory-only fsync never guarantees file contents and is never used.
20
+ */
21
+ import { execFile } from "node:child_process";
22
+ import { constants } from "node:fs";
23
+ import { lstat, open, readdir } from "node:fs/promises";
24
+ import { join } from "node:path";
25
+ import { promisify } from "node:util";
26
+ import { boundedForEach } from "./bounded-for-each.js";
27
+ const execFileAsync = promisify(execFile);
28
+ /** Handles in flight while a tree is flushed entry by entry. */
29
+ const FLUSH_CONCURRENCY = 16;
30
+ async function syncFilesystem(root) {
31
+ await execFileAsync("sync", ["-f", root]);
32
+ }
33
+ async function flushEntry(path) {
34
+ const handle = await open(path, constants.O_RDONLY | constants.O_NOFOLLOW);
35
+ try {
36
+ await handle.sync();
37
+ }
38
+ finally {
39
+ await handle.close();
40
+ }
41
+ }
42
+ async function syncTree(root) {
43
+ const files = [];
44
+ const directories = [root];
45
+ for (let index = 0; index < directories.length; index += 1) {
46
+ const directory = directories[index];
47
+ for (const entry of await readdir(directory, { withFileTypes: true })) {
48
+ const path = join(directory, entry.name);
49
+ if (entry.isDirectory())
50
+ directories.push(path);
51
+ else if (entry.isFile())
52
+ files.push(path);
53
+ }
54
+ }
55
+ const flushed = process.platform === "win32" ? files : [...files, ...directories];
56
+ await boundedForEach(flushed, FLUSH_CONCURRENCY, flushEntry);
57
+ }
58
+ const platformBarrier = process.platform === "linux" ? syncFilesystem : syncTree;
59
+ export const durabilityBarrier = async (root) => {
60
+ try {
61
+ const stats = await lstat(root);
62
+ if (!stats.isDirectory() || stats.isSymbolicLink()) {
63
+ throw new Error("staging root is not a physical directory");
64
+ }
65
+ await platformBarrier(root);
66
+ }
67
+ catch (error) {
68
+ const detail = error instanceof Error ? error.message : String(error);
69
+ throw new Error(`durability barrier failed for ${root}: ${detail}`, { cause: error });
70
+ }
71
+ };
72
+ //# sourceMappingURL=durability-barrier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durability-barrier.js","sourceRoot":"","sources":["../src/durability-barrier.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,9 @@ import { applyRepositoryFiles, hasGitMarker, inspectRepositoryTransportFile, mar
9
9
  import { hashContentFile, sealCapturedArtifact } from "./content-cache-host.js";
10
10
  import { projectMaterializedGraph } from "./materialized-graph.js";
11
11
  import { EntityApplySqliteStore } from "./entity-apply-store.js";
12
- const ROW_SELECT = `
12
+ /** Detect's settled view and the accepted registry share one ground row
13
+ * shape; the notebook answers first wherever both are consulted. */
14
+ const groundSelect = (table) => `
13
15
  SELECT resource_id AS resourceId, root_uuid AS rootUUID,
14
16
  uuid, type, parent_uuid AS parentUUID, name, status, version,
15
17
  payload_version AS payloadVersion, transport_version AS transportVersion,
@@ -18,7 +20,7 @@ const ROW_SELECT = `
18
20
  byte_size AS byteSize, modified_time_ms AS modifiedTimeMs,
19
21
  changed_time_ms AS changedTimeMs, filesystem_mode AS filesystemMode,
20
22
  content_verified_at_ms AS contentVerifiedAtMs
21
- FROM detection_notebook`;
23
+ FROM ${table}`;
22
24
  const sha256Hex = (input) => createHash("sha256").update(input).digest("hex");
23
25
  const portable = (row) => ({
24
26
  uuid: row.uuid,
@@ -96,6 +98,8 @@ export class EntityApplyHost {
96
98
  #now;
97
99
  #rowByUuid;
98
100
  #entityByUuid;
101
+ #rowAtPath;
102
+ #entityAtPath;
99
103
  #rowsUnderRoot;
100
104
  #prepared = new Map();
101
105
  #groundReleases = new Map();
@@ -118,29 +122,11 @@ export class EntityApplyHost {
118
122
  this.#acquireGround = options.acquireGround;
119
123
  this.#onStage = options.onStage;
120
124
  this.#now = options.now ?? Date.now;
121
- this.#rowByUuid = this.#database.prepare(`${ROW_SELECT} WHERE uuid = ? LIMIT 1`);
122
- this.#entityByUuid = this.#database.prepare(`
123
- SELECT resource_id AS resourceId, root_uuid AS rootUUID,
124
- uuid, type, parent_uuid AS parentUUID, name, status, version,
125
- payload_version AS payloadVersion, transport_version AS transportVersion,
126
- relative_path AS relativePath, absolute_path AS absolutePath,
127
- device_number AS deviceNumber, inode,
128
- byte_size AS byteSize, modified_time_ms AS modifiedTimeMs,
129
- changed_time_ms AS changedTimeMs, filesystem_mode AS filesystemMode,
130
- content_verified_at_ms AS contentVerifiedAtMs
131
- FROM entities WHERE uuid = ? LIMIT 1
132
- `);
133
- this.#rowsUnderRoot = this.#database.prepare(`
134
- SELECT resource_id AS resourceId, root_uuid AS rootUUID,
135
- uuid, type, parent_uuid AS parentUUID, name, status, version,
136
- payload_version AS payloadVersion, transport_version AS transportVersion,
137
- relative_path AS relativePath, absolute_path AS absolutePath,
138
- device_number AS deviceNumber, inode,
139
- byte_size AS byteSize, modified_time_ms AS modifiedTimeMs,
140
- changed_time_ms AS changedTimeMs, filesystem_mode AS filesystemMode,
141
- content_verified_at_ms AS contentVerifiedAtMs
142
- FROM entities WHERE root_uuid = ? ORDER BY relative_path
143
- `);
125
+ this.#rowByUuid = this.#database.prepare(`${groundSelect("detection_notebook")} WHERE uuid = ? LIMIT 1`);
126
+ this.#entityByUuid = this.#database.prepare(`${groundSelect("entities")} WHERE uuid = ? LIMIT 1`);
127
+ this.#rowAtPath = this.#database.prepare(`${groundSelect("detection_notebook")} WHERE absolute_path = ? AND status = 'active' LIMIT 1`);
128
+ this.#entityAtPath = this.#database.prepare(`${groundSelect("entities")} WHERE absolute_path = ? AND status = 'active' LIMIT 1`);
129
+ this.#rowsUnderRoot = this.#database.prepare(`${groundSelect("entities")} WHERE root_uuid = ? ORDER BY relative_path`);
144
130
  const adapters = [
145
131
  "workspace", "folder", "repo.git", "file.text", "file.binary", "link", "reference",
146
132
  ].map((type) => this.#adapter(type));
@@ -371,18 +357,17 @@ export class EntityApplyHost {
371
357
  this.#releaseGround(intent);
372
358
  return { kind: "safe" };
373
359
  }
374
- const result = await this.#matches(intent, plan.target, context.targetPath, plan)
375
- ? { kind: "already-target" }
376
- : { kind: "local-change" };
377
- if (result.kind === "local-change")
378
- this.#releaseGround(intent);
379
- return result;
360
+ if (await this.#matches(intent, plan.target, context.targetPath, plan)) {
361
+ return { kind: "already-target" };
362
+ }
363
+ this.#releaseGround(intent);
364
+ return this.#heldDestination(intent, context.targetPath);
380
365
  }
381
366
  // A move/rename may never erase a different thing already occupying the
382
- // accepted destination. Detect must first give that ground identity.
367
+ // accepted destination.
383
368
  if (current.absolutePath !== context.targetPath && tryLstat(context.targetPath)) {
384
369
  this.#releaseGround(intent);
385
- return { kind: "local-change" };
370
+ return this.#heldDestination(intent, context.targetPath);
386
371
  }
387
372
  if (await this.#matches(intent, portable(current), current.absolutePath, plan, current)) {
388
373
  if (intent.phase === "declared")
@@ -411,6 +396,24 @@ export class EntityApplyHost {
411
396
  }
412
397
  }
413
398
  }
399
+ /**
400
+ * Something other than this entity holds its accepted destination. Ground
401
+ * Detect has already recorded as a different active entity is a conflict:
402
+ * capture would only prove that same occupant again, so the lane parks
403
+ * naming it and re-runs when the occupant may have moved. Unrecorded ground
404
+ * may still be this entity's own bytes moved by hand, and only Detect +
405
+ * Record can say so.
406
+ */
407
+ #heldDestination(intent, targetPath) {
408
+ const occupant = this.#rowAtPath.get(targetPath)
409
+ ?? this.#entityAtPath.get(targetPath);
410
+ if (!occupant || occupant.uuid === intent.entityId)
411
+ return { kind: "local-change" };
412
+ return {
413
+ kind: "conflict",
414
+ reason: `destination ${targetPath} is held by ${occupant.type} ${occupant.uuid}`,
415
+ };
416
+ }
414
417
  async #reveal(intent, plan) {
415
418
  this.#emit(intent, plan, "reveal-started");
416
419
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"entity-apply-host.js","sourceRoot":"","sources":["../src/entity-apply-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-apply-host.js","sourceRoot":"","sources":["../src/entity-apply-host.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { type EntityType, type FilesAddPorts, type FilesRegisterPorts, type User
3
3
  import Database from "better-sqlite3";
4
4
  import { type FilesStageObserver } from "./files-observability.js";
5
5
  import { type EntityApplyStageEvidence } from "./entity-apply-host.js";
6
+ import { type DurabilityBarrier } from "./durability-barrier.js";
6
7
  import { type OpenNativeWatch, type WatchCoverageEvidence, type WatchHealth } from "./watching/index.js";
7
8
  interface GroundRow {
8
9
  readonly resourceId: string;
@@ -73,6 +74,9 @@ export interface UserGroundHostOptions {
73
74
  readonly onWatchHealth?: (health: WatchHealth) => void;
74
75
  /** Host injection used by platform certification and failure examinations. */
75
76
  readonly openWatch?: OpenNativeWatch;
77
+ /** The one durability barrier Add takes over its staged tree before rows or
78
+ * reveal; injected only by failure examinations. */
79
+ readonly durabilityBarrier?: DurabilityBarrier;
76
80
  /** Root-scoped Detect evidence for product diagnostics and examinations. */
77
81
  readonly onDetectScan?: (evidence: DetectScanEvidence) => void;
78
82
  /** Transient Apply progress; durable responsibility remains in SQLite. */
@@ -15,6 +15,7 @@ import { ContentCacheDownloadSet, captureContentFile, contentBlockCollector, has
15
15
  import { RegisterUploadFusion } from "./register-upload-fusion.js";
16
16
  import { StagedContentSet, addStagingEvidenceDir, clearAddStagingEvidence, } from "./workspace-add-staging.js";
17
17
  import { boundedForEach } from "./bounded-for-each.js";
18
+ import { durabilityBarrier as platformDurabilityBarrier, } from "./durability-barrier.js";
18
19
  import { DirectContentPlane } from "./content-direct.js";
19
20
  import { encodeContentWireBytes } from "./content-wire-codec.js";
20
21
  import { TransferLegs } from "./transfer-instrumentation.js";
@@ -394,6 +395,7 @@ export class UserGroundHost {
394
395
  cloudHead: input.cloudHead,
395
396
  deliveryWatermark: input.deliveryWatermark,
396
397
  readContent: (artifacts, staged) => this.downloadContentSet(privateEntityResourceId(identity.userId, sha256Hex), this.cacheDir(identity), artifacts.map((artifact) => ({ artifact })), 10, { journey: "add", workspaceId: input.workspace.uuid }, staged),
398
+ durabilityBarrier: this.options.durabilityBarrier ?? platformDurabilityBarrier,
397
399
  adoptMaterialization: (rootUUID) => {
398
400
  const settled = this.adoptCloudDeliveryBaseline(identity, input.deliveryWatermark, rootUUID);
399
401
  this.applyRail?.recordsAvailable();
@@ -523,6 +525,7 @@ export class UserGroundHost {
523
525
  cloudHead: intent.cloudHead,
524
526
  deliveryWatermark: intent.deliveryWatermark,
525
527
  readContent: (artifacts, staged) => this.downloadContentSet(intent.resourceId, this.cacheDir(identity), artifacts.map((artifact) => ({ artifact })), 10, { journey: "add", workspaceId: intent.workspaceId }, staged),
528
+ durabilityBarrier: this.options.durabilityBarrier ?? platformDurabilityBarrier,
526
529
  adoptMaterialization: (rootUUID) => {
527
530
  this.adoptCloudDeliveryBaseline(identity, intent.deliveryWatermark, rootUUID);
528
531
  this.applyRail?.recordsAvailable();
@@ -1054,12 +1057,13 @@ export class UserGroundHost {
1054
1057
  cacheDir: this.cacheDir(identity),
1055
1058
  bindingDir: workspaceBindingDir(this.userRoot(identity), identity.deviceId),
1056
1059
  readContent: (artifact, manifest) => this.downloadContent(this.cloudState.resourceId, this.cacheDir(identity), artifact, DOWNLOAD_CONTENT_RETRY_ATTEMPTS, { journey: "apply" }, manifest),
1057
- captureLocal: async (intent, plan, position) => {
1060
+ captureLocal: async (intent, plan) => {
1058
1061
  // Apply never suppresses Watch. This explicit named suspicion is the
1059
1062
  // synchronous proof boundary used only when Apply observed a save
1060
1063
  // racing its reveal and must make that save durable first. It rings
1061
1064
  // exactly the addresses Apply compared, so the proof costs one named
1062
- // Detect lane, not a walk of every root.
1065
+ // Detect lane, not a walk of every root. Whether durable Outbox work
1066
+ // followed is the rail's proof, made once, after this pass settles.
1063
1067
  let addresses = [];
1064
1068
  try {
1065
1069
  addresses = host.applyAddresses(intent, plan);
@@ -1078,9 +1082,6 @@ export class UserGroundHost {
1078
1082
  do {
1079
1083
  await this.syncNow();
1080
1084
  } while (!this.closing && !this.watchHost.settled(cutoff));
1081
- if (!host.store.hasLocalWorkAfter(intent.authorityId, intent.entityId, intent.throughSequence)) {
1082
- throw new Error(`Apply ${position} capture for ${plan.target.type} ${plan.target.name} (${intent.entityId}) produced no durable local record`);
1083
- }
1084
1085
  },
1085
1086
  acquireGround: (cones) => this.acquireGroundScope(cones, APPLY_GROUND_WAIT_TIMEOUT_MS),
1086
1087
  onStage: (evidence) => {
@@ -6080,7 +6081,7 @@ function installCloudWorkspaceReferences(input) {
6080
6081
  return references;
6081
6082
  }
6082
6083
  async function installCloudWorkspace(input) {
6083
- const { identity, userRoot, database, cacheDir, bindingDir, resourceId, workspace, reference, references, records, destinationParent, cloudHead, deliveryWatermark, readContent, onStage, } = input;
6084
+ const { identity, userRoot, database, cacheDir, bindingDir, resourceId, workspace, reference, references, records, destinationParent, cloudHead, deliveryWatermark, readContent, durabilityBarrier, onStage, } = input;
6084
6085
  const existing = readGroundClosureRows(database, workspace.uuid);
6085
6086
  const existingBoundary = existing.find((row) => row.uuid === workspace.uuid);
6086
6087
  const pending = readWorkspaceAddIntent(database, workspace.uuid);
@@ -6236,11 +6237,19 @@ async function installCloudWorkspace(input) {
6236
6237
  ? join(intent.destinationPath, ...row.relativePath.split("/"))
6237
6238
  : intent.destinationPath,
6238
6239
  }));
6240
+ const graphMs = Math.round(performance.now() - graphStarted);
6241
+ // Every staged byte was proven as it streamed; none of it counts as durable
6242
+ // until the whole tree — files, duplicates, repositories — passes one
6243
+ // barrier. Rows and reveal follow that barrier, never precede it; a failed
6244
+ // barrier leaves the intent retained and the staging untrusted.
6245
+ const barrierStarted = performance.now();
6246
+ await durabilityBarrier(intent.stagingPath);
6239
6247
  // The milestone's duration spans the whole materialization; its legs say
6240
6248
  // where that wall time went after the content set itself.
6241
6249
  await onStage?.("materialization-verified", {
6242
6250
  ...materialized.timing,
6243
- graphMs: Math.round(performance.now() - graphStarted),
6251
+ graphMs,
6252
+ durabilityBarrierMs: Math.round(performance.now() - barrierStarted),
6244
6253
  repositories: materialized.repositories.length,
6245
6254
  });
6246
6255
  persistRows(database, identity, intent.resourceId, intent.workspaceId, rows);