github-issue-tower-defence-management 1.125.4 → 1.126.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/CHANGELOG.md +21 -0
- package/bin/adapter/entry-points/handlers/situationFileWriter.js +2 -1
- package/bin/adapter/entry-points/handlers/situationFileWriter.js.map +1 -1
- package/bin/adapter/repositories/ConfigurableSilentSessionMessageComposer.js +1 -1
- package/bin/adapter/repositories/ConfigurableSilentSessionMessageComposer.js.map +1 -1
- package/bin/adapter/repositories/githubGraphqlClient.js +3 -1
- package/bin/adapter/repositories/githubGraphqlClient.js.map +1 -1
- package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js +6 -3
- package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js.map +1 -1
- package/bin/domain/usecases/DefaultSilentSessionMessageComposer.js +10 -1
- package/bin/domain/usecases/DefaultSilentSessionMessageComposer.js.map +1 -1
- package/bin/domain/usecases/StartPreparationUseCase.js +20 -0
- package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/handlers/situationFileWriter.test.ts +36 -0
- package/src/adapter/entry-points/handlers/situationFileWriter.ts +1 -0
- package/src/adapter/repositories/ConfigurableSilentSessionMessageComposer.test.ts +36 -0
- package/src/adapter/repositories/ConfigurableSilentSessionMessageComposer.ts +5 -2
- package/src/adapter/repositories/githubGraphqlClient.test.ts +55 -0
- package/src/adapter/repositories/githubGraphqlClient.ts +6 -0
- package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.test.ts +82 -1
- package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts +18 -10
- package/src/domain/usecases/DefaultSilentSessionMessageComposer.test.ts +54 -0
- package/src/domain/usecases/DefaultSilentSessionMessageComposer.ts +9 -0
- package/src/domain/usecases/HandleScheduledEventUseCase.test.ts +18 -0
- package/src/domain/usecases/StartPreparationUseCase.test.ts +244 -0
- package/src/domain/usecases/StartPreparationUseCase.ts +29 -0
- package/types/adapter/entry-points/handlers/situationFileWriter.d.ts.map +1 -1
- package/types/adapter/repositories/ConfigurableSilentSessionMessageComposer.d.ts.map +1 -1
- package/types/adapter/repositories/githubGraphqlClient.d.ts +2 -0
- package/types/adapter/repositories/githubGraphqlClient.d.ts.map +1 -1
- package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts.map +1 -1
- package/types/domain/usecases/DefaultSilentSessionMessageComposer.d.ts +1 -0
- package/types/domain/usecases/DefaultSilentSessionMessageComposer.d.ts.map +1 -1
- package/types/domain/usecases/StartPreparationUseCase.d.ts +1 -1
- package/types/domain/usecases/StartPreparationUseCase.d.ts.map +1 -1
|
@@ -84,6 +84,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
84
84
|
Pick<
|
|
85
85
|
IssueRepository,
|
|
86
86
|
| 'getStoryObjectMap'
|
|
87
|
+
| 'getAllOpened'
|
|
87
88
|
| 'updateStatus'
|
|
88
89
|
| 'findRelatedOpenPRs'
|
|
89
90
|
| 'getOpenPullRequest'
|
|
@@ -103,6 +104,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
103
104
|
};
|
|
104
105
|
mockIssueRepository = {
|
|
105
106
|
getStoryObjectMap: jest.fn().mockResolvedValue(new Map()),
|
|
107
|
+
getAllOpened: jest.fn().mockResolvedValue([]),
|
|
106
108
|
updateStatus: jest.fn(),
|
|
107
109
|
findRelatedOpenPRs: jest.fn().mockResolvedValue([]),
|
|
108
110
|
getOpenPullRequest: jest.fn().mockResolvedValue(null),
|
|
@@ -5676,6 +5678,245 @@ describe('StartPreparationUseCase', () => {
|
|
|
5676
5678
|
});
|
|
5677
5679
|
});
|
|
5678
5680
|
});
|
|
5681
|
+
|
|
5682
|
+
it('should log one aggregate spawn candidate exclusion summary per run with counts by reason', async () => {
|
|
5683
|
+
const currentHour = new Date().getHours();
|
|
5684
|
+
const dayAfterTomorrow = new Date();
|
|
5685
|
+
dayAfterTomorrow.setDate(dayAfterTomorrow.getDate() + 2);
|
|
5686
|
+
const awaitingIssues: Issue[] = [
|
|
5687
|
+
createMockIssue({
|
|
5688
|
+
url: 'https://github.com/user/repo/issues/11',
|
|
5689
|
+
title: 'Depended Issue',
|
|
5690
|
+
status: 'Awaiting Workspace',
|
|
5691
|
+
number: 11,
|
|
5692
|
+
dependedIssueUrls: ['https://github.com/user/repo/issues/99'],
|
|
5693
|
+
}),
|
|
5694
|
+
createMockIssue({
|
|
5695
|
+
url: 'https://github.com/user/repo/issues/12',
|
|
5696
|
+
title: 'Future Next Action Date Issue',
|
|
5697
|
+
status: 'Awaiting Workspace',
|
|
5698
|
+
number: 12,
|
|
5699
|
+
nextActionDate: dayAfterTomorrow,
|
|
5700
|
+
}),
|
|
5701
|
+
createMockIssue({
|
|
5702
|
+
url: 'https://github.com/user/repo/issues/13',
|
|
5703
|
+
title: 'Future Next Action Hour Issue',
|
|
5704
|
+
status: 'Awaiting Workspace',
|
|
5705
|
+
number: 13,
|
|
5706
|
+
nextActionHour: currentHour + 1,
|
|
5707
|
+
}),
|
|
5708
|
+
createMockIssue({
|
|
5709
|
+
url: 'https://github.com/user/repo/issues/14',
|
|
5710
|
+
title: 'Disallowed Author Issue',
|
|
5711
|
+
status: 'Awaiting Workspace',
|
|
5712
|
+
number: 14,
|
|
5713
|
+
author: 'not-allowed-user',
|
|
5714
|
+
}),
|
|
5715
|
+
createMockIssue({
|
|
5716
|
+
url: 'https://github.com/user/repo/issues/15',
|
|
5717
|
+
title: 'Spawnable Issue',
|
|
5718
|
+
labels: ['category:impl'],
|
|
5719
|
+
status: 'Awaiting Workspace',
|
|
5720
|
+
number: 15,
|
|
5721
|
+
}),
|
|
5722
|
+
];
|
|
5723
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
5724
|
+
mockIssueRepository.getStoryObjectMap.mockResolvedValue(
|
|
5725
|
+
createMockStoryObjectMap(awaitingIssues),
|
|
5726
|
+
);
|
|
5727
|
+
mockLocalCommandRunner.runCommand.mockResolvedValue({
|
|
5728
|
+
stdout: '',
|
|
5729
|
+
stderr: '',
|
|
5730
|
+
exitCode: 0,
|
|
5731
|
+
});
|
|
5732
|
+
const consoleLogSpy = jest
|
|
5733
|
+
.spyOn(console, 'log')
|
|
5734
|
+
.mockImplementation(() => {});
|
|
5735
|
+
await useCase.run({
|
|
5736
|
+
projectUrl: 'https://github.com/user/repo',
|
|
5737
|
+
defaultAgentName: 'agent1',
|
|
5738
|
+
defaultLlmModelName: 'claude-opus',
|
|
5739
|
+
fallbackLlmModelName: null,
|
|
5740
|
+
defaultLlmAgentName: null,
|
|
5741
|
+
configFilePath: '/path/to/config.yml',
|
|
5742
|
+
maximumPreparingIssuesCount: null,
|
|
5743
|
+
utilizationPercentageThreshold: 90,
|
|
5744
|
+
allowedIssueAuthors: ['testuser'],
|
|
5745
|
+
codexHomeCandidates: null,
|
|
5746
|
+
labelsAsLlmAgentName: null,
|
|
5747
|
+
});
|
|
5748
|
+
const summaryCalls = consoleLogSpy.mock.calls.filter((call) =>
|
|
5749
|
+
String(call[0]).includes('Spawn candidate exclusion summary'),
|
|
5750
|
+
);
|
|
5751
|
+
expect(summaryCalls).toHaveLength(1);
|
|
5752
|
+
expect(summaryCalls[0][0]).toBe(
|
|
5753
|
+
'Spawn candidate exclusion summary for https://github.com/user/repo: dependedIssueUrls=1, futureNextActionDate=1, nextActionHourNotReached=1, authorNotAllowed=1',
|
|
5754
|
+
);
|
|
5755
|
+
expect(mockLocalCommandRunner.runCommand.mock.calls).toHaveLength(1);
|
|
5756
|
+
expect(mockLocalCommandRunner.runCommand.mock.calls[0][1][0]).toBe(
|
|
5757
|
+
'https://github.com/user/repo/issues/15',
|
|
5758
|
+
);
|
|
5759
|
+
consoleLogSpy.mockRestore();
|
|
5760
|
+
});
|
|
5761
|
+
|
|
5762
|
+
it('should log the aggregate exclusion summary with zero counts when nothing is excluded', async () => {
|
|
5763
|
+
const awaitingIssues: Issue[] = [
|
|
5764
|
+
createMockIssue({
|
|
5765
|
+
url: 'https://github.com/user/repo/issues/21',
|
|
5766
|
+
title: 'Spawnable Issue',
|
|
5767
|
+
labels: ['category:impl'],
|
|
5768
|
+
status: 'Awaiting Workspace',
|
|
5769
|
+
number: 21,
|
|
5770
|
+
}),
|
|
5771
|
+
];
|
|
5772
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
5773
|
+
mockIssueRepository.getStoryObjectMap.mockResolvedValue(
|
|
5774
|
+
createMockStoryObjectMap(awaitingIssues),
|
|
5775
|
+
);
|
|
5776
|
+
mockLocalCommandRunner.runCommand.mockResolvedValue({
|
|
5777
|
+
stdout: '',
|
|
5778
|
+
stderr: '',
|
|
5779
|
+
exitCode: 0,
|
|
5780
|
+
});
|
|
5781
|
+
const consoleLogSpy = jest
|
|
5782
|
+
.spyOn(console, 'log')
|
|
5783
|
+
.mockImplementation(() => {});
|
|
5784
|
+
await useCase.run({
|
|
5785
|
+
projectUrl: 'https://github.com/user/repo',
|
|
5786
|
+
defaultAgentName: 'agent1',
|
|
5787
|
+
defaultLlmModelName: 'claude-opus',
|
|
5788
|
+
fallbackLlmModelName: null,
|
|
5789
|
+
defaultLlmAgentName: null,
|
|
5790
|
+
configFilePath: '/path/to/config.yml',
|
|
5791
|
+
maximumPreparingIssuesCount: null,
|
|
5792
|
+
utilizationPercentageThreshold: 90,
|
|
5793
|
+
allowedIssueAuthors: ['testuser'],
|
|
5794
|
+
codexHomeCandidates: null,
|
|
5795
|
+
labelsAsLlmAgentName: null,
|
|
5796
|
+
});
|
|
5797
|
+
const summaryCalls = consoleLogSpy.mock.calls.filter((call) =>
|
|
5798
|
+
String(call[0]).includes('Spawn candidate exclusion summary'),
|
|
5799
|
+
);
|
|
5800
|
+
expect(summaryCalls).toHaveLength(1);
|
|
5801
|
+
expect(summaryCalls[0][0]).toBe(
|
|
5802
|
+
'Spawn candidate exclusion summary for https://github.com/user/repo: dependedIssueUrls=0, futureNextActionDate=0, nextActionHourNotReached=0, authorNotAllowed=0',
|
|
5803
|
+
);
|
|
5804
|
+
consoleLogSpy.mockRestore();
|
|
5805
|
+
});
|
|
5806
|
+
|
|
5807
|
+
it('should warn with URLs of Awaiting Workspace issues invisible to selection because Story is unset', async () => {
|
|
5808
|
+
const issueWithStory = createMockIssue({
|
|
5809
|
+
url: 'https://github.com/user/repo/issues/31',
|
|
5810
|
+
title: 'Issue With Story',
|
|
5811
|
+
labels: ['category:impl'],
|
|
5812
|
+
status: 'Awaiting Workspace',
|
|
5813
|
+
number: 31,
|
|
5814
|
+
story: 'Default Story',
|
|
5815
|
+
});
|
|
5816
|
+
const storyUnsetAwaitingWorkspaceIssueOne = createMockIssue({
|
|
5817
|
+
url: 'https://github.com/user/repo/issues/32',
|
|
5818
|
+
title: 'Story Unset Issue One',
|
|
5819
|
+
status: 'Awaiting Workspace',
|
|
5820
|
+
number: 32,
|
|
5821
|
+
story: null,
|
|
5822
|
+
});
|
|
5823
|
+
const storyUnsetAwaitingWorkspaceIssueTwo = createMockIssue({
|
|
5824
|
+
url: 'https://github.com/user/repo/issues/33',
|
|
5825
|
+
title: 'Story Unset Issue Two',
|
|
5826
|
+
status: 'Awaiting Workspace',
|
|
5827
|
+
number: 33,
|
|
5828
|
+
story: null,
|
|
5829
|
+
});
|
|
5830
|
+
const storyUnsetOtherStatusIssue = createMockIssue({
|
|
5831
|
+
url: 'https://github.com/user/repo/issues/34',
|
|
5832
|
+
title: 'Story Unset Other Status Issue',
|
|
5833
|
+
status: 'Todo',
|
|
5834
|
+
number: 34,
|
|
5835
|
+
story: null,
|
|
5836
|
+
});
|
|
5837
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
5838
|
+
mockIssueRepository.getStoryObjectMap.mockResolvedValue(
|
|
5839
|
+
createMockStoryObjectMap([issueWithStory]),
|
|
5840
|
+
);
|
|
5841
|
+
mockIssueRepository.getAllOpened.mockResolvedValue([
|
|
5842
|
+
issueWithStory,
|
|
5843
|
+
storyUnsetAwaitingWorkspaceIssueOne,
|
|
5844
|
+
storyUnsetAwaitingWorkspaceIssueTwo,
|
|
5845
|
+
storyUnsetOtherStatusIssue,
|
|
5846
|
+
]);
|
|
5847
|
+
mockLocalCommandRunner.runCommand.mockResolvedValue({
|
|
5848
|
+
stdout: '',
|
|
5849
|
+
stderr: '',
|
|
5850
|
+
exitCode: 0,
|
|
5851
|
+
});
|
|
5852
|
+
const consoleWarnSpy = jest
|
|
5853
|
+
.spyOn(console, 'warn')
|
|
5854
|
+
.mockImplementation(() => {});
|
|
5855
|
+
await useCase.run({
|
|
5856
|
+
projectUrl: 'https://github.com/user/repo',
|
|
5857
|
+
defaultAgentName: 'agent1',
|
|
5858
|
+
defaultLlmModelName: 'claude-opus',
|
|
5859
|
+
fallbackLlmModelName: null,
|
|
5860
|
+
defaultLlmAgentName: null,
|
|
5861
|
+
configFilePath: '/path/to/config.yml',
|
|
5862
|
+
maximumPreparingIssuesCount: null,
|
|
5863
|
+
utilizationPercentageThreshold: 90,
|
|
5864
|
+
allowedIssueAuthors: ['testuser'],
|
|
5865
|
+
codexHomeCandidates: null,
|
|
5866
|
+
labelsAsLlmAgentName: null,
|
|
5867
|
+
});
|
|
5868
|
+
const storyUnsetWarningCalls = consoleWarnSpy.mock.calls.filter((call) =>
|
|
5869
|
+
String(call[0]).includes('Story is unset'),
|
|
5870
|
+
);
|
|
5871
|
+
expect(storyUnsetWarningCalls).toHaveLength(1);
|
|
5872
|
+
expect(storyUnsetWarningCalls[0][0]).toBe(
|
|
5873
|
+
'Awaiting Workspace issue(s) invisible to spawn candidate selection because Story is unset: https://github.com/user/repo/issues/32, https://github.com/user/repo/issues/33',
|
|
5874
|
+
);
|
|
5875
|
+
expect(mockLocalCommandRunner.runCommand.mock.calls).toHaveLength(1);
|
|
5876
|
+
consoleWarnSpy.mockRestore();
|
|
5877
|
+
});
|
|
5878
|
+
|
|
5879
|
+
it('should not warn about Story-unset issues when every Awaiting Workspace issue has a Story', async () => {
|
|
5880
|
+
const issueWithStory = createMockIssue({
|
|
5881
|
+
url: 'https://github.com/user/repo/issues/41',
|
|
5882
|
+
title: 'Issue With Story',
|
|
5883
|
+
labels: ['category:impl'],
|
|
5884
|
+
status: 'Awaiting Workspace',
|
|
5885
|
+
number: 41,
|
|
5886
|
+
story: 'Default Story',
|
|
5887
|
+
});
|
|
5888
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
5889
|
+
mockIssueRepository.getStoryObjectMap.mockResolvedValue(
|
|
5890
|
+
createMockStoryObjectMap([issueWithStory]),
|
|
5891
|
+
);
|
|
5892
|
+
mockIssueRepository.getAllOpened.mockResolvedValue([issueWithStory]);
|
|
5893
|
+
mockLocalCommandRunner.runCommand.mockResolvedValue({
|
|
5894
|
+
stdout: '',
|
|
5895
|
+
stderr: '',
|
|
5896
|
+
exitCode: 0,
|
|
5897
|
+
});
|
|
5898
|
+
const consoleWarnSpy = jest
|
|
5899
|
+
.spyOn(console, 'warn')
|
|
5900
|
+
.mockImplementation(() => {});
|
|
5901
|
+
await useCase.run({
|
|
5902
|
+
projectUrl: 'https://github.com/user/repo',
|
|
5903
|
+
defaultAgentName: 'agent1',
|
|
5904
|
+
defaultLlmModelName: 'claude-opus',
|
|
5905
|
+
fallbackLlmModelName: null,
|
|
5906
|
+
defaultLlmAgentName: null,
|
|
5907
|
+
configFilePath: '/path/to/config.yml',
|
|
5908
|
+
maximumPreparingIssuesCount: null,
|
|
5909
|
+
utilizationPercentageThreshold: 90,
|
|
5910
|
+
allowedIssueAuthors: ['testuser'],
|
|
5911
|
+
codexHomeCandidates: null,
|
|
5912
|
+
labelsAsLlmAgentName: null,
|
|
5913
|
+
});
|
|
5914
|
+
const storyUnsetWarningCalls = consoleWarnSpy.mock.calls.filter((call) =>
|
|
5915
|
+
String(call[0]).includes('Story is unset'),
|
|
5916
|
+
);
|
|
5917
|
+
expect(storyUnsetWarningCalls).toHaveLength(0);
|
|
5918
|
+
consoleWarnSpy.mockRestore();
|
|
5919
|
+
});
|
|
5679
5920
|
});
|
|
5680
5921
|
|
|
5681
5922
|
describe('StartPreparationUseCase.buildRotationOrder', () => {
|
|
@@ -5688,6 +5929,7 @@ describe('StartPreparationUseCase.buildRotationOrder', () => {
|
|
|
5688
5929
|
Pick<
|
|
5689
5930
|
IssueRepository,
|
|
5690
5931
|
| 'getStoryObjectMap'
|
|
5932
|
+
| 'getAllOpened'
|
|
5691
5933
|
| 'updateStatus'
|
|
5692
5934
|
| 'findRelatedOpenPRs'
|
|
5693
5935
|
| 'getOpenPullRequest'
|
|
@@ -5697,6 +5939,7 @@ describe('StartPreparationUseCase.buildRotationOrder', () => {
|
|
|
5697
5939
|
>
|
|
5698
5940
|
> = {
|
|
5699
5941
|
getStoryObjectMap: jest.fn(),
|
|
5942
|
+
getAllOpened: jest.fn(),
|
|
5700
5943
|
updateStatus: jest.fn(),
|
|
5701
5944
|
findRelatedOpenPRs: jest.fn(),
|
|
5702
5945
|
getOpenPullRequest: jest.fn(),
|
|
@@ -5994,6 +6237,7 @@ describe('StartPreparationUseCase.getTokenConcurrentLimit', () => {
|
|
|
5994
6237
|
{ getByUrl: jest.fn() },
|
|
5995
6238
|
{
|
|
5996
6239
|
getStoryObjectMap: jest.fn(),
|
|
6240
|
+
getAllOpened: jest.fn(),
|
|
5997
6241
|
updateStatus: jest.fn(),
|
|
5998
6242
|
findRelatedOpenPRs: jest.fn(),
|
|
5999
6243
|
getOpenPullRequest: jest.fn(),
|
|
@@ -28,6 +28,7 @@ export class StartPreparationUseCase {
|
|
|
28
28
|
private readonly issueRepository: Pick<
|
|
29
29
|
IssueRepository,
|
|
30
30
|
| 'getStoryObjectMap'
|
|
31
|
+
| 'getAllOpened'
|
|
31
32
|
| 'updateStatus'
|
|
32
33
|
| 'findRelatedOpenPRs'
|
|
33
34
|
| 'getOpenPullRequest'
|
|
@@ -373,12 +374,33 @@ export class StartPreparationUseCase {
|
|
|
373
374
|
issue.status === AWAITING_WORKSPACE_STATUS_NAME && !issue.isClosed,
|
|
374
375
|
)
|
|
375
376
|
.map((issue) => ({ ...issue }));
|
|
377
|
+
const allProjectOpenIssues =
|
|
378
|
+
await this.issueRepository.getAllOpened(project);
|
|
379
|
+
const storyUnsetAwaitingWorkspaceIssueUrls = allProjectOpenIssues
|
|
380
|
+
.filter(
|
|
381
|
+
(issue) =>
|
|
382
|
+
issue.status === AWAITING_WORKSPACE_STATUS_NAME &&
|
|
383
|
+
!issue.isClosed &&
|
|
384
|
+
issue.story === null,
|
|
385
|
+
)
|
|
386
|
+
.map((issue) => issue.url);
|
|
387
|
+
if (storyUnsetAwaitingWorkspaceIssueUrls.length > 0) {
|
|
388
|
+
console.warn(
|
|
389
|
+
`Awaiting Workspace issue(s) invisible to spawn candidate selection because Story is unset: ${storyUnsetAwaitingWorkspaceIssueUrls.join(', ')}`,
|
|
390
|
+
);
|
|
391
|
+
}
|
|
376
392
|
const currentPreparationIssueCount = allOpenedIssues.filter(
|
|
377
393
|
(issue) => issue.status === PREPARATION_STATUS_NAME,
|
|
378
394
|
).length;
|
|
379
395
|
let updatedCurrentPreparationIssueCount = currentPreparationIssueCount;
|
|
380
396
|
let startedInThisRunCount = 0;
|
|
381
397
|
const spawnedInThisRunByToken: Record<string, number> = {};
|
|
398
|
+
const exclusionCounts = {
|
|
399
|
+
dependedIssueUrls: 0,
|
|
400
|
+
futureNextActionDate: 0,
|
|
401
|
+
nextActionHourNotReached: 0,
|
|
402
|
+
authorNotAllowed: 0,
|
|
403
|
+
};
|
|
382
404
|
|
|
383
405
|
const now = new Date();
|
|
384
406
|
const currentHour = now.getHours();
|
|
@@ -401,15 +423,18 @@ export class StartPreparationUseCase {
|
|
|
401
423
|
) {
|
|
402
424
|
const issue = awaitingWorkspaceIssues[i];
|
|
403
425
|
if (issue.dependedIssueUrls.length > 0) {
|
|
426
|
+
exclusionCounts.dependedIssueUrls++;
|
|
404
427
|
continue;
|
|
405
428
|
}
|
|
406
429
|
if (
|
|
407
430
|
issue.nextActionDate !== null &&
|
|
408
431
|
issue.nextActionDate >= tomorrowStart
|
|
409
432
|
) {
|
|
433
|
+
exclusionCounts.futureNextActionDate++;
|
|
410
434
|
continue;
|
|
411
435
|
}
|
|
412
436
|
if (issue.nextActionHour !== null && currentHour < issue.nextActionHour) {
|
|
437
|
+
exclusionCounts.nextActionHourNotReached++;
|
|
413
438
|
continue;
|
|
414
439
|
}
|
|
415
440
|
if (
|
|
@@ -417,6 +442,7 @@ export class StartPreparationUseCase {
|
|
|
417
442
|
params.allowedIssueAuthors.length === 0 ||
|
|
418
443
|
!params.allowedIssueAuthors.includes(issue.author)
|
|
419
444
|
) {
|
|
445
|
+
exclusionCounts.authorNotAllowed++;
|
|
420
446
|
continue;
|
|
421
447
|
}
|
|
422
448
|
const mappedAgentFromLabel =
|
|
@@ -597,6 +623,9 @@ export class StartPreparationUseCase {
|
|
|
597
623
|
startedInThisRunCount++;
|
|
598
624
|
updatedCurrentPreparationIssueCount++;
|
|
599
625
|
}
|
|
626
|
+
console.log(
|
|
627
|
+
`Spawn candidate exclusion summary for ${params.projectUrl}: dependedIssueUrls=${exclusionCounts.dependedIssueUrls}, futureNextActionDate=${exclusionCounts.futureNextActionDate}, nextActionHourNotReached=${exclusionCounts.nextActionHourNotReached}, authorNotAllowed=${exclusionCounts.authorNotAllowed}`,
|
|
628
|
+
);
|
|
600
629
|
return { rotationOrder };
|
|
601
630
|
};
|
|
602
631
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"situationFileWriter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/situationFileWriter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gEAAgE,CAAC;AAEzG,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE;QACX,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;QACvC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;KACxC,CAAC;IACF,MAAM,EAAE;QACN,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3C,8BAA8B,EAAE,MAAM,CAAC;QACvC,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,8BAA8B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,aAW9C,CAAC;
|
|
1
|
+
{"version":3,"file":"situationFileWriter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/situationFileWriter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gEAAgE,CAAC;AAEzG,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE;QACX,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;QACvC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;KACxC,CAAC;IACF,MAAM,EAAE;QACN,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3C,8BAA8B,EAAE,MAAM,CAAC;QACvC,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,8BAA8B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,aAW9C,CAAC;AAkCF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,mBAAmB,KAC1B,OAAO,CAAC,IAAI,CAkGd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigurableSilentSessionMessageComposer.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ConfigurableSilentSessionMessageComposer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConfigurableSilentSessionMessageComposer.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ConfigurableSilentSessionMessageComposer.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,uEAAuE,CAAC;AAQ/E,MAAM,MAAM,6BAA6B,GAAG;IAC1C,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD,CAAC;AAOF,qBAAa,wCAAyC,YAAW,4BAA4B;IAEzF,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,SAAS,EAAE,6BAA6B,EACxC,QAAQ,EAAE,4BAA4B;IAGzD,yBAAyB,GAAI,mBAAmB,MAAM,KAAG,MAAM,CAO7D;IAEF,2CAA2C,GACzC,mBAAmB,MAAM,EACzB,+BAA+B,MAAM,KACpC,MAAM,CAUP;IAEF,sBAAsB,GAAI,eAAe,qBAAqB,KAAG,MAAM,CA4CrE;IAEF,OAAO,CAAC,kBAAkB,CAkBxB;IAEF,OAAO,CAAC,yBAAyB,CAkB/B;CACH"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const GITHUB_GRAPHQL_ENDPOINT = "https://api.github.com/graphql";
|
|
2
|
+
export declare const GITHUB_GRAPHQL_REQUEST_TIMEOUT_MS = 120000;
|
|
2
3
|
export declare const RATE_LIMIT_SELECTION = "rateLimit { cost remaining }";
|
|
3
4
|
export type GithubGraphqlRateLimit = {
|
|
4
5
|
cost: number;
|
|
@@ -17,5 +18,6 @@ export declare const fetchGithubGraphql: (params: {
|
|
|
17
18
|
ghToken: string;
|
|
18
19
|
query: string;
|
|
19
20
|
variables?: Record<string, unknown>;
|
|
21
|
+
timeoutMs?: number;
|
|
20
22
|
}) => Promise<Response>;
|
|
21
23
|
//# sourceMappingURL=githubGraphqlClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubGraphqlClient.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/githubGraphqlClient.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,eAAO,MAAM,oBAAoB,iCAAiC,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,OACV,CAAC;AAE3C,eAAO,MAAM,2BAA2B,GAAI,OAAO,MAAM,KAAG,MAK3D,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,MAAM,KAAG,MASxD,CAAC;AAgCF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,cAAc,OAAO,KACpB,IAQF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,CAAC,EAAE,QAAQ;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,KAAG,OAAO,CAAC,CAAC,CAgBZ,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,QAAQ;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"githubGraphqlClient.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/githubGraphqlClient.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,eAAO,MAAM,iCAAiC,SAAU,CAAC;AAEzD,eAAO,MAAM,oBAAoB,iCAAiC,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,OACV,CAAC;AAE3C,eAAO,MAAM,2BAA2B,GAAI,OAAO,MAAM,KAAG,MAK3D,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,MAAM,KAAG,MASxD,CAAC;AAgCF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,cAAc,OAAO,KACpB,IAQF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,CAAC,EAAE,QAAQ;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,KAAG,OAAO,CAAC,CAAC,CAgBZ,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,QAAQ;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,KAAG,OAAO,CAAC,QAAQ,CAuBnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiV3CheerioRestIssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ApiV3CheerioRestIssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SilentSessionMessageComposer, SubAgentStallSections } from './adapter-interfaces/SilentSessionMessageComposer';
|
|
2
2
|
export declare const composeOwnerCallFormatGuidance: () => string;
|
|
3
|
+
export declare const composeMainStalledSelfDiagnosisGuidance: () => string;
|
|
3
4
|
export declare class DefaultSilentSessionMessageComposer implements SilentSessionMessageComposer {
|
|
4
5
|
composeMainStalledSection: (mainSilentSeconds: number) => string;
|
|
5
6
|
composeMainStalledWithStaleOwnerCallSection: (mainSilentSeconds: number, unansweredOwnerCallAgeSeconds: number) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultSilentSessionMessageComposer.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/DefaultSilentSessionMessageComposer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,mDAAmD,CAAC;AAwC3D,eAAO,MAAM,8BAA8B,QAAO,MAEjD,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultSilentSessionMessageComposer.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/DefaultSilentSessionMessageComposer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,mDAAmD,CAAC;AAwC3D,eAAO,MAAM,8BAA8B,QAAO,MAEjD,CAAC;AAEF,eAAO,MAAM,uCAAuC,QAAO,MAM1D,CAAC;AA4BF,qBAAa,mCAAoC,YAAW,4BAA4B;IACtF,yBAAyB,GAAI,mBAAmB,MAAM,KAAG,MAAM,CAE7D;IAEF,2CAA2C,GACzC,mBAAmB,MAAM,EACzB,+BAA+B,MAAM,KACpC,MAAM,CAKP;IAEF,sBAAsB,GAAI,eAAe,qBAAqB,KAAG,MAAM,CAWrE;CACH"}
|
|
@@ -17,7 +17,7 @@ export declare class StartPreparationUseCase {
|
|
|
17
17
|
private readonly issueRepository;
|
|
18
18
|
private readonly localCommandRunner;
|
|
19
19
|
private readonly claudeTokenUsageRepository;
|
|
20
|
-
constructor(projectRepository: Pick<ProjectRepository, 'getByUrl'>, issueRepository: Pick<IssueRepository, 'getStoryObjectMap' | 'updateStatus' | 'findRelatedOpenPRs' | 'getOpenPullRequest' | 'closePullRequest' | 'deletePullRequestBranch' | 'createCommentByUrl'>, localCommandRunner: LocalCommandRunner, claudeTokenUsageRepository: ClaudeTokenUsageRepository);
|
|
20
|
+
constructor(projectRepository: Pick<ProjectRepository, 'getByUrl'>, issueRepository: Pick<IssueRepository, 'getStoryObjectMap' | 'getAllOpened' | 'updateStatus' | 'findRelatedOpenPRs' | 'getOpenPullRequest' | 'closePullRequest' | 'deletePullRequestBranch' | 'createCommentByUrl'>, localCommandRunner: LocalCommandRunner, claudeTokenUsageRepository: ClaudeTokenUsageRepository);
|
|
21
21
|
private weeklyLimitTypeForModel;
|
|
22
22
|
private isWithinCooldown;
|
|
23
23
|
private isModelWeeklyLimitRejected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAShE,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"StartPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAShE,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAWhC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAb1B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EACtD,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,mBAAmB,GACnB,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,oBAAoB,GACpB,kBAAkB,GAClB,yBAAyB,GACzB,oBAAoB,CACvB,EACgB,kBAAkB,EAAE,kBAAkB,EACtC,0BAA0B,EAAE,0BAA0B;IAGzE,OAAO,CAAC,uBAAuB,CAK7B;IAEF,OAAO,CAAC,gBAAgB,CAGgC;IAExD,OAAO,CAAC,0BAA0B,CAQhC;IAEF,OAAO,CAAC,mBAAmB,CAqBzB;IAEF,OAAO,CAAC,yBAAyB,CAc/B;IAEF,OAAO,CAAC,wCAAwC,CAqB9C;IAEF,OAAO,CAAC,sBAAsB,CAS5B;IAEF,uBAAuB,GACrB,qBAAqB,MAAM,EAC3B,qBAAqB,MAAM,KAC1B,MAAM,CAUP;IAEF,OAAO,CAAC,oBAAoB,CA4E1B;IAEF,kBAAkB,GAChB,aAAa,gBAAgB,EAAE,EAC/B,gCAAgC,MAAM,EACtC,WAAW,MAAM,GAAG,IAAI,KACvB,kBAAkB,EAAE,CAqDrB;IAEF,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;QACpC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3C,8BAA8B,EAAE,MAAM,CAAC;QACvC,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACrC,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACrC,oBAAoB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KACvC,KAAG,OAAO,CAAC;QAAE,aAAa,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAA;KAAE,CAAC,CAwUzD;CACH"}
|