@anionex/dsh-turn-rewind 0.1.0 → 0.1.2
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/docs/LARGE_REPOSITORY_CHECKPOINT_DESIGN.md +340 -0
- package/lib/client.js +3 -1
- package/lib/client.js.map +1 -1
- package/lib/deadline.js +13 -0
- package/lib/engine.js +482 -118
- package/lib/git-checkpoint.js +739 -0
- package/lib/git.js +303 -23
- package/lib/index.js +1 -1
- package/lib/path-utils.js +9 -0
- package/lib/rewind-host.js +119 -29
- package/lib/snapshot.js +113 -13
- package/lib/store.js +1281 -106
- package/lib/types/deadline.d.ts +6 -0
- package/lib/types/engine.d.ts +27 -0
- package/lib/types/git-checkpoint.d.ts +46 -0
- package/lib/types/git.d.ts +31 -0
- package/lib/types/path-utils.d.ts +2 -0
- package/lib/types/rewind-host.d.ts +3 -1
- package/lib/types/snapshot.d.ts +6 -1
- package/lib/types/store.d.ts +70 -6
- package/lib/types/types.d.ts +44 -1
- package/lib/types.js +2 -0
- package/lib/validate.js +68 -9
- package/package.json +3 -1
- package/scripts/benchmark-git-checkpoint.mjs +149 -0
- package/scripts/wrap-client.mjs +18 -0
- package/src/client/index.tsx +3 -0
- package/src/deadline.ts +18 -0
- package/src/engine.ts +542 -124
- package/src/git-checkpoint.ts +853 -0
- package/src/git.ts +345 -23
- package/src/index.ts +1 -1
- package/src/path-utils.ts +10 -0
- package/src/rewind-host.ts +134 -30
- package/src/snapshot.ts +122 -12
- package/src/store.ts +1403 -91
- package/src/types.ts +48 -1
- package/src/validate.ts +67 -7
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
# Large-repository checkpoint design
|
|
2
|
+
|
|
3
|
+
Status: revised after prior-art audit and an independent adversarial review loop; no high-value actionable findings remain
|
|
4
|
+
|
|
5
|
+
Implementation status (August 21, 2026): the first production-safe slice is implemented. Legacy automatic checkpoints remain the default but are capped by a 5-second pre-step deadline, so large repositories skip explicitly instead of blocking for minutes. Git-native v2 is available through `turnCheckpointMode: git-native` while the stronger cross-platform capability-filesystem helper remains a rollout gate. Skip outcomes are durable across process restarts.
|
|
6
|
+
|
|
7
|
+
The repeatable issue-size fixture (`pnpm benchmark:git-checkpoint`) covers 15,500 files and 380,928,000 logical bytes. On the development machine, clean, cold 10-file overlay, and warm 10-file overlay checkpoints completed in 2.00s, 2.03s, and 2.00s respectively; comparing the warm checkpoint with the unchanged worktree completed in 3.88s. Clean/warm capture reread zero worktree bytes, the cold overlay read 245,760 bytes, and Git status, user refs, and the real index remained unchanged.
|
|
8
|
+
|
|
9
|
+
## 1. Decision summary
|
|
10
|
+
|
|
11
|
+
Turn Rewind v2 should use **Git's existing object model as the snapshot engine** instead of building a second Merkle tree and content-provider framework.
|
|
12
|
+
|
|
13
|
+
Each checkpoint consists of:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
Git snapshot envelope
|
|
17
|
+
-> captured HEAD tree
|
|
18
|
+
-> complete worktree tree
|
|
19
|
+
-> exact index tree
|
|
20
|
+
-> parentless synthetic commit
|
|
21
|
+
-> private Turn Rewind ref
|
|
22
|
+
+ small Change Ledger sidecar
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The sidecar stores only DSH-specific data that Git cannot express: Session/turn identity, repository fences, exact non-Git mode metadata, checkpoint trust level, restore approval state, rescue links, publication/restore journals, retention data, and the path-state cache.
|
|
26
|
+
|
|
27
|
+
The target cost is:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
Git status/path metadata + bytes whose trusted path state changed
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
not:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
all eligible worktree bytes on every turn
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Automatic capture remains before the first Agent step, but is deadline-gated. It publishes a complete checkpoint or records an explicit skip; it never publishes a partial point.
|
|
40
|
+
|
|
41
|
+
The coordinator reserves part of the end-to-end deadline for the small durable outcome write. Repository discovery, queueing, and capture stop at the boundary; a slow outcome write may finish afterward without blocking the first Agent step, and a lock-protected ready-check prevents a late skip from overwriting a successful retry. Failed bounded legacy captures leave a cleanup journal; startup or the next capture removes only blobs still unreferenced by a durable manifest.
|
|
42
|
+
|
|
43
|
+
## 2. Prior-art decision
|
|
44
|
+
|
|
45
|
+
The following are existing wheels and must not be rebuilt:
|
|
46
|
+
|
|
47
|
+
- Git tree objects are already a content-addressed Merkle DAG.
|
|
48
|
+
- Git plumbing already supplies isolated indexes, blob/tree/commit creation, tree diffing, batched object reads, compare-and-swap ref updates, and garbage-collection reachability.
|
|
49
|
+
- Jujutsu's `TreeState` demonstrates the correct performance pattern: retain per-path file state, trust unchanged metadata in fast mode, and optionally let a filesystem monitor narrow scans.
|
|
50
|
+
- GitButler demonstrates snapshot commits, operation logging, size limits, and safe worktree restoration patterns.
|
|
51
|
+
|
|
52
|
+
Turn Rewind should borrow those patterns, but should not embed Jujutsu or GitButler:
|
|
53
|
+
|
|
54
|
+
- Jujutsu snapshots are coupled to its own working-copy commit and operation model.
|
|
55
|
+
- GitButler snapshots are coupled to its workspace/virtual-branch model; its newer generic stash/snapshot commit API is still incomplete, while its older whole-worktree helper is explicitly deprecated.
|
|
56
|
+
- Both projects are Rust systems with a much larger runtime and compatibility surface than this portable TypeScript Profile Bundle.
|
|
57
|
+
|
|
58
|
+
The reusable dependency is therefore **Git CLI plumbing**, not either product's repository model.
|
|
59
|
+
|
|
60
|
+
## 3. Required invariants
|
|
61
|
+
|
|
62
|
+
1. The checkpoint boundary remains before the first Agent step.
|
|
63
|
+
2. Staged, unstaged, deleted, untracked, symlink, supported type, and supported mode changes remain observable.
|
|
64
|
+
3. Checkpoints remain independent across Sessions and conversation branches.
|
|
65
|
+
4. Durable paths remain canonical and workspace-relative; malformed paths fail closed.
|
|
66
|
+
5. Restore remains plan-gated, approval-gated, rescue-first, journaled, and post-verified.
|
|
67
|
+
6. Restore never moves `HEAD` or a user branch and never writes the real Git index.
|
|
68
|
+
7. Worktree content is never recursively deleted.
|
|
69
|
+
8. A point is valid only when its manifest, private ref, commit, envelope, HEAD/index/worktree trees, blobs, and sidecar metadata all verify.
|
|
70
|
+
9. Unsupported or unstable repository state produces a skip/failure, never a partial snapshot.
|
|
71
|
+
10. User and rescue points are byte-verified. Automatic fast points explicitly carry metadata-trust semantics instead of claiming cryptographic proof of unchanged bytes.
|
|
72
|
+
|
|
73
|
+
## 4. Snapshot representation
|
|
74
|
+
|
|
75
|
+
### 4.1 HEAD, index, and worktree trees
|
|
76
|
+
|
|
77
|
+
The worktree tree represents the observed supported filesystem state:
|
|
78
|
+
|
|
79
|
+
- identity-safe clean tracked paths reuse the stage-0 index blob;
|
|
80
|
+
- dirty tracked, untracked, and transform-sensitive paths use raw worktree blobs;
|
|
81
|
+
- deletions are absent from the tree;
|
|
82
|
+
- Git tree mode is selected from the actual filesystem type, not copied blindly from the index;
|
|
83
|
+
- `core.symlinks=false` regular-file emulation is therefore stored as a regular file even when the index entry is a symlink;
|
|
84
|
+
- regular executable state and actual symlink type use Git tree modes;
|
|
85
|
+
- exact supported mode bits beyond Git's executable bit live in a canonical sidecar map.
|
|
86
|
+
|
|
87
|
+
The captured `HEAD^{tree}` and exact index tree are stored separately from the worktree tree. An unborn `HEAD` uses Git's canonical empty tree. This preserves the `HEAD=A, index=B, worktree=C` boundary for inspection and fencing even after branch rewrites or reflog expiry, while Turn Rewind restore continues to modify only selected worktree paths and never rewrites the user's index.
|
|
88
|
+
|
|
89
|
+
All three tree IDs are content roots. Git automatically reuses unchanged blobs and subtrees, so Turn Rewind does not need a second path trie, logical hash, storage hash, or provider-neutral content identity.
|
|
90
|
+
|
|
91
|
+
### 4.2 Snapshot envelope, commit, and private ref
|
|
92
|
+
|
|
93
|
+
The engine creates a small Git envelope tree with `head`, `index`, and `worktree` subtree entries, then creates a parentless synthetic commit whose root is that envelope. A private ref pins the commit and all reachable objects:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
refs/dsh-turn-rewind/v2/<store-id>/<worktree-id>/<restore-point-id>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Using a commit rather than a ref directly to a tree follows normal Git snapshot/oplog practice and leaves room for minimal diagnostic trailers without pinning repository history.
|
|
100
|
+
|
|
101
|
+
Ref creation and deletion use `git update-ref` compare-and-swap. The engine verifies the exact ref target and object types after publication.
|
|
102
|
+
|
|
103
|
+
### 4.3 Change Ledger sidecar
|
|
104
|
+
|
|
105
|
+
The v2 sidecar contains:
|
|
106
|
+
|
|
107
|
+
- DSH Session, turn, and turn-start sequence;
|
|
108
|
+
- checkpoint kind, label, timestamps, retention, and parent/rescue links;
|
|
109
|
+
- repository, index, attributes, configuration, and object-database fences;
|
|
110
|
+
- snapshot commit, envelope, HEAD-tree, index-tree, and worktree-tree IDs and private ref;
|
|
111
|
+
- checkpoint trust level: `byte-verified` or `metadata-fenced`;
|
|
112
|
+
- canonical exact-mode overrides and their hash;
|
|
113
|
+
- file count, logical bytes, newly read bytes, timing, and skip/failure codes;
|
|
114
|
+
- publication and restore journals;
|
|
115
|
+
- per-workspace path-state cache.
|
|
116
|
+
|
|
117
|
+
Checkpoint identity is the tuple:
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
(Git object format, HEAD tree OID, index tree OID, worktree tree OID, exact-mode metadata hash, trust level)
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## 5. Avoiding repeated content reads
|
|
124
|
+
|
|
125
|
+
### 5.1 Git supplies inventory and classification
|
|
126
|
+
|
|
127
|
+
The authoritative eligible-path inventory is the union of stage-0 index paths and Git's non-ignored untracked paths. Turn Rewind also obtains porcelain-v2 status as a dirtiness hint, but does not trust status alone to prove filesystem presence or type.
|
|
128
|
+
|
|
129
|
+
The private index is checked for and initially rejects `assume-unchanged`, `skip-worktree`, unresolved stages, intent-to-add, sparse-index entries, and any sparse-checkout configuration. This prevents Git optimizations from hiding a changed or absent path. Every eligible tracked path receives an actual no-follow metadata observation before its temporary-index entry is accepted.
|
|
130
|
+
|
|
131
|
+
V2 initially removes fsmonitor, untracked-cache, and split-index extensions from the private copy and disables external hooks. It preserves ordinary index stat entries but does not trust copied monitor tokens. Turn Rewind does not install or manage Watchman. If complete metadata enumeration exceeds the deadline, automatic capture skips and reports path scanning as the bottleneck; monitor integration is deferred until correctness and benchmark evidence justify it.
|
|
132
|
+
|
|
133
|
+
### 5.2 Small path-state cache
|
|
134
|
+
|
|
135
|
+
Git's index does not cache raw worktree blob IDs for untracked, dirty, or transform-sensitive files. The Ledger therefore keeps a narrow cache for only those paths:
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
interface CachedPathState {
|
|
139
|
+
path: string
|
|
140
|
+
kind: 'file' | 'symlink'
|
|
141
|
+
mode: number
|
|
142
|
+
size: number
|
|
143
|
+
mtimeNs: string
|
|
144
|
+
ctimeNs?: string
|
|
145
|
+
device?: string
|
|
146
|
+
inode?: string
|
|
147
|
+
indexBlob?: string
|
|
148
|
+
attributesFence: string
|
|
149
|
+
rawBlob: string
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Fast mode reuses `rawBlob` only when the complete available stat fence, path type, index blob, and attributes/configuration fence still match, and Git verifies that the cached object still exists with the expected blob type and size. A cache write is not trusted when the observed file timestamp is ambiguous relative to the cache publication time.
|
|
154
|
+
|
|
155
|
+
This produces a `metadata-fenced` checkpoint, not proof against metadata-preserving or ABA content replacement. Strict mode ignores the cache, securely reads and hashes every eligible regular file/symlink, and produces a `byte-verified` checkpoint under the documented stable-capture boundary. User-created and rescue checkpoints are always strict; automatic turn checkpoints may be fast only when the manifest and UI expose that trust level.
|
|
156
|
+
|
|
157
|
+
This is deliberately not a second filesystem database: Git remains authoritative for path inventory and tracked-state classification; the cache only avoids rereading non-index-equivalent bytes. The cache is advisory and never pins an object by itself.
|
|
158
|
+
|
|
159
|
+
## 6. Isolated index and capture algorithm
|
|
160
|
+
|
|
161
|
+
The real Git index is read-only to Turn Rewind.
|
|
162
|
+
|
|
163
|
+
1. Acquire the store-independent workspace lock.
|
|
164
|
+
2. Capture repository, `HEAD`, real-index, attributes/configuration, and object-database fences.
|
|
165
|
+
3. Copy the real index and any split-index dependency to a private transaction directory.
|
|
166
|
+
4. Point all mutating index plumbing at the copy with `GIT_INDEX_FILE`; disable optional locks, hooks, monitor hooks, lazy fetch, and replacement objects.
|
|
167
|
+
5. Remove split-index/fsmonitor/untracked-cache extensions from the private copy.
|
|
168
|
+
6. Reject unresolved stages, `assume-unchanged`, `skip-worktree`, sparse index/checkout, submodules, intent-to-add ambiguity, unsafe path encodings, and unsupported repository state.
|
|
169
|
+
7. Resolve and record the captured `HEAD^{tree}` (or canonical empty tree for unborn `HEAD`) and write the unchanged exact index tree from the normalized private copy.
|
|
170
|
+
8. Enumerate index paths plus non-ignored untracked paths, observe actual no-follow filesystem metadata, and obtain status/effective attributes.
|
|
171
|
+
9. Select paths for raw capture: every eligible content path in strict mode; dirty, untracked, transform-sensitive, or invalid-cache paths in fast mode.
|
|
172
|
+
10. For each selected raw-capture path:
|
|
173
|
+
- in fast mode reuse a valid cached raw blob when possible; otherwise securely open and stream the path;
|
|
174
|
+
- write raw bytes as a Git blob without clean/smudge/EOL conversion;
|
|
175
|
+
- update only the temporary index entry with the blob and the mode derived from actual filesystem type.
|
|
176
|
+
11. Remove deleted paths from the temporary index and resolve file/directory replacements deterministically.
|
|
177
|
+
12. Run `git write-tree` to create the complete worktree tree, then create the `head`/`index`/`worktree` envelope tree.
|
|
178
|
+
13. Recheck repository, real index, inventory, attributes/configuration, and path-state fences. Retry a bounded number of times if they changed.
|
|
179
|
+
14. Write the parentless envelope commit, publication journal, private ref, and manifest.
|
|
180
|
+
15. Verify ref -> commit -> envelope -> HEAD/index/worktree trees -> blobs and sidecar hashes before marking the point ready.
|
|
181
|
+
|
|
182
|
+
Git cannot atomically create objects and their first ref. Normal Git unreachable-object grace covers the short pre-ref window. Concurrent external `git gc --prune=now` remains unsupported because it is unsafe alongside object writers generally.
|
|
183
|
+
|
|
184
|
+
All internal Git commands use a store-owned empty hooks directory. They do not execute user hooks, external filesystem-monitor hooks, clean/smudge filters, or text-conversion commands.
|
|
185
|
+
|
|
186
|
+
## 7. Capability-scoped filesystem I/O
|
|
187
|
+
|
|
188
|
+
`lstat(path) -> read/write(path) -> lstat(path)` is not sufficient against concurrent symlink exchange. V2 uses one capability-scoped helper for both reads and restore mutations, preferably built on a maintained capability-filesystem library rather than handwritten path walking.
|
|
189
|
+
|
|
190
|
+
For capture it:
|
|
191
|
+
|
|
192
|
+
- open relative to a trusted workspace directory handle;
|
|
193
|
+
- refuse symlink/reparse traversal beneath the root;
|
|
194
|
+
- stream bytes to Git hashing/object input;
|
|
195
|
+
- compare descriptor metadata before and after reading;
|
|
196
|
+
- re-resolve the relative path and require the same file identity;
|
|
197
|
+
- publish cache state only after all checks succeed.
|
|
198
|
+
|
|
199
|
+
For restore it:
|
|
200
|
+
|
|
201
|
+
- opens every parent component relative to the root with no-follow/reparse-safe semantics;
|
|
202
|
+
- creates temporary files in the verified destination directory and replaces by handle-relative atomic rename;
|
|
203
|
+
- performs `mkdir`, `rename`, `unlink`, `rmdir`, and `chmod` relative to verified directory handles;
|
|
204
|
+
- compares the target's current type, byte hash, exact supported mode, and filesystem identity with the approved plan immediately before destructive mutation;
|
|
205
|
+
- validates workspace containment and the affected path again after every mutation;
|
|
206
|
+
- aborts into the existing restore journal on any identity or namespace mismatch.
|
|
207
|
+
|
|
208
|
+
The helper fail-closes on pre-existing or exchanged symlink/reparse parents during path resolution. No portable userspace API can atomically prevent a hostile external process from relocating an already-open ancestor outside the workspace immediately before a handle-relative mutation. V2 therefore treats external directory-namespace mutation during apply as unsupported, documents that narrowed threat model, minimizes and checks the mutation window, and journals any detected partial restore. If that threat-model change is not approved, implementation must remain blocked until each supported platform has a stronger pre-mutation containment protocol; post-write detection alone is not presented as prevention.
|
|
209
|
+
|
|
210
|
+
The helper must be packaged for supported macOS, Linux, and Windows targets with verified checksums. Unsupported platforms fail explicitly. Git path input is NUL-delimited and literal; no path is interpolated into a shell command.
|
|
211
|
+
|
|
212
|
+
## 8. Transform, LFS, and object-store policy
|
|
213
|
+
|
|
214
|
+
An index blob may be reused only when raw worktree bytes are known to be identical. Active `filter`, `working-tree-encoding`, `ident`, EOL conversion, `core.symlinks` emulation, or equivalent uncertainty routes the path through the raw-blob/cache path.
|
|
215
|
+
|
|
216
|
+
The configuration fence records effective values with origin/scope, including worktree configuration and relevant environment overrides. Effective attributes for every eligible path are captured before and after tree construction. A path enters the index-blob fast path only when both observations prove that no worktree transformation applies; uncertainty routes to raw capture or skip.
|
|
217
|
+
|
|
218
|
+
The first v2 implementation does not create a provider abstraction for Git LFS. A materialized LFS file is captured as a raw Git blob when it must be represented exactly. Its first capture may exceed the automatic byte/deadline budget; manual/rescue capture may continue. A dedicated LFS optimization is deferred until measurements justify the added durability and pinning protocol.
|
|
219
|
+
|
|
220
|
+
All v2 modes initially reject alternates and promisor/partial-clone states unless every object reachable from the captured HEAD/index/worktree trees is recursively localized into the primary object database and verified before publication. The first implementation does not attempt localization, so these repository states are unsupported for automatic, user, and rescue points. Internal reads disable replacement objects and lazy fetch. Supporting external object stores later requires an explicit localization design, not optimistic reachability checks.
|
|
221
|
+
|
|
222
|
+
## 9. Publication, ownership, and locking
|
|
223
|
+
|
|
224
|
+
Each v2 storage root owns a durable random `storeInstanceId`, included in its ref namespace. Manifests and transition journals are accepted only when that identity matches the current storage root, preventing one root from deleting another root's private refs. Missing/corrupt identity in a non-empty store fails closed.
|
|
225
|
+
|
|
226
|
+
Each Git worktree also owns a durable random `worktreeInstanceId` stored in validated Turn Rewind metadata under its per-worktree Git directory. For the main worktree this is under the common Git directory; linked worktrees use their own `git worktree` administrative directory. The workspace key is derived from repository common-directory identity plus `worktreeInstanceId`, not from the movable worktree root path. Each storage root atomically claims a `worktreeInstanceId` before creating or migrating its namespace; the claim serializes concurrent copied repositories, and historical bindings plus incomplete migration journals are treated as ownership claims during upgrades.
|
|
227
|
+
|
|
228
|
+
This identity survives `git worktree move`, separates linked-worktree indexes/configuration/ref namespaces, and prevents a pruned then recreated worktree name from inheriting old ownership. Durable workspace bindings include the stable per-worktree Git directory identity as well as the movable root; if all identity copies disappear but historical state still targets that Git directory, startup fails closed instead of silently adopting a replacement root. Moving the entire repository changes the common-directory identity, so the first v2 slice also fails closed when it finds the same durable worktree identity under the historical namespace rather than hiding existing checkpoints; journaled whole-repository migration is deferred. Fences include the exact per-worktree Git directory, worktree root, `config.worktree` when enabled, and the effective configuration origins. Reconciliation does not delete refs for a missing/pruned worktree unless the owning store manifest and IDs prove ownership.
|
|
229
|
+
|
|
230
|
+
The workspace lock lives in validated Turn Rewind metadata under the Git common directory and is keyed by that worktree identity. This makes different `storageDir` instances contend on the same worktree without blocking unrelated linked worktrees. Lock ownership includes a stable operating-system machine identity, so a PID lookup on one host cannot reclaim another host's lock. Legacy active locks are respected before path-keyed state is migrated. The lock protects capture, inspect/plan/recovery snapshots, delete, reconciliation, rescue capture, restore, and post-verification.
|
|
231
|
+
|
|
232
|
+
When a linked worktree moves, a durable rebind journal makes manifest, operation, and Git-publication metadata rewriting idempotent. Legacy path-keyed state migration is journaled as well. Startup completes any mixed old/new-path state before ordinary validation, but performs no migration, rebind, or cleanup while an active or hostless legacy lock prevents proving exclusive ownership; it then atomically advances the workspace binding and removes the journal.
|
|
233
|
+
|
|
234
|
+
Publication uses a durable journal with these states:
|
|
235
|
+
|
|
236
|
+
```text
|
|
237
|
+
prepared -> ref-created -> manifest-created -> committed
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Startup reconciliation may delete only validated orphan refs in its exact store namespace, complete a manifest whose dependencies verify, or quarantine an uncertain journal. It never guesses ownership.
|
|
241
|
+
|
|
242
|
+
## 10. Automatic capture policy
|
|
243
|
+
|
|
244
|
+
Suggested configuration:
|
|
245
|
+
|
|
246
|
+
```ts
|
|
247
|
+
interface TurnCheckpointPolicy {
|
|
248
|
+
mode: 'off' | 'automatic'
|
|
249
|
+
queueDeadlineMs: number
|
|
250
|
+
captureDeadlineMs: number
|
|
251
|
+
maxNewContentBytes: number
|
|
252
|
+
trust: 'fast' | 'strict'
|
|
253
|
+
}
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
- Queue time and capture time are reported separately.
|
|
257
|
+
- Automatic capture publishes only a complete point within policy limits.
|
|
258
|
+
- On deadline, unsupported state, or new-content overflow, the turn proceeds with a stable reason code and visible warning.
|
|
259
|
+
- Fast automatic points are labeled `metadata-fenced`; strict automatic points are labeled `byte-verified`.
|
|
260
|
+
- User and rescue captures are always strict, use the same format, and do not silently degrade to partial results.
|
|
261
|
+
- Hashing and object writes run outside the Node event-loop hot path through streaming subprocess/helper work.
|
|
262
|
+
|
|
263
|
+
The qualified service objective is: after warm cache, a large repository with a small changed overlay should normally add only Git status/path-scan latency before the first Agent step. Benchmarks, not a hard-coded promise, determine the default deadline.
|
|
264
|
+
|
|
265
|
+
## 11. Inspection and restore
|
|
266
|
+
|
|
267
|
+
### 11.1 Diff
|
|
268
|
+
|
|
269
|
+
Use Git tree diff plumbing separately for `HEAD -> index` and `index -> worktree`, plus exact-mode sidecar comparison. This preserves staged/unstaged boundaries for inspection. Equal tree IDs stop immediately; Git traverses only changed subtrees.
|
|
270
|
+
|
|
271
|
+
### 11.2 Materialization
|
|
272
|
+
|
|
273
|
+
Selected file blobs are streamed with `git cat-file --batch`. Symlink targets come from symlink blobs. No path uses `git checkout`, `reset`, `stash`, or `clean`.
|
|
274
|
+
|
|
275
|
+
Apply preserves the existing rules:
|
|
276
|
+
|
|
277
|
+
- deepest targeted deletions first;
|
|
278
|
+
- shallowest restorations second;
|
|
279
|
+
- safe-parent validation before every mutation;
|
|
280
|
+
- no symlink-parent traversal;
|
|
281
|
+
- no recursive worktree deletion;
|
|
282
|
+
- unmanaged descendants block file/directory replacement;
|
|
283
|
+
- `rmdir` only after a directory is proven empty.
|
|
284
|
+
|
|
285
|
+
### 11.3 Approval and verification
|
|
286
|
+
|
|
287
|
+
`planRestore` performs a strict current-state capture and records its exact worktree/index identity plus selected changes. `applyRestore` reacquires the workspace lock, validates confirmation, and creates a strict v2 rescue point. Before creating the restore journal or mutating anything, it compares the rescue point's selected-path bytes/type/mode and index/repository fences with the plan's expected current state. Any mismatch returns `PLAN_STALE` and performs no worktree mutation. Immediately before each approved mutation, capability-scoped I/O repeats the selected target byte/type/mode check. Only then does apply journal and mutate approved worktree paths, followed by selective post-verification. It never restores the saved index tree automatically.
|
|
288
|
+
|
|
289
|
+
## 12. Retention and v1 compatibility
|
|
290
|
+
|
|
291
|
+
Deleting a v2 point removes its manifest and then compare-and-swap deletes its exact private ref. Git reclaims unreachable objects through normal GC; Turn Rewind never runs aggressive worktree cleanup.
|
|
292
|
+
|
|
293
|
+
V1 remains readable during opt-in rollout. V1 and v2 IDs are explicitly typed, share the same workspace lock domain, and are never guessed from an unqualified string. Restoring a v1 point creates a v2 rescue point and v2 restore journal. Generated v1 data is not rewritten in place.
|
|
294
|
+
|
|
295
|
+
## 13. Verification and acceptance
|
|
296
|
+
|
|
297
|
+
Required correctness cases include staged+unstaged content, additions, deletions, untracked files, symlinks, mode/type changes, file/directory replacement, CRLF and attributes, LFS boundaries, linked worktrees, concurrent edits, crash injection, normal Git GC, and simultaneous operations from two storage roots.
|
|
298
|
+
|
|
299
|
+
Required performance fixtures include approximately 400 files/2 MB, 7,500 files/50 MB, 15,500 files/390 MB, and a 10-20 GB mostly-clean repository, each with clean, small-overlay, stable-large-overlay, and cold/warm-cache variants.
|
|
300
|
+
|
|
301
|
+
Acceptance requires:
|
|
302
|
+
|
|
303
|
+
- snapshot envelope durably pins captured HEAD/index/worktree trees and inspection preserves separate `HEAD -> index` and `index -> worktree` changes after branch rewrites and normal GC;
|
|
304
|
+
- in fast mode, unchanged identity-safe tracked paths are not opened for content reads;
|
|
305
|
+
- in strict mode, every eligible regular file/symlink is securely read and hashed;
|
|
306
|
+
- unchanged cached dirty/untracked/transform-sensitive paths are not reread in fast mode;
|
|
307
|
+
- consecutive unchanged checkpoints create no new file blobs;
|
|
308
|
+
- `HEAD`, user refs, real/shared index, staged paths, and porcelain status remain unchanged;
|
|
309
|
+
- sparse checkout, `assume-unchanged`, `skip-worktree`, unresolved index, and unsupported submodule states fail explicitly;
|
|
310
|
+
- user/rescue points and restore planning use byte-verified strict capture;
|
|
311
|
+
- restore mutations use capability-scoped operations and do not follow symlink/reparse parents outside the workspace;
|
|
312
|
+
- linked worktrees receive distinct durable worktree identities, locks, refs, indexes, and configuration fences;
|
|
313
|
+
- every ready point survives normal Git GC;
|
|
314
|
+
- deadline and byte-limit skips are explicit and leave no ready partial point;
|
|
315
|
+
- restore remains rescue-first, selectively approved, and selectively post-verified;
|
|
316
|
+
- syscall tracing and object counts confirm the claimed read/write reductions.
|
|
317
|
+
|
|
318
|
+
## 14. Implementation sequence
|
|
319
|
+
|
|
320
|
+
1. Build repeatable cold/warm-cache benchmarks and syscall tracing for issue #10 sizes.
|
|
321
|
+
2. Prototype the Git-native index/worktree envelope with an isolated index and prove that real Git state is unchanged.
|
|
322
|
+
3. Implement the narrow path-state cache and compare fast versus strict mode.
|
|
323
|
+
4. Prototype and package capability-scoped read/write helper operations; stop if portable path containment cannot be delivered.
|
|
324
|
+
5. Implement private refs, store ownership, workspace locking, and publication reconciliation.
|
|
325
|
+
6. Implement v2 manifest validation, tree diff/materialization, selective restore, and post-verification.
|
|
326
|
+
7. Add v1/v2 routing, automatic deadline/skip UI, crash tests, and retention.
|
|
327
|
+
8. Keep v2 opt-in until correctness, recovery, and issue #10 performance evidence pass.
|
|
328
|
+
|
|
329
|
+
## 15. Product-visible decisions required before implementation
|
|
330
|
+
|
|
331
|
+
1. Allow Turn Rewind to write raw checkpoint blobs, parentless commits, and private refs into the repository's Git object database.
|
|
332
|
+
2. Allow store-independent worktree identity and lock metadata under the main/per-worktree Git administrative directories.
|
|
333
|
+
3. Allow automatic fast mode to create explicitly labeled metadata-fenced points, while user/rescue/restore planning remain strict.
|
|
334
|
+
4. Allow packaged cross-platform helper executables for capability-scoped reads and restore mutations.
|
|
335
|
+
5. Accept that cold capture of large untracked, dirty, transformed, or LFS materialized content may skip automatic checkpointing rather than delay the model indefinitely.
|
|
336
|
+
6. Preserve the index tree for inspection and fencing only; file restore continues not to rewrite the user's index.
|
|
337
|
+
7. Either approve external directory-namespace mutation during restore as unsupported, or require implementation to remain blocked until stronger per-platform pre-mutation containment is proven.
|
|
338
|
+
8. Accept that v2 initially rejects alternates and promisor/partial-clone repositories in every capture mode until durable object localization is implemented.
|
|
339
|
+
|
|
340
|
+
No runtime implementation should begin until these product-visible behaviors are approved.
|
package/lib/client.js
CHANGED
|
@@ -284,7 +284,7 @@ function RewindMessageAction({ matched, sessionId, openRestoredSession }) {
|
|
|
284
284
|
const actionLabel = mode === 'both' ? '恢复并从这里继续' : '恢复文件';
|
|
285
285
|
const radioName = `dcl-rewind-${sessionId}-${String(matched.messageSeq)}`;
|
|
286
286
|
const branchChanged = ready !== null && ready.checkpointBranch !== ready.currentBranch;
|
|
287
|
-
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\uFF0C\u6216\u8BB0\u5F55\u5DF2\u8D85\u8FC7\u4FDD\u7559\u671F\u9650\u3002" }), preview?.status === 'failed' && (0, jsx_runtime_1.jsxs)("p", { className: "dcl-rewind-error", children: ["\u6CA1\u80FD\u4FDD\u5B58\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\uFF1A", preview.error] }), ready !== null && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(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, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'both', disabled: applying, 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, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'code', disabled: applying, 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)("div", { className: "dcl-rewind-summary", children: [(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' ? '恢复后在新对话里继续' : '当前对话保持不变' })] }), 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
|
|
287
|
+
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\uFF0C\u6216\u8BB0\u5F55\u5DF2\u8D85\u8FC7\u4FDD\u7559\u671F\u9650\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] }), preview?.status === 'failed' && (0, jsx_runtime_1.jsxs)("p", { className: "dcl-rewind-error", children: ["\u6CA1\u80FD\u4FDD\u5B58\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\uFF1A", preview.error] }), ready !== null && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(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, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'both', disabled: applying, 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, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'code', disabled: applying, 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)("div", { className: "dcl-rewind-summary", children: [(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' ? '恢复后在新对话里继续' : '当前对话保持不变' })] }), 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
|
|
288
288
|
? '当前所在的 Git 分支和发送这条消息时不同。恢复不会切换分支,只会把当时的文件内容恢复到当前分支。'
|
|
289
289
|
: '这条消息之后有了新的 Git 提交。恢复只会改文件,不会撤销提交;完成后这些文件会显示为未提交修改。' })), driftBlocked && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-warning", children: "Git \u6B63\u5728\u8FDB\u884C\u5408\u5E76\u3001\u53D8\u57FA\u6216\u7C7B\u4F3C\u64CD\u4F5C\u3002\u8BF7\u5148\u5B8C\u6210\u6216\u53D6\u6D88\u8FD9\u6B21 Git \u64CD\u4F5C\uFF0C\u518D\u91CD\u65B0\u68C0\u67E5\u3002" }), planMissing && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: "\u6062\u590D\u4FE1\u606F\u5DF2\u7ECF\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u68C0\u67E5\u3002" }), stale && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: "\u9879\u76EE\u6587\u4EF6\u5728\u68C0\u67E5\u540E\u53C8\u53D1\u751F\u4E86\u53D8\u5316\u3002\u4E3A\u907F\u514D\u8986\u76D6\u65B0\u4FEE\u6539\uFF0C\u8FD9\u6B21\u6062\u590D\u5DF2\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u68C0\u67E5\u3002" }), ready.totalChanges === 0 && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-status", children: "\u9879\u76EE\u6587\u4EF6\u5DF2\u7ECF\u662F\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u72B6\u6001\uFF0C\u65E0\u9700\u6062\u590D\u3002\u60F3\u91CD\u65B0\u5F00\u59CB\u65F6\uFF0C\u53EF\u4EE5\u4F7F\u7528\u201C\u5206\u652F\u65B0\u5BF9\u8BDD\u201D\u3002" }), ready.changes.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "dcl-rewind-files", children: ready.changes.map(change => (0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-file", children: [(0, jsx_runtime_1.jsx)("code", { children: change.path }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-kind", children: fileRecoveryLabel(change.kind) })] }, change.path)) })), ready.truncated && ((0, jsx_runtime_1.jsx)("div", { className: "dcl-rewind-file-actions", children: (0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Button, { variant: "outline", size: "sm", onClick: () => { void loadAllChanges(); }, disabled: loadingDetails, children: loadingDetails ? '正在读取全部文件…' : `查看全部 ${String(ready.totalChanges)} 个文件` }) }))] })), completed !== null && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-status", children: completed }), error !== null && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: error }), error !== null && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-backup", children: "\u6062\u590D\u524D\u4F1A\u81EA\u52A8\u5907\u4EFD\u5F53\u524D\u6587\u4EF6\uFF1B\u82E5\u6062\u590D\u5931\u8D25\u4F1A\u81EA\u52A8\u8FD8\u539F\uFF0C\u9879\u76EE\u4E0D\u4F1A\u505C\u7559\u5728\u53EA\u6062\u590D\u4E86\u4E00\u90E8\u5206\u7684\u72B6\u6001\u3002" }), !loading && (preview?.status !== 'ready' || stale || planMissing || sharedBlocked || driftBlocked) && (0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Button, { className: "dcl-rewind-retry", variant: "outline", size: "sm", onClick: () => { void load(); }, children: "\u91CD\u65B0\u68C0\u67E5" })] }) })] }));
|
|
290
290
|
}
|
|
@@ -293,6 +293,8 @@ function decodePreview(value) {
|
|
|
293
293
|
const status = requiredString(record.status, 'status');
|
|
294
294
|
if (status === 'pending' || status === 'missing')
|
|
295
295
|
return { status };
|
|
296
|
+
if (status === 'skipped')
|
|
297
|
+
return { status, reason: requiredString(record.reason, 'reason') };
|
|
296
298
|
if (status === 'failed')
|
|
297
299
|
return { status, error: requiredString(record.error, 'error') };
|
|
298
300
|
if (status !== 'ready')
|
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/deadline.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Create a cancellable timeout whose timer keeps Node alive until it fires. */
|
|
2
|
+
export function createDeadline(timeoutMs) {
|
|
3
|
+
const controller = new AbortController();
|
|
4
|
+
const timer = setTimeout(() => {
|
|
5
|
+
controller.abort(new DOMException(`deadline exceeded after ${String(timeoutMs)} ms`, 'TimeoutError'));
|
|
6
|
+
}, timeoutMs);
|
|
7
|
+
return {
|
|
8
|
+
signal: controller.signal,
|
|
9
|
+
cancel() {
|
|
10
|
+
clearTimeout(timer);
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
}
|