@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 +16 -0
- package/dist/issue.js +36 -7
- package/dist/issue.js.map +1 -1
- package/dist/lifecycle.test.js +194 -46
- package/dist/lifecycle.test.js.map +1 -1
- package/dist/pr.js +22 -4
- package/dist/pr.js.map +1 -1
- package/dist/services/worktreeRegistry.d.ts +2 -2
- package/dist/services/worktreeRegistry.js +2 -4
- package/dist/services/worktreeRegistry.js.map +1 -1
- package/dist/verification.js +3 -0
- package/dist/verification.js.map +1 -1
- package/dist/worktree.d.ts +2 -0
- package/dist/worktree.js +18 -9
- package/dist/worktree.js.map +1 -1
- package/dist/worktreeTransition.test.js +5 -5
- package/dist/worktreeTransition.test.js.map +1 -1
- package/package.json +1 -1
- package/plugins/ai-delivery/.claude-plugin/plugin.json +1 -1
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 {
|
|
15
|
-
import {
|
|
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
|
-
|
|
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
|
-
|
|
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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"}
|
package/dist/lifecycle.test.js
CHANGED
|
@@ -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
|
-
|
|
544
|
-
const
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
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
|
-
|
|
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: {
|
|
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 =
|
|
3951
|
-
|
|
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
|
});
|