dsh-config-manager 0.1.78 → 0.1.79
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/adapters/credentials.d.ts +6 -2
- package/lib/adapters/credentials.js +19 -3
- package/lib/adapters/file-collection.js +2 -1
- package/lib/adapters/mcp.d.ts +48 -2
- package/lib/adapters/mcp.js +265 -3
- package/lib/adapters/messages.d.ts +3 -0
- package/lib/adapters/messages.js +7 -0
- package/lib/adapters/plugin-files.js +2 -1
- package/lib/adapters/plugins.js +105 -20
- package/lib/adapters/pnpm-workspace.d.ts +32 -0
- package/lib/adapters/pnpm-workspace.js +113 -2
- package/lib/adapters/prompts.d.ts +6 -2
- package/lib/adapters/prompts.js +17 -2
- package/lib/adapters/providers.d.ts +19 -2
- package/lib/adapters/providers.js +59 -3
- package/lib/adapters/settings.d.ts +6 -2
- package/lib/adapters/settings.js +13 -2
- package/lib/adapters/skills.d.ts +25 -1
- package/lib/adapters/skills.js +60 -0
- package/lib/adapters/ui.d.ts +6 -2
- package/lib/adapters/ui.js +13 -2
- package/lib/adapters/units.d.ts +18 -0
- package/lib/adapters/units.js +39 -0
- package/lib/adapters/workspaces.js +2 -1
- package/lib/client.d.ts +400 -112
- package/lib/client.js +2845 -1524
- package/lib/core/backup.js +20 -0
- package/lib/core/mcp-connector-store.d.ts +159 -0
- package/lib/core/mcp-connector-store.js +445 -0
- package/lib/core/messages-core.d.ts +2 -0
- package/lib/core/messages-core.js +4 -0
- package/lib/core/messages.d.ts +20 -0
- package/lib/core/messages.js +44 -0
- package/lib/core/phase3-host.js +18 -1
- package/lib/core/plugin-cli.d.ts +22 -2
- package/lib/core/plugin-cli.js +22 -3
- package/lib/core/recovery-orchestrator.d.ts +3 -1
- package/lib/core/recovery-orchestrator.js +75 -16
- package/lib/core/rollback-activity.d.ts +89 -0
- package/lib/core/rollback-activity.js +350 -0
- package/lib/core/rollback-ledger.d.ts +0 -9
- package/lib/core/rollback-ledger.js +37 -0
- package/lib/core/rollback-merge.d.ts +22 -2
- package/lib/core/rollback-merge.js +63 -13
- package/lib/core/rollback-point.d.ts +93 -0
- package/lib/core/rollback-point.js +420 -101
- package/lib/core/rollback-undo-journal.d.ts +123 -0
- package/lib/core/rollback-undo-journal.js +517 -0
- package/lib/core/self-update.js +2 -4
- package/lib/core/text-fidelity.d.ts +89 -0
- package/lib/core/text-fidelity.js +176 -0
- package/lib/core/types.d.ts +12 -3
- package/lib/core/update-check.js +2 -4
- package/lib/core/validator.d.ts +9 -0
- package/lib/core/validator.js +12 -0
- package/lib/foreign/bundle.js +42 -3
- package/lib/foreign/claude-code.js +358 -26
- package/lib/foreign/claude-sessions.d.ts +51 -8
- package/lib/foreign/claude-sessions.js +111 -13
- package/lib/foreign/read-claude-code.d.ts +33 -4
- package/lib/foreign/read-claude-code.js +446 -65
- package/lib/foreign/read-claude-plugins.d.ts +36 -0
- package/lib/foreign/read-claude-plugins.js +403 -0
- package/lib/foreign/registry.js +25 -2
- package/lib/foreign/truth-table.js +6 -4
- package/lib/foreign/types.d.ts +170 -2
- package/lib/index.d.ts +14 -5
- package/lib/index.js +60 -16
- package/lib/market/git-file-writer.js +7 -1
- package/lib/profiles/dsh-profile-launcher.d.ts +20 -0
- package/lib/profiles/dsh-profile-launcher.js +58 -1
- package/lib/profiles/dsh-profile-shared.d.ts +8 -2
- package/lib/profiles/dsh-profile-shared.js +8 -2
- package/lib/routes/foreign.js +8 -1
- package/lib/routes/index.d.ts +1 -1
- package/lib/routes/kit.d.ts +2 -2
- package/lib/routes/sync.js +173 -9
- package/lib/schema/manifest.d.ts +6 -1
- package/lib/schema/manifest.js +55 -0
- package/lib/schema/types.d.ts +47 -2
- package/lib/sync/autosync-config.d.ts +73 -0
- package/lib/sync/autosync-config.js +89 -0
- package/lib/sync/autosync-scheduler.d.ts +80 -6
- package/lib/sync/autosync-scheduler.js +263 -40
- package/lib/sync/gist/gist-transport.d.ts +15 -1
- package/lib/sync/gist/gist-transport.js +66 -5
- package/lib/sync/gist/messages.d.ts +3 -0
- package/lib/sync/gist/messages.js +7 -0
- package/lib/sync/git/git-transport.d.ts +42 -3
- package/lib/sync/git/git-transport.js +146 -3
- package/lib/sync/merge.d.ts +47 -14
- package/lib/sync/merge.js +242 -222
- package/lib/sync/messages.d.ts +8 -0
- package/lib/sync/messages.js +19 -0
- package/lib/sync/risk.d.ts +19 -2
- package/lib/sync/risk.js +10 -3
- package/lib/sync/s3/messages.d.ts +6 -0
- package/lib/sync/s3/messages.js +13 -0
- package/lib/sync/s3/s3-transport.d.ts +9 -1
- package/lib/sync/s3/s3-transport.js +78 -6
- package/lib/sync/sync-engine.d.ts +193 -4
- package/lib/sync/sync-engine.js +450 -37
- package/lib/sync/sync-history.d.ts +11 -0
- package/lib/sync/sync-history.js +20 -0
- package/lib/sync/sync-state.d.ts +43 -0
- package/lib/sync/sync-state.js +44 -0
- package/lib/sync/sync-watcher.d.ts +76 -0
- package/lib/sync/sync-watcher.js +202 -0
- package/lib/sync/text-merge.d.ts +85 -0
- package/lib/sync/text-merge.js +513 -0
- package/lib/sync/transport.d.ts +48 -0
- package/lib/sync/transport.js +12 -0
- package/lib/sync/watch-scope.d.ts +38 -0
- package/lib/sync/watch-scope.js +95 -0
- package/lib/sync/webdav/webdav-transport.d.ts +16 -2
- package/lib/sync/webdav/webdav-transport.js +128 -11
- package/lib/ui/foreign-view.js +10 -0
- package/lib/ui/i18n.d.ts +8 -0
- package/lib/ui/i18n.js +20 -0
- package/lib/ui/rollback-view.d.ts +12 -0
- package/lib/ui/rollback-view.js +2 -0
- package/lib/ui/sync-settings-view.d.ts +47 -0
- package/lib/ui/sync-settings-view.js +24 -0
- package/lib/ui/types.d.ts +21 -0
- package/lib/utils/env-lock.d.ts +1 -0
- package/lib/utils/env-lock.js +7 -4
- package/package.json +6 -6
- package/src/adapters/credentials.ts +22 -4
- package/src/adapters/file-collection.ts +2 -1
- package/src/adapters/mcp.test.ts +235 -1
- package/src/adapters/mcp.ts +276 -5
- package/src/adapters/messages.ts +7 -0
- package/src/adapters/plugin-files.ts +2 -1
- package/src/adapters/plugins.test.ts +176 -2
- package/src/adapters/plugins.ts +107 -21
- package/src/adapters/pnpm-workspace.test.ts +89 -1
- package/src/adapters/pnpm-workspace.ts +127 -2
- package/src/adapters/prompts.ts +20 -3
- package/src/adapters/providers.ts +62 -4
- package/src/adapters/settings.ts +16 -3
- package/src/adapters/skills.test.ts +141 -0
- package/src/adapters/skills.ts +58 -2
- package/src/adapters/ui.ts +16 -3
- package/src/adapters/units-entries.test.ts +190 -0
- package/src/adapters/units.ts +50 -0
- package/src/adapters/workspaces.ts +2 -1
- package/src/client/about/PluginUpdateDialog.tsx +4 -2
- package/src/client/about/ReleaseNotesDialog.tsx +4 -2
- package/src/client/chat/RollbackReviewDialog.tsx +3 -2
- package/src/client/common/Skeleton.tsx +32 -0
- package/src/client/common/routes.ts +9 -0
- package/src/client/config-manager.module.css +321 -11
- package/src/client/home/HomePanel.tsx +14 -6
- package/src/client/import/ForeignImportView.tsx +3 -1
- package/src/client/import/import-wizard-steps.tsx +2 -1
- package/src/client/library/ArtifactRow.tsx +12 -2
- package/src/client/library/LibraryActions.tsx +6 -3
- package/src/client/library/LibraryPanel.tsx +21 -3
- package/src/client/library/RestorePlanView.tsx +4 -2
- package/src/client/locales.ts +3 -0
- package/src/client/recovery/RecoveryPanel.tsx +54 -7
- package/src/client/recovery/RollbackCard.tsx +7 -2
- package/src/client/recovery/RollbackDiffPane.tsx +3 -2
- package/src/client/recovery/recovery-locales.ts +20 -2
- package/src/client/recovery/recovery-view.test.ts +39 -1
- package/src/client/recovery/recovery-view.ts +23 -1
- package/src/client/run-store.test.ts +1 -1
- package/src/client/run-store.ts +4 -0
- package/src/client/sync/AutosyncCard.tsx +49 -6
- package/src/client/sync/MergeModal.tsx +219 -0
- package/src/client/sync/MergePreviewView.tsx +306 -0
- package/src/client/sync/SyncActivityBar.tsx +31 -0
- package/src/client/sync/SyncConfirmView.tsx +2 -1
- package/src/client/sync/SyncPanel.tsx +130 -87
- package/src/client/sync/SyncProbeRow.tsx +162 -0
- package/src/client/sync/SyncSettingsView.test.ts +27 -2
- package/src/client/sync/WorkDirCard.tsx +44 -6
- package/src/client/sync/history-model.ts +4 -1
- package/src/client/sync/merge-view.test.ts +234 -0
- package/src/client/sync/merge-view.ts +371 -0
- package/src/client/sync/probe-view.test.ts +90 -0
- package/src/client/sync/probe-view.ts +63 -0
- package/src/client/sync/remote-device-view.test.ts +35 -0
- package/src/client/sync/remote-device-view.ts +25 -0
- package/src/client/sync/sync-api.ts +212 -2
- package/src/client/sync/sync-entry.test.ts +78 -0
- package/src/client/sync/sync-entry.ts +53 -0
- package/src/client/sync/sync-locales.ts +234 -2
- package/src/client/sync/sync-view.test.ts +18 -1
- package/src/client/sync/sync-view.ts +20 -0
- package/src/core/backup.test.ts +41 -0
- package/src/core/backup.ts +20 -0
- package/src/core/mcp-connector-store.test.ts +265 -0
- package/src/core/mcp-connector-store.ts +516 -0
- package/src/core/messages-core.ts +4 -0
- package/src/core/messages.ts +46 -0
- package/src/core/phase3-host.ts +18 -1
- package/src/core/phase3-production-integration.test.ts +4 -0
- package/src/core/plugin-cli.test.ts +26 -0
- package/src/core/plugin-cli.ts +30 -4
- package/src/core/recovery-orchestrator.test.ts +104 -5
- package/src/core/recovery-orchestrator.ts +74 -17
- package/src/core/rollback-activity.test.ts +311 -0
- package/src/core/rollback-activity.ts +367 -0
- package/src/core/rollback-cross-session.test.ts +694 -0
- package/src/core/rollback-interrupted.test.ts +137 -0
- package/src/core/rollback-ledger.ts +32 -0
- package/src/core/rollback-merge.test.ts +130 -0
- package/src/core/rollback-merge.ts +78 -14
- package/src/core/rollback-point.ts +468 -91
- package/src/core/rollback-undo-journal.test.ts +508 -0
- package/src/core/rollback-undo-journal.ts +571 -0
- package/src/core/self-update.ts +2 -5
- package/src/core/text-fidelity.test.ts +189 -0
- package/src/core/text-fidelity.ts +197 -0
- package/src/core/types.ts +11 -3
- package/src/core/update-check.ts +2 -5
- package/src/core/validator.ts +14 -0
- package/src/foreign/bundle-origin.test.ts +265 -0
- package/src/foreign/bundle.ts +45 -5
- package/src/foreign/claude-code.test.ts +268 -0
- package/src/foreign/claude-code.ts +406 -25
- package/src/foreign/claude-plugins.test.ts +234 -0
- package/src/foreign/claude-sessions.test.ts +141 -0
- package/src/foreign/claude-sessions.ts +179 -23
- package/src/foreign/file-budget.test.ts +4 -1
- package/src/foreign/read-claude-code.test.ts +320 -0
- package/src/foreign/read-claude-code.ts +490 -71
- package/src/foreign/read-claude-plugins.ts +465 -0
- package/src/foreign/registry.ts +25 -2
- package/src/foreign/session-ir.test.ts +65 -0
- package/src/foreign/truth-table.test.ts +81 -0
- package/src/foreign/truth-table.ts +6 -3
- package/src/foreign/types.ts +162 -2
- package/src/index.facade.test.ts +26 -4
- package/src/index.ts +76 -19
- package/src/market/git-file-writer.test.ts +4 -0
- package/src/market/git-file-writer.ts +7 -1
- package/src/profiles/dsh-profile-launcher.test.ts +68 -3
- package/src/profiles/dsh-profile-launcher.ts +56 -1
- package/src/profiles/dsh-profile-shared.ts +8 -2
- package/src/routes/foreign.ts +8 -1
- package/src/routes/index.ts +1 -1
- package/src/routes/kit.ts +2 -2
- package/src/routes/sync.ts +176 -9
- package/src/schema/manifest-schema.test.ts +87 -2
- package/src/schema/manifest.ts +57 -1
- package/src/schema/types.ts +45 -2
- package/src/sync/autosync-config.test.ts +73 -1
- package/src/sync/autosync-config.ts +124 -0
- package/src/sync/autosync-risk-tier.test.ts +38 -2
- package/src/sync/autosync-scheduler.test.ts +264 -12
- package/src/sync/autosync-scheduler.ts +296 -44
- package/src/sync/gist/gist-conditional-write.test.ts +223 -0
- package/src/sync/gist/gist-transport.ts +73 -7
- package/src/sync/gist/messages.ts +7 -0
- package/src/sync/git/git-probe.test.ts +80 -0
- package/src/sync/git/git-transport.test.ts +185 -0
- package/src/sync/git/git-transport.ts +178 -5
- package/src/sync/merge.test.ts +188 -55
- package/src/sync/merge.ts +282 -224
- package/src/sync/messages.ts +19 -0
- package/src/sync/risk.ts +29 -5
- package/src/sync/s3/messages.ts +13 -0
- package/src/sync/s3/s3-conditional-write.test.ts +330 -0
- package/src/sync/s3/s3-transport.ts +87 -9
- package/src/sync/sync-device-identity.test.ts +267 -0
- package/src/sync/sync-engine.test.ts +379 -0
- package/src/sync/sync-engine.ts +535 -36
- package/src/sync/sync-history.test.ts +16 -1
- package/src/sync/sync-history.ts +26 -0
- package/src/sync/sync-state.test.ts +64 -0
- package/src/sync/sync-state.ts +79 -0
- package/src/sync/sync-watcher.test.ts +197 -0
- package/src/sync/sync-watcher.ts +246 -0
- package/src/sync/text-merge.test.ts +358 -0
- package/src/sync/text-merge.ts +554 -0
- package/src/sync/transport.ts +57 -0
- package/src/sync/watch-scope.test.ts +122 -0
- package/src/sync/watch-scope.ts +120 -0
- package/src/sync/webdav/webdav-conditional-write.test.ts +360 -0
- package/src/sync/webdav/webdav-transport.ts +137 -14
- package/src/ui/foreign-view.test.ts +34 -0
- package/src/ui/foreign-view.ts +10 -0
- package/src/ui/i18n.ts +20 -0
- package/src/ui/rollback-view.ts +14 -0
- package/src/ui/sync-settings-view.test.ts +28 -1
- package/src/ui/sync-settings-view.ts +43 -0
- package/src/ui/types.ts +22 -0
- package/src/utils/env-lock.ts +8 -5
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { type DiffHunk } from '../utils/line-diff.ts';
|
|
2
2
|
import type { RollbackWriteAttributionPort, RollbackWriteRecorder } from './rollback-attribution.ts';
|
|
3
|
+
import { type InterruptedUndo } from './rollback-undo-journal.ts';
|
|
3
4
|
import { ROLLBACK_DEFAULT_LEDGER_BYTES } from './rollback-ledger.ts';
|
|
5
|
+
/** 活跃时间窗的**读**端口(core/rollback-activity.ts 的实现注入;缺省 = 没有时间证据) */
|
|
6
|
+
export interface RollbackActivityPort {
|
|
7
|
+
hasDataFor(sessionId: string): boolean;
|
|
8
|
+
sessionsActiveAt(at: number, toleranceMs?: number): string[];
|
|
9
|
+
}
|
|
10
|
+
/** 活跃时间窗的**写**端口(tracker 用;缺省 = 不采集) */
|
|
11
|
+
export interface RollbackActivityRecorder {
|
|
12
|
+
noteActivity(sessionId: string, at?: number): void;
|
|
13
|
+
}
|
|
4
14
|
export declare const ROLLBACK_SCHEMA_VERSION = 2;
|
|
5
15
|
/** 回滚点库目录名(dataDir/rollback-points)——路由族 /recovery/rollback-points/* 同源 */
|
|
6
16
|
export declare const ROLLBACK_POINTS_DIR_NAME = "rollback-points";
|
|
@@ -708,6 +718,25 @@ export interface RollbackPreviewWorkspace {
|
|
|
708
718
|
skippedCount: number;
|
|
709
719
|
/** 捕获是否被上限截断(超单文件上限 / 字节预算 / 文件数预算任一命中即为 true) */
|
|
710
720
|
truncated: boolean;
|
|
721
|
+
/**
|
|
722
|
+
* **冲突**:两侧改到同一处(含同一插入点)⇒ 回退会**跳过**该文件(零写入)。
|
|
723
|
+
* 与执行阶段的 `conflictCount` 同一判据(调用同一份 `mergeForeignRecord`)⇒「预览说有冲突的」=「执行时真的跳过」。
|
|
724
|
+
*/
|
|
725
|
+
conflictCount: number;
|
|
726
|
+
/** 冲突路径逐条清单(上限 {@link ROLLBACK_LEFTOVER_LIST_LIMIT}) */
|
|
727
|
+
conflictPaths: string[];
|
|
728
|
+
/**
|
|
729
|
+
* **无法安全撤销**而会被跳过的文件总数(冲突之外的成因:没有共同祖先 / 二进制 / 差异被降级 /
|
|
730
|
+
* 对方把它改成了不存在 / 读不出)。预览把它们**列出来**而不是静默略过 —— 逐条原因在
|
|
731
|
+
* {@link files} 的 `mergeReason` 上。
|
|
732
|
+
*/
|
|
733
|
+
unavailableCount: number;
|
|
734
|
+
/**
|
|
735
|
+
* **落点无人认领**而会被跳过的文件总数(时间窗归属判定:文件在目标会话静默之后被改过,
|
|
736
|
+
* 且当时没有任何会话处于活跃窗口 —— 手改 / 外部工具 / 另一个进程)。
|
|
737
|
+
* 成因逐条在 {@link files} 的 `mergeReason`(`external-edits`)上。
|
|
738
|
+
*/
|
|
739
|
+
externalCount: number;
|
|
711
740
|
}
|
|
712
741
|
export interface RollbackPreviewSession {
|
|
713
742
|
/** fork 的 inclusive 边界 seq(目标回合开始前最后一个事件);null = 无边界 */
|
|
@@ -821,6 +850,14 @@ export interface RollbackSegmentResult {
|
|
|
821
850
|
* 只在**没有显式点名**(`onlyPaths` 缺省)时生效;显式点名 = 用户明确要它,归属不再拦。
|
|
822
851
|
*/
|
|
823
852
|
foreignSkipped?: number;
|
|
853
|
+
/**
|
|
854
|
+
* **落点无人认领**而未写回的文件总数(时间窗归属判定:文件在目标会话静默之后被改过,
|
|
855
|
+
* 而那一刻没有任何会话处于活跃窗口 ⇒ 手改 / 外部工具 / 另一个 DSH 进程)。
|
|
856
|
+
* 与 conflictCount / unavailableCount 一样是「故意没退」,绝不能并进「0 变更」。
|
|
857
|
+
*/
|
|
858
|
+
externalCount?: number;
|
|
859
|
+
/** 无人认领而未写回的路径逐条清单(上限 {@link ROLLBACK_LEFTOVER_LIST_LIMIT}) */
|
|
860
|
+
externalPaths?: string[];
|
|
824
861
|
/** 三方合并成功、写回「撤销本会话 + 保留对方改动」的条目数(有界清单同给) */
|
|
825
862
|
mergedCount?: number;
|
|
826
863
|
mergedPaths?: string[];
|
|
@@ -893,6 +930,11 @@ export interface RollbackEngineOptions {
|
|
|
893
930
|
* 回退行为与旧版**逐字一致**(未判定绝不当作「别的会话写的」)。
|
|
894
931
|
*/
|
|
895
932
|
attribution?: RollbackWriteAttributionPort;
|
|
933
|
+
/**
|
|
934
|
+
* 会话活跃时间窗(2026-10-18 新增)。缺省 = 没有时间证据 ⇒ 归属判定退回归属台账那一条,
|
|
935
|
+
* 回退行为与加它之前**逐字一致**(未判定绝不当作「别的会话写的」,也绝不凭空拦截)。
|
|
936
|
+
*/
|
|
937
|
+
activity?: RollbackActivityPort;
|
|
896
938
|
/** DSH home(会话根 = homeDir/sessions) */
|
|
897
939
|
homeDir: string;
|
|
898
940
|
now?: () => number;
|
|
@@ -1086,6 +1128,7 @@ export declare class RollbackPointEngine {
|
|
|
1086
1128
|
private readonly ledger;
|
|
1087
1129
|
/** 写入归属(2026-10-17 定案 B)。undefined = 没有归属信息 ⇒ 预览不标 foreign */
|
|
1088
1130
|
private readonly attribution;
|
|
1131
|
+
private readonly activity;
|
|
1089
1132
|
private readonly ledgerBytesBudget;
|
|
1090
1133
|
/**
|
|
1091
1134
|
* 工作区捕获的挂钟时间预算(毫秒;见 ROLLBACK_DEFAULT_CAPTURE_BUDGET_MS)。**可变**:
|
|
@@ -1450,6 +1493,31 @@ export declare class RollbackPointEngine {
|
|
|
1450
1493
|
* 预览若照旧拿 ours 算差异,就会把「其实会被保留的对方改动」显示成「会被删掉」。
|
|
1451
1494
|
*/
|
|
1452
1495
|
private previewMergeCounts;
|
|
1496
|
+
/**
|
|
1497
|
+
* **中断的回退**(2026-10-18):进程在「回退写到一半」时没了 ⇒ 工作区停在半回退状态。
|
|
1498
|
+
*
|
|
1499
|
+
* 判据 = 目录名形态(`<pid>-<ts36>-<8hex>`)+ 有 journal 索引 + **没有 done** + 持锁进程已死
|
|
1500
|
+
*(全部在 rollback-undo-journal.ts 里,可注入 isAlive 以便测试)。
|
|
1501
|
+
*
|
|
1502
|
+
* 只读:不改工作区、不删现场;是否重放由用户决定(见 recoverInterruptedRollback)。
|
|
1503
|
+
* 这也是 cleanupOrphanTempFiles 不再整目录删它的原因 —— 删了就等于把半回退现场变成
|
|
1504
|
+
* 「无人知晓的部分修改」,正是任务要求里禁止留下的东西。
|
|
1505
|
+
*/
|
|
1506
|
+
interruptedRollbacks(): Promise<InterruptedUndo[]>;
|
|
1507
|
+
/**
|
|
1508
|
+
* 把一条中断的回退**退回回退前**(重放前像),返回逐条结果。
|
|
1509
|
+
*
|
|
1510
|
+
* 安全边界全在 replayUndoJournal 里:只有「当前内容仍等于 after 镜像」的条目才写回 ——
|
|
1511
|
+
* 之后发生的任何人工 / 外部 / 别的会话的改动一律**跳过**并如实回报(绝不覆盖)。
|
|
1512
|
+
* 只有全部条目都成功(没有 skipped / failed)才清理现场;否则现场留着,可以再看、再试。
|
|
1513
|
+
*/
|
|
1514
|
+
recoverInterruptedRollback(dir: string): Promise<{
|
|
1515
|
+
ok: boolean;
|
|
1516
|
+
restored: number;
|
|
1517
|
+
skipped: string[];
|
|
1518
|
+
failed: string[];
|
|
1519
|
+
detail: string;
|
|
1520
|
+
}>;
|
|
1453
1521
|
/** 只读预览:零写入(不过确认门、不拍 guard、不写任何字节)。 */
|
|
1454
1522
|
preview(id: string): Promise<RollbackPreviewResult>;
|
|
1455
1523
|
/**
|
|
@@ -1502,6 +1570,25 @@ export declare class RollbackPointEngine {
|
|
|
1502
1570
|
* **本会话的点**(见上)、以及内容读不出来的点(继续往后找 —— 找不到 ⇒ 调用方按「无法安全撤销」
|
|
1503
1571
|
* 处理,绝不用近似值代替)。
|
|
1504
1572
|
*/
|
|
1573
|
+
/**
|
|
1574
|
+
* 这条路径**是谁写的** —— 只读旁证(归属台账 + 活跃时间窗),**绝不从内容猜**。
|
|
1575
|
+
*
|
|
1576
|
+
* 优先归属台账(tool/call 参数,精确到调用);没有归属时看文件 mtime 落在谁的活跃窗口内 ——
|
|
1577
|
+
* 这一条与工具无关,因此 bash / 脚本 / 外部编辑器写的路径同样能被判出来。
|
|
1578
|
+
* `hasDataFor` 是「有没有覆盖」的自证:**没有覆盖就返回 unknown**(不拦),有覆盖却没有任何会话
|
|
1579
|
+
* 活跃在那一刻才返回 unclaimed(手改 / 外部工具 / 另一个 DSH 进程)。
|
|
1580
|
+
*/
|
|
1581
|
+
private provenanceOf;
|
|
1582
|
+
/**
|
|
1583
|
+
* 目标点之后**别的会话的回合点**里,有没有哪个**不含**这条路径(= 那一刻它不存在)。
|
|
1584
|
+
*
|
|
1585
|
+
* 它证明的是:「当前磁盘上这份内容是该点之后才出现的」⇒ 拿目标点的内容整文件覆盖它,等于
|
|
1586
|
+
* 抹掉对方新建/重建的工作(2026-10-18:A 删文件、B 重建,回退 A 把 B 的内容覆盖回旧版本)。
|
|
1587
|
+
* 截断的点(`payload.truncated`)不能用来证明「不存在」,一律跳过;只扫最早的若干个点(有界)。
|
|
1588
|
+
*/
|
|
1589
|
+
private absentAtForeignPointOf;
|
|
1590
|
+
/** 两档 base:**别的会话的回合点**优先,其次**救援点**(见 baseVersionFor 的判据注释) */
|
|
1591
|
+
private baseFor;
|
|
1505
1592
|
private baseVersionFor;
|
|
1506
1593
|
/**
|
|
1507
1594
|
* **别的会话的回合点里记录过的路径集合** —— 删除集保护的第二种证据(不依赖归属台账)。
|
|
@@ -1606,6 +1693,11 @@ export interface RollbackTrackerOptions {
|
|
|
1606
1693
|
* 回退行为与旧版**逐字一致**。
|
|
1607
1694
|
*/
|
|
1608
1695
|
attribution?: RollbackWriteRecorder;
|
|
1696
|
+
/**
|
|
1697
|
+
* 会话活跃时间窗采集器(2026-10-18)。缺省 = 不采集 ⇒ 归属判定只剩 tool/call 参数那一条。
|
|
1698
|
+
* **每个事件都记一次**(与工具参数无关),因此 bash / 脚本 / 外部编辑器写的路径同样有归属证据。
|
|
1699
|
+
*/
|
|
1700
|
+
activity?: RollbackActivityRecorder;
|
|
1609
1701
|
}
|
|
1610
1702
|
export interface RollbackTrackerResult {
|
|
1611
1703
|
captured: boolean;
|
|
@@ -1668,6 +1760,7 @@ export declare class RollbackAutoTracker {
|
|
|
1668
1760
|
private readonly log;
|
|
1669
1761
|
private readonly statSessionLog;
|
|
1670
1762
|
private readonly attribution;
|
|
1763
|
+
private readonly activity;
|
|
1671
1764
|
private readonly bindings;
|
|
1672
1765
|
private readonly open;
|
|
1673
1766
|
/**
|