@aviaratech/ai-delivery 0.3.12 → 0.3.13

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/README.md CHANGED
@@ -304,6 +304,22 @@ review, merge and re-registration. Active resume requires fresh current
304
304
  verification and review. Terminal transition witnesses permanently restrict
305
305
  ordinary source operations.
306
306
 
307
+ When a ready issue remains open after a prerequisite PR merges, `develop` or
308
+ `issue_develop` can continue its existing worktree under the same preparing owner.
309
+ It requires the clean original branch and exact prior verified publication,
310
+ merge intent and native merged-PR lineage. Continuation preserves the ownership
311
+ witness and all prior receipts, clears the prior PR from the active registry row,
312
+ and resumes Project synchronization idempotently. Commit the continuation changes
313
+ before verification; the already-merged HEAD cannot produce replacement evidence.
314
+ A closed issue, different owner, stale lineage or pending/terminal transition is
315
+ refused. Source holds and runtime admission remain in force.
316
+
317
+ Native issue metadata updates may target a legacy registered issue without
318
+ adopting its worktree. The authenticated author and admitted runtime still apply,
319
+ and canonical registry/schema, duplicate-owner and complete transition checks
320
+ remain mandatory. Metadata updates preserve source, registry, ownership witnesses
321
+ and delivery receipts; source lifecycle operations still require attested custody.
322
+
307
323
  Terminal disposition defaults to `retain`, preserving source and all holds.
308
324
  Supply native retained-hold comment IDs with `--retained-holds`. `remove` requires
309
325
  an independently accepted personal assertion that no holds remain, exact native
package/dist/issue.js CHANGED
@@ -1,4 +1,4 @@
1
- import { readFileSync } from 'node:fs';
1
+ import { existsSync, readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { loadDeliveryConfig } from './config/deliveryConfig.js';
4
4
  import { digestValue } from './delivery/index.js';
@@ -8,11 +8,12 @@ import { clearConfiguredNativeIssuePoints, getConfiguredNativeIssueMetadata, nat
8
8
  import { getIssueProjectStatus, projectSettingsFromDeliveryConfig, syncIssueProjectStatus, } from './github/projectDelivery.js';
9
9
  import { getNativeBlockerRelationships, hasNativeSubIssues, replaceBlockedBy, replaceParentIssue, resolveNativeRelationshipTargets, } from './github/relationships.js';
10
10
  import { resolveDeliveryRepo } from './github/repo.js';
11
- import { gitCommonDir, gitRoot, primaryGitRoot } from './git.js';
12
- import { preflightReviewRoute } from './pr.js';
11
+ import { assertClean, git, gitCommonDir, gitRoot, primaryGitRoot } from './git.js';
12
+ import { mergePr, preflightReviewRoute } from './pr.js';
13
13
  import { evaluateAgentReadiness } from './services/agentReadinessService.js';
14
- import { assertNoForeignIssueWorktree, getWorktreeByIssue } from './services/worktreeRegistry.js';
15
- import { prepareIssueWorktree } from './worktree.js';
14
+ import { addWorktreeEntry, assertNativeIssueTrackingAdmission, getIssueWorktreeStrict, getWorktreeByIssue, listWorktreesStrict, } from './services/worktreeRegistry.js';
15
+ import { withRuntimeSetupWriter } from './verification.js';
16
+ import { assertIssueWorktreeLocation, prepareIssueWorktree } from './worktree.js';
16
17
  import { writePrivateJsonFileAtomically } from './utils/atomicJson.js';
17
18
  export async function loadDeliveryContext(input) {
18
19
  const root = gitRoot(input.repoRoot);
@@ -73,7 +74,7 @@ export async function createIssue(context, input) {
73
74
  rest: clients.rest,
74
75
  });
75
76
  for (const related of new Set([...(input.blockedBy ?? []), input.parentIssueNumber].filter((number) => number !== undefined))) {
76
- assertNoForeignIssueWorktree(related, context.root);
77
+ assertNativeIssueTrackingAdmission(related, context.root);
77
78
  }
78
79
  const created = await clients.rest.issues.create({
79
80
  body: input.body ?? '',
@@ -143,7 +144,7 @@ export async function createIssue(context, input) {
143
144
  };
144
145
  }
145
146
  export async function updateIssue(context, input) {
146
- assertNoForeignIssueWorktree(input.issueNumber, context.root);
147
+ assertNativeIssueTrackingAdmission(input.issueNumber, context.root);
147
148
  const { clients, config, repo } = context;
148
149
  if (input.issueType !== undefined && !config.native.issueTypes.includes(input.issueType)) {
149
150
  throw new DeliveryError('Unsupported configured Issue Type.');
@@ -360,6 +361,34 @@ export async function developIssue(context, issueNumber) {
360
361
  const readiness = await readyCheck(context, issueNumber);
361
362
  if (!readiness.ready)
362
363
  throw new DeliveryError(`Issue #${issueNumber} is not ready: ${readiness.failures.map((f) => f.message).join('; ')}`);
364
+ const registered = listWorktreesStrict(context.root).filter((entry) => entry.type === 'issue' && entry.issueNumber === issueNumber);
365
+ if (registered.length > 1)
366
+ throw new DeliveryError('Issue has duplicate worktree registry rows.');
367
+ if (registered[0]?.status === 'merged') {
368
+ const previous = getIssueWorktreeStrict(issueNumber, context.root);
369
+ if (previous.identity !== context.config.roles.author.identity || previous.prNumber === undefined)
370
+ throw new DeliveryError('Merged continuation requires the same preparing owner and exact prior PR.');
371
+ assertIssueWorktreeLocation(previous, context.root);
372
+ assertClean(previous.path);
373
+ const head = git(previous.path, 'rev-parse', 'HEAD');
374
+ if (!existsSync(join(gitCommonDir(previous.path), 'ai-delivery', 'merges', String(issueNumber), `${head}.json`)))
375
+ throw new DeliveryError('Merged continuation lacks its exact terminal merge receipt.');
376
+ await withRuntimeSetupWriter(previous.path, async (writer) => {
377
+ writer.assertQuiescent();
378
+ // Existing terminal recovery validates the historical run, publication, intent and remote merge.
379
+ await mergePr(context, { issueNumber, prNumber: previous.prNumber });
380
+ const currentIssue = (await context.clients.rest.issues.get({ issue_number: issueNumber, ...context.repo })).data;
381
+ if (currentIssue.state !== 'open' || !(await readyCheck(context, issueNumber)).ready)
382
+ throw new DeliveryError('Merged continuation requires an open, ready unfinished issue.');
383
+ assertIssueWorktreeLocation(previous, context.root);
384
+ assertClean(previous.path);
385
+ if (git(previous.path, 'rev-parse', 'HEAD') !== head)
386
+ throw new DeliveryError('Merged continuation source changed during terminal readback.');
387
+ const { prNumber: _priorPr, ...sameOwner } = previous;
388
+ await addWorktreeEntry({ ...sameOwner, status: 'active', updatedAt: new Date().toISOString() }, context.root);
389
+ writer.assertQuiescent();
390
+ });
391
+ }
363
392
  const row = await prepareIssueWorktree({
364
393
  ...(context.configuration?.remote ? { remote: context.configuration.remote } : {}),
365
394
  identity: context.config.roles.author.identity,
package/dist/issue.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"issue.js","sourceRoot":"","sources":["../src/issue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../src/issue.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ import * as githubClient from './github/client.js';
21
21
  import * as atomicJson from './utils/atomicJson.js';
22
22
  import { createIssue, developIssue, listIssueSubissues, readyCheck, resumeCreatedIssue, updateIssue, } from './issue.js';
23
23
  import { checkoutPr, finishIssue, listPrs, mergePr, prChecks, prInfo, publishPr, submitFormalReview } from './pr.js';
24
- import { addWorktreeEntry, removeWorktreeEntry, updateIssueWorktreeDelivery } from './services/worktreeRegistry.js';
24
+ import { addWorktreeEntry, assertNativeIssueTrackingAdmission, getIssueWorktreeStrict, removeWorktreeEntry, updateIssueWorktreeDelivery, } from './services/worktreeRegistry.js';
25
25
  import { assertDeliveryRuntimeAdmitted } from './services/deliveryAdmission.js';
26
26
  import { getDeliveryRecords } from './services/deliveryRecordService.js';
27
27
  import { createIssuePhaseEvidence, loadVerifiedRun, verifyIssue } from './verification.js';
@@ -540,38 +540,13 @@ test('an old active issue remains pinned while a new row uses the same canonical
540
540
  assert.equal(readFileSync(registryPath, 'utf8'), futureBytes);
541
541
  assert.equal(existsSync(join(root, '.worktrees', 'scratch-new')), false);
542
542
  writeFileSync(registryPath, JSON.stringify({ worktrees: [old] }));
543
- let issueWrites = 0;
544
- const relationshipContext = {
545
- root,
546
- repo: { owner: 'example', repo: 'widget' },
547
- config: (await loadDeliveryConfig(root)).config,
548
- clients: {
549
- rest: {
550
- issues: {
551
- get: async () => ({ data: { id: 17, number: 17, node_id: 'PARENT-17', state: 'open' } }),
552
- create: async () => {
553
- issueWrites += 1;
554
- return { data: {} };
555
- },
556
- update: async () => {
557
- issueWrites += 1;
558
- return { data: {} };
559
- },
560
- },
561
- },
562
- graphql: async () => ({
563
- repository: {
564
- issue: {
565
- parent: { id: 'PARENT-17', number: 17 },
566
- blockedBy: { nodes: [], pageInfo: { endCursor: null, hasNextPage: false } },
567
- },
568
- },
569
- }),
570
- },
571
- };
572
- await assert.rejects(createIssue(relationshipContext, { title: 'Synthetic child', parentIssueNumber: 17 }), /ownership witness/u);
573
- await assert.rejects(updateIssue(relationshipContext, { issueNumber: 17, parentIssueNumber: null }), /ownership witness/u);
574
- assert.equal(issueWrites, 0);
543
+ assert.doesNotThrow(() => assertNativeIssueTrackingAdmission(17, root));
544
+ const original = readFileSync(registryPath, 'utf8');
545
+ writeFileSync(registryPath, JSON.stringify({ worktrees: [old, old] }));
546
+ assert.throws(() => assertNativeIssueTrackingAdmission(17, root), /duplicate/u);
547
+ writeFileSync(registryPath, futureBytes);
548
+ assert.throws(() => assertNativeIssueTrackingAdmission(17, root), /unsupported fields/u);
549
+ writeFileSync(registryPath, original);
575
550
  await assert.rejects(prepareIssueWorktree({ identity: 'synthetic-author', issueNumber: 17, repoRoot: root }), /ownership witness/u);
576
551
  const row = await prepareStandaloneWorktree({
577
552
  branch: 'scratch/new',
@@ -733,8 +708,7 @@ test.each(['current-blocker', 'new-blocker', 'current-parent', 'new-parent'])('t
733
708
  await assert.rejects(updateIssue(context, input), /invalid blocked-by relationship evidence/u);
734
709
  assert.equal(writes, 0);
735
710
  malformedRelationships = false;
736
- await assert.rejects(updateIssue(context, { ...input, issueNumber: 17 }), /ownership witness/u);
737
- assert.equal(writes, 0);
711
+ assert.throws(() => getIssueWorktreeStrict(17, root), /ownership witness/u);
738
712
  writeFileSync(registryPath, JSON.stringify({ worktrees: [{ ...legacy, schemaVersion: 'unknown@99' }] }));
739
713
  await assert.rejects(updateIssue(context, input), /unsupported fields/u);
740
714
  assert.equal(writes, 0);
@@ -3618,7 +3592,10 @@ async function syntheticLifecycle(routing) {
3618
3592
  },
3619
3593
  }),
3620
3594
  },
3621
- repos: { getCombinedStatusForRef: async () => ({ data: { statuses: [], state: 'success' } }) },
3595
+ repos: {
3596
+ get: async () => ({ data: { full_name: 'example/widget' } }),
3597
+ getCombinedStatusForRef: async () => ({ data: { statuses: [], state: 'success' } }),
3598
+ },
3622
3599
  };
3623
3600
  let authenticatedAuthor = 'synthetic-author[bot]';
3624
3601
  const context = {
@@ -3638,7 +3615,71 @@ async function syntheticLifecycle(routing) {
3638
3615
  },
3639
3616
  };
3640
3617
  let restoreDispatchClient;
3618
+ const enableDispatch = () => {
3619
+ const dispatchClient = vi.spyOn(githubClient, 'createDeliveryGitHubClients').mockImplementation(async (input) => ({
3620
+ ...context.clients,
3621
+ ...(input.role === 'reviewer'
3622
+ ? {
3623
+ role: 'reviewer',
3624
+ appActorLogin: async () => 'synthetic-reviewer[bot]',
3625
+ }
3626
+ : {}),
3627
+ graphql: (async (query, variables) => query.includes('DeliveryDiscovery') ||
3628
+ query.includes('DeliveryRepository') ||
3629
+ query.includes('ProjectDeliveryConfiguration')
3630
+ ? syntheticDiscoveryClients().graphql(query, variables)
3631
+ : graphql(query, variables)),
3632
+ }));
3633
+ restoreDispatchClient = () => dispatchClient.mockRestore();
3634
+ return dispatchClient;
3635
+ };
3636
+ const execution = { repoRoot: root, runtimeEntryPath, identity: 'synthetic-author' };
3641
3637
  try {
3638
+ if (routing.legacyNativeMetadata) {
3639
+ enableDispatch();
3640
+ const legacyPath = join(root, '.worktrees', 'issue-17');
3641
+ git(root, 'worktree', 'add', '-b', 'issue/17', legacyPath, 'main');
3642
+ writeFileSync(join(legacyPath, 'artifact.txt'), 'unadopted legacy source\n');
3643
+ const receiptRoot = join(root, '.git', 'legacy-receipts');
3644
+ mkdirSync(receiptRoot);
3645
+ writeFileSync(join(receiptRoot, 'run.json'), '{"producer":"synthetic-legacy"}\n');
3646
+ const registryPath = join(root, '.issue-cli', 'worktrees.json');
3647
+ mkdirSync(dirname(registryPath), { recursive: true });
3648
+ const legacy = {
3649
+ branch: 'issue/17',
3650
+ createdAt: '2026-01-01T00:00:00.000Z',
3651
+ identity: 'synthetic-legacy',
3652
+ issueNumber,
3653
+ path: legacyPath,
3654
+ status: 'active',
3655
+ type: 'issue',
3656
+ updatedAt: '2026-01-01T00:00:00.000Z',
3657
+ };
3658
+ const registryBytes = JSON.stringify({ worktrees: [legacy] });
3659
+ writeFileSync(registryPath, registryBytes);
3660
+ const source = directoryHash(legacyPath);
3661
+ const receipts = directoryHash(receiptRoot);
3662
+ await assert.rejects(executeTool('issue_update', { issueNumber, points: 2 }, {
3663
+ ...execution,
3664
+ identity: 'synthetic-reviewer',
3665
+ }), /identity|author|permitted|allowed/u);
3666
+ const updated = (await executeTool('issue_update', {
3667
+ issueNumber,
3668
+ parentIssueNumber: 11,
3669
+ points: 2,
3670
+ priority: 'High',
3671
+ }, execution));
3672
+ assert.equal(updated.points, 2);
3673
+ assert.equal(updated.priority, 'High');
3674
+ assert.equal(parentIssueNumber, 11);
3675
+ assert.equal(parentPoints, undefined);
3676
+ await assert.rejects(executeTool('issue_develop', { issueNumber }, execution), /ownership witness/u);
3677
+ assert.equal(readFileSync(registryPath, 'utf8'), registryBytes);
3678
+ assert.equal(directoryHash(legacyPath), source);
3679
+ assert.equal(directoryHash(receiptRoot), receipts);
3680
+ assert.equal(existsSync(join(gitCommonDir(root), 'ai-delivery/worktree-owners')), false);
3681
+ return;
3682
+ }
3642
3683
  if (routing.producerOnboarding) {
3643
3684
  assert.equal(existsSync(join(root, 'AGENTS.md')), false);
3644
3685
  const archiveBase = join(root, '.git', 'producer-fixture');
@@ -3942,21 +3983,126 @@ exec "${realGit}" "$@"
3942
3983
  await assert.rejects(finishIssue(context, { issueNumber, prNumber, strategy: 'merge' }), /exact prepared merge intent/u);
3943
3984
  headSha = reviewedHead;
3944
3985
  assert.equal(calls.filter((call) => call === 'git:createCommit').length, 1);
3986
+ if (routing.mergedContinuation) {
3987
+ enableDispatch();
3988
+ const terminal = await executeTool('issue_pr_merge', { issueNumber, prNumber, strategy: 'merge' }, execution);
3989
+ assert.equal(terminal.mergeSha, mergeSha);
3990
+ assert.equal(issue.state, 'open');
3991
+ const previous = getIssueWorktreeStrict(issueNumber, root);
3992
+ assert.equal(previous.status, 'merged');
3993
+ const registryPath = join(root, '.issue-cli', 'worktrees.json');
3994
+ const registryBytes = readFileSync(registryPath);
3995
+ const custody = [
3996
+ 'runs@2',
3997
+ 'publications',
3998
+ 'reviews',
3999
+ 'merge-intents',
4000
+ 'merge-attempts',
4001
+ 'merge-results',
4002
+ 'merges',
4003
+ ];
4004
+ const oldReceipts = [];
4005
+ const saveReceipts = (path) => {
4006
+ if (!existsSync(path))
4007
+ return;
4008
+ for (const entry of readdirSync(path, { withFileTypes: true })) {
4009
+ const child = join(path, entry.name);
4010
+ if (entry.isDirectory())
4011
+ saveReceipts(child);
4012
+ else
4013
+ oldReceipts.push({ path: child, bytes: readFileSync(child) });
4014
+ }
4015
+ };
4016
+ for (const name of custody)
4017
+ saveReceipts(join(gitCommonDir(root), 'ai-delivery', name));
4018
+ const ownerPath = join(gitCommonDir(root), 'ai-delivery/worktree-owners');
4019
+ const ownerHash = directoryHash(ownerPath);
4020
+ const publicationPath = join(gitCommonDir(root), 'ai-delivery/publications', String(issueNumber), `${headSha}.json`);
4021
+ const publicationBytes = readFileSync(publicationPath);
4022
+ const { publicationId: _publicationId, ...publicationContent } = JSON.parse(publicationBytes.toString());
4023
+ for (const stale of [
4024
+ { issueNumber: 18 },
4025
+ { headSha: 'c'.repeat(40) },
4026
+ { baseSha: 'c'.repeat(40) },
4027
+ { evidenceId: `sha256:${'c'.repeat(64)}` },
4028
+ ]) {
4029
+ const content = { ...publicationContent, ...stale };
4030
+ const bytes = Buffer.from(JSON.stringify({ ...content, publicationId: digestValue(content) }));
4031
+ writeFileSync(publicationPath, bytes, { mode: 0o600 });
4032
+ await assert.rejects(executeTool('issue_develop', { issueNumber }, execution), /publication.*(?:verified coordinates|historical approved review)/u);
4033
+ assert.deepEqual(readFileSync(registryPath), registryBytes);
4034
+ assert.deepEqual(readFileSync(publicationPath), bytes);
4035
+ }
4036
+ writeFileSync(publicationPath, publicationBytes, { mode: 0o600 });
4037
+ const reviewPath = join(gitCommonDir(root), 'ai-delivery/reviews', String(issueNumber), `${headSha}.json`);
4038
+ const reviewBytes = readFileSync(reviewPath);
4039
+ const { receiptId: _receiptId, artifact: savedArtifact, ...reviewContent } = JSON.parse(reviewBytes.toString());
4040
+ const { artifactId: _artifactId, ...artifactContent } = savedArtifact;
4041
+ const staleArtifact = { ...artifactContent, diffScopeHash: `sha256:${'c'.repeat(64)}` };
4042
+ const staleReview = { ...reviewContent, artifact: { ...staleArtifact, artifactId: digestValue(staleArtifact) } };
4043
+ const staleReviewBytes = Buffer.from(JSON.stringify({ ...staleReview, receiptId: digestValue(staleReview) }));
4044
+ writeFileSync(reviewPath, staleReviewBytes, { mode: 0o600 });
4045
+ await assert.rejects(executeTool('issue_develop', { issueNumber }, execution), /exact historical approved review/u);
4046
+ assert.deepEqual(readFileSync(registryPath), registryBytes);
4047
+ assert.deepEqual(readFileSync(reviewPath), staleReviewBytes);
4048
+ writeFileSync(reviewPath, reviewBytes, { mode: 0o600 });
4049
+ await assert.rejects(developIssue({
4050
+ ...context,
4051
+ config: {
4052
+ ...config,
4053
+ roles: {
4054
+ ...config.roles,
4055
+ author: { ...config.roles.author, identity: 'other-owner' },
4056
+ },
4057
+ },
4058
+ }, issueNumber), /same preparing owner/u);
4059
+ issue.state = 'closed';
4060
+ await assert.rejects(executeTool('issue_develop', { issueNumber }, execution), /closed/u);
4061
+ issue.state = 'open';
4062
+ headSha = 'b'.repeat(40);
4063
+ await assert.rejects(executeTool('issue_develop', { issueNumber }, execution), /terminal receipt/u);
4064
+ headSha = reviewedHead;
4065
+ const mergePath = join(gitCommonDir(root), 'ai-delivery/merges', String(issueNumber), `${headSha}.json`);
4066
+ const mergeBytes = readFileSync(mergePath);
4067
+ unlinkSync(mergePath);
4068
+ await assert.rejects(executeTool('issue_develop', { issueNumber }, execution), /exact terminal merge receipt/u);
4069
+ writeFileSync(mergePath, mergeBytes, { mode: 0o600 });
4070
+ assert.deepEqual(readFileSync(registryPath), registryBytes);
4071
+ projectStatus = null;
4072
+ failNextProjectSync = true;
4073
+ await assert.rejects(executeTool('issue_develop', { issueNumber }, execution), /synthetic Project interruption/u);
4074
+ const reactivated = getIssueWorktreeStrict(issueNumber, root);
4075
+ assert.equal(reactivated.status, 'active');
4076
+ assert.equal(reactivated.prNumber, undefined);
4077
+ assert.equal(reactivated.identity, previous.identity);
4078
+ assert.equal(reactivated.createdAt, previous.createdAt);
4079
+ const resumed = await executeTool('issue_develop', { issueNumber }, execution);
4080
+ assert.deepEqual(resumed, { path: previous.path, branch: previous.branch });
4081
+ assert.equal(projectStatus, 'Active');
4082
+ await assert.rejects(verifyIssue({ issueNumber, repoRoot: row.path }), /already-merged issue head/u);
4083
+ for (const saved of oldReceipts) {
4084
+ assert.deepEqual(readFileSync(saved.path), saved.bytes);
4085
+ }
4086
+ assert.equal(directoryHash(ownerPath), ownerHash);
4087
+ // A fresh commit produces new verification slots while the complete prior head remains immutable.
4088
+ writeFileSync(join(row.path, 'change.txt'), 'continued feature\n');
4089
+ git(row.path, 'add', 'change.txt');
4090
+ git(row.path, 'commit', '-qm', 'continue unfinished synthetic issue');
4091
+ const continued = await verifyIssue({ issueNumber, repoRoot: row.path });
4092
+ assert.notEqual(continued.classification.head.sha, reviewedHead);
4093
+ for (const saved of oldReceipts)
4094
+ assert.deepEqual(readFileSync(saved.path), saved.bytes);
4095
+ assert.equal(directoryHash(ownerPath), ownerHash);
4096
+ assert.equal(calls.filter((call) => call === 'git:createCommit').length, 1);
4097
+ return;
4098
+ }
3945
4099
  const blockedRecordPath = join(gitCommonDir(root), 'ai-delivery', 'deliveries.json');
3946
4100
  mkdirSync(blockedRecordPath);
3947
4101
  await assert.rejects(finishIssue(context, { issueNumber, prNumber, strategy: 'merge' }), /Delivery record store is invalid/u);
3948
4102
  assert.equal(existsSync(row.path), false);
3949
4103
  rmSync(blockedRecordPath, { recursive: true });
3950
- const dispatchClient = vi.spyOn(githubClient, 'createDeliveryGitHubClients').mockImplementation(async () => ({
3951
- ...context.clients,
3952
- graphql: (async (query, variables) => query.includes('DeliveryDiscovery') ||
3953
- query.includes('DeliveryRepository') ||
3954
- query.includes('ProjectDeliveryConfiguration')
3955
- ? syntheticDiscoveryClients().graphql(query, variables)
3956
- : graphql(query, variables)),
3957
- }));
3958
- restoreDispatchClient = () => dispatchClient.mockRestore();
3959
- const execution = { repoRoot: root, runtimeEntryPath, identity: 'synthetic-author' };
4104
+ const dispatchClient = enableDispatch();
4105
+ execution.runtimeEntryPath = runtimeEntryPath;
3960
4106
  const terminalMerge = (await executeTool('issue_pr_merge', { issueNumber, prNumber, strategy: 'merge' }, execution));
3961
4107
  assert.equal(terminalMerge.mergeSha, git(remote, 'rev-parse', 'refs/heads/main'));
3962
4108
  const finished = (await executeTool('issue_finish', { issueNumber, prNumber, strategy: 'merge' }, execution));
@@ -4020,6 +4166,8 @@ test.each([
4020
4166
  { remote: 'upstream', divergentOrigin: false },
4021
4167
  { remote: 'upstream', divergentOrigin: true },
4022
4168
  ])('synthetic lifecycle finishes with remote $remote and divergent origin $divergentOrigin', syntheticLifecycle, 15_000);
4169
+ test('supported develop resumes an open merged issue under the same owner and preserves prior receipts', { timeout: 0 }, async () => syntheticLifecycle({ remote: 'origin', divergentOrigin: false, mergedContinuation: true }));
4170
+ test('supported native metadata updates a legacy target without adopting its source or receipts', { timeout: 0 }, async () => syntheticLifecycle({ remote: 'origin', divergentOrigin: false, legacyNativeMetadata: true }));
4023
4171
  test('an unrelated consumer uses public MCP setup through verified configured-author publication, counted review readback, merge and cleanup', { timeout: 0 }, async () => {
4024
4172
  await syntheticLifecycle({ remote: 'origin', divergentOrigin: false, producerOnboarding: true });
4025
4173
  });