ferrycat 0.4.0 → 0.5.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.
package/dist/engine.js CHANGED
@@ -3,7 +3,7 @@ import fs from 'node:fs';
3
3
  import os from 'node:os';
4
4
  import path from 'node:path';
5
5
  import { DatabaseSync } from 'node:sqlite';
6
- import { computeFingerprints, verifyAllPointers, verifyFingerprintsWithRetry, } from './fingerprint.js';
6
+ import { assertSafeGitPatch, assertSafePointerPath, computeFingerprints, verifyAllPointers, verifyAndSnapshotMutationPointers, verifyCommittedMutationSnapshot, verifyFingerprintsWithRetry, } from './fingerprint.js';
7
7
  import { validateContractOutput } from './schema-validator.js';
8
8
  import { MAX_JSON_PAYLOAD_BYTES, validateJsonPayload } from './schemas.js';
9
9
  /** Default queue window (SUBMITTED) in seconds. */
@@ -124,7 +124,9 @@ export class FerryCatEngine {
124
124
  release_count INTEGER NOT NULL DEFAULT 0,
125
125
  toctou_strike INTEGER NOT NULL DEFAULT 0,
126
126
  salvaged_result_json TEXT,
127
- claim_token TEXT
127
+ claim_token TEXT,
128
+ git_patch TEXT,
129
+ patch_sha256 TEXT
128
130
  );
129
131
 
130
132
  CREATE INDEX IF NOT EXISTS idx_contracts_poll
@@ -148,6 +150,8 @@ export class FerryCatEngine {
148
150
  ['toctou_strike', 'INTEGER NOT NULL DEFAULT 0'],
149
151
  ['salvaged_result_json', 'TEXT'],
150
152
  ['claim_token', 'TEXT'],
153
+ ['git_patch', 'TEXT'],
154
+ ['patch_sha256', 'TEXT'],
151
155
  ];
152
156
  const existingColumns = new Set(this.db.prepare('PRAGMA table_info(contracts)').all().map((c) => c.name));
153
157
  for (const [column, ddl] of migrations) {
@@ -190,6 +194,15 @@ export class FerryCatEngine {
190
194
  }
191
195
  const resolvedWorkspace = path.resolve(expandTilde(input.workspace_root));
192
196
  const { fingerprints, recentlyModified } = computeFingerprints(resolvedWorkspace, input.pointers, nowMs);
197
+ let gitPatch = null;
198
+ let patchSha256 = null;
199
+ let patchBytes;
200
+ if (input.git_patch !== undefined) {
201
+ const patchInfo = assertSafeGitPatch(input.git_patch, input.pointers);
202
+ gitPatch = input.git_patch;
203
+ patchSha256 = patchInfo.sha256;
204
+ patchBytes = patchInfo.byteLength;
205
+ }
193
206
  const contractId = `fc_${nowMs}_${crypto.randomBytes(4).toString('hex')}`;
194
207
  const queueTtlSec = input.queue_ttl_sec ?? DEFAULT_QUEUE_TTL_SEC;
195
208
  const execTtlSec = input.exec_ttl_sec ?? DEFAULT_EXEC_TTL_SEC_BY_TASK_TYPE[input.task_type] ?? 300;
@@ -197,10 +210,11 @@ export class FerryCatEngine {
197
210
  INSERT INTO contracts (
198
211
  id, requester_agent, target_agent, task_type, title, context_summary,
199
212
  workspace_root, pointers_json, contract_schema_json, status,
200
- retry_count, max_retries, queue_ttl_sec, exec_ttl_sec, created_at, queued_at
201
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 'SUBMITTED', 0, 2, ?, ?, ?, ?)
213
+ retry_count, max_retries, queue_ttl_sec, exec_ttl_sec, created_at, queued_at,
214
+ git_patch, patch_sha256
215
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 'SUBMITTED', 0, 2, ?, ?, ?, ?, ?, ?)
202
216
  `);
203
- stmt.run(contractId, requester, target, input.task_type, input.title, input.context_summary, resolvedWorkspace, JSON.stringify(fingerprints), input.contract_schema ? JSON.stringify(input.contract_schema) : null, queueTtlSec, execTtlSec, nowMs, nowMs);
217
+ stmt.run(contractId, requester, target, input.task_type, input.title, input.context_summary, resolvedWorkspace, JSON.stringify(fingerprints), input.contract_schema ? JSON.stringify(input.contract_schema) : null, queueTtlSec, execTtlSec, nowMs, nowMs, gitPatch, patchSha256);
204
218
  const result = {
205
219
  contract_id: contractId,
206
220
  status: 'SUBMITTED',
@@ -214,6 +228,7 @@ export class FerryCatEngine {
214
228
  last_line: fp.last_line,
215
229
  ...(fp.line_range ? { line_range: fp.line_range } : {}),
216
230
  })),
231
+ ...(patchSha256 ? { patch_sha256: patchSha256, patch_bytes: patchBytes } : {}),
217
232
  };
218
233
  if (recentlyModified) {
219
234
  result.warning =
@@ -244,7 +259,56 @@ export class FerryCatEngine {
244
259
  .run(nowMs, nowMs);
245
260
  }
246
261
  }
247
- pollNextTask(input = {}, nowMs = Date.now()) {
262
+ /**
263
+ * Evaluates whether a read-only contract carrying `git_patch` can safely operate in
264
+ * Self-Contained Patch Mode (FC-202) when the worker's local disk differs from the
265
+ * requester's working tree snapshot (e.g. different Git branch or disjoint checkout).
266
+ *
267
+ * Security invariant:
268
+ * - All pointer paths MUST still pass `assertSafePointerPath` (sensitive files & symlink escapes are never bypassed).
269
+ * - `git_patch` MUST pass `assertSafeGitPatch` and match `patch_sha256`.
270
+ *
271
+ * R5: every refusal carries a machine-readable `rejectReason` so a POINTER_STALE outcome can
272
+ * tell "your patch is unusable" apart from "the files really drifted on disk".
273
+ */
274
+ canAcceptSelfContainedPatch(row, fingerprints) {
275
+ if (!row.git_patch || typeof row.git_patch !== 'string' || row.git_patch.trim().length === 0) {
276
+ return { accepted: false, rejectReason: 'NO_PATCH_ATTACHED' };
277
+ }
278
+ try {
279
+ for (const fp of fingerprints) {
280
+ assertSafePointerPath(row.workspace_root, fp.path);
281
+ }
282
+ }
283
+ catch (err) {
284
+ return {
285
+ accepted: false,
286
+ rejectReason: `POINTER_SECURITY_REJECTED: ${err instanceof Error ? err.message : String(err)}`,
287
+ };
288
+ }
289
+ try {
290
+ // Enforce unified-diff validity, hunk/content presence AND full pointer coverage (FC-202 P0/R1)
291
+ const patchInfo = assertSafeGitPatch(row.git_patch, fingerprints);
292
+ if (row.patch_sha256 && patchInfo.sha256 !== row.patch_sha256) {
293
+ return {
294
+ accepted: false,
295
+ rejectReason: `PATCH_SHA_MISMATCH: stored ${row.patch_sha256.slice(0, 16)} != recomputed ${patchInfo.sha256.slice(0, 16)}`,
296
+ };
297
+ }
298
+ return {
299
+ accepted: true,
300
+ patchSha256: patchInfo.sha256,
301
+ touchedPaths: patchInfo.touchedPaths,
302
+ };
303
+ }
304
+ catch (err) {
305
+ return {
306
+ accepted: false,
307
+ rejectReason: err instanceof Error ? err.message : String(err),
308
+ };
309
+ }
310
+ }
311
+ async pollNextTask(input = {}, nowMs = Date.now()) {
248
312
  const agentId = this.resolveAgentIdentity(input.agent_id, 'agent_id');
249
313
  // Step 1: Lazy timeout sweep (SELECT first to avoid write lock contention)
250
314
  this.sweepExpiredContractsIfNeeded(nowMs);
@@ -280,12 +344,12 @@ export class FerryCatEngine {
280
344
  // Preempted by another concurrent worker process; try next candidate
281
345
  continue;
282
346
  }
283
- // Step 4: Verify file fingerprints on disk (with 150ms transient write retry & exception guard)
347
+ // Step 4: Verify file fingerprints on disk (with non-blocking 150ms transient write retry, FC-203)
284
348
  let fingerprints;
285
349
  let verification;
286
350
  try {
287
351
  fingerprints = JSON.parse(candidate.pointers_json);
288
- verification = verifyFingerprintsWithRetry(candidate.workspace_root, fingerprints, this.fingerprintRetryDelayMs);
352
+ verification = await verifyFingerprintsWithRetry(candidate.workspace_root, fingerprints, this.fingerprintRetryDelayMs);
289
353
  }
290
354
  catch (err) {
291
355
  const errMsg = `UNEXPECTED_FS_ERROR: ${err instanceof Error ? err.message : String(err)}`;
@@ -304,22 +368,46 @@ export class FerryCatEngine {
304
368
  }
305
369
  continue;
306
370
  }
371
+ let patchMode = candidate.git_patch
372
+ ? 'ATTACHED'
373
+ : undefined;
307
374
  if (!verification.valid) {
308
- const errorReason = `${verification.reason}: ${verification.detail}`;
309
- // CAS-protected state transition to prevent racing with concurrent timeout/cancellation
310
- const updRes = this.db
311
- .prepare(`UPDATE contracts
312
- SET status = 'POINTER_STALE', error_reason = ?
313
- WHERE id = ? AND status = 'CLAIMED' AND claim_token = ?`)
314
- .run(errorReason, candidate.id, claimToken);
315
- if (updRes.changes > 0) {
316
- lastStaleError = {
317
- contract_id: candidate.id,
318
- reason: verification.reason,
319
- message: `Contract "${candidate.id}" rejected as POINTER_STALE (${errorReason}). Please ask requester "${candidate.requester_agent}" to re-dispatch with fresh file fingerprints.`,
375
+ // FC-202: If the worker is on a different Git branch or disjoint checkout, allow claiming
376
+ // in SELF_CONTAINED patch mode when a verified git_patch is attached and no security policy was violated.
377
+ const isReadOnlyTask = candidate.task_type === 'code_review' || candidate.task_type === 'architecture_audit';
378
+ const patchFallback = isReadOnlyTask && verification.reason !== 'SECURITY_REJECTED'
379
+ ? this.canAcceptSelfContainedPatch(candidate, fingerprints)
380
+ : {
381
+ accepted: false,
382
+ rejectReason: isReadOnlyTask
383
+ ? 'SECURITY_REJECTED'
384
+ : `TASK_TYPE_NOT_ELIGIBLE: ${candidate.task_type} is a mutation task`,
320
385
  };
386
+ if (patchFallback.accepted) {
387
+ patchMode = 'SELF_CONTAINED';
388
+ }
389
+ else {
390
+ // R5: surface WHY the patch fallback was refused, so a stale claim can be diagnosed
391
+ // as "bad patch" vs "files really drifted" without re-reading the source.
392
+ const patchNote = candidate.git_patch
393
+ ? ` [patch_rejected: ${patchFallback.rejectReason ?? 'UNKNOWN'}]`
394
+ : '';
395
+ const errorReason = `${verification.reason}: ${verification.detail}${patchNote}`;
396
+ // CAS-protected state transition to prevent racing with concurrent timeout/cancellation
397
+ const updRes = this.db
398
+ .prepare(`UPDATE contracts
399
+ SET status = 'POINTER_STALE', error_reason = ?
400
+ WHERE id = ? AND status = 'CLAIMED' AND claim_token = ?`)
401
+ .run(errorReason, candidate.id, claimToken);
402
+ if (updRes.changes > 0) {
403
+ lastStaleError = {
404
+ contract_id: candidate.id,
405
+ reason: verification.reason,
406
+ message: `Contract "${candidate.id}" rejected as POINTER_STALE (${errorReason}). Please ask requester "${candidate.requester_agent}" to re-dispatch with fresh file fingerprints.`,
407
+ };
408
+ }
409
+ continue;
321
410
  }
322
- continue;
323
411
  }
324
412
  return {
325
413
  has_task: true,
@@ -339,6 +427,18 @@ export class FerryCatEngine {
339
427
  claimed_at: nowMs,
340
428
  exec_ttl_sec: candidate.exec_ttl_sec,
341
429
  claim_token: claimToken,
430
+ ...(candidate.git_patch
431
+ ? {
432
+ git_patch: candidate.git_patch,
433
+ patch_sha256: candidate.patch_sha256 ?? null,
434
+ patch_mode: patchMode,
435
+ ...(patchMode === 'SELF_CONTAINED'
436
+ ? {
437
+ workspace_warning: 'SELF_CONTAINED_PATCH_MODE: On-disk pointer files do NOT match the dispatched revision (cross-branch or disjoint checkout). Do NOT review stale on-disk files directly; inspect contract.git_patch as the authoritative diff baseline.',
438
+ }
439
+ : {}),
440
+ }
441
+ : {}),
342
442
  },
343
443
  };
344
444
  }
@@ -377,11 +477,32 @@ export class FerryCatEngine {
377
477
  message: `Contract "${row.id}" exceeded execution TTL (${row.exec_ttl_sec}s) and was marked TIMED_OUT.`,
378
478
  };
379
479
  }
380
- //Re-verify file fingerprints at fulfill time to close the claim->read->fulfill TOCTOU window (ADR-0004)
480
+ // Re-verify file fingerprints at fulfill time to close the claim->read->fulfill TOCTOU window (ADR-0004).
481
+ // For mutation tasks ('implementation' | 'test_generation'), the worker is expected to edit pointer files on
482
+ // disk; only SECURITY_REJECTED / FILE_MISSING block fulfillment, while post-mutation SHA-256 hashes are
483
+ // committed into verified_sha256_json (preserving the pre-mutation baseline in pointers_json).
381
484
  const fingerprints = JSON.parse(row.pointers_json);
382
- const toctouCheck = verifyAllPointers(row.workspace_root, fingerprints);
383
- if (!toctouCheck.valid && toctouCheck.firstFailure) {
384
- const toctouReason = `TOCTOU_${toctouCheck.firstFailure.reason}: ${toctouCheck.firstFailure.detail}`;
485
+ const isMutationTask = row.task_type === 'implementation' || row.task_type === 'test_generation';
486
+ const toctouCheck = isMutationTask
487
+ ? verifyAndSnapshotMutationPointers(row.workspace_root, fingerprints, input.artifacts_pointers)
488
+ : verifyAllPointers(row.workspace_root, fingerprints);
489
+ const hasSecurityRejection = toctouCheck.dirtyFiles.some((d) => d.reason === 'SECURITY_REJECTED');
490
+ const patchFallback = !toctouCheck.valid && !isMutationTask && !hasSecurityRejection
491
+ ? this.canAcceptSelfContainedPatch(row, fingerprints)
492
+ : {
493
+ accepted: false,
494
+ rejectReason: isMutationTask
495
+ ? `MUTATION_TASK_NO_PATCH_FALLBACK: ${row.task_type}`
496
+ : hasSecurityRejection
497
+ ? 'SECURITY_REJECTED'
498
+ : undefined,
499
+ };
500
+ if (!toctouCheck.valid && toctouCheck.firstFailure && !patchFallback.accepted) {
501
+ // R5: append the concrete patch refusal so the holder can tell a bad patch from real drift
502
+ const patchNote = row.git_patch && patchFallback.rejectReason
503
+ ? ` [patch_rejected: ${patchFallback.rejectReason}]`
504
+ : '';
505
+ const toctouReason = `TOCTOU_${toctouCheck.firstFailure.reason}: ${toctouCheck.firstFailure.detail}${patchNote}`;
385
506
  const nextStrike = (row.toctou_strike ?? 0) + 1;
386
507
  if (nextStrike <= MAX_TOCTOU_STRIKES) {
387
508
  // ADR-0004 Soft-Failure Buffering: keep CLAIMED and renew window once so holder can restore files
@@ -431,7 +552,34 @@ export class FerryCatEngine {
431
552
  message: `Contract "${row.id}" rejected at fulfill time as terminal POINTER_STALE after exceeding max_toctou_strikes (${MAX_TOCTOU_STRIKES}) (${toctouReason}). Your submitted payload was preserved in salvaged_result so work is not lost. Please ask "${row.requester_agent}" to re-dispatch with fresh file fingerprints.`,
432
553
  };
433
554
  }
434
- const verifiedShaMap = Object.fromEntries(fingerprints.map((fp) => [fp.path, fp.sha256]));
555
+ let verifiedShaMap;
556
+ if (isMutationTask && 'verifiedShaMap' in toctouCheck) {
557
+ verifiedShaMap = { ...toctouCheck.verifiedShaMap };
558
+ }
559
+ else if (patchFallback.accepted) {
560
+ // FC-202 Audit Integrity (P0): Never record unverified on-disk pointer hashes as verified_sha256.
561
+ // Only include pointer files whose on-disk SHA-256 actually matched the dispatched baseline.
562
+ const dirtyPathsSet = new Set(toctouCheck.dirtyFiles.map((d) => d.path));
563
+ verifiedShaMap = {};
564
+ for (const fp of fingerprints) {
565
+ if (!dirtyPathsSet.has(fp.path)) {
566
+ verifiedShaMap[fp.path] = fp.sha256;
567
+ }
568
+ }
569
+ verifiedShaMap.__patch_mode__ = 'SELF_CONTAINED';
570
+ verifiedShaMap.__git_patch_sha256__ = row.patch_sha256 ?? patchFallback.patchSha256 ?? '';
571
+ // R2: explicit YES/NO instead of the string 'false' (a truthy value in JS).
572
+ verifiedShaMap.__verified_on_disk__ = 'NO';
573
+ verifiedShaMap.__unverified_pointers__ = toctouCheck.dirtyFiles.map((d) => d.path).join(',');
574
+ }
575
+ else {
576
+ verifiedShaMap = Object.fromEntries(fingerprints.map((fp) => [fp.path, fp.sha256]));
577
+ if (row.patch_sha256) {
578
+ verifiedShaMap.__patch_mode__ = 'ATTACHED';
579
+ verifiedShaMap.__git_patch_sha256__ = row.patch_sha256;
580
+ verifiedShaMap.__verified_on_disk__ = 'YES';
581
+ }
582
+ }
435
583
  const verifiedSha256Json = JSON.stringify(verifiedShaMap);
436
584
  // Validate against contract_schema if defined
437
585
  if (row.contract_schema_json) {
@@ -490,13 +638,18 @@ export class FerryCatEngine {
490
638
  if (Number(completeRes.changes) !== 1) {
491
639
  throw new Error(`Concurrent state change detected: contract "${row.id}" is no longer in 'CLAIMED' state.`);
492
640
  }
641
+ const isNoOp = Boolean(isMutationTask && 'noOp' in toctouCheck && toctouCheck.noOp);
642
+ const noOpWarning = isNoOp
643
+ ? ' (WARNING: no-op fulfillment — 0 pointer files modified and 0 new artifact files added on disk.)'
644
+ : '';
493
645
  return {
494
646
  ok: true,
495
647
  contract_id: row.id,
496
648
  status: 'COMPLETED',
497
649
  retry_count: row.retry_count,
498
650
  max_retries: row.max_retries,
499
- message: `Contract "${row.id}" fulfilled by "${agentId}" and marked COMPLETED.`,
651
+ ...(isNoOp ? { no_op: true } : {}),
652
+ message: `Contract "${row.id}" fulfilled by "${agentId}" and marked COMPLETED.${noOpWarning}`,
500
653
  };
501
654
  }
502
655
  /**
@@ -708,7 +861,7 @@ export class FerryCatEngine {
708
861
  */
709
862
  getLeaseSnapshot(contractId) {
710
863
  const row = this.db
711
- .prepare(`SELECT status, claim_token, claimed_at, exec_ttl_sec, extend_count FROM contracts WHERE id = ?`)
864
+ .prepare(`SELECT status, task_type, claim_token, claimed_at, exec_ttl_sec, extend_count FROM contracts WHERE id = ?`)
712
865
  .get(contractId);
713
866
  return row ?? null;
714
867
  }
@@ -787,12 +940,93 @@ export class FerryCatEngine {
787
940
  throw new Error(`Contract "${input.contract_id}" not found.`);
788
941
  }
789
942
  const fingerprints = JSON.parse(row.pointers_json);
790
- const check = verifyAllPointers(row.workspace_root, fingerprints);
943
+ const isMutationTask = row.task_type === 'implementation' || row.task_type === 'test_generation';
791
944
  const toctouStrike = row.toctou_strike ?? 0;
792
945
  const callerAgent = input.agent_id?.trim();
793
946
  const holderNote = callerAgent && callerAgent !== row.target_agent
794
947
  ? ` (Note: contract is assigned to "${row.target_agent}", verified by "${callerAgent}".)`
795
948
  : '';
949
+ if (row.status === 'CLAIMED' && isMutationTask) {
950
+ const mutationCheck = verifyAndSnapshotMutationPointers(row.workspace_root, fingerprints);
951
+ if (mutationCheck.valid) {
952
+ const modifiedCount = mutationCheck.dirtyFiles.length;
953
+ const modifiedSummary = modifiedCount > 0
954
+ ? `${modifiedCount} of ${fingerprints.length} pointer file(s) modified on disk [${mutationCheck.dirtyFiles.map((d) => d.path).join(', ')}]; post-mutation SHA-256 hashes will be committed into verified_sha256 upon fulfill_contract.`
955
+ : `All ${fingerprints.length} pointer file(s) currently match the pre-mutation baseline.`;
956
+ return {
957
+ ok: true,
958
+ valid: true,
959
+ contract_id: row.id,
960
+ status: row.status,
961
+ fulfillable: true,
962
+ target_agent: row.target_agent,
963
+ toctou_strike: toctouStrike,
964
+ max_toctou_strikes: MAX_TOCTOU_STRIKES,
965
+ dirty_files: mutationCheck.dirtyFiles,
966
+ message: `Mutation contract "${row.id}" (${row.task_type}) passed security & existence checks. ${modifiedSummary} Safe to fulfill.${holderNote}`,
967
+ };
968
+ }
969
+ const badPaths = mutationCheck.dirtyFiles.map((d) => d.path).join(', ');
970
+ return {
971
+ ok: true,
972
+ valid: false,
973
+ contract_id: row.id,
974
+ status: row.status,
975
+ fulfillable: false,
976
+ target_agent: row.target_agent,
977
+ toctou_strike: toctouStrike,
978
+ max_toctou_strikes: MAX_TOCTOU_STRIKES,
979
+ dirty_files: mutationCheck.dirtyFiles,
980
+ message: `Mutation contract "${row.id}" (${row.task_type}) failed pointer verification [${badPaths}]: ${mutationCheck.firstFailure?.detail ?? 'missing or rejected file'}. Restore missing/unsafe pointer files before calling fulfill_contract.${holderNote}`,
981
+ };
982
+ }
983
+ if (row.status === 'COMPLETED' && isMutationTask) {
984
+ if (!row.verified_sha256_json) {
985
+ return {
986
+ ok: true,
987
+ valid: false,
988
+ contract_id: row.id,
989
+ status: row.status,
990
+ fulfillable: false,
991
+ target_agent: row.target_agent,
992
+ toctou_strike: toctouStrike,
993
+ max_toctou_strikes: MAX_TOCTOU_STRIKES,
994
+ dirty_files: [],
995
+ message: `Completed mutation contract "${row.id}" (${row.task_type}) has no recorded verified_sha256 snapshot (legacy row); post-completion verification skipped.${holderNote}`,
996
+ };
997
+ }
998
+ const committedShaMap = JSON.parse(row.verified_sha256_json);
999
+ const postCheck = verifyCommittedMutationSnapshot(row.workspace_root, committedShaMap);
1000
+ const deliveredCount = Object.keys(committedShaMap).length;
1001
+ if (postCheck.valid) {
1002
+ return {
1003
+ ok: true,
1004
+ valid: true,
1005
+ contract_id: row.id,
1006
+ status: row.status,
1007
+ fulfillable: false,
1008
+ target_agent: row.target_agent,
1009
+ toctou_strike: toctouStrike,
1010
+ max_toctou_strikes: MAX_TOCTOU_STRIKES,
1011
+ dirty_files: [],
1012
+ message: `All ${deliveredCount} delivered file(s) for completed mutation contract "${row.id}" (${row.task_type}) match the committed post-mutation verified_sha256 snapshot.${holderNote}`,
1013
+ };
1014
+ }
1015
+ const driftedPaths = postCheck.dirtyFiles.map((d) => d.path).join(', ');
1016
+ return {
1017
+ ok: true,
1018
+ valid: false,
1019
+ contract_id: row.id,
1020
+ status: row.status,
1021
+ fulfillable: false,
1022
+ target_agent: row.target_agent,
1023
+ toctou_strike: toctouStrike,
1024
+ max_toctou_strikes: MAX_TOCTOU_STRIKES,
1025
+ dirty_files: postCheck.dirtyFiles,
1026
+ message: `Post-completion drift detected in ${postCheck.dirtyFiles.length} delivered file(s) [${driftedPaths}] for completed mutation contract "${row.id}" against committed verified_sha256.${holderNote}`,
1027
+ };
1028
+ }
1029
+ const check = verifyAllPointers(row.workspace_root, fingerprints);
796
1030
  if (check.valid) {
797
1031
  const fulfillable = row.status === 'CLAIMED';
798
1032
  return {
@@ -810,6 +1044,27 @@ export class FerryCatEngine {
810
1044
  : `All ${fingerprints.length} pointer file(s) for contract "${row.id}" match the baseline, but contract status is '${row.status}' and it can no longer be fulfilled. Ask the requester to re-dispatch with fresh fingerprints.${holderNote}`,
811
1045
  };
812
1046
  }
1047
+ const hasSecurityRejection = check.dirtyFiles.some((d) => d.reason === 'SECURITY_REJECTED');
1048
+ const patchFallback = !isMutationTask && !hasSecurityRejection
1049
+ ? this.canAcceptSelfContainedPatch(row, fingerprints)
1050
+ : { accepted: false };
1051
+ if (patchFallback.accepted) {
1052
+ const fulfillable = row.status === 'CLAIMED';
1053
+ return {
1054
+ ok: true,
1055
+ valid: true,
1056
+ contract_id: row.id,
1057
+ status: row.status,
1058
+ fulfillable,
1059
+ target_agent: row.target_agent,
1060
+ toctou_strike: toctouStrike,
1061
+ max_toctou_strikes: MAX_TOCTOU_STRIKES,
1062
+ dirty_files: check.dirtyFiles,
1063
+ message: fulfillable
1064
+ ? `Self-contained git_patch baseline verified (sha256: ${patchFallback.patchSha256?.slice(0, 16)}...) for cross-branch contract "${row.id}". Safe to fulfill despite ${check.dirtyFiles.length} local working-tree difference(s).${holderNote}`
1065
+ : `Self-contained git_patch baseline verified for contract "${row.id}", but contract status is '${row.status}' and it can no longer be fulfilled.${holderNote}`,
1066
+ };
1067
+ }
813
1068
  const dirtyPaths = check.dirtyFiles.map((d) => d.path).join(', ');
814
1069
  return {
815
1070
  ok: true,
@@ -882,6 +1137,9 @@ export class FerryCatEngine {
882
1137
  release_count: r.release_count ?? 0,
883
1138
  toctou_strike: r.toctou_strike ?? 0,
884
1139
  pointers: JSON.parse(r.pointers_json),
1140
+ patch_sha256: r.patch_sha256 ?? null,
1141
+ patch_bytes: r.git_patch ? Buffer.byteLength(r.git_patch, 'utf8') : null,
1142
+ ...(input.include_patch ? { git_patch: r.git_patch ?? null } : {}),
885
1143
  contract_schema: r.contract_schema_json ? JSON.parse(r.contract_schema_json) : null,
886
1144
  result_summary: r.result_summary,
887
1145
  structured_output: r.structured_output_json ? JSON.parse(r.structured_output_json) : null,
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}