dsh-git-worktree 0.3.2 → 0.6.0

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.
Files changed (92) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/README.en.md +48 -18
  3. package/README.md +49 -18
  4. package/lib/adapters/git.js +8 -0
  5. package/lib/adapters/git.js.map +1 -1
  6. package/lib/adapters/registry.js +107 -2
  7. package/lib/adapters/registry.js.map +1 -1
  8. package/lib/checkpoint.d.ts +3 -0
  9. package/lib/checkpoint.js +29 -0
  10. package/lib/checkpoint.js.map +1 -0
  11. package/lib/client/WorktreeReviewRow.d.ts +1 -1
  12. package/lib/client/WorktreeReviewRow.js +26 -6
  13. package/lib/client/WorktreeReviewRow.js.map +1 -1
  14. package/lib/client/actions.d.ts +49 -4
  15. package/lib/client/actions.js +104 -0
  16. package/lib/client/actions.js.map +1 -1
  17. package/lib/client/console-remote/adapter.js +10 -3
  18. package/lib/client/console-remote/adapter.js.map +1 -1
  19. package/lib/client/review-console/DeliveryProof.d.ts +5 -0
  20. package/lib/client/review-console/DeliveryProof.js +32 -0
  21. package/lib/client/review-console/DeliveryProof.js.map +1 -0
  22. package/lib/client/review-console/PreflightStatus.d.ts +12 -0
  23. package/lib/client/review-console/PreflightStatus.js +31 -0
  24. package/lib/client/review-console/PreflightStatus.js.map +1 -0
  25. package/lib/client/review-console/ReviewActions.d.ts +4 -1
  26. package/lib/client/review-console/ReviewActions.js +657 -31
  27. package/lib/client/review-console/ReviewActions.js.map +1 -1
  28. package/lib/client/review-console/WorktreeReviewPanel.d.ts +3 -1
  29. package/lib/client/review-console/WorktreeReviewPanel.js +35 -5
  30. package/lib/client/review-console/WorktreeReviewPanel.js.map +1 -1
  31. package/lib/client/review-console/preflight-cache.d.ts +21 -0
  32. package/lib/client/review-console/preflight-cache.js +98 -0
  33. package/lib/client/review-console/preflight-cache.js.map +1 -0
  34. package/lib/client/review-console/preview-recovery-cache.d.ts +20 -0
  35. package/lib/client/review-console/preview-recovery-cache.js +103 -0
  36. package/lib/client/review-console/preview-recovery-cache.js.map +1 -0
  37. package/lib/client/review-console/recovery-continuation.d.ts +53 -0
  38. package/lib/client/review-console/recovery-continuation.js +483 -0
  39. package/lib/client/review-console/recovery-continuation.js.map +1 -0
  40. package/lib/client/review-console/review-console.styles.js +36 -4
  41. package/lib/client/review-console/review-console.styles.js.map +1 -1
  42. package/lib/client/target-console/TargetStatusAction.d.ts +4 -2
  43. package/lib/client/target-console/TargetStatusAction.js +196 -23
  44. package/lib/client/target-console/TargetStatusAction.js.map +1 -1
  45. package/lib/client/target-console/WorktreeConsoleView.d.ts +4 -2
  46. package/lib/client/target-console/WorktreeConsoleView.js +33 -73
  47. package/lib/client/target-console/WorktreeConsoleView.js.map +1 -1
  48. package/lib/client/target-console/WorktreeManagerModal.d.ts +13 -0
  49. package/lib/client/target-console/WorktreeManagerModal.js +8 -0
  50. package/lib/client/target-console/WorktreeManagerModal.js.map +1 -0
  51. package/lib/client/target-console/WorktreeReviewStatus.d.ts +3 -1
  52. package/lib/client/target-console/WorktreeReviewStatus.js +35 -15
  53. package/lib/client/target-console/WorktreeReviewStatus.js.map +1 -1
  54. package/lib/client/target-console/index.d.ts +2 -1
  55. package/lib/client/target-console/index.js +4 -3
  56. package/lib/client/target-console/index.js.map +1 -1
  57. package/lib/client/target-console/target-console.styles.js +22 -3
  58. package/lib/client/target-console/target-console.styles.js.map +1 -1
  59. package/lib/client.js +2976 -211
  60. package/lib/console-contract.d.ts +110 -1
  61. package/lib/console-contract.js.map +1 -1
  62. package/lib/console-host/control-plane.d.ts +6 -1
  63. package/lib/console-host/control-plane.js +363 -44
  64. package/lib/console-host/control-plane.js.map +1 -1
  65. package/lib/console-host/errors.d.ts +2 -2
  66. package/lib/console-host/errors.js +21 -5
  67. package/lib/console-host/errors.js.map +1 -1
  68. package/lib/console-host/projection.d.ts +5 -3
  69. package/lib/console-host/projection.js +103 -11
  70. package/lib/console-host/projection.js.map +1 -1
  71. package/lib/console-host/service.d.ts +10 -5
  72. package/lib/console-host/service.js +48 -6
  73. package/lib/console-host/service.js.map +1 -1
  74. package/lib/console-remote/descriptors.js +37 -1
  75. package/lib/console-remote/descriptors.js.map +1 -1
  76. package/lib/console-remote/remote.d.ts +10 -5
  77. package/lib/console-remote/remote.js.map +1 -1
  78. package/lib/console-remote/schemas.d.ts +103 -1
  79. package/lib/console-remote/schemas.js +166 -6
  80. package/lib/console-remote/schemas.js.map +1 -1
  81. package/lib/index.d.ts +13 -2
  82. package/lib/index.js.map +1 -1
  83. package/lib/ports.d.ts +79 -1
  84. package/lib/session-checkout-apply.d.ts +76 -0
  85. package/lib/session-checkout-apply.js +608 -143
  86. package/lib/session-checkout-apply.js.map +1 -1
  87. package/lib/session-checkout-module.js +775 -117
  88. package/lib/session-checkout-module.js.map +1 -1
  89. package/lib/types.d.ts +104 -3
  90. package/lib/types.js.map +1 -1
  91. package/package.json +14 -14
  92. package/scripts/check-publish.mjs +2 -2
@@ -23,6 +23,19 @@ function isRecord(value) {
23
23
  function isStringArray(value) {
24
24
  return Array.isArray(value) && value.every((item) => typeof item === 'string');
25
25
  }
26
+ function isOid(value) {
27
+ return typeof value === 'string' && /^(?:[0-9a-f]{40}|[0-9a-f]{64})$/iu.test(value);
28
+ }
29
+ function isBoundedText(value, max) {
30
+ return typeof value === 'string' && value.length > 0 && value.length <= max && !/[\0]/u.test(value);
31
+ }
32
+ function isSafeRelativePath(value) {
33
+ if (typeof value !== 'string' || !value || value.length > 1000 || /[\0-\x1f\x7f]/u.test(value))
34
+ return false;
35
+ if (/^(?:[A-Za-z]:[\\/]|[\\/])/u.test(value))
36
+ return false;
37
+ return !value.split(/[\\/]/u).some((segment) => segment === '' || segment === '.' || segment === '..');
38
+ }
26
39
  function isTargetRef(value) {
27
40
  if (!isRecord(value) || typeof value.kind !== 'string')
28
41
  return false;
@@ -60,6 +73,33 @@ function isReview(value) {
60
73
  && typeof value.isolatedFingerprint === 'string'
61
74
  && typeof value.isolatedHeadOid === 'string';
62
75
  }
76
+ function isPreviousReview(value) {
77
+ return isRecord(value)
78
+ && isBoundedText(value.reviewId, 200)
79
+ && Number.isSafeInteger(value.iteration) && value.iteration >= 1
80
+ && isBoundedText(value.summary, 1000)
81
+ && isBoundedText(value.suggestedCommitMessage, 500)
82
+ && Array.isArray(value.changedFiles) && value.changedFiles.length <= 50
83
+ && value.changedFiles.every(isSafeRelativePath);
84
+ }
85
+ function isCheckpoint(value) {
86
+ return isRecord(value)
87
+ && isBoundedText(value.checkpointId, 200)
88
+ && Number.isSafeInteger(value.sequence) && value.sequence >= 1
89
+ && isBoundedText(value.reviewId, 200)
90
+ && (value.requestId === undefined || (isBoundedText(value.requestId, 200) && !/[\r\n]/u.test(value.requestId)))
91
+ && (value.requestedRevision === undefined || (Number.isSafeInteger(value.requestedRevision) && value.requestedRevision >= 0))
92
+ && (value.generation === undefined || (typeof value.generation === 'string' && /^[0-9a-f]{64}$/u.test(value.generation)))
93
+ && Number.isSafeInteger(value.iteration) && value.iteration >= 1
94
+ && Number.isSafeInteger(value.createdAt) && value.createdAt >= 0
95
+ && isOid(value.commitOid)
96
+ && isOid(value.parentOid)
97
+ && isBoundedText(value.summary, 1000)
98
+ && isBoundedText(value.commitMessage, 500)
99
+ && (value.validationStatus === 'passed' || value.validationStatus === 'failed' || value.validationStatus === 'partial' || value.validationStatus === 'not_run')
100
+ && Array.isArray(value.changedFiles) && value.changedFiles.length <= 500
101
+ && value.changedFiles.every(isSafeRelativePath);
102
+ }
63
103
  function isPreviewReceipt(value) {
64
104
  return isRecord(value)
65
105
  && typeof value.previewId === 'string'
@@ -86,7 +126,13 @@ function isDeliveryProof(value) {
86
126
  && (value.localBranch === null || typeof value.localBranch === 'string')
87
127
  && typeof value.localHeadBefore === 'string'
88
128
  && typeof value.localHeadAfter === 'string'
89
- && isStringArray(value.changedFiles);
129
+ && isStringArray(value.changedFiles)
130
+ && (value.validationStatus === undefined
131
+ || value.validationStatus === 'passed'
132
+ || value.validationStatus === 'failed'
133
+ || value.validationStatus === 'partial'
134
+ || value.validationStatus === 'not_run')
135
+ && (value.validationSummary === undefined || typeof value.validationSummary === 'string');
90
136
  }
91
137
  function isDelivery(value) {
92
138
  if (!isRecord(value) || typeof value.state !== 'string')
@@ -144,6 +190,7 @@ function isJournal(value) {
144
190
  return value.step === 'creating_worktree';
145
191
  const validOperation = value.operation === 'apply'
146
192
  || value.operation === 'preview'
193
+ || value.operation === 'checkpoint'
147
194
  || value.operation === 'rollback_preview'
148
195
  || value.operation === 'finish'
149
196
  || value.operation === 'finalize_preview'
@@ -166,11 +213,59 @@ function isJournal(value) {
166
213
  && (value.baseStrategy === undefined || value.baseStrategy === 'recorded_base' || value.baseStrategy === 'isolated_contains_local_head' || value.baseStrategy === 'local_contains_isolated_head')
167
214
  && (value.localHeadOid === undefined || typeof value.localHeadOid === 'string')
168
215
  && (value.isolatedHeadOid === undefined || typeof value.isolatedHeadOid === 'string')
169
- && (value.commitOid === undefined || typeof value.commitOid === 'string')
216
+ && (value.commitOid === undefined || isOid(value.commitOid))
217
+ && (value.checkpointId === undefined || isBoundedText(value.checkpointId, 200))
218
+ && (value.checkpointSequence === undefined || (Number.isSafeInteger(value.checkpointSequence) && value.checkpointSequence >= 1))
219
+ && (value.checkpointRequestId === undefined || (isBoundedText(value.checkpointRequestId, 200) && !/[\r\n]/u.test(value.checkpointRequestId)))
220
+ && (value.checkpointRequestedRevision === undefined || (Number.isSafeInteger(value.checkpointRequestedRevision) && value.checkpointRequestedRevision >= 0))
221
+ && (value.checkpointMessage === undefined || isBoundedText(value.checkpointMessage, 500))
222
+ && (value.checkpointIndexTreeOid === undefined || isOid(value.checkpointIndexTreeOid))
223
+ && (value.parentOid === undefined || isOid(value.parentOid))
170
224
  && (value.retention === undefined || value.retention === 'cleanup' || value.retention === 'retain_24h' || value.retention === 'retain_3d' || value.retention === 'retain_manual')
225
+ && (value.recoveryGeneration === undefined || (typeof value.recoveryGeneration === 'string' && /^[0-9a-f]{64}$/u.test(value.recoveryGeneration)))
171
226
  && (value.resumeRevision === undefined || typeof value.resumeRevision === 'boolean')
172
227
  && (value.changedFiles === undefined || isStringArray(value.changedFiles));
173
228
  }
229
+ function safeRecoveryString(value, max) {
230
+ return typeof value === 'string' && value.length > 0 && value.length <= max && !/[\0\r\n]/u.test(value);
231
+ }
232
+ function safeRecoveryRevision(value) {
233
+ return Number.isSafeInteger(value) && value >= 0;
234
+ }
235
+ function safeConflictFile(value) {
236
+ if (typeof value !== 'string' || !value || value.length > 1000 || /[\0-\x1f\x7f]/u.test(value))
237
+ return false;
238
+ if (/^(?:[A-Za-z]:[\\/]|[\\/])/u.test(value))
239
+ return false;
240
+ return !value.split(/[\\/]/u).some(segment => segment === '' || segment === '.' || segment === '..');
241
+ }
242
+ function isRecoveryContinuation(value) {
243
+ if (!isRecord(value) || !safeRecoveryString(value.requestId, 500) || !safeRecoveryString(value.reviewId, 200))
244
+ return false;
245
+ if (value.kind === 'worktree_review_regeneration')
246
+ return safeRecoveryRevision(value.revision);
247
+ if (value.kind === 'worktree_preview_recovery_analysis') {
248
+ return safeRecoveryRevision(value.revision)
249
+ && safeRecoveryString(value.previewId, 200)
250
+ && typeof value.generation === 'string'
251
+ && /^[0-9a-f]{64}$/u.test(value.generation);
252
+ }
253
+ if (value.kind === 'worktree_preview_recovery_handoff') {
254
+ return safeRecoveryRevision(value.sourceRevision)
255
+ && safeRecoveryString(value.sourceCheckoutId, 200)
256
+ && safeRecoveryString(value.previewId, 200)
257
+ && typeof value.generation === 'string'
258
+ && /^[0-9a-f]{64}$/u.test(value.generation);
259
+ }
260
+ return value.kind === 'worktree_apply_conflict'
261
+ && safeRecoveryRevision(value.readyRevision)
262
+ && safeRecoveryRevision(value.workingRevision)
263
+ && typeof value.localHeadOid === 'string'
264
+ && /^(?:[0-9a-f]{40}|[0-9a-f]{64})$/iu.test(value.localHeadOid)
265
+ && Array.isArray(value.conflictingFiles)
266
+ && value.conflictingFiles.length <= 500
267
+ && value.conflictingFiles.every(safeConflictFile);
268
+ }
174
269
  function isManagedCheckout(value) {
175
270
  return isRecord(value)
176
271
  && typeof value.checkoutId === 'string'
@@ -186,6 +281,16 @@ function isManagedCheckout(value) {
186
281
  && typeof value.gitDir === 'string'
187
282
  && typeof value.baseOid === 'string'
188
283
  && (value.applyBaseOid === undefined || typeof value.applyBaseOid === 'string')
284
+ && (value.previousReview === undefined || isPreviousReview(value.previousReview))
285
+ && (value.checkpoints === undefined || (Array.isArray(value.checkpoints)
286
+ && value.checkpoints.length <= 100
287
+ && value.checkpoints.every(isCheckpoint)
288
+ && value.checkpoints.every((checkpoint, index) => checkpoint.sequence === index + 1)
289
+ && new Set(value.checkpoints.map(checkpoint => checkpoint.checkpointId)).size === value.checkpoints.length
290
+ && new Set(value.checkpoints.map(checkpoint => checkpoint.reviewId)).size === value.checkpoints.length
291
+ && new Set(value.checkpoints.flatMap(checkpoint => checkpoint.requestId === undefined ? [] : [checkpoint.requestId])).size
292
+ === value.checkpoints.filter(checkpoint => checkpoint.requestId !== undefined).length))
293
+ && (value.recoveryContinuation === undefined || isRecoveryContinuation(value.recoveryContinuation))
189
294
  && typeof value.sourceRef === 'string'
190
295
  && (value.phase === 'preparing' || value.phase === 'ready' || value.phase === 'mutating' || value.phase === 'recovery_required' || value.phase === 'finalized' || value.phase === 'retained' || value.phase === 'discarded')
191
296
  && isDelivery(value.delivery)
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ManagedCheckoutRecord } from './ports.js';
2
+ /** Host-derived CAS generation for the exact active Review and checkpoint chain. */
3
+ export declare function checkpointGenerationForRecord(record: ManagedCheckoutRecord): string | undefined;
@@ -0,0 +1,29 @@
1
+ import { createHash } from 'node:crypto';
2
+ function canonicalJson(value) {
3
+ if (Array.isArray(value))
4
+ return `[${value.map(canonicalJson).join(',')}]`;
5
+ if (value !== null && typeof value === 'object') {
6
+ const entries = Object.entries(value)
7
+ .filter(([, entry]) => entry !== undefined)
8
+ .sort(([left], [right]) => left.localeCompare(right));
9
+ return `{${entries.map(([key, entry]) => `${JSON.stringify(key)}:${canonicalJson(entry)}`).join(',')}}`;
10
+ }
11
+ return JSON.stringify(value);
12
+ }
13
+ /** Host-derived CAS generation for the exact active Review and checkpoint chain. */
14
+ export function checkpointGenerationForRecord(record) {
15
+ const delivery = record.delivery;
16
+ if (delivery.state !== 'ready_for_review' && delivery.state !== 'preview_active')
17
+ return undefined;
18
+ return createHash('sha256').update(canonicalJson({
19
+ checkoutId: record.checkoutId,
20
+ revision: record.revision,
21
+ reviewId: delivery.review.reviewId,
22
+ isolatedHeadOid: delivery.review.isolatedHeadOid,
23
+ isolatedFingerprint: delivery.review.isolatedFingerprint,
24
+ checkpointCount: record.checkpoints?.length ?? 0,
25
+ previewId: delivery.state === 'preview_active' ? delivery.preview.previewId : null,
26
+ phase: record.phase,
27
+ })).digest('hex');
28
+ }
29
+ //# sourceMappingURL=checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IAC1E,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;aAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;aAC1C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;QACvD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACzG,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,6BAA6B,CAAC,MAA6B;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAChC,IAAI,QAAQ,CAAC,KAAK,KAAK,kBAAkB,IAAI,QAAQ,CAAC,KAAK,KAAK,gBAAgB;QAAE,OAAO,SAAS,CAAA;IAClG,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;QAClC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;QAChD,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB;QACxD,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;QAChD,SAAS,EAAE,QAAQ,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAClF,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACnB,CAAC"}
@@ -7,5 +7,5 @@ interface Props extends ToolCallViewPropsLike {
7
7
  /** Optional live Remote seam; logged evidence remains replayable without it. */
8
8
  adapter?: WorktreeConsoleAdapter;
9
9
  }
10
- export declare function WorktreeReviewRow({ block, sessionId, adapter }: Props): import("react").JSX.Element;
10
+ export declare function WorktreeReviewRow({ block, sessionId, adapter, services }: Props): import("react").JSX.Element;
11
11
  export {};
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
3
  import { parseReviewTool } from './model.js';
4
- import { requestWorktreeReviewRefresh } from './review-console/status-events.js';
4
+ import { requestWorktreeReviewRefresh, WORKTREE_REVIEW_REFRESH_EVENT } from './review-console/status-events.js';
5
5
  import { WorktreeReviewPanel, } from './review-console/WorktreeReviewPanel.js';
6
- export function WorktreeReviewRow({ block, sessionId, adapter }) {
6
+ export function WorktreeReviewRow({ block, sessionId, adapter, services }) {
7
7
  const model = parseReviewTool(block);
8
8
  const payload = model.payload;
9
9
  const args = model.args;
@@ -28,19 +28,39 @@ export function WorktreeReviewRow({ block, sessionId, adapter }) {
28
28
  if (payload && sessionId)
29
29
  requestWorktreeReviewRefresh(sessionId);
30
30
  }, [payload?.reviewId, payload?.revision, sessionId]);
31
+ useEffect(() => {
32
+ if (!sessionId)
33
+ return;
34
+ const listener = (event) => {
35
+ const detail = event.detail;
36
+ if (detail?.sessionId === sessionId)
37
+ setRefreshNonce(value => value + 1);
38
+ };
39
+ window.addEventListener(WORKTREE_REVIEW_REFRESH_EVENT, listener);
40
+ return () => window.removeEventListener(WORKTREE_REVIEW_REFRESH_EVENT, listener);
41
+ }, [sessionId]);
31
42
  useEffect(() => {
32
43
  setLiveTarget(undefined);
33
44
  setLiveError(null);
45
+ }, [adapter, payload?.reviewId, payload?.revision, sessionId]);
46
+ useEffect(() => {
34
47
  if (!adapter || !sessionId || !payload)
35
48
  return;
36
49
  let active = true;
37
50
  void adapter.current({ sessionId }).then(outcome => {
38
51
  if (!active)
39
52
  return;
40
- if (outcome.ok)
41
- setLiveTarget(outcome.value.target);
42
- else
53
+ if (outcome.ok) {
54
+ setLiveTarget(current => current
55
+ && current.checkoutId === outcome.value.target.checkoutId
56
+ && current.revision > outcome.value.target.revision
57
+ ? current
58
+ : outcome.value.target);
59
+ setLiveError(null);
60
+ }
61
+ else {
43
62
  setLiveError(`${outcome.error.code}: ${outcome.error.message}`);
63
+ }
44
64
  }, reason => {
45
65
  if (active)
46
66
  setLiveError(reason instanceof Error ? reason.message : String(reason));
@@ -62,6 +82,6 @@ export function WorktreeReviewRow({ block, sessionId, adapter }) {
62
82
  : adapter && sessionId
63
83
  ? '正在连接实时 Worktree Console;历史验收证据仍可查看。'
64
84
  : '实时 Worktree Console 未连接;连接后即可执行验收操作。';
65
- return (_jsxs("section", { className: "dsh-wt-card", "data-tool": "worktree_ready_for_review", "data-state": state, "aria-label": "Worktree \u5F85\u9A8C\u6536", children: [review ? (_jsx(WorktreeReviewPanel, { review: review, adapter: adapter, identity: identity, target: liveTarget, unavailableMessage: unavailableMessage, onRefresh: () => setRefreshNonce(value => value + 1), onTargetChange: setLiveTarget })) : (_jsxs("header", { className: "dsh-wt-head", children: [_jsx("span", { className: "dsh-wt-mark", "aria-hidden": true }), _jsx("strong", { className: "dsh-wt-title", children: "Worktree \u5F85\u9A8C\u6536" }), _jsx("span", { className: "dsh-wt-subtitle", children: model.lifecycle === 'running' ? '正在冻结验收快照…' : '验收信息不可用' })] })), model.error ? _jsx("div", { className: "dsh-wt-body", children: _jsx("div", { className: "dsh-wt-error", role: "alert", children: model.error }) }) : null] }));
85
+ return (_jsxs("section", { className: "dsh-wt-card", "data-tool": "worktree_ready_for_review", "data-state": state, "aria-label": "Worktree \u5F85\u9A8C\u6536", children: [review ? (_jsx(WorktreeReviewPanel, { review: review, adapter: adapter, services: services, identity: identity, target: liveTarget, unavailableMessage: unavailableMessage, onRefresh: () => setRefreshNonce(value => value + 1), onTargetChange: setLiveTarget })) : (_jsxs("header", { className: "dsh-wt-head", children: [_jsx("span", { className: "dsh-wt-mark", "aria-hidden": true }), _jsx("strong", { className: "dsh-wt-title", children: "Worktree \u5F85\u9A8C\u6536" }), _jsx("span", { className: "dsh-wt-subtitle", children: model.lifecycle === 'running' ? '正在冻结验收快照…' : '验收信息不可用' })] })), model.error ? _jsx("div", { className: "dsh-wt-body", children: _jsx("div", { className: "dsh-wt-error", role: "alert", children: model.error }) }) : null] }));
66
86
  }
67
87
  //# sourceMappingURL=WorktreeReviewRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeReviewRow.js","sourceRoot":"","sources":["../../src/client/WorktreeReviewRow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorktreeReviewRow.js","sourceRoot":"","sources":["../../src/client/WorktreeReviewRow.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /** Browser-side orchestration over Harness Workspace and Session runtime faces. */
2
+ import type { WorktreeConsoleAdapter } from '../console-contract.js';
2
3
  export interface IsolatedTargetLocation {
3
4
  managedRoot: string;
4
5
  targetSessionId: string;
@@ -7,10 +8,34 @@ export interface SnapshotStore<T> {
7
8
  getSnapshot(): T;
8
9
  subscribe(listener: () => void): () => void;
9
10
  }
11
+ export interface ClientSessionSnapshot {
12
+ running: boolean;
13
+ openState: 'cold' | 'loading' | 'open' | 'error';
14
+ removed: boolean;
15
+ }
10
16
  export interface ClientSessionBinding {
11
17
  /** Agent-scoped Client Context; present on real Harness bindings. */
12
18
  ctx?: unknown;
13
19
  session: {
20
+ readonly sessionId?: string;
21
+ getSnapshot?(): ClientSessionSnapshot;
22
+ subscribe?(listener: () => void): () => void;
23
+ prompt?(content: Array<{
24
+ type: 'text';
25
+ text: string;
26
+ }>, mode: 'queue' | 'steer', signal?: AbortSignal): Promise<{
27
+ ok: true;
28
+ value: {
29
+ accepted: true;
30
+ };
31
+ } | {
32
+ ok: false;
33
+ error: {
34
+ code: string;
35
+ message: string;
36
+ details?: Record<string, unknown>;
37
+ };
38
+ }>;
14
39
  command(line: string): Promise<{
15
40
  ok: true;
16
41
  value: {
@@ -29,7 +54,9 @@ export interface ClientSessions {
29
54
  list: SnapshotStore<{
30
55
  current?: string;
31
56
  ids: string[];
32
- byId: Record<string, unknown>;
57
+ byId: Record<string, {
58
+ cwd?: string;
59
+ } | undefined>;
33
60
  }>;
34
61
  /** Harness resolves only after the new Session is projected into list/binding. */
35
62
  create(input: {
@@ -51,6 +78,12 @@ export interface ClientWorkspaces {
51
78
  export interface WorktreeClientServices {
52
79
  sessions: ClientSessions;
53
80
  workspaces: ClientWorkspaces;
81
+ /** Optional public composer face used only by manual draft-prefill actions. */
82
+ conversation?: {
83
+ input: {
84
+ for(ctx: unknown): PreSessionInput;
85
+ };
86
+ };
54
87
  }
55
88
  export interface PreSessionInput {
56
89
  setDraft(text: string): void;
@@ -65,6 +98,9 @@ export interface PreSessionWorktreeServices extends WorktreeClientServices {
65
98
  delete(workspaceId: string): Promise<void>;
66
99
  };
67
100
  conversation: {
101
+ input: {
102
+ for(ctx: unknown): PreSessionInput;
103
+ };
68
104
  blocks: {
69
105
  set(sessionId: string, block: {
70
106
  reason: string;
@@ -75,12 +111,21 @@ export interface PreSessionWorktreeServices extends WorktreeClientServices {
75
111
  } | undefined;
76
112
  };
77
113
  };
78
- input: {
79
- for(ctx: unknown): PreSessionInput;
80
- };
81
114
  };
82
115
  }
116
+ /** Open a Session only when the Harness list proves both its identity and cwd. */
117
+ export declare function openExistingSession(services: Pick<WorktreeClientServices, 'sessions'>, sessionId: string, expectedCwd: string): boolean;
83
118
  /** Idempotently register the managed root, create the preallocated Session, and navigate. */
84
119
  export declare function openIsolatedTarget(services: WorktreeClientServices, payload: IsolatedTargetLocation, isActive?: () => boolean): Promise<void>;
120
+ /**
121
+ * Inspect a path-free Host authorization, verify exact checkout/owner identity,
122
+ * then reuse the cwd-validated Session navigation path.
123
+ */
124
+ export declare function openAuthorizedWorktreeTarget(adapter: Pick<WorktreeConsoleAdapter, 'inspect'>, services: WorktreeClientServices, callerSessionId: string, expected: {
125
+ checkoutId: string;
126
+ ownerSessionId: string;
127
+ }, isActive?: () => boolean): Promise<void>;
128
+ /** Prefill a visible recovery request. This never invokes command/send/followup. */
129
+ export declare function prefillSessionDraft(services: WorktreeClientServices, sessionId: string, text: string): boolean;
85
130
  /** Submit an exact review-card acceptance as an explicit user command. */
86
131
  export declare function finalizeCurrentSession(services: Pick<WorktreeClientServices, 'sessions'>, reviewId: string, revision: number, retention: 'cleanup' | 'retain_24h' | 'retain_3d' | 'retain_manual'): Promise<void>;
@@ -1,6 +1,73 @@
1
1
  /** Browser-side orchestration over Harness Workspace and Session runtime faces. */
2
+ function samePath(left, right) {
3
+ const normalize = (value) => value.replace(/[\\/]+$/u, '').replaceAll('\\', '/');
4
+ const normalizedLeft = normalize(left);
5
+ const normalizedRight = normalize(right);
6
+ return /^[A-Za-z]:\//u.test(normalizedLeft) || /^[A-Za-z]:\//u.test(normalizedRight)
7
+ ? normalizedLeft.toLowerCase() === normalizedRight.toLowerCase()
8
+ : normalizedLeft === normalizedRight;
9
+ }
10
+ /** Open a Session only when the Harness list proves both its identity and cwd. */
11
+ export function openExistingSession(services, sessionId, expectedCwd) {
12
+ const summary = services.sessions.list.getSnapshot().byId[sessionId];
13
+ if (summary?.cwd === undefined || !samePath(summary.cwd, expectedCwd))
14
+ return false;
15
+ services.sessions.open(sessionId);
16
+ return true;
17
+ }
18
+ async function waitForProjectedSessionPath(services, sessionId, expectedCwd, isActive) {
19
+ return new Promise((resolvePromise, rejectPromise) => {
20
+ let settled = false;
21
+ let unsubscribe = () => { };
22
+ const settle = (result, error) => {
23
+ if (settled)
24
+ return;
25
+ settled = true;
26
+ globalThis.clearTimeout(timer);
27
+ unsubscribe();
28
+ if (error)
29
+ rejectPromise(error);
30
+ else
31
+ resolvePromise(result);
32
+ };
33
+ const inspect = () => {
34
+ if (!isActive()) {
35
+ settle(false);
36
+ return;
37
+ }
38
+ const summary = services.sessions.list.getSnapshot().byId[sessionId];
39
+ if (summary?.cwd === undefined)
40
+ return;
41
+ if (!samePath(summary.cwd, expectedCwd)) {
42
+ settle(false, new Error(`Harness 新建 Session ${sessionId} 的 cwd 与 Host 记录不一致。`));
43
+ return;
44
+ }
45
+ settle(true);
46
+ };
47
+ const timer = globalThis.setTimeout(() => {
48
+ settle(false, new Error(`Harness 未投影新建 Session ${sessionId} 的可信 cwd。`));
49
+ }, 2_000);
50
+ const dispose = services.sessions.list.subscribe(inspect);
51
+ unsubscribe = dispose;
52
+ if (settled)
53
+ dispose();
54
+ else
55
+ inspect();
56
+ });
57
+ }
2
58
  /** Idempotently register the managed root, create the preallocated Session, and navigate. */
3
59
  export async function openIsolatedTarget(services, payload, isActive = () => true) {
60
+ if (!isActive())
61
+ return;
62
+ const existing = services.sessions.list.getSnapshot().byId[payload.targetSessionId];
63
+ if (existing !== undefined) {
64
+ if (!isActive())
65
+ return;
66
+ if (!openExistingSession(services, payload.targetSessionId, payload.managedRoot)) {
67
+ throw new Error(`Harness 现有 Session ${payload.targetSessionId} 的 cwd 与 Host 记录不一致。`);
68
+ }
69
+ return;
70
+ }
4
71
  const workspace = await services.workspaces.create({ path: payload.managedRoot });
5
72
  if (!isActive())
6
73
  return;
@@ -14,10 +81,47 @@ export async function openIsolatedTarget(services, payload, isActive = () => tru
14
81
  if (sessionId !== payload.targetSessionId) {
15
82
  throw new Error(`Harness 创建了非预期 Session ${sessionId};应为 ${payload.targetSessionId}`);
16
83
  }
84
+ if (!await waitForProjectedSessionPath(services, sessionId, payload.managedRoot, isActive))
85
+ return;
17
86
  if (!isActive())
18
87
  return;
19
88
  services.sessions.open(sessionId);
20
89
  }
90
+ /**
91
+ * Inspect a path-free Host authorization, verify exact checkout/owner identity,
92
+ * then reuse the cwd-validated Session navigation path.
93
+ */
94
+ export async function openAuthorizedWorktreeTarget(adapter, services, callerSessionId, expected, isActive = () => true) {
95
+ const outcome = await adapter.inspect({ sessionId: callerSessionId, checkoutId: expected.checkoutId });
96
+ if (!isActive())
97
+ return;
98
+ if (!outcome.ok)
99
+ throw new Error(`${outcome.error.code}: ${outcome.error.message}`);
100
+ const target = outcome.value.target;
101
+ if (!target.capabilities.inspect || !target.capabilities.open) {
102
+ throw new Error('最新 Host 状态已不允许打开该 Worktree。');
103
+ }
104
+ if (target.checkoutId !== expected.checkoutId
105
+ || target.ownerSessionId !== expected.ownerSessionId
106
+ || target.targetSessionId !== expected.ownerSessionId)
107
+ throw new Error('Host 检查结果中的 Worktree 身份不一致。');
108
+ if (target.managedRoot === null)
109
+ throw new Error('Host 未提供可验证的 Worktree 路径。');
110
+ if (!isActive())
111
+ return;
112
+ await openIsolatedTarget(services, {
113
+ managedRoot: target.managedRoot,
114
+ targetSessionId: expected.ownerSessionId,
115
+ }, isActive);
116
+ }
117
+ /** Prefill a visible recovery request. This never invokes command/send/followup. */
118
+ export function prefillSessionDraft(services, sessionId, text) {
119
+ const binding = services.sessions.binding(sessionId);
120
+ if (binding?.ctx === undefined || services.conversation === undefined)
121
+ return false;
122
+ services.conversation.input.for(binding.ctx).setDraft(text);
123
+ return true;
124
+ }
21
125
  /** Submit an exact review-card acceptance as an explicit user command. */
22
126
  export async function finalizeCurrentSession(services, reviewId, revision, retention) {
23
127
  const sessionId = services.sessions.list.getSnapshot().current;
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/client/actions.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAqEnF,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgC,EAChC,OAA+B,EAC/B,WAA0B,GAAG,EAAE,CAAC,IAAI;IAEpC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IACjF,IAAI,CAAC,QAAQ,EAAE;QAAE,OAAM;IACvB,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IAClE,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC/C,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,SAAS,EAAE,OAAO,CAAC,eAAe;KACnC,CAAC,CAAA;IACF,IAAI,SAAS,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,OAAO,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;IACtF,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE;QAAE,OAAM;IACvB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACnC,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAkD,EAClD,QAAgB,EAChB,QAAgB,EAChB,SAAmE;IAEnE,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAA;IAC9D,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACpD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,QAAQ,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC,CAAA;IACvG,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACzG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;AACtE,CAAC"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/client/actions.ts"],"names":[],"mappings":"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"}
@@ -47,12 +47,19 @@ export function createWorktreeConsoleRemoteAdapter(remote) {
47
47
  inspect: request => invoke('inspect', () => remote.inspect(request.sessionId, request.checkoutId)),
48
48
  reviewDiff: request => invoke('reviewDiff', () => remote.reviewDiff(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId)),
49
49
  preflight: request => invoke('preflight', () => remote.preflight(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId)),
50
+ previewRecoveryPreflight: request => invoke('previewRecoveryPreflight', () => remote.previewRecoveryPreflight(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId, request.expectedPreviewId)),
51
+ preparePreviewRecoveryAnalysis: request => invoke('preparePreviewRecoveryAnalysis', () => remote.preparePreviewRecoveryAnalysis(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId, request.expectedPreviewId, request.recoveryProof)),
52
+ createPreviewRecoveryHandoff: request => invoke('createPreviewRecoveryHandoff', () => remote.createPreviewRecoveryHandoff(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId, request.expectedPreviewId, request.recoveryProof)),
50
53
  preview: request => invoke('preview', () => remote.preview(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId)),
51
- resumeRevision: request => invoke('resumeRevision', () => remote.resumeRevision(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId)),
52
- rollbackPreview: request => invoke('rollbackPreview', () => remote.rollbackPreview(request.sessionId, request.checkoutId, request.expectedRevision, request.resumeRevision)),
54
+ checkpoint: request => invoke('checkpoint', () => remote.checkpoint(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId, request.expectedGeneration, request.requestId, request.commitMessage)),
55
+ resumeRevision: request => invoke('resumeRevision', () => request.conflictContinuation
56
+ ? remote.resumeRevision(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId, request.conflictContinuation)
57
+ : remote.resumeRevision(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId)),
58
+ prepareReviewRegeneration: request => invoke('prepareReviewRegeneration', () => remote.prepareReviewRegeneration(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId)),
59
+ rollbackPreview: request => invoke('rollbackPreview', () => remote.rollbackPreview(request.sessionId, request.checkoutId, request.expectedRevision, request.resumeRevision, request.recoveryProof)),
53
60
  discard: request => invoke('discard', () => remote.discard(request.sessionId, request.checkoutId, request.expectedRevision, request.confirmDirty, request.rollbackPreview)),
54
61
  finalize: request => invoke('finalize', () => remote.finalize(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId, request.commitMessage, request.retention)),
55
- finalizePreview: request => invoke('finalizePreview', () => remote.finalizePreview(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId, request.commitMessage, request.retention)),
62
+ finalizePreview: request => invoke('finalizePreview', () => remote.finalizePreview(request.sessionId, request.checkoutId, request.expectedRevision, request.expectedReviewId, request.commitMessage, request.retention, request.recoveryProof)),
56
63
  setRetention: request => invoke('setRetention', () => remote.setRetention(request.sessionId, request.checkoutId, request.expectedRevision, request.retention)),
57
64
  retryCleanup: request => invoke('retryCleanup', () => remote.retryCleanup(request.sessionId, request.checkoutId, request.expectedRevision)),
58
65
  beginNextIteration: request => invoke('beginNextIteration', () => remote.beginNextIteration(request.sessionId, request.checkoutId, request.expectedRevision)),