github-issue-tower-defence-management 1.151.7 → 1.152.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/.github/workflows/create-pr.yml +1 -1
- package/CHANGELOG.md +7 -0
- package/bin/adapter/entry-points/console/ui-dist/assets/{index-CGqYXHZV.css → index-lemrqYKZ.css} +1 -1
- package/bin/adapter/entry-points/console/ui-dist/index.html +2 -2
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +0 -19
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/adapter/entry-points/handlers/inTmuxByHumanDataWriter.js +1 -13
- package/bin/adapter/entry-points/handlers/inTmuxByHumanDataWriter.js.map +1 -1
- package/bin/adapter/repositories/TranscriptOwnerCallStatusProvider.js +0 -41
- package/bin/adapter/repositories/TranscriptOwnerCallStatusProvider.js.map +1 -1
- package/bin/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.js +2 -21
- package/bin/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/console/ui/src/index.css +0 -7
- package/src/adapter/entry-points/console/ui-dist/assets/{index-CGqYXHZV.css → index-lemrqYKZ.css} +1 -1
- package/src/adapter/entry-points/console/ui-dist/index.html +2 -2
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +0 -33
- package/src/adapter/entry-points/handlers/inTmuxByHumanDataWriter.test.ts +3 -104
- package/src/adapter/entry-points/handlers/inTmuxByHumanDataWriter.ts +0 -19
- package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.singleScan.test.ts +10 -12
- package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.test.ts +0 -178
- package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.ts +0 -61
- package/src/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.test.ts +0 -99
- package/src/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.ts +1 -47
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/adapter/entry-points/handlers/inTmuxByHumanDataWriter.d.ts +0 -2
- package/types/adapter/entry-points/handlers/inTmuxByHumanDataWriter.d.ts.map +1 -1
- package/types/adapter/repositories/TranscriptOwnerCallStatusProvider.d.ts +0 -3
- package/types/adapter/repositories/TranscriptOwnerCallStatusProvider.d.ts.map +1 -1
- package/types/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.d.ts +0 -19
- package/types/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.d.ts.map +1 -1
- package/src/adapter/entry-points/handlers/resolveUnansweredOwnerCalls.test.ts +0 -111
- package/src/adapter/entry-points/handlers/resolveUnansweredOwnerCalls.ts +0 -33
- package/src/domain/entities/UnansweredOwnerCall.ts +0 -4
- package/src/domain/usecases/intmux/UnansweredOwnerCallSessionKeyContract.test.ts +0 -141
- /package/bin/adapter/entry-points/console/ui-dist/assets/{index-BjFRJoM1.js → index-DR_LIP9n.js} +0 -0
- /package/src/adapter/entry-points/console/ui-dist/assets/{index-BjFRJoM1.js → index-DR_LIP9n.js} +0 -0
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { Issue } from '../../entities/Issue';
|
|
2
|
-
import { IN_TMUX_STATUS_NAME } from '../../entities/WorkflowStatus';
|
|
3
|
-
import { FieldOption, Project } from '../../entities/Project';
|
|
4
|
-
import { UnansweredOwnerCall } from '../../entities/UnansweredOwnerCall';
|
|
5
|
-
import { IssueRepository } from '../adapter-interfaces/IssueRepository';
|
|
6
|
-
import { TmuxSessionRepository } from '../adapter-interfaces/TmuxSessionRepository';
|
|
7
|
-
import { InTmuxByHumanSessionReconcileUseCase } from './InTmuxByHumanSessionReconcileUseCase';
|
|
8
|
-
import { GenerateInTmuxByHumanDataUseCase } from './GenerateInTmuxByHumanDataUseCase';
|
|
9
|
-
|
|
10
|
-
const ASSIGNEE = 'owner-login';
|
|
11
|
-
const LAUNCHER = 'cl';
|
|
12
|
-
const NOW = new Date('2026-06-25T12:00:00.000Z');
|
|
13
|
-
const ISSUE_URL = 'https://github.com/demo/repo/issues/1';
|
|
14
|
-
const STORY_NAME = 'Story Alpha';
|
|
15
|
-
|
|
16
|
-
const fieldOption = (id: string, name: string): FieldOption => ({
|
|
17
|
-
id,
|
|
18
|
-
name,
|
|
19
|
-
color: 'BLUE',
|
|
20
|
-
description: '',
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
const projectWithStory: Project = {
|
|
24
|
-
id: 'project-node-id',
|
|
25
|
-
url: 'https://github.com/orgs/demo/projects/1',
|
|
26
|
-
databaseId: 1,
|
|
27
|
-
name: 'demo',
|
|
28
|
-
status: {
|
|
29
|
-
name: 'Status',
|
|
30
|
-
fieldId: 'status-field',
|
|
31
|
-
statuses: [fieldOption('st-tmux', IN_TMUX_STATUS_NAME)],
|
|
32
|
-
},
|
|
33
|
-
nextActionDate: null,
|
|
34
|
-
nextActionHour: null,
|
|
35
|
-
story: {
|
|
36
|
-
name: 'story',
|
|
37
|
-
fieldId: 'story-field',
|
|
38
|
-
databaseId: 2,
|
|
39
|
-
stories: [fieldOption('s1', STORY_NAME)],
|
|
40
|
-
workflowManagementStory: { id: 'wm', name: 'workflow management' },
|
|
41
|
-
},
|
|
42
|
-
remainingEstimationMinutes: null,
|
|
43
|
-
dependedIssueUrlSeparatedByComma: null,
|
|
44
|
-
completionDate50PercentConfidence: null,
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const inTmuxIssue: Issue = {
|
|
48
|
-
nameWithOwner: 'demo/repo',
|
|
49
|
-
number: 1,
|
|
50
|
-
title: 'Issue 1',
|
|
51
|
-
state: 'OPEN',
|
|
52
|
-
status: IN_TMUX_STATUS_NAME,
|
|
53
|
-
story: STORY_NAME,
|
|
54
|
-
nextActionDate: null,
|
|
55
|
-
nextActionHour: null,
|
|
56
|
-
estimationMinutes: null,
|
|
57
|
-
dependedIssueUrls: [],
|
|
58
|
-
completionDate50PercentConfidence: null,
|
|
59
|
-
url: ISSUE_URL,
|
|
60
|
-
assignees: [ASSIGNEE],
|
|
61
|
-
labels: [],
|
|
62
|
-
org: 'demo',
|
|
63
|
-
repo: 'repo',
|
|
64
|
-
body: '',
|
|
65
|
-
itemId: 'item-1',
|
|
66
|
-
isPr: false,
|
|
67
|
-
isInProgress: false,
|
|
68
|
-
isClosed: false,
|
|
69
|
-
createdAt: NOW,
|
|
70
|
-
author: '',
|
|
71
|
-
closingIssueReferenceUrls: [],
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const tmuxSessionNameTheReconcilerCreatesFor = async (
|
|
75
|
-
issue: Issue,
|
|
76
|
-
): Promise<string> => {
|
|
77
|
-
const launchedSessionNames: string[] = [];
|
|
78
|
-
const tmuxSessionRepository: TmuxSessionRepository = {
|
|
79
|
-
listLiveSessionNames: async () => [],
|
|
80
|
-
listLiveSessionsWithActivity: async () => [],
|
|
81
|
-
listInteractiveProcessCommandLines: async () => [],
|
|
82
|
-
launchDetachedSession: async (sessionName: string) => {
|
|
83
|
-
launchedSessionNames.push(sessionName);
|
|
84
|
-
},
|
|
85
|
-
killSession: async () => undefined,
|
|
86
|
-
killOwnSession: async () => undefined,
|
|
87
|
-
sendKeys: async () => undefined,
|
|
88
|
-
launchBareNameLeaderSession: async () => undefined,
|
|
89
|
-
};
|
|
90
|
-
const issueStateRepository: Pick<
|
|
91
|
-
IssueRepository,
|
|
92
|
-
'getIssueOrPullRequestState'
|
|
93
|
-
> = {
|
|
94
|
-
getIssueOrPullRequestState: async () => ({
|
|
95
|
-
state: 'OPEN',
|
|
96
|
-
merged: false,
|
|
97
|
-
isPullRequest: false,
|
|
98
|
-
title: 'Issue 1',
|
|
99
|
-
}),
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
await new InTmuxByHumanSessionReconcileUseCase(
|
|
103
|
-
tmuxSessionRepository,
|
|
104
|
-
issueStateRepository,
|
|
105
|
-
).run({
|
|
106
|
-
issues: [issue],
|
|
107
|
-
assigneeLogin: ASSIGNEE,
|
|
108
|
-
launcherCommand: LAUNCHER,
|
|
109
|
-
now: NOW,
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
return launchedSessionNames[0];
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
describe('unanswered owner call session key contract', () => {
|
|
116
|
-
it('reads the calls under the very tmux session name the reconciler creates for that issue', async () => {
|
|
117
|
-
const call: UnansweredOwnerCall = {
|
|
118
|
-
calledAt: '2026-06-25T11:00:00.000Z',
|
|
119
|
-
body: 'Please decide whether to merge the release branch',
|
|
120
|
-
};
|
|
121
|
-
const sessionNameTheReconcilerCreates =
|
|
122
|
-
await tmuxSessionNameTheReconcilerCreatesFor(inTmuxIssue);
|
|
123
|
-
|
|
124
|
-
const result = new GenerateInTmuxByHumanDataUseCase().run({
|
|
125
|
-
project: projectWithStory,
|
|
126
|
-
issues: [inTmuxIssue],
|
|
127
|
-
pjcode: 'demo',
|
|
128
|
-
assigneeLogin: ASSIGNEE,
|
|
129
|
-
org: 'demo',
|
|
130
|
-
repo: 'repo',
|
|
131
|
-
consoleBaseUrl: 'https://console.example.test',
|
|
132
|
-
consoleToken: 'test-token-value',
|
|
133
|
-
unansweredCallsByTmuxSessionName: new Map([
|
|
134
|
-
[sessionNameTheReconcilerCreates, [call]],
|
|
135
|
-
]),
|
|
136
|
-
now: NOW,
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
expect(result.v5?.groups[0].sessions[0].unansweredCalls).toEqual([call]);
|
|
140
|
-
});
|
|
141
|
-
});
|
/package/bin/adapter/entry-points/console/ui-dist/assets/{index-BjFRJoM1.js → index-DR_LIP9n.js}
RENAMED
|
File without changes
|
/package/src/adapter/entry-points/console/ui-dist/assets/{index-BjFRJoM1.js → index-DR_LIP9n.js}
RENAMED
|
File without changes
|