@anionex/dsh-turn-rewind 0.3.3 → 0.3.5

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/lib/client.js CHANGED
@@ -14,6 +14,7 @@ exports.selectRewindMessageTarget = selectRewindMessageTarget;
14
14
  exports.responseJson = responseJson;
15
15
  exports.fileRecoveryLabel = fileRecoveryLabel;
16
16
  exports.describeCaptureNotice = describeCaptureNotice;
17
+ exports.explainCheckpointSkip = explainCheckpointSkip;
17
18
  exports.explainCheckpointFailure = explainCheckpointFailure;
18
19
  const jsx_runtime_1 = require("react/jsx-runtime");
19
20
  const react_1 = require("react");
@@ -395,7 +396,7 @@ function RewindMessageAction({ matched, sessionId, openRestoredSession }) {
395
396
  const actionLabel = mode === 'both' ? '恢复并从这里继续' : mode === 'code' ? '恢复文件' : '只回溯消息';
396
397
  const radioName = `dcl-rewind-${sessionId}-${String(matched.messageSeq)}`;
397
398
  const branchChanged = ready !== null && ready.checkpointBranch !== ready.currentBranch;
398
- return ((0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-tail", children: [(0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Tooltip, { label: "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", side: "bottom", children: (0, jsx_runtime_1.jsx)("button", { type: "button", className: "dcl-rewind-trigger", onClick: show, "aria-label": "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", children: (0, jsx_runtime_1.jsx)(RewindIcon, { size: 16 }) }) }), (0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Modal, { open: open, onClose: close, title: "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", closeLabel: "\u5173\u95ED", description: "\u67E5\u770B\u6062\u590D\u7684\u6587\u4EF6\uFF0C\u9009\u62E9\u9002\u5408\u4F60\u7684\u56DE\u9000\u65B9\u5F0F\u3002\u5F53\u524D\u4F1A\u8BDD\u4E0D\u53D7\u5F71\u54CD\u3002", className: "dcl-rewind-dialog", contentClassName: "dcl-rewind-content", footer: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Button, { variant: "outline", onClick: close, disabled: applying, children: "\u53D6\u6D88" }), (0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Button, { variant: "primary", onClick: () => { void applyRestore(); }, disabled: !canApply, children: applying ? '正在恢复…' : completed === null ? actionLabel : '已完成' })] })), children: (0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-body", children: [loading && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-status", children: "\u6B63\u5728\u68C0\u67E5\u53EF\u4EE5\u6062\u590D\u7684\u9879\u76EE\u6587\u4EF6\u2026" }), preview?.status === 'pending' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-status", children: "\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\u8FD8\u5728\u4FDD\u5B58\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5\u3002" }), preview?.status === 'missing' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: "\u6CA1\u6709\u4FDD\u5B58\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\u3002\u53EF\u80FD\u662F\u5F53\u65F6\u8FD8\u6CA1\u542F\u7528\u56DE\u9000\u529F\u80FD\u3001\u8BB0\u5F55\u5DF2\u8D85\u8FC7\u4FDD\u7559\u671F\u9650\uFF0C\u6216\u5DF2\u5173\u95ED\u81EA\u52A8\u68C0\u67E5\u70B9\u3002\u4ECD\u53EF\u53EA\u56DE\u6EAF\u6D88\u606F\u3002" }), preview?.status === 'skipped' && (0, jsx_runtime_1.jsxs)("p", { className: "dcl-rewind-status", children: ["\u4E3A\u907F\u514D\u963B\u585E\u6D88\u606F\u53D1\u9001\uFF0C\u672C\u8F6E\u6CA1\u6709\u81EA\u52A8\u4FDD\u5B58\u6587\u4EF6\uFF1A", preview.reason, "\u4ECD\u53EF\u53EA\u56DE\u6EAF\u6D88\u606F\u3002"] }), preview?.status === 'failed' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: explainCheckpointFailure(preview.error) }), preview !== null && ((0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-options", children: [(0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'both', "data-disabled": applying || !hasFileChanges, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'both', disabled: applying || !hasFileChanges, onChange: () => { chooseMode('both'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u6062\u590D\u6587\u4EF6\u5E76\u4ECE\u8FD9\u91CC\u7EE7\u7EED" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u521B\u5EFA\u4E00\u4E2A\u4ECE\u8FD9\u91CC\u5F00\u59CB\u7684\u65B0\u4F1A\u8BDD\uFF08\u5F53\u524D\u5BF9\u8BDD\u4F1A\u4FDD\u7559\uFF09" })] })] }), (0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'code', "data-disabled": applying || !hasFileChanges, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'code', disabled: applying || !hasFileChanges, onChange: () => { chooseMode('code'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u53EA\u6062\u590D\u6587\u4EF6" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u6062\u590D\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\uFF0C\u5F53\u524D\u5BF9\u8BDD\u4FDD\u6301\u4E0D\u53D8\u3002" })] })] }), (0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'messages', "data-disabled": applying, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'messages', disabled: applying, onChange: () => { chooseMode('messages'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u53EA\u56DE\u6EAF\u6D88\u606F\uFF08\u4E0D\u52A8\u6587\u4EF6\uFF09" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u521B\u5EFA\u4E00\u4E2A\u4ECE\u8FD9\u91CC\u5F00\u59CB\u7684\u65B0\u4F1A\u8BDD\uFF0C\u9879\u76EE\u6587\u4EF6\u4FDD\u6301\u5F53\u524D\u72B6\u6001\u3002" })] })] })] })), ready !== null && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [captureNotice !== null && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-warning", children: captureNotice }), (0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-summary", children: [mode === 'messages'
399
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-tail", children: [(0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Tooltip, { label: "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", side: "bottom", children: (0, jsx_runtime_1.jsx)("button", { type: "button", className: "dcl-rewind-trigger", onClick: show, "aria-label": "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", children: (0, jsx_runtime_1.jsx)(RewindIcon, { size: 16 }) }) }), (0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Modal, { open: open, onClose: close, title: "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", closeLabel: "\u5173\u95ED", description: "\u67E5\u770B\u6062\u590D\u7684\u6587\u4EF6\uFF0C\u9009\u62E9\u9002\u5408\u4F60\u7684\u56DE\u9000\u65B9\u5F0F\u3002\u5F53\u524D\u4F1A\u8BDD\u4E0D\u53D7\u5F71\u54CD\u3002", className: "dcl-rewind-dialog", contentClassName: "dcl-rewind-content", footer: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Button, { variant: "outline", onClick: close, disabled: applying, children: "\u53D6\u6D88" }), (0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Button, { variant: "primary", onClick: () => { void applyRestore(); }, disabled: !canApply, children: applying ? '正在恢复…' : completed === null ? actionLabel : '已完成' })] })), children: (0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-body", children: [loading && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-status", children: "\u6B63\u5728\u68C0\u67E5\u53EF\u4EE5\u6062\u590D\u7684\u9879\u76EE\u6587\u4EF6\u2026" }), preview?.status === 'pending' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-status", children: "\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\u8FD8\u5728\u4FDD\u5B58\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5\u3002" }), preview?.status === 'missing' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: "\u6CA1\u6709\u4FDD\u5B58\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\u3002\u53EF\u80FD\u662F\u5F53\u65F6\u8FD8\u6CA1\u542F\u7528\u56DE\u9000\u529F\u80FD\u3001\u8BB0\u5F55\u5DF2\u8D85\u8FC7\u4FDD\u7559\u671F\u9650\uFF0C\u6216\u5DF2\u5173\u95ED\u81EA\u52A8\u68C0\u67E5\u70B9\u3002\u4ECD\u53EF\u53EA\u56DE\u6EAF\u6D88\u606F\u3002" }), preview?.status === 'skipped' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-status", children: explainCheckpointSkip(preview.reason) }), preview?.status === 'failed' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: explainCheckpointFailure(preview.error) }), preview !== null && ((0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-options", children: [(0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'both', "data-disabled": applying || !hasFileChanges, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'both', disabled: applying || !hasFileChanges, onChange: () => { chooseMode('both'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u6062\u590D\u6587\u4EF6\u5E76\u4ECE\u8FD9\u91CC\u7EE7\u7EED" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u521B\u5EFA\u4E00\u4E2A\u4ECE\u8FD9\u91CC\u5F00\u59CB\u7684\u65B0\u4F1A\u8BDD\uFF08\u5F53\u524D\u5BF9\u8BDD\u4F1A\u4FDD\u7559\uFF09" })] })] }), (0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'code', "data-disabled": applying || !hasFileChanges, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'code', disabled: applying || !hasFileChanges, onChange: () => { chooseMode('code'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u53EA\u6062\u590D\u6587\u4EF6" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u6062\u590D\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\uFF0C\u5F53\u524D\u5BF9\u8BDD\u4FDD\u6301\u4E0D\u53D8\u3002" })] })] }), (0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'messages', "data-disabled": applying, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'messages', disabled: applying, onChange: () => { chooseMode('messages'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u53EA\u56DE\u6EAF\u6D88\u606F\uFF08\u4E0D\u52A8\u6587\u4EF6\uFF09" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u521B\u5EFA\u4E00\u4E2A\u4ECE\u8FD9\u91CC\u5F00\u59CB\u7684\u65B0\u4F1A\u8BDD\uFF0C\u9879\u76EE\u6587\u4EF6\u4FDD\u6301\u5F53\u524D\u72B6\u6001\u3002" })] })] })] })), ready !== null && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [captureNotice !== null && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-warning", children: captureNotice }), (0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-summary", children: [mode === 'messages'
399
400
  ? (0, jsx_runtime_1.jsx)("strong", { children: "\u9879\u76EE\u6587\u4EF6\u4FDD\u6301\u4E0D\u53D8" })
400
401
  : (0, jsx_runtime_1.jsxs)("strong", { children: ["\u5C06\u6062\u590D ", String(ready.totalChanges), " \u4E2A\u6587\u4EF6"] }), (0, jsx_runtime_1.jsx)("span", { children: mode === 'both' ? '恢复后在新对话里继续' : mode === 'code' ? '当前对话保持不变' : '仅创建从这里继续的新对话' })] }), sharedBlocked && ((0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: "\u8FD9\u4E2A\u9879\u76EE\u76EE\u5F55\u8FD8\u6709\u522B\u7684\u5BF9\u8BDD\u6B63\u5728\u8FD0\u884C\u3002\u6062\u590D\u6587\u4EF6\u4F1A\u5F71\u54CD\u5230\u5B83\u4EEC\uFF0C\u56E0\u6B64\u672C\u6B21\u64CD\u4F5C\u5DF2\u88AB\u963B\u6B62\u3002\u8BF7\u7B49\u90A3\u4E9B\u5BF9\u8BDD\u7ED3\u675F\u6216\u505C\u6B62\u540E\uFF0C\u518D\u91CD\u65B0\u68C0\u67E5\u3002" })), ready.headChanged && !ready.operationChanged && ((0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-warning", children: branchChanged
401
402
  ? '当前所在的 Git 分支和发送这条消息时不同。恢复不会切换分支,只会把当时的文件内容恢复到当前分支。'
@@ -877,6 +878,28 @@ function describeCaptureNotice(ready) {
877
878
  }
878
879
  return null;
879
880
  }
881
+ /**
882
+ * Explain one recorded checkpoint skip in user terms.
883
+ *
884
+ * A skip is not a failure of the message: the turn ran normally and only the
885
+ * file snapshot is missing, so the text names the actual cause and the two
886
+ * levers that fix it.
887
+ * @param reason - reason recorded by the Host, usually a `[CODE] detail` line.
888
+ * @returns one user-facing sentence.
889
+ */
890
+ function explainCheckpointSkip(reason) {
891
+ const code = /^\[([A-Z_]+)\]/.exec(reason)?.[1];
892
+ if (code === 'TURN_CHECKPOINT_TIMEOUT') {
893
+ return '这个项目目录太大,在检查点时间上限内没保存完文件快照,所以本轮没有回退点(消息本身没有受影响)。可以在插件设置里调大「检查点时间上限」,或在目录根用 .dsh-rewindignore 排除大目录(例如 node_modules、构建产物、数据集)。仍可只回溯消息。';
894
+ }
895
+ if (code === 'TURN_CHECKPOINT_DISABLED') {
896
+ return '自动文件检查点已在设置里关闭,本轮没有回退点。仍可只回溯消息。';
897
+ }
898
+ if (code === 'TURN_CHECKPOINT_NEW_CONTENT_LIMIT') {
899
+ return '这一轮新增的内容超过检查点预算,没有保存文件快照。仍可只回溯消息。';
900
+ }
901
+ return `本轮没有保存文件检查点:${reason}仍可只回溯消息。`;
902
+ }
880
903
  /**
881
904
  * Explain one recorded checkpoint failure in user terms.
882
905
  *
package/lib/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client/src/client/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client/src/client/index.tsx"],"names":[],"mappings":"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"}
package/lib/engine.js CHANGED
@@ -7,6 +7,7 @@ import { ChangeLedgerError, errorMessage } from './errors.js';
7
7
  import { ensureGitWorktreeIdentity, resolveGitWorktreeRoot } from './git.js';
8
8
  import { captureGitTurnCheckpoint, deleteGitCheckpoint, deleteGitCheckpointRef, publishGitCheckpoint, readGitBlob, verifyGitCheckpoint, } from './git-checkpoint.js';
9
9
  import { assertSafeParents, ensureSafeParents, expandHome, isNodeError, isWithin, pruneEmptyParents, removeRestoreTarget, replaceRegularFile, replaceSymbolicLink, resolveWorkspacePath, validateRelativePath, } from './path-utils.js';
10
+ import { readPathCache, writePathCache } from './path-cache.js';
10
11
  import { captureSnapshotEntry, captureStableTree, diffTrees, entriesEqual } from './snapshot.js';
11
12
  import { LedgerStore } from './store.js';
12
13
  import { discoverWorkspace, discoverWorkspaceIdentity, sameWorkspaceFence } from './workspace.js';
@@ -15,12 +16,12 @@ const DEFAULTS = {
15
16
  maxRestorePoints: 50,
16
17
  maxTurnCheckpointsPerSession: 30,
17
18
  maxFiles: 20_000,
18
- maxFileBytes: 16 * 1024 * 1024,
19
+ maxFileBytes: 64 * 1024 * 1024,
19
20
  maxSnapshotBytes: 512 * 1024 * 1024,
20
21
  planTtlMs: 15 * 60 * 1_000,
21
22
  staleLockMs: 30_000,
22
23
  turnCheckpointMode: 'legacy',
23
- turnCheckpointTimeoutMs: 5_000,
24
+ turnCheckpointTimeoutMs: 60_000,
24
25
  turnCheckpointMaxNewBytes: 32 * 1024 * 1024,
25
26
  turnCheckpointTrust: 'fast',
26
27
  };
@@ -66,6 +67,21 @@ export class ChangeLedgerEngine {
66
67
  * A Git worktree also binds the shared per-worktree lock derived from its Git
67
68
  * identity; an ordinary directory owns only the durable directory lock.
68
69
  */
70
+ /** Per-workspace path identity caches, loaded once per process generation. */
71
+ pathCaches = new Map();
72
+ /**
73
+ * Load (once) the identity cache that lets a capture reuse unchanged files.
74
+ * @param workspaceDir - durable directory of one workspace.
75
+ * @returns the mutable cache shared by every capture of this workspace.
76
+ */
77
+ async pathCacheFor(workspaceDir) {
78
+ const loaded = this.pathCaches.get(workspaceDir);
79
+ if (loaded !== undefined)
80
+ return loaded;
81
+ const cache = await readPathCache(workspaceDir);
82
+ this.pathCaches.set(workspaceDir, cache);
83
+ return cache;
84
+ }
69
85
  async acquireWorkspace(workspace, signal) {
70
86
  if (workspace.type === 'directory') {
71
87
  return this.store.acquire(workspace.root, undefined, undefined, signal);
@@ -401,6 +417,8 @@ export class ChangeLedgerEngine {
401
417
  const current = await captureStableTree({
402
418
  cwd: source.state.root,
403
419
  config: this.config,
420
+ store: this.store,
421
+ pathCache: await this.pathCacheFor(this.store.workspaceDirectory(source.state.root)),
404
422
  ...(manifest.version === 2 ? { gitObjectFormat: manifest.git.objectFormat } : {}),
405
423
  ...(options.signal === undefined ? {} : { signal: options.signal }),
406
424
  });
@@ -439,6 +457,8 @@ export class ChangeLedgerEngine {
439
457
  const current = await captureStableTree({
440
458
  cwd: source.state.root,
441
459
  config: this.config,
460
+ store: this.store,
461
+ pathCache: await this.pathCacheFor(this.store.workspaceDirectory(source.state.root)),
442
462
  ...(manifest.version === 2 ? { gitObjectFormat: manifest.git.objectFormat } : {}),
443
463
  ...(options.signal === undefined ? {} : { signal: options.signal }),
444
464
  });
@@ -799,12 +819,16 @@ export class ChangeLedgerEngine {
799
819
  await this.store.writeSnapshotCleanup(options.cwd);
800
820
  }
801
821
  try {
822
+ const workspaceDir = this.store.workspaceDirectory(options.cwd);
823
+ const pathCache = await this.pathCacheFor(workspaceDir);
802
824
  const tree = await captureStableTree({
803
825
  cwd: options.cwd,
804
826
  config: this.config,
805
827
  store: this.store,
828
+ pathCache,
806
829
  ...(options.signal === undefined ? {} : { signal: options.signal }),
807
830
  });
831
+ await writePathCache(workspaceDir, pathCache).catch(() => undefined);
808
832
  const manifest = {
809
833
  version: LEDGER_FORMAT_VERSION,
810
834
  id: makeId('rp'),
@@ -0,0 +1,137 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { isNodeError, pathExists, writeJsonAtomic } from './path-utils.js';
4
+ const CACHE_FILE = 'path-cache.json';
5
+ const CACHE_VERSION = 1;
6
+ const MAX_ENTRIES = 200_000;
7
+ const MAX_FILE_BYTES = 64 * 1024 * 1024;
8
+ /** Stable identity string for one observed filesystem object. */
9
+ export function pathCacheKey(info) {
10
+ return `${info.dev}:${info.ino}:${info.size}:${info.mtimeNs}:${info.ctimeNs}:${info.mode.toString()}`;
11
+ }
12
+ /** Remember what one unknown does not already describe. */
13
+ export function toPathCacheEntry(info, entry) {
14
+ return {
15
+ dev: info.dev.toString(),
16
+ ino: info.ino.toString(),
17
+ size: info.size.toString(),
18
+ mtimeNs: info.mtimeNs.toString(),
19
+ ctimeNs: info.ctimeNs.toString(),
20
+ mode: Number(info.mode & 511n),
21
+ entry,
22
+ };
23
+ }
24
+ /** Whether a cached record still describes the object the filesystem reports now. */
25
+ export function matchesPathCache(record, info) {
26
+ return record.dev === info.dev.toString()
27
+ && record.ino === info.ino.toString()
28
+ && record.size === info.size.toString()
29
+ && record.mtimeNs === info.mtimeNs.toString()
30
+ && record.ctimeNs === info.ctimeNs.toString()
31
+ && record.mode === Number(info.mode & 511n);
32
+ }
33
+ /**
34
+ * Read the per-workspace path cache.
35
+ *
36
+ * The cache is a pure optimization: any malformed or unreadable record is
37
+ * discarded instead of trusted, and a discarded cache only costs a cold capture.
38
+ * @param workspaceDir - durable directory of one workspace.
39
+ * @returns the cached records, newest read wins.
40
+ */
41
+ export async function readPathCache(workspaceDir) {
42
+ const cache = new Map();
43
+ let raw;
44
+ try {
45
+ raw = await readFile(join(workspaceDir, CACHE_FILE), 'utf8');
46
+ }
47
+ catch (error) {
48
+ if (isNodeError(error, 'ENOENT'))
49
+ return cache;
50
+ return cache;
51
+ }
52
+ try {
53
+ const parsed = JSON.parse(raw);
54
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
55
+ return cache;
56
+ const record = parsed;
57
+ if (record.version !== CACHE_VERSION || record.paths === null || typeof record.paths !== 'object')
58
+ return cache;
59
+ for (const [path, value] of Object.entries(record.paths)) {
60
+ const entry = parseCacheEntry(value);
61
+ if (entry === undefined)
62
+ continue;
63
+ cache.set(path, entry);
64
+ if (cache.size >= MAX_ENTRIES)
65
+ break;
66
+ }
67
+ }
68
+ catch {
69
+ return new Map();
70
+ }
71
+ return cache;
72
+ }
73
+ /** Persist the path cache atomically, replacing any previous generation. */
74
+ export async function writePathCache(workspaceDir, cache) {
75
+ const paths = Object.create(null);
76
+ let count = 0;
77
+ for (const [path, entry] of cache) {
78
+ if (count >= MAX_ENTRIES)
79
+ break;
80
+ paths[path] = serializeCacheEntry(entry);
81
+ count += 1;
82
+ }
83
+ await writeJsonAtomic(join(workspaceDir, CACHE_FILE), { version: CACHE_VERSION, paths });
84
+ }
85
+ /** Drop the cache when its file is unreadable or was never written. */
86
+ export async function pathCacheExists(workspaceDir) {
87
+ return pathExists(join(workspaceDir, CACHE_FILE));
88
+ }
89
+ function serializeCacheEntry(record) {
90
+ const entry = record.entry;
91
+ return {
92
+ dev: record.dev, ino: record.ino, size: record.size,
93
+ mtimeNs: record.mtimeNs, ctimeNs: record.ctimeNs, mode: record.mode,
94
+ kind: entry.kind,
95
+ ...(entry.kind === 'file' ? { blob: entry.blob, provider: entry.provider } : { target: entry.target }),
96
+ };
97
+ }
98
+ function parseCacheEntry(value) {
99
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
100
+ return undefined;
101
+ const record = value;
102
+ const text = (key) => (typeof record[key] === 'string' ? record[key] : undefined);
103
+ const dev = text('dev');
104
+ const ino = text('ino');
105
+ const size = text('size');
106
+ const mtimeNs = text('mtimeNs');
107
+ const ctimeNs = text('ctimeNs');
108
+ if (dev === undefined || ino === undefined || size === undefined || mtimeNs === undefined || ctimeNs === undefined)
109
+ return undefined;
110
+ if (typeof record.mode !== 'number' || !Number.isInteger(record.mode))
111
+ return undefined;
112
+ let entry;
113
+ if (record.kind === 'file') {
114
+ const blob = text('blob');
115
+ if (blob === undefined || !/^[0-9a-f]{64}$/.test(blob))
116
+ return undefined;
117
+ const provider = record.provider;
118
+ if (provider !== undefined && provider !== 'git')
119
+ return undefined;
120
+ entry = {
121
+ kind: 'file', blob, size: Number(size), mode: record.mode,
122
+ ...(provider === undefined ? {} : { provider }),
123
+ };
124
+ }
125
+ else if (record.kind === 'symlink') {
126
+ const target = text('target');
127
+ if (target === undefined || target.includes('\0'))
128
+ return undefined;
129
+ entry = { kind: 'symlink', target, mode: record.mode };
130
+ }
131
+ else {
132
+ return undefined;
133
+ }
134
+ if (BigInt(size) > BigInt(MAX_FILE_BYTES))
135
+ return undefined;
136
+ return { dev, ino, size, mtimeNs, ctimeNs, mode: record.mode, entry };
137
+ }
package/lib/snapshot.js CHANGED
@@ -3,6 +3,7 @@ import { constants } from 'node:fs';
3
3
  import { lstat, open, readlink } from 'node:fs/promises';
4
4
  import { ChangeLedgerError } from './errors.js';
5
5
  import { isNodeError, resolveWorkspacePath } from './path-utils.js';
6
+ import { matchesPathCache, toPathCacheEntry } from './path-cache.js';
6
7
  import { discoverWorkspace, sameWorkspaceFence } from './workspace.js';
7
8
  const COMPARISON_READ_BUDGET_BYTES = 128 * 1024 * 1024;
8
9
  const MAX_RECORDED_SKIPS = 50;
@@ -42,6 +43,31 @@ export async function captureTree(options) {
42
43
  let budgetSpent = false;
43
44
  const capturePath = async (path) => {
44
45
  throwIfAborted(options.signal);
46
+ // Reuse is only sound when the identity is unchanged and the stored blob is
47
+ // still present; a garbage-collected blob falls back to a fresh read.
48
+ if (options.pathCache !== undefined && options.store !== undefined && gitCapture === undefined) {
49
+ const cached = options.pathCache.get(path);
50
+ if (cached !== undefined) {
51
+ let info;
52
+ try {
53
+ info = await lstat(resolveWorkspacePath(source.state.root, path), { bigint: true });
54
+ }
55
+ catch (error) {
56
+ if (!isNodeError(error, 'ENOENT'))
57
+ throw error;
58
+ }
59
+ if (info !== undefined && matchesPathCache(cached, info)) {
60
+ const reusable = cached.entry.kind === 'symlink'
61
+ || await options.store.hasBlob(source.state.root, cached.entry.blob);
62
+ if (reusable) {
63
+ entries[path] = cached.entry;
64
+ if (cached.entry.kind === 'file')
65
+ totalBytes += cached.entry.size;
66
+ return;
67
+ }
68
+ }
69
+ }
70
+ }
45
71
  if (budgetSpent) {
46
72
  // The aggregate budget is gone, but the path is still recorded so a
47
73
  // restore can prove this point never observed it.
@@ -66,7 +92,7 @@ export async function captureTree(options) {
66
92
  if (entry === undefined)
67
93
  return;
68
94
  if (entry.kind === 'file') {
69
- if (totalBytes + entry.content.length > options.config.maxSnapshotBytes) {
95
+ if (budgetSpent || totalBytes + entry.content.length > options.config.maxSnapshotBytes) {
70
96
  budgetSpent = true;
71
97
  truncated ??= 'snapshot-limit';
72
98
  recordSkip(path, 'snapshot-limit');
@@ -85,12 +111,14 @@ export async function captureTree(options) {
85
111
  entries[path] = entry.snapshot;
86
112
  if (gitCapture !== undefined)
87
113
  gitCapture.entries[path] = entry.snapshot;
114
+ if (options.pathCache !== undefined && gitCapture === undefined) {
115
+ options.pathCache.set(path, toPathCacheEntry(entry.info, entry.snapshot));
116
+ }
88
117
  };
89
- if (gitCapture === undefined) {
90
- for (const path of paths)
91
- await capturePath(path);
92
- }
93
- else {
118
+ {
119
+ // Reading one file at a time makes a real project directory take minutes, so
120
+ // every capture runs through a bounded worker pool. Per-file stability stats
121
+ // and the synchronous budget check keep the result identical to a serial run.
94
122
  let next = 0;
95
123
  let failed = false;
96
124
  let firstError = new ChangeLedgerError('WORKSPACE_CHANGED_DURING_CAPTURE', 'parallel comparison capture failed');
@@ -140,6 +168,8 @@ export async function captureStableTree(options) {
140
168
  const first = await captureTree({
141
169
  cwd: options.cwd,
142
170
  config: options.config,
171
+ ...(options.store === undefined ? {} : { store: options.store }),
172
+ ...(options.pathCache === undefined ? {} : { pathCache: options.pathCache }),
143
173
  ...(options.gitObjectFormat === undefined ? {} : { gitObjectFormat: options.gitObjectFormat }),
144
174
  ...(options.signal === undefined ? {} : { signal: options.signal }),
145
175
  });
@@ -264,7 +294,7 @@ async function captureEntry(root, path, maxFileBytes, signal) {
264
294
  const after = await lstat(target, { bigint: true });
265
295
  if (!sameStat(before, after))
266
296
  continue;
267
- return { kind: 'symlink', snapshot: { kind: 'symlink', target: linkTarget, mode } };
297
+ return { kind: 'symlink', snapshot: { kind: 'symlink', target: linkTarget, mode }, info: after };
268
298
  }
269
299
  if (!before.isFile()) {
270
300
  throw new ChangeLedgerError('UNSUPPORTED_FILE_TYPE', `eligible path is not a regular file or symlink: ${JSON.stringify(path)}`);
@@ -300,6 +330,7 @@ async function captureEntry(root, path, maxFileBytes, signal) {
300
330
  kind: 'file',
301
331
  snapshot: { kind: 'file', blob, size: content.length, mode },
302
332
  content,
333
+ info: { ...before, size: BigInt(content.length) },
303
334
  };
304
335
  }
305
336
  throw new ChangeLedgerError('WORKSPACE_CHANGED_DURING_CAPTURE', `path changed repeatedly while being captured: ${JSON.stringify(path)}`);
package/lib/store.js CHANGED
@@ -173,6 +173,15 @@ export class LedgerStore {
173
173
  throw new ChangeLedgerError('WORKSPACE_LOCKED', `could not acquire change-ledger lock for ${JSON.stringify(workspace)}`);
174
174
  }
175
175
  /** Persist a blob if it is not already present, and verify existing content. */
176
+ /** Whether one content-addressed blob is already stored for a workspace. */
177
+ async hasBlob(workspace, hash) {
178
+ validateBlobHash(hash);
179
+ return pathExists(this.blobPath(workspace, hash));
180
+ }
181
+ /** Durable directory holding one workspace's manifests, blobs, and caches. */
182
+ workspaceDirectory(workspace) {
183
+ return this.workspaceDir(workspace);
184
+ }
176
185
  async putBlob(workspace, hash, content) {
177
186
  validateBlobHash(hash);
178
187
  const contentHash = createHash('sha256').update(content).digest('hex');
@@ -180,6 +189,11 @@ export class LedgerStore {
180
189
  throw new ChangeLedgerError('BLOB_HASH_MISMATCH', `refusing to store content whose SHA-256 does not match ${hash}`);
181
190
  }
182
191
  const path = this.blobPath(workspace, hash);
192
+ // Content addressing makes an existing blob identical by construction, and
193
+ // re-writing it costs one fsync per file: a full-tree capture of a large
194
+ // workspace otherwise spends minutes proving it already stored the content.
195
+ if (await pathExists(path))
196
+ return;
183
197
  const directory = join(this.workspaceDir(workspace), 'blobs', hash.slice(0, 2));
184
198
  await mkdir(directory, { recursive: true, mode: 0o700 });
185
199
  const temporary = join(directory, `.${randomUUID()}.tmp`);
@@ -234,6 +234,16 @@ export declare function fileRecoveryLabel(kind: ChangeKind): string;
234
234
  * @returns the warning text, or null when the checkpoint is complete.
235
235
  */
236
236
  export declare function describeCaptureNotice(ready: ReadyPreview | null): string | null;
237
+ /**
238
+ * Explain one recorded checkpoint skip in user terms.
239
+ *
240
+ * A skip is not a failure of the message: the turn ran normally and only the
241
+ * file snapshot is missing, so the text names the actual cause and the two
242
+ * levers that fix it.
243
+ * @param reason - reason recorded by the Host, usually a `[CODE] detail` line.
244
+ * @returns one user-facing sentence.
245
+ */
246
+ export declare function explainCheckpointSkip(reason: string): string;
237
247
  /**
238
248
  * Explain one recorded checkpoint failure in user terms.
239
249
  *
@@ -25,6 +25,14 @@ export declare class ChangeLedgerEngine {
25
25
  * A Git worktree also binds the shared per-worktree lock derived from its Git
26
26
  * identity; an ordinary directory owns only the durable directory lock.
27
27
  */
28
+ /** Per-workspace path identity caches, loaded once per process generation. */
29
+ private readonly pathCaches;
30
+ /**
31
+ * Load (once) the identity cache that lets a capture reuse unchanged files.
32
+ * @param workspaceDir - durable directory of one workspace.
33
+ * @returns the mutable cache shared by every capture of this workspace.
34
+ */
35
+ private pathCacheFor;
28
36
  private acquireWorkspace;
29
37
  private reconcileGitCheckpointJournals;
30
38
  private publishGitManifest;
@@ -0,0 +1,36 @@
1
+ import type { BigIntStats } from 'node:fs';
2
+ import type { SnapshotEntry } from './types.js';
3
+ /**
4
+ * One observed path, keyed by the filesystem identity that proves it is unchanged.
5
+ *
6
+ * `ctimeNs` changes on every write even when size and mtime are restored, so a
7
+ * matching key means the stored content is still exactly what the path holds.
8
+ */
9
+ export interface PathCacheEntry {
10
+ readonly dev: string;
11
+ readonly ino: string;
12
+ readonly size: string;
13
+ readonly mtimeNs: string;
14
+ readonly ctimeNs: string;
15
+ readonly mode: number;
16
+ readonly entry: SnapshotEntry;
17
+ }
18
+ /** Stable identity string for one observed filesystem object. */
19
+ export declare function pathCacheKey(info: BigIntStats): string;
20
+ /** Remember what one unknown does not already describe. */
21
+ export declare function toPathCacheEntry(info: BigIntStats, entry: SnapshotEntry): PathCacheEntry;
22
+ /** Whether a cached record still describes the object the filesystem reports now. */
23
+ export declare function matchesPathCache(record: PathCacheEntry, info: BigIntStats): boolean;
24
+ /**
25
+ * Read the per-workspace path cache.
26
+ *
27
+ * The cache is a pure optimization: any malformed or unreadable record is
28
+ * discarded instead of trusted, and a discarded cache only costs a cold capture.
29
+ * @param workspaceDir - durable directory of one workspace.
30
+ * @returns the cached records, newest read wins.
31
+ */
32
+ export declare function readPathCache(workspaceDir: string): Promise<Map<string, PathCacheEntry>>;
33
+ /** Persist the path cache atomically, replacing any previous generation. */
34
+ export declare function writePathCache(workspaceDir: string, cache: ReadonlyMap<string, PathCacheEntry>): Promise<void>;
35
+ /** Drop the cache when its file is unreadable or was never written. */
36
+ export declare function pathCacheExists(workspaceDir: string): Promise<boolean>;
@@ -1,3 +1,4 @@
1
+ import { type PathCacheEntry } from './path-cache.js';
1
2
  import type { LedgerStore } from './store.js';
2
3
  import { type WorkspaceSnapshotSource } from './workspace.js';
3
4
  import type { CaptureSkip, CaptureTruncation, ResolvedChangeLedgerConfig, SnapshotEntry, WorkspaceChange } from './types.js';
@@ -23,6 +24,8 @@ export declare function captureTree(options: {
23
24
  readonly config: ResolvedChangeLedgerConfig;
24
25
  readonly store?: LedgerStore;
25
26
  readonly gitObjectFormat?: 'sha1' | 'sha256';
27
+ /** Per-path identity cache: an unchanged path is reused instead of re-read. */
28
+ readonly pathCache?: Map<string, PathCacheEntry>;
26
29
  readonly signal?: AbortSignal;
27
30
  }): Promise<CapturedTree>;
28
31
  /**
@@ -35,6 +38,8 @@ export declare function captureStableTree(options: {
35
38
  readonly config: ResolvedChangeLedgerConfig;
36
39
  readonly store?: LedgerStore;
37
40
  readonly gitObjectFormat?: 'sha1' | 'sha256';
41
+ /** Per-path identity cache: an unchanged path is reused instead of re-read. */
42
+ readonly pathCache?: Map<string, PathCacheEntry>;
38
43
  readonly signal?: AbortSignal;
39
44
  }): Promise<CapturedTree>;
40
45
  /** Compute stable path-level differences between two captured trees. */
@@ -39,6 +39,10 @@ export declare class LedgerStore {
39
39
  acquireWorkspaceDir(workspaceDir: string, workspace: string, signal?: AbortSignal): Promise<() => Promise<void>>;
40
40
  private acquireOne;
41
41
  /** Persist a blob if it is not already present, and verify existing content. */
42
+ /** Whether one content-addressed blob is already stored for a workspace. */
43
+ hasBlob(workspace: string, hash: string): Promise<boolean>;
44
+ /** Durable directory holding one workspace's manifests, blobs, and caches. */
45
+ workspaceDirectory(workspace: string): string;
42
46
  putBlob(workspace: string, hash: string, content: Buffer): Promise<void>;
43
47
  /** Read and verify one content-addressed blob. */
44
48
  readBlob(workspace: string, hash: string): Promise<Buffer>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anionex/dsh-turn-rewind",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "description": "Turn-level conversation and workspace rewind for DeepSeek Harness, powered by a persistent Change Ledger",
5
5
  "repository": {
6
6
  "type": "git",
@@ -605,7 +605,7 @@ export function RewindMessageAction({ matched, sessionId, openRestoredSession }:
605
605
  {loading && <p className="dcl-rewind-status">正在检查可以恢复的项目文件…</p>}
606
606
  {preview?.status === 'pending' && <p className="dcl-rewind-status">这条消息发送前的文件还在保存,请稍后再试。</p>}
607
607
  {preview?.status === 'missing' && <p className="dcl-rewind-error">没有保存这条消息发送前的文件。可能是当时还没启用回退功能、记录已超过保留期限,或已关闭自动检查点。仍可只回溯消息。</p>}
608
- {preview?.status === 'skipped' && <p className="dcl-rewind-status">为避免阻塞消息发送,本轮没有自动保存文件:{preview.reason}仍可只回溯消息。</p>}
608
+ {preview?.status === 'skipped' && <p className="dcl-rewind-status">{explainCheckpointSkip(preview.reason)}</p>}
609
609
  {preview?.status === 'failed' && <p className="dcl-rewind-error">{explainCheckpointFailure(preview.error)}</p>}
610
610
  {preview !== null && (
611
611
  <div className="dcl-rewind-options">
@@ -1309,6 +1309,29 @@ export function describeCaptureNotice(ready: ReadyPreview | null): string | null
1309
1309
  return null
1310
1310
  }
1311
1311
 
1312
+ /**
1313
+ * Explain one recorded checkpoint skip in user terms.
1314
+ *
1315
+ * A skip is not a failure of the message: the turn ran normally and only the
1316
+ * file snapshot is missing, so the text names the actual cause and the two
1317
+ * levers that fix it.
1318
+ * @param reason - reason recorded by the Host, usually a `[CODE] detail` line.
1319
+ * @returns one user-facing sentence.
1320
+ */
1321
+ export function explainCheckpointSkip(reason: string): string {
1322
+ const code = /^\[([A-Z_]+)\]/.exec(reason)?.[1]
1323
+ if (code === 'TURN_CHECKPOINT_TIMEOUT') {
1324
+ return '这个项目目录太大,在检查点时间上限内没保存完文件快照,所以本轮没有回退点(消息本身没有受影响)。可以在插件设置里调大「检查点时间上限」,或在目录根用 .dsh-rewindignore 排除大目录(例如 node_modules、构建产物、数据集)。仍可只回溯消息。'
1325
+ }
1326
+ if (code === 'TURN_CHECKPOINT_DISABLED') {
1327
+ return '自动文件检查点已在设置里关闭,本轮没有回退点。仍可只回溯消息。'
1328
+ }
1329
+ if (code === 'TURN_CHECKPOINT_NEW_CONTENT_LIMIT') {
1330
+ return '这一轮新增的内容超过检查点预算,没有保存文件快照。仍可只回溯消息。'
1331
+ }
1332
+ return `本轮没有保存文件检查点:${reason}仍可只回溯消息。`
1333
+ }
1334
+
1312
1335
  /**
1313
1336
  * Explain one recorded checkpoint failure in user terms.
1314
1337
  *
package/src/engine.ts CHANGED
@@ -26,6 +26,7 @@ import {
26
26
  resolveWorkspacePath,
27
27
  validateRelativePath,
28
28
  } from './path-utils.js'
29
+ import { readPathCache, writePathCache, type PathCacheEntry } from './path-cache.js'
29
30
  import { captureSnapshotEntry, captureStableTree, diffTrees, entriesEqual } from './snapshot.js'
30
31
  import { LedgerStore, type GitCheckpointJournal } from './store.js'
31
32
  import { discoverWorkspace, discoverWorkspaceIdentity, sameWorkspaceFence } from './workspace.js'
@@ -53,12 +54,12 @@ const DEFAULTS = {
53
54
  maxRestorePoints: 50,
54
55
  maxTurnCheckpointsPerSession: 30,
55
56
  maxFiles: 20_000,
56
- maxFileBytes: 16 * 1024 * 1024,
57
+ maxFileBytes: 64 * 1024 * 1024,
57
58
  maxSnapshotBytes: 512 * 1024 * 1024,
58
59
  planTtlMs: 15 * 60 * 1_000,
59
60
  staleLockMs: 30_000,
60
61
  turnCheckpointMode: 'legacy',
61
- turnCheckpointTimeoutMs: 5_000,
62
+ turnCheckpointTimeoutMs: 60_000,
62
63
  turnCheckpointMaxNewBytes: 32 * 1024 * 1024,
63
64
  turnCheckpointTrust: 'fast',
64
65
  } as const
@@ -111,6 +112,22 @@ export class ChangeLedgerEngine {
111
112
  * A Git worktree also binds the shared per-worktree lock derived from its Git
112
113
  * identity; an ordinary directory owns only the durable directory lock.
113
114
  */
115
+ /** Per-workspace path identity caches, loaded once per process generation. */
116
+ private readonly pathCaches = new Map<string, Map<string, PathCacheEntry>>()
117
+
118
+ /**
119
+ * Load (once) the identity cache that lets a capture reuse unchanged files.
120
+ * @param workspaceDir - durable directory of one workspace.
121
+ * @returns the mutable cache shared by every capture of this workspace.
122
+ */
123
+ private async pathCacheFor(workspaceDir: string): Promise<Map<string, PathCacheEntry>> {
124
+ const loaded = this.pathCaches.get(workspaceDir)
125
+ if (loaded !== undefined) return loaded
126
+ const cache = await readPathCache(workspaceDir)
127
+ this.pathCaches.set(workspaceDir, cache)
128
+ return cache
129
+ }
130
+
114
131
  private async acquireWorkspace(
115
132
  workspace: Pick<WorkspaceState, 'type' | 'root'>,
116
133
  signal?: AbortSignal,
@@ -496,6 +513,8 @@ export class ChangeLedgerEngine {
496
513
  const current = await captureStableTree({
497
514
  cwd: source.state.root,
498
515
  config: this.config,
516
+ store: this.store,
517
+ pathCache: await this.pathCacheFor(this.store.workspaceDirectory(source.state.root)),
499
518
  ...(manifest.version === 2 ? { gitObjectFormat: manifest.git.objectFormat } : {}),
500
519
  ...(options.signal === undefined ? {} : { signal: options.signal }),
501
520
  })
@@ -541,6 +560,8 @@ export class ChangeLedgerEngine {
541
560
  const current = await captureStableTree({
542
561
  cwd: source.state.root,
543
562
  config: this.config,
563
+ store: this.store,
564
+ pathCache: await this.pathCacheFor(this.store.workspaceDirectory(source.state.root)),
544
565
  ...(manifest.version === 2 ? { gitObjectFormat: manifest.git.objectFormat } : {}),
545
566
  ...(options.signal === undefined ? {} : { signal: options.signal }),
546
567
  })
@@ -948,12 +969,16 @@ export class ChangeLedgerEngine {
948
969
  await this.store.writeSnapshotCleanup(options.cwd)
949
970
  }
950
971
  try {
972
+ const workspaceDir = this.store.workspaceDirectory(options.cwd)
973
+ const pathCache = await this.pathCacheFor(workspaceDir)
951
974
  const tree = await captureStableTree({
952
975
  cwd: options.cwd,
953
976
  config: this.config,
954
977
  store: this.store,
978
+ pathCache,
955
979
  ...(options.signal === undefined ? {} : { signal: options.signal }),
956
980
  })
981
+ await writePathCache(workspaceDir, pathCache).catch(() => undefined)
957
982
  const manifest: RestorePointManifest = {
958
983
  version: LEDGER_FORMAT_VERSION,
959
984
  id: makeId('rp'),
@@ -0,0 +1,144 @@
1
+ import { readFile } from 'node:fs/promises'
2
+ import { join } from 'node:path'
3
+ import type { BigIntStats } from 'node:fs'
4
+ import { isNodeError, pathExists, writeJsonAtomic } from './path-utils.js'
5
+ import type { SnapshotEntry } from './types.js'
6
+
7
+ const CACHE_FILE = 'path-cache.json'
8
+ const CACHE_VERSION = 1
9
+ const MAX_ENTRIES = 200_000
10
+ const MAX_FILE_BYTES = 64 * 1024 * 1024
11
+
12
+ /**
13
+ * One observed path, keyed by the filesystem identity that proves it is unchanged.
14
+ *
15
+ * `ctimeNs` changes on every write even when size and mtime are restored, so a
16
+ * matching key means the stored content is still exactly what the path holds.
17
+ */
18
+ export interface PathCacheEntry {
19
+ readonly dev: string
20
+ readonly ino: string
21
+ readonly size: string
22
+ readonly mtimeNs: string
23
+ readonly ctimeNs: string
24
+ readonly mode: number
25
+ readonly entry: SnapshotEntry
26
+ }
27
+
28
+ /** Stable identity string for one observed filesystem object. */
29
+ export function pathCacheKey(info: BigIntStats): string {
30
+ return `${info.dev}:${info.ino}:${info.size}:${info.mtimeNs}:${info.ctimeNs}:${info.mode.toString()}`
31
+ }
32
+
33
+ /** Remember what one unknown does not already describe. */
34
+ export function toPathCacheEntry(info: BigIntStats, entry: SnapshotEntry): PathCacheEntry {
35
+ return {
36
+ dev: info.dev.toString(),
37
+ ino: info.ino.toString(),
38
+ size: info.size.toString(),
39
+ mtimeNs: info.mtimeNs.toString(),
40
+ ctimeNs: info.ctimeNs.toString(),
41
+ mode: Number(info.mode & 0o777n),
42
+ entry,
43
+ }
44
+ }
45
+
46
+ /** Whether a cached record still describes the object the filesystem reports now. */
47
+ export function matchesPathCache(record: PathCacheEntry, info: BigIntStats): boolean {
48
+ return record.dev === info.dev.toString()
49
+ && record.ino === info.ino.toString()
50
+ && record.size === info.size.toString()
51
+ && record.mtimeNs === info.mtimeNs.toString()
52
+ && record.ctimeNs === info.ctimeNs.toString()
53
+ && record.mode === Number(info.mode & 0o777n)
54
+ }
55
+
56
+ /**
57
+ * Read the per-workspace path cache.
58
+ *
59
+ * The cache is a pure optimization: any malformed or unreadable record is
60
+ * discarded instead of trusted, and a discarded cache only costs a cold capture.
61
+ * @param workspaceDir - durable directory of one workspace.
62
+ * @returns the cached records, newest read wins.
63
+ */
64
+ export async function readPathCache(workspaceDir: string): Promise<Map<string, PathCacheEntry>> {
65
+ const cache = new Map<string, PathCacheEntry>()
66
+ let raw: string
67
+ try {
68
+ raw = await readFile(join(workspaceDir, CACHE_FILE), 'utf8')
69
+ } catch (error) {
70
+ if (isNodeError(error, 'ENOENT')) return cache
71
+ return cache
72
+ }
73
+ try {
74
+ const parsed = JSON.parse(raw) as unknown
75
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) return cache
76
+ const record = parsed as { version?: unknown; paths?: unknown }
77
+ if (record.version !== CACHE_VERSION || record.paths === null || typeof record.paths !== 'object') return cache
78
+ for (const [path, value] of Object.entries(record.paths as Record<string, unknown>)) {
79
+ const entry = parseCacheEntry(value)
80
+ if (entry === undefined) continue
81
+ cache.set(path, entry)
82
+ if (cache.size >= MAX_ENTRIES) break
83
+ }
84
+ } catch {
85
+ return new Map()
86
+ }
87
+ return cache
88
+ }
89
+
90
+ /** Persist the path cache atomically, replacing any previous generation. */
91
+ export async function writePathCache(workspaceDir: string, cache: ReadonlyMap<string, PathCacheEntry>): Promise<void> {
92
+ const paths: Record<string, unknown> = Object.create(null) as Record<string, unknown>
93
+ let count = 0
94
+ for (const [path, entry] of cache) {
95
+ if (count >= MAX_ENTRIES) break
96
+ paths[path] = serializeCacheEntry(entry)
97
+ count += 1
98
+ }
99
+ await writeJsonAtomic(join(workspaceDir, CACHE_FILE), { version: CACHE_VERSION, paths })
100
+ }
101
+
102
+ /** Drop the cache when its file is unreadable or was never written. */
103
+ export async function pathCacheExists(workspaceDir: string): Promise<boolean> {
104
+ return pathExists(join(workspaceDir, CACHE_FILE))
105
+ }
106
+
107
+ function serializeCacheEntry(record: PathCacheEntry): Record<string, unknown> {
108
+ const entry = record.entry
109
+ return {
110
+ dev: record.dev, ino: record.ino, size: record.size,
111
+ mtimeNs: record.mtimeNs, ctimeNs: record.ctimeNs, mode: record.mode,
112
+ kind: entry.kind,
113
+ ...(entry.kind === 'file' ? { blob: entry.blob, provider: entry.provider } : { target: entry.target }),
114
+ }
115
+ }
116
+
117
+ function parseCacheEntry(value: unknown): PathCacheEntry | undefined {
118
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) return undefined
119
+ const record = value as Record<string, unknown>
120
+ const text = (key: string): string | undefined => (typeof record[key] === 'string' ? record[key] as string : undefined)
121
+ const dev = text('dev'); const ino = text('ino'); const size = text('size')
122
+ const mtimeNs = text('mtimeNs'); const ctimeNs = text('ctimeNs')
123
+ if (dev === undefined || ino === undefined || size === undefined || mtimeNs === undefined || ctimeNs === undefined) return undefined
124
+ if (typeof record.mode !== 'number' || !Number.isInteger(record.mode)) return undefined
125
+ let entry: SnapshotEntry
126
+ if (record.kind === 'file') {
127
+ const blob = text('blob')
128
+ if (blob === undefined || !/^[0-9a-f]{64}$/.test(blob)) return undefined
129
+ const provider = record.provider
130
+ if (provider !== undefined && provider !== 'git') return undefined
131
+ entry = {
132
+ kind: 'file', blob, size: Number(size), mode: record.mode,
133
+ ...(provider === undefined ? {} : { provider }),
134
+ }
135
+ } else if (record.kind === 'symlink') {
136
+ const target = text('target')
137
+ if (target === undefined || target.includes('\0')) return undefined
138
+ entry = { kind: 'symlink', target, mode: record.mode }
139
+ } else {
140
+ return undefined
141
+ }
142
+ if (BigInt(size) > BigInt(MAX_FILE_BYTES)) return undefined
143
+ return { dev, ino, size, mtimeNs, ctimeNs, mode: record.mode, entry }
144
+ }
package/src/snapshot.ts CHANGED
@@ -3,6 +3,7 @@ import { constants, type BigIntStats } from 'node:fs'
3
3
  import { lstat, open, readlink } from 'node:fs/promises'
4
4
  import { ChangeLedgerError } from './errors.js'
5
5
  import { isNodeError, resolveWorkspacePath } from './path-utils.js'
6
+ import { matchesPathCache, toPathCacheEntry, type PathCacheEntry } from './path-cache.js'
6
7
  import type { LedgerStore } from './store.js'
7
8
  import { discoverWorkspace, sameWorkspaceFence, type WorkspaceSnapshotSource } from './workspace.js'
8
9
  import type {
@@ -41,6 +42,8 @@ export async function captureTree(options: {
41
42
  readonly config: ResolvedChangeLedgerConfig
42
43
  readonly store?: LedgerStore
43
44
  readonly gitObjectFormat?: 'sha1' | 'sha256'
45
+ /** Per-path identity cache: an unchanged path is reused instead of re-read. */
46
+ readonly pathCache?: Map<string, PathCacheEntry>
44
47
  readonly signal?: AbortSignal
45
48
  }): Promise<CapturedTree> {
46
49
  throwIfAborted(options.signal)
@@ -75,6 +78,28 @@ export async function captureTree(options: {
75
78
  let budgetSpent = false
76
79
  const capturePath = async (path: string): Promise<void> => {
77
80
  throwIfAborted(options.signal)
81
+ // Reuse is only sound when the identity is unchanged and the stored blob is
82
+ // still present; a garbage-collected blob falls back to a fresh read.
83
+ if (options.pathCache !== undefined && options.store !== undefined && gitCapture === undefined) {
84
+ const cached = options.pathCache.get(path)
85
+ if (cached !== undefined) {
86
+ let info: BigIntStats | undefined
87
+ try {
88
+ info = await lstat(resolveWorkspacePath(source.state.root, path), { bigint: true })
89
+ } catch (error) {
90
+ if (!isNodeError(error, 'ENOENT')) throw error
91
+ }
92
+ if (info !== undefined && matchesPathCache(cached, info)) {
93
+ const reusable = cached.entry.kind === 'symlink'
94
+ || await options.store.hasBlob(source.state.root, cached.entry.blob)
95
+ if (reusable) {
96
+ entries[path] = cached.entry
97
+ if (cached.entry.kind === 'file') totalBytes += cached.entry.size
98
+ return
99
+ }
100
+ }
101
+ }
102
+ }
78
103
  if (budgetSpent) {
79
104
  // The aggregate budget is gone, but the path is still recorded so a
80
105
  // restore can prove this point never observed it.
@@ -97,7 +122,7 @@ export async function captureTree(options: {
97
122
  }
98
123
  if (entry === undefined) return
99
124
  if (entry.kind === 'file') {
100
- if (totalBytes + entry.content.length > options.config.maxSnapshotBytes) {
125
+ if (budgetSpent || totalBytes + entry.content.length > options.config.maxSnapshotBytes) {
101
126
  budgetSpent = true
102
127
  truncated ??= 'snapshot-limit'
103
128
  recordSkip(path, 'snapshot-limit')
@@ -115,10 +140,14 @@ export async function captureTree(options: {
115
140
  }
116
141
  entries[path] = entry.snapshot
117
142
  if (gitCapture !== undefined) gitCapture.entries[path] = entry.snapshot
143
+ if (options.pathCache !== undefined && gitCapture === undefined) {
144
+ options.pathCache.set(path, toPathCacheEntry(entry.info, entry.snapshot))
145
+ }
118
146
  }
119
- if (gitCapture === undefined) {
120
- for (const path of paths) await capturePath(path)
121
- } else {
147
+ {
148
+ // Reading one file at a time makes a real project directory take minutes, so
149
+ // every capture runs through a bounded worker pool. Per-file stability stats
150
+ // and the synchronous budget check keep the result identical to a serial run.
122
151
  let next = 0
123
152
  let failed = false
124
153
  let firstError: unknown = new ChangeLedgerError('WORKSPACE_CHANGED_DURING_CAPTURE', 'parallel comparison capture failed')
@@ -171,12 +200,16 @@ export async function captureStableTree(options: {
171
200
  readonly config: ResolvedChangeLedgerConfig
172
201
  readonly store?: LedgerStore
173
202
  readonly gitObjectFormat?: 'sha1' | 'sha256'
203
+ /** Per-path identity cache: an unchanged path is reused instead of re-read. */
204
+ readonly pathCache?: Map<string, PathCacheEntry>
174
205
  readonly signal?: AbortSignal
175
206
  }): Promise<CapturedTree> {
176
207
  for (let attempt = 0; attempt < 3; attempt += 1) {
177
208
  const first = await captureTree({
178
209
  cwd: options.cwd,
179
210
  config: options.config,
211
+ ...(options.store === undefined ? {} : { store: options.store }),
212
+ ...(options.pathCache === undefined ? {} : { pathCache: options.pathCache }),
180
213
  ...(options.gitObjectFormat === undefined ? {} : { gitObjectFormat: options.gitObjectFormat }),
181
214
  ...(options.signal === undefined ? {} : { signal: options.signal }),
182
215
  })
@@ -302,8 +335,8 @@ async function captureEntry(
302
335
  path: string,
303
336
  maxFileBytes: number,
304
337
  signal?: AbortSignal,
305
- ): Promise<{ readonly kind: 'file'; readonly snapshot: SnapshotEntry & { readonly kind: 'file' }; readonly content: Buffer }
306
- | { readonly kind: 'symlink'; readonly snapshot: SnapshotEntry & { readonly kind: 'symlink' } }
338
+ ): Promise<{ readonly kind: 'file'; readonly snapshot: SnapshotEntry & { readonly kind: 'file' }; readonly content: Buffer; readonly info: BigIntStats }
339
+ | { readonly kind: 'symlink'; readonly snapshot: SnapshotEntry & { readonly kind: 'symlink' }; readonly info: BigIntStats }
307
340
  | undefined> {
308
341
  const target = resolveWorkspacePath(root, path)
309
342
  for (let attempt = 0; attempt < 3; attempt += 1) {
@@ -320,7 +353,7 @@ async function captureEntry(
320
353
  const linkTarget = await readlink(target)
321
354
  const after = await lstat(target, { bigint: true })
322
355
  if (!sameStat(before, after)) continue
323
- return { kind: 'symlink', snapshot: { kind: 'symlink', target: linkTarget, mode } }
356
+ return { kind: 'symlink', snapshot: { kind: 'symlink', target: linkTarget, mode }, info: after }
324
357
  }
325
358
  if (!before.isFile()) {
326
359
  throw new ChangeLedgerError('UNSUPPORTED_FILE_TYPE', `eligible path is not a regular file or symlink: ${JSON.stringify(path)}`)
@@ -354,6 +387,7 @@ async function captureEntry(
354
387
  kind: 'file',
355
388
  snapshot: { kind: 'file', blob, size: content.length, mode },
356
389
  content,
390
+ info: { ...before, size: BigInt(content.length) } as BigIntStats,
357
391
  }
358
392
  }
359
393
  throw new ChangeLedgerError('WORKSPACE_CHANGED_DURING_CAPTURE', `path changed repeatedly while being captured: ${JSON.stringify(path)}`)
package/src/store.ts CHANGED
@@ -263,6 +263,17 @@ export class LedgerStore {
263
263
  }
264
264
 
265
265
  /** Persist a blob if it is not already present, and verify existing content. */
266
+ /** Whether one content-addressed blob is already stored for a workspace. */
267
+ async hasBlob(workspace: string, hash: string): Promise<boolean> {
268
+ validateBlobHash(hash)
269
+ return pathExists(this.blobPath(workspace, hash))
270
+ }
271
+
272
+ /** Durable directory holding one workspace's manifests, blobs, and caches. */
273
+ workspaceDirectory(workspace: string): string {
274
+ return this.workspaceDir(workspace)
275
+ }
276
+
266
277
  async putBlob(workspace: string, hash: string, content: Buffer): Promise<void> {
267
278
  validateBlobHash(hash)
268
279
  const contentHash = createHash('sha256').update(content).digest('hex')
@@ -270,6 +281,10 @@ export class LedgerStore {
270
281
  throw new ChangeLedgerError('BLOB_HASH_MISMATCH', `refusing to store content whose SHA-256 does not match ${hash}`)
271
282
  }
272
283
  const path = this.blobPath(workspace, hash)
284
+ // Content addressing makes an existing blob identical by construction, and
285
+ // re-writing it costs one fsync per file: a full-tree capture of a large
286
+ // workspace otherwise spends minutes proving it already stored the content.
287
+ if (await pathExists(path)) return
273
288
  const directory = join(this.workspaceDir(workspace), 'blobs', hash.slice(0, 2))
274
289
  await mkdir(directory, { recursive: true, mode: 0o700 })
275
290
  const temporary = join(directory, `.${randomUUID()}.tmp`)