@aviaratech/ai-delivery 0.3.7 → 0.3.9

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
@@ -327,6 +327,8 @@ The `--admit` flag explicitly admits additional resource classes. Publication cr
327
327
 
328
328
  For a bounded run, pass `--max-aggregate-rss-bytes`, `--min-free-disk-bytes`, and optionally `--max-new-output-bytes` with one or more `--output-root` paths to `verify`. `issue_verify` accepts the same values in `resourceBounds`. RSS is sampled across the observed child process tree, including observed detached descendants; free disk is checked before commands and during execution on the worktree and declared output filesystems. Positive file-size growth is sampled under the declared roots, with previously measured completed stages carried across a resume. The caller must declare every output root relevant to its allowance; aliases must resolve within those roots. The roots are relative to the issue worktree unless absolute. Output growth is separate from the 8 MiB captured stdout/stderr limit. Resource limits are opt in and do not impose a total runtime deadline.
329
329
 
330
+ During a running command, an `ENOENT` from symlink resolution can reflect ordinary tree removal. The observer reports the first path and errno and retries complete scans for at most one second; it never accepts a partial scan or resets that observation-stall window. Cancellation interrupts the wait, and RSS and disk checks continue. Baseline and final scans remain strict; persistent broken links, cycles and escaping aliases fail closed. Failed commands retain captured stdout/stderr in the existing private content-addressed command-output store, with its digest and the actual exit status in the failure diagnostic. Output still buffered inside a killed child is unavailable to the runner.
331
+
330
332
  Real filesystem-negative tests can use `withVerificationFilesystemFixture` from `@aviaratech/ai-delivery` (or its `agent` export):
331
333
 
332
334
  ```js
package/dist/issue.js CHANGED
@@ -160,23 +160,22 @@ export async function updateIssue(context, input) {
160
160
  issueNumber: input.issueNumber,
161
161
  repo,
162
162
  });
163
- const related = new Set([
164
- current.parentNumber,
165
- ...current.blockers.map((blocker) => blocker.number),
166
- input.parentIssueNumber,
167
- ...(input.blockedBy ?? []),
168
- ]);
169
- for (const number of related) {
170
- if (number !== null && number !== undefined)
171
- assertNoForeignIssueWorktree(number, context.root);
172
- }
173
- }
174
- if (input.blockedBy !== undefined)
163
+ // Tracking edges validate native endpoints without adopting their source worktrees.
175
164
  await resolveNativeRelationshipTargets({
176
- blockers: input.blockedBy,
165
+ blockers: current.blockers.map((blocker) => blocker.number),
166
+ ...(current.parentNumber === null ? {} : { parentIssueNumber: current.parentNumber }),
167
+ repo,
168
+ rest: clients.rest,
169
+ });
170
+ await resolveNativeRelationshipTargets({
171
+ blockers: input.blockedBy ?? [],
172
+ ...(input.parentIssueNumber === undefined || input.parentIssueNumber === null
173
+ ? {}
174
+ : { parentIssueNumber: input.parentIssueNumber }),
177
175
  repo,
178
176
  rest: clients.rest,
179
177
  });
178
+ }
180
179
  await clients.rest.issues.update({
181
180
  issue_number: input.issueNumber,
182
181
  owner: repo.owner,
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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"}
@@ -562,7 +562,7 @@ test('an old active issue remains pinned while a new row uses the same canonical
562
562
  },
563
563
  };
564
564
  await assert.rejects(createIssue(relationshipContext, { title: 'Synthetic child', parentIssueNumber: 17 }), /ownership witness/u);
565
- await assert.rejects(updateIssue(relationshipContext, { issueNumber: 19, parentIssueNumber: null }), /ownership witness/u);
565
+ await assert.rejects(updateIssue(relationshipContext, { issueNumber: 17, parentIssueNumber: null }), /ownership witness/u);
566
566
  assert.equal(issueWrites, 0);
567
567
  await assert.rejects(prepareIssueWorktree({ identity: 'synthetic-author', issueNumber: 17, repoRoot: root }), /ownership witness/u);
568
568
  const row = await prepareStandaloneWorktree({
@@ -580,6 +580,179 @@ test('an old active issue remains pinned while a new row uses the same canonical
580
580
  rmSync(root, { recursive: true, force: true });
581
581
  }
582
582
  });
583
+ test.each(['current-blocker', 'new-blocker', 'current-parent', 'new-parent'])('tracking-only relationships preserve the related legacy worktree for %s', async (relationship) => {
584
+ const { root } = await fixture();
585
+ try {
586
+ const legacyPath = join(root, '.worktrees', 'issue-17');
587
+ git(root, 'worktree', 'add', '-b', 'issue/17', legacyPath, 'main');
588
+ writeFileSync(join(legacyPath, 'artifact.txt'), 'legacy source remains untouched\n');
589
+ const evidencePath = join(root, '.git', 'legacy-evidence');
590
+ mkdirSync(evidencePath);
591
+ writeFileSync(join(evidencePath, 'receipt.json'), '{"producer":"synthetic-legacy"}\n');
592
+ const legacy = {
593
+ branch: 'issue/17',
594
+ createdAt: '2026-01-01T00:00:00.000Z',
595
+ identity: 'synthetic-legacy',
596
+ issueNumber: 17,
597
+ path: legacyPath,
598
+ status: 'active',
599
+ type: 'issue',
600
+ updatedAt: '2026-01-01T00:00:00.000Z',
601
+ };
602
+ const registryPath = join(root, '.issue-cli', 'worktrees.json');
603
+ mkdirSync(dirname(registryPath), { recursive: true });
604
+ const registryBytes = JSON.stringify({ worktrees: [legacy] });
605
+ writeFileSync(registryPath, registryBytes);
606
+ const sourceBefore = directoryHash(legacyPath);
607
+ const evidenceBefore = directoryHash(evidencePath);
608
+ const loaded = await loadDeliveryConfig(root);
609
+ const pageInfo = { endCursor: null, hasNextPage: false };
610
+ let parent = relationship === 'current-parent' ? 17 : null;
611
+ let blockers = relationship === 'current-blocker' ? [17] : [];
612
+ let missingRelated = true;
613
+ let malformedRelationships = false;
614
+ let writes = 0;
615
+ let projectOption = 'STATUS-0';
616
+ const statuses = ['Queued', 'Active', 'Waiting', 'Shipped'];
617
+ const projectItem = () => ({
618
+ id: 'ITEM-19',
619
+ isArchived: false,
620
+ content: { id: 'ISSUE-19' },
621
+ fieldValueByName: { name: statuses[Number(projectOption.slice(-1))], optionId: projectOption },
622
+ });
623
+ const context = {
624
+ root,
625
+ repo: { owner: 'example', repo: 'widget' },
626
+ config: loaded.config,
627
+ clients: {
628
+ rest: {
629
+ request: async (route, input) => {
630
+ assert.equal(input.owner, 'example');
631
+ assert.equal(input.repo, 'widget');
632
+ assert.equal(route, 'GET /repos/{owner}/{repo}/issues/{issue_number}/issue-field-values');
633
+ return { data: [] };
634
+ },
635
+ issues: {
636
+ get: async (input) => {
637
+ assert.equal(input.owner, 'example');
638
+ assert.equal(input.repo, 'widget');
639
+ if (input.issue_number === 17 && missingRelated)
640
+ throw new Error('Synthetic issue not found');
641
+ return {
642
+ data: {
643
+ id: input.issue_number * 10,
644
+ number: input.issue_number,
645
+ node_id: `ISSUE-${String(input.issue_number)}`,
646
+ title: 'Synthetic tracking issue',
647
+ state: 'open',
648
+ html_url: `https://example.test/issues/${String(input.issue_number)}`,
649
+ },
650
+ };
651
+ },
652
+ update: async () => {
653
+ writes += 1;
654
+ return { data: {} };
655
+ },
656
+ removeSubIssue: async (input) => {
657
+ assert.equal(input.issue_number, 17);
658
+ assert.equal(input.sub_issue_id, 190);
659
+ writes += 1;
660
+ parent = null;
661
+ return { data: {} };
662
+ },
663
+ addSubIssue: async (input) => {
664
+ assert.equal(input.issue_number, 17);
665
+ assert.equal(input.sub_issue_id, 190);
666
+ writes += 1;
667
+ parent = 17;
668
+ return { data: {} };
669
+ },
670
+ listSubIssues: async () => ({ data: [] }),
671
+ },
672
+ paginate: async () => (parent === 17 ? [{ number: 19 }] : []),
673
+ },
674
+ graphql: async (query, variables) => {
675
+ if (query.includes('blockedBy(first:')) {
676
+ assert.equal(variables.owner, 'example');
677
+ assert.equal(variables.name, 'widget');
678
+ assert.equal(variables.number, 19);
679
+ if (malformedRelationships)
680
+ return { repository: null };
681
+ return {
682
+ repository: {
683
+ issue: {
684
+ parent: parent === null ? null : { id: 'ISSUE-17', number: parent },
685
+ blockedBy: {
686
+ nodes: blockers.map((number) => ({
687
+ id: `ISSUE-${String(number)}`,
688
+ number,
689
+ state: 'OPEN',
690
+ title: 'Synthetic blocker',
691
+ })),
692
+ pageInfo,
693
+ },
694
+ },
695
+ },
696
+ };
697
+ }
698
+ if (query.includes('removeBlockedBy') || query.includes('addBlockedBy')) {
699
+ assert.equal(variables.issue, 'ISSUE-19');
700
+ assert.equal(variables.blocking, 'ISSUE-17');
701
+ writes += 1;
702
+ blockers = query.includes('addBlockedBy') ? [17] : [];
703
+ return {};
704
+ }
705
+ if (query.includes('ProjectDeliveryItems'))
706
+ return { organization: { projectV2: { items: { nodes: [projectItem()], pageInfo } } } };
707
+ if (query.includes('UpdateProjectDeliveryStatus')) {
708
+ projectOption = String(variables.optionId);
709
+ writes += 1;
710
+ return { updateProjectV2ItemFieldValue: { projectV2Item: { id: 'ITEM-19' } } };
711
+ }
712
+ if (query.includes('ProjectDeliveryItemReadback'))
713
+ return { node: { ...projectItem(), project: { id: 'PROJECT-1', number: 1 } } };
714
+ return syntheticDiscoveryClients().graphql(query, variables);
715
+ },
716
+ },
717
+ };
718
+ const input = relationship.endsWith('blocker')
719
+ ? { issueNumber: 19, blockedBy: relationship === 'new-blocker' ? [17] : [] }
720
+ : { issueNumber: 19, parentIssueNumber: relationship === 'new-parent' ? 17 : null };
721
+ await assert.rejects(updateIssue(context, input), /Unable to resolve (?:blocker|parent) issue/u);
722
+ assert.equal(writes, 0);
723
+ missingRelated = false;
724
+ malformedRelationships = true;
725
+ await assert.rejects(updateIssue(context, input), /invalid blocked-by relationship evidence/u);
726
+ assert.equal(writes, 0);
727
+ malformedRelationships = false;
728
+ await assert.rejects(updateIssue(context, { ...input, issueNumber: 17 }), /ownership witness/u);
729
+ assert.equal(writes, 0);
730
+ writeFileSync(registryPath, JSON.stringify({ worktrees: [{ ...legacy, schemaVersion: 'unknown@99' }] }));
731
+ await assert.rejects(updateIssue(context, input), /unsupported fields/u);
732
+ assert.equal(writes, 0);
733
+ writeFileSync(registryPath, registryBytes);
734
+ const transitionPath = join(root, '.git', 'ai-delivery', 'worktree-owners', 'issue-19.transition.json');
735
+ mkdirSync(dirname(transitionPath), { recursive: true });
736
+ writeFileSync(transitionPath, '{"schemaVersion":"unknown-transition@99"}', { mode: 0o600 });
737
+ await assert.rejects(updateIssue(context, input), /transition is incomplete or unreadable/u);
738
+ assert.equal(writes, 0);
739
+ unlinkSync(transitionPath);
740
+ const result = await updateIssue(context, input);
741
+ assert.equal(result.worktree, null);
742
+ assert.deepEqual(result.blockedBy, relationship === 'new-blocker' ? [17] : []);
743
+ assert.equal(result.parentIssueNumber, relationship === 'new-parent' ? 17 : null);
744
+ assert.equal(result.projectStatus, relationship === 'new-blocker' ? 'Blocked' : 'Todo');
745
+ assert.ok(writes > 0);
746
+ await assert.rejects(prepareIssueWorktree({ identity: 'synthetic-author', issueNumber: 17, repoRoot: root }), /ownership witness/u);
747
+ await assert.rejects(verifyIssue({ issueNumber: 17, repoRoot: legacyPath }), /ownership witness/u);
748
+ assert.equal(readFileSync(registryPath, 'utf8'), registryBytes);
749
+ assert.equal(directoryHash(legacyPath), sourceBefore);
750
+ assert.equal(directoryHash(evidencePath), evidenceBefore);
751
+ }
752
+ finally {
753
+ rmSync(root, { recursive: true, force: true });
754
+ }
755
+ });
583
756
  test('synthetic cutover restores exact pre-write state and resumes an incomplete verification stage', async () => {
584
757
  const { root, counter, secondCounter, failSecond } = await fixture({ twoStages: true });
585
758
  const backup = mkdtempSync(join(tmpdir(), 'ai-delivery-cutover-backup-'));
@@ -3624,6 +3797,170 @@ test.each([
3624
3797
  test('an unrelated consumer uses public MCP setup through verified configured-author publication, counted review readback, merge and cleanup', { timeout: 0 }, async () => {
3625
3798
  await syntheticLifecycle({ remote: 'origin', divergentOrigin: false, producerOnboarding: true });
3626
3799
  });
3800
+ test.each(['pass', 'command-error', 'cancel', 'persistent', 'limit'])('ordinary owned symlink teardown preserves observation and %s command evidence', async (mode) => {
3801
+ const output = realpathSync(mkdtempSync(join(tmpdir(), 'ai-delivery-ordinary-teardown-')));
3802
+ const { root } = await fixture();
3803
+ const controller = new AbortController();
3804
+ const events = join(output, 'events');
3805
+ const ready = join(output, 'ready');
3806
+ const release = join(output, 'release');
3807
+ writeFileSync(join(output, 'unrelated'), 'preserved');
3808
+ writeFileSync(join(output, 'target'), 'x'.repeat(128));
3809
+ symlinkSync('./target', join(output, 'alias'));
3810
+ let observedGap = false;
3811
+ const observations = [];
3812
+ let releaseTimer;
3813
+ const progress = vi.spyOn(process.stderr, 'write').mockImplementation((line) => {
3814
+ if (String(line).includes('ENOENT'))
3815
+ observations.push(String(line));
3816
+ if (!observedGap && existsSync(ready) && String(line).includes('sampledAggregateRssBytes')) {
3817
+ observedGap = true;
3818
+ // Synchronize real removal with the sample preceding the synchronous filesystem scan.
3819
+ releaseTimer = setTimeout(() => {
3820
+ if (mode === 'cancel')
3821
+ controller.abort();
3822
+ else if (mode !== 'persistent')
3823
+ writeFileSync(release, 'continue');
3824
+ }, 100);
3825
+ }
3826
+ return true;
3827
+ });
3828
+ const script = `
3829
+ (async () => {
3830
+ const fs = require('node:fs');
3831
+ const trace = value => fs.appendFileSync(${JSON.stringify(events)}, value + '\\n');
3832
+ trace('command-started');
3833
+ if (['command-error', 'persistent'].includes(${JSON.stringify(mode)})) console.error('synthetic buffered preparation failure');
3834
+ fs.unlinkSync(${JSON.stringify(join(output, 'target'))});
3835
+ trace('target-removed'); fs.writeFileSync(${JSON.stringify(ready)}, 'ready');
3836
+ if (${JSON.stringify(mode)} === 'limit') fs.writeFileSync(${JSON.stringify(join(output, 'retained'))}, 'x'.repeat(512));
3837
+ while (!fs.existsSync(${JSON.stringify(release)})) await new Promise(resolve => setTimeout(resolve, 10));
3838
+ fs.unlinkSync(${JSON.stringify(join(output, 'alias'))}); trace('alias-removed');
3839
+ process.exitCode = ${mode === 'command-error' ? 7 : 0};
3840
+ })().catch(error => { console.error(error); process.exitCode = 1; });`;
3841
+ try {
3842
+ const { withRuntimeSetupWriter } = await import('./verification.js');
3843
+ const run = withRuntimeSetupWriter(root, (runner) => runner.run([process.execPath, '-e', script], {
3844
+ maxAggregateRssBytes: 1_000_000_000,
3845
+ minFreeDiskBytes: 1,
3846
+ maxNewOutputBytes: mode === 'limit' ? 256 : 4096,
3847
+ outputRoots: [output],
3848
+ }, controller.signal));
3849
+ if (mode === 'pass')
3850
+ await run;
3851
+ else
3852
+ await assert.rejects(run, (error) => {
3853
+ const message = String(error);
3854
+ assert.match(message, mode === 'cancel'
3855
+ ? /cancelled/u
3856
+ : mode === 'persistent'
3857
+ ? /remained unavailable.*First observation:.*ENOENT/u
3858
+ : mode === 'limit'
3859
+ ? /filesystem output.*exceeded/u
3860
+ : /exit 7/u);
3861
+ assert.doesNotMatch(message, /cleanup failed/u);
3862
+ assert.ok(message.includes(join(output, 'alias')));
3863
+ assert.match(message, /ENOENT/u);
3864
+ if (mode === 'command-error' || mode === 'persistent') {
3865
+ const digest = /Command output (sha256:[a-f0-9]{64})/u.exec(message)?.[1];
3866
+ assert.ok(digest);
3867
+ assert.match(readFileSync(join(root, '.git', 'ai-delivery', 'verification@1', 'command-output', `${digest.slice(7)}.bin`), 'utf8'), /synthetic buffered preparation failure/u);
3868
+ }
3869
+ return true;
3870
+ });
3871
+ assert.ok(observedGap);
3872
+ assert.ok(observations.some((line) => {
3873
+ const observation = JSON.parse(line.slice(line.indexOf('{')));
3874
+ return observation.reason.includes(join(output, 'alias'));
3875
+ }));
3876
+ assert.equal(readFileSync(join(output, 'unrelated'), 'utf8'), 'preserved');
3877
+ console.log(JSON.stringify({
3878
+ scenario: 'ordinary-owned-symlink-teardown',
3879
+ mode,
3880
+ firstObservation: JSON.parse(observations[0].slice(observations[0].indexOf('{')))
3881
+ .reason,
3882
+ events: readFileSync(events, 'utf8').trim().split('\n'),
3883
+ unrelatedPreserved: true,
3884
+ aliasRetained: readdirSync(output).includes('alias'),
3885
+ }));
3886
+ assert.deepEqual(readFileSync(events, 'utf8').trim().split('\n'), mode === 'cancel' || mode === 'persistent'
3887
+ ? ['command-started', 'target-removed']
3888
+ : ['command-started', 'target-removed', 'alias-removed']);
3889
+ if (mode === 'cancel' || mode === 'persistent') {
3890
+ await assert.rejects(withRuntimeSetupWriter(root, (runner) => runner.run([process.execPath, '-e', ''], {
3891
+ maxAggregateRssBytes: 1_000_000_000,
3892
+ minFreeDiskBytes: 1,
3893
+ maxNewOutputBytes: 4096,
3894
+ outputRoots: [output],
3895
+ })), (error) => {
3896
+ assert.ok(String(error).includes(join(output, 'alias')));
3897
+ assert.match(String(error), /ENOENT/u);
3898
+ return true;
3899
+ });
3900
+ }
3901
+ }
3902
+ finally {
3903
+ controller.abort();
3904
+ if (releaseTimer !== undefined)
3905
+ clearTimeout(releaseTimer);
3906
+ progress.mockRestore();
3907
+ rmSync(root, { recursive: true, force: true });
3908
+ rmSync(output, { recursive: true, force: true });
3909
+ }
3910
+ });
3911
+ test('injected observation deadline rejects a late complete real filesystem retry', async () => {
3912
+ const output = realpathSync(mkdtempSync(join(tmpdir(), 'ai-delivery-observation-deadline-')));
3913
+ const { root } = await fixture();
3914
+ const target = join(output, 'target'), alias = join(output, 'alias'), release = join(output, 'release');
3915
+ writeFileSync(target, 'target');
3916
+ symlinkSync('./target', alias);
3917
+ const now = Date.now.bind(Date);
3918
+ let offset = 0;
3919
+ let firstObservation;
3920
+ let advance;
3921
+ const clock = vi.spyOn(Date, 'now').mockImplementation(() => now() + offset);
3922
+ const progress = vi.spyOn(process.stderr, 'write').mockImplementation((line) => {
3923
+ if (firstObservation === undefined && String(line).includes('ENOENT')) {
3924
+ firstObservation = String(line);
3925
+ advance = setTimeout(() => {
3926
+ // This test injects only the deadline. Alias removal and the subsequent complete scan are real.
3927
+ unlinkSync(alias);
3928
+ offset = 1100;
3929
+ writeFileSync(release, 'finish');
3930
+ }, 0);
3931
+ }
3932
+ return true;
3933
+ });
3934
+ const script = `(async () => {
3935
+ const fs = require('node:fs'); fs.unlinkSync(${JSON.stringify(target)});
3936
+ while (!fs.existsSync(${JSON.stringify(release)})) await new Promise(resolve => setTimeout(resolve, 10));
3937
+ })().catch(error => { console.error(error); process.exitCode = 1; });`;
3938
+ try {
3939
+ const { withRuntimeSetupWriter } = await import('./verification.js');
3940
+ await assert.rejects(withRuntimeSetupWriter(root, (runner) => runner.run([process.execPath, '-e', script], {
3941
+ maxAggregateRssBytes: 1_000_000_000,
3942
+ minFreeDiskBytes: 1,
3943
+ maxNewOutputBytes: 4096,
3944
+ outputRoots: [output],
3945
+ })), (error) => {
3946
+ assert.match(String(error), /remained unavailable for 1 second/u);
3947
+ assert.ok(String(error).includes(alias));
3948
+ assert.match(String(error), /ENOENT/u);
3949
+ assert.doesNotMatch(String(error), /cleanup failed/u);
3950
+ return true;
3951
+ });
3952
+ assert.ok(firstObservation);
3953
+ assert.equal(readdirSync(output).includes('alias'), false);
3954
+ }
3955
+ finally {
3956
+ if (advance !== undefined)
3957
+ clearTimeout(advance);
3958
+ progress.mockRestore();
3959
+ clock.mockRestore();
3960
+ rmSync(root, { recursive: true, force: true });
3961
+ rmSync(output, { recursive: true, force: true });
3962
+ }
3963
+ });
3627
3964
  test.each(['escape', 'broken', 'cycle'])('output observation rejects %s aliases without running policy commands', async (kind) => {
3628
3965
  const { root, counter } = await fixture();
3629
3966
  const base = realpathSync(mkdtempSync(join(tmpdir(), 'ai-delivery-output-alias-')));