github-issue-tower-defence-management 1.136.0 → 1.137.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 +12 -0
- package/README.md +7 -0
- package/bin/adapter/entry-points/cli/index.js +24 -0
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/adapter/repositories/NodeTmuxSessionRepository.js +51 -6
- package/bin/adapter/repositories/NodeTmuxSessionRepository.js.map +1 -1
- package/bin/adapter/repositories/clSessionScopeUnitNameFromCgroupContent.js +10 -0
- package/bin/adapter/repositories/clSessionScopeUnitNameFromCgroupContent.js.map +1 -0
- package/bin/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.js +1 -1
- package/bin/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/cli/index.test.ts +118 -1
- package/src/adapter/entry-points/cli/index.ts +38 -0
- package/src/adapter/entry-points/handlers/staleTmuxSessionCleaner.test.ts +2 -2
- package/src/adapter/repositories/NodeTmuxSessionRepository.test.ts +78 -18
- package/src/adapter/repositories/NodeTmuxSessionRepository.ts +27 -6
- package/src/adapter/repositories/clSessionScopeUnitNameFromCgroupContent.test.ts +34 -0
- package/src/adapter/repositories/clSessionScopeUnitNameFromCgroupContent.ts +8 -0
- package/src/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.test.ts +25 -15
- package/src/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.ts +1 -1
- package/src/domain/usecases/adapter-interfaces/TmuxSessionRepository.ts +1 -0
- package/src/domain/usecases/intmux/InTmuxByHumanSessionReconcileUseCase.test.ts +1 -0
- package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
- package/types/adapter/repositories/NodeTmuxSessionRepository.d.ts +4 -2
- package/types/adapter/repositories/NodeTmuxSessionRepository.d.ts.map +1 -1
- package/types/adapter/repositories/clSessionScopeUnitNameFromCgroupContent.d.ts +2 -0
- package/types/adapter/repositories/clSessionScopeUnitNameFromCgroupContent.d.ts.map +1 -0
- package/types/domain/usecases/adapter-interfaces/TmuxSessionRepository.d.ts +1 -0
- package/types/domain/usecases/adapter-interfaces/TmuxSessionRepository.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# [1.137.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.136.0...v1.137.0) (2026-07-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **core:** run story-label conversion on incremental-fetch cycles ([#1229](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1229)) ([70bd67e](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/70bd67e79fda10559302ff5d7e821bc730a976bb))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **cli:** add killTmuxSession command to cleanly kill a session ([#1271](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1271)) ([52f5c15](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/52f5c15188be756090bc97bb31dd51b529139225)), closes [#1270](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1270)
|
|
12
|
+
|
|
1
13
|
# [1.136.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.135.2...v1.136.0) (2026-07-26)
|
|
2
14
|
|
|
3
15
|
|
package/README.md
CHANGED
|
@@ -25,6 +25,7 @@ Commands:
|
|
|
25
25
|
selectOauthToken [options] Print one rate-limit-aware Claude Code OAuth token to stdout (pipeable; read-only)
|
|
26
26
|
selectLiveSessionOauthToken [options] Print one Claude Code OAuth token chosen for a new live interactive session (fewest live sessions, then soonest 7d reset; read-only)
|
|
27
27
|
countInTmuxByHumanSessionsPerToken [options] Print, per OAuth token, the count of live "In Tmux by human" interactive sessions using that token (read-only)
|
|
28
|
+
killTmuxSession [options] Cleanly kill a tmux session by running tmux kill-session and stopping its cl-*.scope systemd --user unit
|
|
28
29
|
help [command] display help for command
|
|
29
30
|
|
|
30
31
|
Options for schedule:
|
|
@@ -80,6 +81,10 @@ Options for countInTmuxByHumanSessionsPerToken:
|
|
|
80
81
|
--configFilePath <path> Path to config file for tower defence management (required)
|
|
81
82
|
--projectUrl <url> GitHub project URL
|
|
82
83
|
--tokenListJsonPath <path> Path to the JSON array of { name, token } records (falls back to the claudeCodeOauthTokenListJsonPath config value, then to the CLAUDE_CODE_OAUTH_TOKEN_LIST_JSON_PATH environment variable)
|
|
84
|
+
|
|
85
|
+
Options for killTmuxSession:
|
|
86
|
+
--session <name> Name of the tmux session to kill
|
|
87
|
+
--self Terminate the current session by stopping its own cl-*.scope systemd user unit, derived from /proc/self/cgroup
|
|
83
88
|
```
|
|
84
89
|
|
|
85
90
|
The `serveWeb` sub-command starts a local HTTP server that serves the TDPM web surface — the console tabs, the dashboard, and the in-tmux-by-human session list. `serveConsole` remains available as a deprecated alias that maps to the same handler, so existing invokers keep working during rollout; new usage should prefer `serveWeb`. One running instance serves every project: the user opens a per-project URL path `/projects/{pjcode}` (or `/projects/{pjcode}/{workflow-blocker|prs|triage|unread|failed-preparation|todo-by-human|todo-by-agent}`) and the bundled UI reads the `pjcode` from its own URL path and loads that project's list data. The server serves the bundled single-page-application `index.html` at `/`, `/index.html`, and every `/projects/{pjcode}` and `/projects/{pjcode}/{tab}` app route. Every response is sent with `Cache-Control: no-store`. Any request path containing a segment that begins with a dot (for example `/.git` or `/.env`) is rejected with HTTP 404. The UI bootstrap assets (HTML and JS) are served without authentication; served `*.json` files and `/api/*` paths require an access token supplied either as the `k` query parameter (`?k=<token>`) or the `X-PV-Token` request header. The access token is read from the `consoleAccessToken` config value and never appears on the command line. When the built UI bundle directory (`ui-dist`) is absent the server still starts and serves a minimal placeholder index for `/`, `/index.html`, and the per-project app routes.
|
|
@@ -117,6 +122,8 @@ The `selectLiveSessionOauthToken` sub-command picks a token for a new live inter
|
|
|
117
122
|
|
|
118
123
|
The `countInTmuxByHumanSessionsPerToken` sub-command reports, per Claude Code OAuth token, how many live interactive sessions running under that token belong to an issue that is currently in the GitHub Project Status `In Tmux by human`. It is read-only: it never starts the proxy, never mutates any cache file, and never writes any token anywhere. It enumerates live interactive sessions by scanning running processes on the local Linux host: for each process under `/proc` it reads the NUL-separated `/proc/<pid>/cmdline` and selects only processes launched for an interactive session, identified by a `--name <issue-url>` argument whose value is an HTTP or HTTPS URL; `Take ownership` background spawns (which have no `--name` argument) are excluded. For each selected process it reads `/proc/<pid>/environ` and takes its `CLAUDE_CODE_OAUTH_TOKEN` and `CLAUDE_CODE_SESSION_ID`; a process missing either is skipped, and a process whose files cannot be read is skipped. It then loads the project's issues with their Status (reusing the same on-disk issue cache the daemon uses), keeps only the sessions whose `--name` issue URL maps to an open issue in Status `In Tmux by human`, and counts the distinct `CLAUDE_CODE_SESSION_ID` values per token so child processes that inherit one session id count once. It writes one tab-separated line per token to stdout in the form `<tokenName>\t<count>` (the token name comes from the token list; the raw token value is never printed), and writes the per-run decision trace to stderr. The token-list path comes from `--tokenListJsonPath`, the `claudeCodeOauthTokenListJsonPath` config value, or the `CLAUDE_CODE_OAUTH_TOKEN_LIST_JSON_PATH` environment variable. Because occupancy is read from `/proc/<pid>/cmdline` and `/proc/<pid>/environ`, this sub-command is Linux-specific.
|
|
119
124
|
|
|
125
|
+
The `killTmuxSession` sub-command cleanly kills a tmux session by running `tmux kill-session` together with stopping that session's per-session `cl-*.scope` systemd `--user` unit, consolidating logic that would otherwise need to be hand-written by callers. It takes exactly one of two mutually exclusive options. `--session <name>` kills another named session: it first stops the session's `cl-*.scope` unit (wrapping the `systemctl --user stop` call with `systemctl --user reset-failed` both before and after), then runs `tmux kill-session -t "=<name>"` using the exact-name `=` prefix so a session name that is itself a prefix of another session's name is never matched by mistake. `--self` terminates the current session from inside it: because a live session cannot run `tmux kill-session` on itself without being killed before its own scope-stop step completes, this mode derives the caller's own `cl-*.scope` unit name from `/proc/self/cgroup` and stops only that scope, without calling `tmux kill-session` at all. Neither option may be combined with the other, and providing neither is an error.
|
|
126
|
+
|
|
120
127
|
## Example 📖
|
|
121
128
|
|
|
122
129
|
Here's a quick example to illustrate its usage:
|
|
@@ -56,6 +56,7 @@ const ApiV3CheerioRestIssueRepository_1 = require("../../repositories/issue/ApiV
|
|
|
56
56
|
const LocalStorageCacheRepository_1 = require("../../repositories/LocalStorageCacheRepository");
|
|
57
57
|
const SystemDateRepository_1 = require("../../repositories/SystemDateRepository");
|
|
58
58
|
const NodeLocalCommandRunner_1 = require("../../repositories/NodeLocalCommandRunner");
|
|
59
|
+
const NodeTmuxSessionRepository_1 = require("../../repositories/NodeTmuxSessionRepository");
|
|
59
60
|
const GitHubIssueCommentRepository_1 = require("../../repositories/GitHubIssueCommentRepository");
|
|
60
61
|
const FetchWebhookRepository_1 = require("../../repositories/FetchWebhookRepository");
|
|
61
62
|
const RevertOrphanedPreparationUseCase_1 = require("../../../domain/usecases/RevertOrphanedPreparationUseCase");
|
|
@@ -590,6 +591,29 @@ exports.program
|
|
|
590
591
|
process.stdout.write(`${line}\n`);
|
|
591
592
|
}
|
|
592
593
|
});
|
|
594
|
+
exports.program
|
|
595
|
+
.command('killTmuxSession')
|
|
596
|
+
.description('Cleanly kill a tmux session by running tmux kill-session and stopping its cl-*.scope systemd --user unit. Use --session <name> to kill another named session, or --self to terminate the current session from inside it.')
|
|
597
|
+
.option('--session <name>', 'Name of the tmux session to kill')
|
|
598
|
+
.option('--self', 'Terminate the current session by stopping its own cl-*.scope systemd user unit, derived from /proc/self/cgroup')
|
|
599
|
+
.action(async (options) => {
|
|
600
|
+
if (!options.session && !options.self) {
|
|
601
|
+
console.error('Either --session <name> or --self is required');
|
|
602
|
+
process.exit(1);
|
|
603
|
+
}
|
|
604
|
+
if (options.session && options.self) {
|
|
605
|
+
console.error('--session and --self cannot be used together');
|
|
606
|
+
process.exit(1);
|
|
607
|
+
}
|
|
608
|
+
const localCommandRunner = new NodeLocalCommandRunner_1.NodeLocalCommandRunner();
|
|
609
|
+
const tmuxSessionRepository = new NodeTmuxSessionRepository_1.NodeTmuxSessionRepository(localCommandRunner);
|
|
610
|
+
if (options.self) {
|
|
611
|
+
await tmuxSessionRepository.killOwnSession();
|
|
612
|
+
}
|
|
613
|
+
else if (options.session) {
|
|
614
|
+
await tmuxSessionRepository.killSession(options.session);
|
|
615
|
+
}
|
|
616
|
+
});
|
|
593
617
|
/* istanbul ignore next */
|
|
594
618
|
if (process.argv && require.main === module) {
|
|
595
619
|
exports.program.parse(process.argv);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.NodeTmuxSessionRepository = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
4
39
|
const clSessionScopeUnitName_1 = require("./clSessionScopeUnitName");
|
|
40
|
+
const clSessionScopeUnitNameFromCgroupContent_1 = require("./clSessionScopeUnitNameFromCgroupContent");
|
|
5
41
|
class NodeTmuxSessionRepository {
|
|
6
|
-
constructor(localCommandRunner) {
|
|
42
|
+
constructor(localCommandRunner, procDirectory = '/proc') {
|
|
7
43
|
this.localCommandRunner = localCommandRunner;
|
|
44
|
+
this.procDirectory = procDirectory;
|
|
8
45
|
this.listLiveSessionNames = async () => {
|
|
9
46
|
const { stdout, exitCode } = await this.localCommandRunner.runCommand('tmux', ['list-sessions', '-F', '#{session_name}']);
|
|
10
47
|
if (exitCode !== 0) {
|
|
@@ -57,14 +94,22 @@ class NodeTmuxSessionRepository {
|
|
|
57
94
|
]);
|
|
58
95
|
};
|
|
59
96
|
this.killSession = async (sessionName) => {
|
|
60
|
-
const
|
|
97
|
+
const scopeUnitName = (0, clSessionScopeUnitName_1.clSessionScopeUnitName)(sessionName);
|
|
98
|
+
await this.stopScopeUnit(scopeUnitName);
|
|
99
|
+
const { stderr, exitCode } = await this.localCommandRunner.runCommand('tmux', ['kill-session', '-t', `=${sessionName}`]);
|
|
61
100
|
if (exitCode !== 0) {
|
|
62
101
|
throw new Error(`Failed to kill tmux session "${sessionName}": exit code ${exitCode}${stderr ? `: ${stderr}` : ''}`);
|
|
63
102
|
}
|
|
64
|
-
await this.stopClSessionScope(sessionName);
|
|
65
103
|
};
|
|
66
|
-
this.
|
|
67
|
-
const
|
|
104
|
+
this.killOwnSession = async () => {
|
|
105
|
+
const cgroupContent = fs.readFileSync(path.join(this.procDirectory, 'self', 'cgroup'), 'utf8');
|
|
106
|
+
const scopeUnitName = (0, clSessionScopeUnitNameFromCgroupContent_1.clSessionScopeUnitNameFromCgroupContent)(cgroupContent);
|
|
107
|
+
if (scopeUnitName === null) {
|
|
108
|
+
throw new Error('Failed to determine the current cl-*.scope systemd user unit from /proc/self/cgroup');
|
|
109
|
+
}
|
|
110
|
+
await this.stopScopeUnit(scopeUnitName);
|
|
111
|
+
};
|
|
112
|
+
this.stopScopeUnit = async (scopeUnitName) => {
|
|
68
113
|
await this.localCommandRunner.runCommand('systemctl', [
|
|
69
114
|
'--user',
|
|
70
115
|
'reset-failed',
|
|
@@ -77,7 +122,7 @@ class NodeTmuxSessionRepository {
|
|
|
77
122
|
scopeUnitName,
|
|
78
123
|
]);
|
|
79
124
|
if (exitCode !== 0) {
|
|
80
|
-
console.error(`Failed to stop systemd user scope "${scopeUnitName}"
|
|
125
|
+
console.error(`Failed to stop systemd user scope "${scopeUnitName}": exit code ${exitCode}${stderr ? `: ${stderr}` : ''}`);
|
|
81
126
|
}
|
|
82
127
|
};
|
|
83
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeTmuxSessionRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeTmuxSessionRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAI7B,qEAAkE;AAClE,uGAAoG;AAEpG,MAAa,yBAAyB;IACpC,YACmB,kBAAsC,EACtC,gBAAwB,OAAO;QAD/B,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,kBAAa,GAAb,aAAa,CAAkB;QAGlD,yBAAoB,GAAG,KAAK,IAAuB,EAAE;YACnD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CACnE,MAAM,EACN,CAAC,eAAe,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAC3C,CAAC;YACF,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,MAAM;iBACV,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,iCAA4B,GAAG,KAAK,IAAgC,EAAE;YACpE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CACnE,MAAM,EACN,CAAC,eAAe,EAAE,IAAI,EAAE,qCAAqC,CAAC,CAC/D,CAAC;YACF,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,MAAM;iBACV,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;iBACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACZ,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;gBAClD,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;YAC/C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,uCAAkC,GAAG,KAAK,IAAuB,EAAE;YACjE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CACnE,IAAI,EACJ,CAAC,KAAK,EAAE,OAAO,CAAC,CACjB,CAAC;YACF,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,MAAM;iBACV,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,0BAAqB,GAAG,KAAK,EAC3B,WAAmB,EACnB,eAAuB,EACvB,QAAgB,EACD,EAAE;YACjB,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC/C,aAAa;gBACb,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,WAAW;gBACX,IAAI;gBACJ,KAAK;gBACL,gBAAgB;gBAChB,IAAI;gBACJ,eAAe;gBACf,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,gBAAW,GAAG,KAAK,EAAE,WAAmB,EAAiB,EAAE;YACzD,MAAM,aAAa,GAAG,IAAA,+CAAsB,EAAC,WAAW,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CACnE,MAAM,EACN,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC,CAC1C,CAAC;YACF,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CACb,gCAAgC,WAAW,gBAAgB,QAAQ,GACjE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAC3B,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QAEF,mBAAc,GAAG,KAAK,IAAmB,EAAE;YACzC,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAC/C,MAAM,CACP,CAAC;YACF,MAAM,aAAa,GACjB,IAAA,iFAAuC,EAAC,aAAa,CAAC,CAAC;YACzD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEM,kBAAa,GAAG,KAAK,EAAE,aAAqB,EAAiB,EAAE;YACrE,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,WAAW,EAAE;gBACpD,QAAQ;gBACR,cAAc;gBACd,aAAa;aACd,CAAC,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CACnE,WAAW,EACX,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAClC,CAAC;YACF,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,WAAW,EAAE;gBACpD,QAAQ;gBACR,cAAc;gBACd,aAAa;aACd,CAAC,CAAC;YACH,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CACX,sCAAsC,aAAa,gBAAgB,QAAQ,GACzE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAC3B,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;IA3HC,CAAC;CA4HL;AAhID,8DAgIC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clSessionScopeUnitNameFromCgroupContent = void 0;
|
|
4
|
+
const CL_SESSION_SCOPE_UNIT_PATTERN = /cl-[A-Za-z0-9._-]+\.scope/;
|
|
5
|
+
const clSessionScopeUnitNameFromCgroupContent = (cgroupContent) => {
|
|
6
|
+
const match = cgroupContent.match(CL_SESSION_SCOPE_UNIT_PATTERN);
|
|
7
|
+
return match ? match[0] : null;
|
|
8
|
+
};
|
|
9
|
+
exports.clSessionScopeUnitNameFromCgroupContent = clSessionScopeUnitNameFromCgroupContent;
|
|
10
|
+
//# sourceMappingURL=clSessionScopeUnitNameFromCgroupContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clSessionScopeUnitNameFromCgroupContent.js","sourceRoot":"","sources":["../../../src/adapter/repositories/clSessionScopeUnitNameFromCgroupContent.ts"],"names":[],"mappings":";;;AAAA,MAAM,6BAA6B,GAAG,2BAA2B,CAAC;AAE3D,MAAM,uCAAuC,GAAG,CACrD,aAAqB,EACN,EAAE;IACjB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC,CAAC;AALW,QAAA,uCAAuC,2CAKlD"}
|
|
@@ -6,7 +6,7 @@ class SetWorkflowManagementIssueToStoryUseCase {
|
|
|
6
6
|
this.issueRepository = issueRepository;
|
|
7
7
|
this.run = async (input) => {
|
|
8
8
|
const story = input.project.story;
|
|
9
|
-
if (!story
|
|
9
|
+
if (!story) {
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
12
|
for (const issue of input.issues) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetWorkflowManagementIssueToStoryUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.ts"],"names":[],"mappings":";;;AAIA,MAAa,wCAAwC;IACnD,YACW,eAGR;QAHQ,oBAAe,GAAf,eAAe,CAGvB;QAWH,QAAG,GAAG,KAAK,EAAE,KAKZ,EAAiB,EAAE;YAClB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"SetWorkflowManagementIssueToStoryUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import YAML from 'yaml';
|
|
4
|
+
|
|
5
|
+
jest.mock('fs', () => {
|
|
6
|
+
const actualFs: typeof fs = jest.requireActual('fs');
|
|
7
|
+
return {
|
|
8
|
+
...actualFs,
|
|
9
|
+
readFileSync: jest.fn(actualFs.readFileSync),
|
|
10
|
+
};
|
|
11
|
+
});
|
|
4
12
|
import {
|
|
5
13
|
program,
|
|
6
14
|
loadConfigFile,
|
|
@@ -53,8 +61,14 @@ jest.mock('../../repositories/issue/ApiV3CheerioRestIssueRepository', () => ({
|
|
|
53
61
|
getCachedProject: jest.fn().mockResolvedValue(null),
|
|
54
62
|
})),
|
|
55
63
|
}));
|
|
64
|
+
const mockRunCommand = jest.fn<
|
|
65
|
+
Promise<{ stdout: string; stderr: string; exitCode: number }>,
|
|
66
|
+
[string, string[]]
|
|
67
|
+
>();
|
|
56
68
|
jest.mock('../../repositories/NodeLocalCommandRunner', () => ({
|
|
57
|
-
NodeLocalCommandRunner: jest.fn().mockImplementation(() => ({
|
|
69
|
+
NodeLocalCommandRunner: jest.fn().mockImplementation(() => ({
|
|
70
|
+
runCommand: mockRunCommand,
|
|
71
|
+
})),
|
|
58
72
|
}));
|
|
59
73
|
jest.mock('../../repositories/OauthAPIClaudeRepository', () => ({
|
|
60
74
|
OauthAPIClaudeRepository: jest.fn().mockImplementation(() => ({
|
|
@@ -151,6 +165,7 @@ describe('CLI', () => {
|
|
|
151
165
|
beforeEach(() => {
|
|
152
166
|
jest.clearAllMocks();
|
|
153
167
|
mockFetchReturningReadme(null);
|
|
168
|
+
mockRunCommand.mockResolvedValue({ stdout: '', stderr: '', exitCode: 0 });
|
|
154
169
|
process.env = { ...originalEnv, GH_TOKEN: 'test-token' };
|
|
155
170
|
writeConfig(defaultConfig);
|
|
156
171
|
});
|
|
@@ -2142,4 +2157,106 @@ mysteryKey: 'value'
|
|
|
2142
2157
|
logSpy.mockRestore();
|
|
2143
2158
|
});
|
|
2144
2159
|
});
|
|
2160
|
+
|
|
2161
|
+
describe('killTmuxSession', () => {
|
|
2162
|
+
it('reaches the real repository command sequence to kill a named session via --session', async () => {
|
|
2163
|
+
await program.parseAsync([
|
|
2164
|
+
'node',
|
|
2165
|
+
'test',
|
|
2166
|
+
'killTmuxSession',
|
|
2167
|
+
'--session',
|
|
2168
|
+
'https_//github_com/owner/repo/issues/9',
|
|
2169
|
+
]);
|
|
2170
|
+
|
|
2171
|
+
const expectedScopeUnitName =
|
|
2172
|
+
'cl-https---github-com-owner-repo-issues-9.scope';
|
|
2173
|
+
expect(mockRunCommand.mock.calls).toEqual([
|
|
2174
|
+
['systemctl', ['--user', 'reset-failed', expectedScopeUnitName]],
|
|
2175
|
+
['systemctl', ['--user', 'stop', expectedScopeUnitName]],
|
|
2176
|
+
['systemctl', ['--user', 'reset-failed', expectedScopeUnitName]],
|
|
2177
|
+
[
|
|
2178
|
+
'tmux',
|
|
2179
|
+
['kill-session', '-t', '=https_//github_com/owner/repo/issues/9'],
|
|
2180
|
+
],
|
|
2181
|
+
]);
|
|
2182
|
+
});
|
|
2183
|
+
|
|
2184
|
+
it('reaches the real repository command sequence to stop its own scope via --self, without calling tmux', async () => {
|
|
2185
|
+
const actualFs = jest.requireActual<typeof fs>('fs');
|
|
2186
|
+
const readFileSyncMock = jest.mocked(fs.readFileSync);
|
|
2187
|
+
readFileSyncMock.mockImplementation(
|
|
2188
|
+
(
|
|
2189
|
+
filePath: Parameters<typeof fs.readFileSync>[0],
|
|
2190
|
+
options: Parameters<typeof fs.readFileSync>[1],
|
|
2191
|
+
): ReturnType<typeof fs.readFileSync> => {
|
|
2192
|
+
if (filePath === '/proc/self/cgroup') {
|
|
2193
|
+
return '0::/user.slice/user-1000.slice/user@1000.service/app.slice/cl-current-session.scope\n';
|
|
2194
|
+
}
|
|
2195
|
+
return actualFs.readFileSync(filePath, options);
|
|
2196
|
+
},
|
|
2197
|
+
);
|
|
2198
|
+
|
|
2199
|
+
await program.parseAsync(['node', 'test', 'killTmuxSession', '--self']);
|
|
2200
|
+
|
|
2201
|
+
expect(mockRunCommand.mock.calls).toEqual([
|
|
2202
|
+
['systemctl', ['--user', 'reset-failed', 'cl-current-session.scope']],
|
|
2203
|
+
['systemctl', ['--user', 'stop', 'cl-current-session.scope']],
|
|
2204
|
+
['systemctl', ['--user', 'reset-failed', 'cl-current-session.scope']],
|
|
2205
|
+
]);
|
|
2206
|
+
expect(mockRunCommand.mock.calls.some((call) => call[0] === 'tmux')).toBe(
|
|
2207
|
+
false,
|
|
2208
|
+
);
|
|
2209
|
+
|
|
2210
|
+
readFileSyncMock.mockImplementation(actualFs.readFileSync);
|
|
2211
|
+
});
|
|
2212
|
+
|
|
2213
|
+
it('exits with an error when neither --session nor --self is provided', async () => {
|
|
2214
|
+
const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation();
|
|
2215
|
+
const processExitSpy = jest
|
|
2216
|
+
.spyOn(process, 'exit')
|
|
2217
|
+
.mockImplementation(() => {
|
|
2218
|
+
throw new Error('process.exit called');
|
|
2219
|
+
});
|
|
2220
|
+
|
|
2221
|
+
await expect(
|
|
2222
|
+
program.parseAsync(['node', 'test', 'killTmuxSession']),
|
|
2223
|
+
).rejects.toThrow('process.exit called');
|
|
2224
|
+
|
|
2225
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(
|
|
2226
|
+
'Either --session <name> or --self is required',
|
|
2227
|
+
);
|
|
2228
|
+
expect(processExitSpy).toHaveBeenCalledWith(1);
|
|
2229
|
+
|
|
2230
|
+
consoleErrorSpy.mockRestore();
|
|
2231
|
+
processExitSpy.mockRestore();
|
|
2232
|
+
});
|
|
2233
|
+
|
|
2234
|
+
it('exits with an error when both --session and --self are provided', async () => {
|
|
2235
|
+
const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation();
|
|
2236
|
+
const processExitSpy = jest
|
|
2237
|
+
.spyOn(process, 'exit')
|
|
2238
|
+
.mockImplementation(() => {
|
|
2239
|
+
throw new Error('process.exit called');
|
|
2240
|
+
});
|
|
2241
|
+
|
|
2242
|
+
await expect(
|
|
2243
|
+
program.parseAsync([
|
|
2244
|
+
'node',
|
|
2245
|
+
'test',
|
|
2246
|
+
'killTmuxSession',
|
|
2247
|
+
'--session',
|
|
2248
|
+
'some_session',
|
|
2249
|
+
'--self',
|
|
2250
|
+
]),
|
|
2251
|
+
).rejects.toThrow('process.exit called');
|
|
2252
|
+
|
|
2253
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(
|
|
2254
|
+
'--session and --self cannot be used together',
|
|
2255
|
+
);
|
|
2256
|
+
expect(processExitSpy).toHaveBeenCalledWith(1);
|
|
2257
|
+
|
|
2258
|
+
consoleErrorSpy.mockRestore();
|
|
2259
|
+
processExitSpy.mockRestore();
|
|
2260
|
+
});
|
|
2261
|
+
});
|
|
2145
2262
|
});
|
|
@@ -29,6 +29,7 @@ import { LocalStorageCacheRepository } from '../../repositories/LocalStorageCach
|
|
|
29
29
|
import { SystemDateRepository } from '../../repositories/SystemDateRepository';
|
|
30
30
|
import { BaseGitHubRepository } from '../../repositories/BaseGitHubRepository';
|
|
31
31
|
import { NodeLocalCommandRunner } from '../../repositories/NodeLocalCommandRunner';
|
|
32
|
+
import { NodeTmuxSessionRepository } from '../../repositories/NodeTmuxSessionRepository';
|
|
32
33
|
import { GitHubIssueCommentRepository } from '../../repositories/GitHubIssueCommentRepository';
|
|
33
34
|
import { FetchWebhookRepository } from '../../repositories/FetchWebhookRepository';
|
|
34
35
|
import { RevertOrphanedPreparationUseCase } from '../../../domain/usecases/RevertOrphanedPreparationUseCase';
|
|
@@ -124,6 +125,11 @@ type CountInTmuxByHumanSessionsPerTokenOptions = {
|
|
|
124
125
|
tokenListJsonPath?: string;
|
|
125
126
|
};
|
|
126
127
|
|
|
128
|
+
type KillTmuxSessionOptions = {
|
|
129
|
+
session?: string;
|
|
130
|
+
self?: boolean;
|
|
131
|
+
};
|
|
132
|
+
|
|
127
133
|
const buildGithubRepositoryParams = (
|
|
128
134
|
localStorageRepository: LocalStorageRepository,
|
|
129
135
|
token: string,
|
|
@@ -1028,6 +1034,38 @@ program
|
|
|
1028
1034
|
}
|
|
1029
1035
|
});
|
|
1030
1036
|
|
|
1037
|
+
program
|
|
1038
|
+
.command('killTmuxSession')
|
|
1039
|
+
.description(
|
|
1040
|
+
'Cleanly kill a tmux session by running tmux kill-session and stopping its cl-*.scope systemd --user unit. Use --session <name> to kill another named session, or --self to terminate the current session from inside it.',
|
|
1041
|
+
)
|
|
1042
|
+
.option('--session <name>', 'Name of the tmux session to kill')
|
|
1043
|
+
.option(
|
|
1044
|
+
'--self',
|
|
1045
|
+
'Terminate the current session by stopping its own cl-*.scope systemd user unit, derived from /proc/self/cgroup',
|
|
1046
|
+
)
|
|
1047
|
+
.action(async (options: KillTmuxSessionOptions) => {
|
|
1048
|
+
if (!options.session && !options.self) {
|
|
1049
|
+
console.error('Either --session <name> or --self is required');
|
|
1050
|
+
process.exit(1);
|
|
1051
|
+
}
|
|
1052
|
+
if (options.session && options.self) {
|
|
1053
|
+
console.error('--session and --self cannot be used together');
|
|
1054
|
+
process.exit(1);
|
|
1055
|
+
}
|
|
1056
|
+
|
|
1057
|
+
const localCommandRunner = new NodeLocalCommandRunner();
|
|
1058
|
+
const tmuxSessionRepository = new NodeTmuxSessionRepository(
|
|
1059
|
+
localCommandRunner,
|
|
1060
|
+
);
|
|
1061
|
+
|
|
1062
|
+
if (options.self) {
|
|
1063
|
+
await tmuxSessionRepository.killOwnSession();
|
|
1064
|
+
} else if (options.session) {
|
|
1065
|
+
await tmuxSessionRepository.killSession(options.session);
|
|
1066
|
+
}
|
|
1067
|
+
});
|
|
1068
|
+
|
|
1031
1069
|
/* istanbul ignore next */
|
|
1032
1070
|
if (process.argv && require.main === module) {
|
|
1033
1071
|
program.parse(process.argv);
|
|
@@ -102,7 +102,7 @@ describe('cleanStaleTmuxSessions', () => {
|
|
|
102
102
|
expect(killCall?.[1]).toEqual([
|
|
103
103
|
'kill-session',
|
|
104
104
|
'-t',
|
|
105
|
-
'https_//github_com/demo/repo/issues/1',
|
|
105
|
+
'=https_//github_com/demo/repo/issues/1',
|
|
106
106
|
]);
|
|
107
107
|
});
|
|
108
108
|
|
|
@@ -160,6 +160,6 @@ describe('cleanStaleTmuxSessions', () => {
|
|
|
160
160
|
(call) => call[0] === 'tmux' && call[1][0] === 'kill-session',
|
|
161
161
|
);
|
|
162
162
|
expect(killCalls).toHaveLength(1);
|
|
163
|
-
expect(killCalls[0][1]).toEqual(['kill-session', '-t', 'idle_no_task']);
|
|
163
|
+
expect(killCalls[0][1]).toEqual(['kill-session', '-t', '=idle_no_task']);
|
|
164
164
|
});
|
|
165
165
|
});
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as os from 'os';
|
|
3
|
+
import * as path from 'path';
|
|
1
4
|
import { LocalCommandRunner } from '../../domain/usecases/adapter-interfaces/LocalCommandRunner';
|
|
2
5
|
import { NodeTmuxSessionRepository } from './NodeTmuxSessionRepository';
|
|
3
6
|
|
|
@@ -91,7 +94,7 @@ describe('NodeTmuxSessionRepository', () => {
|
|
|
91
94
|
});
|
|
92
95
|
|
|
93
96
|
describe('killSession', () => {
|
|
94
|
-
it('kills the tmux session by name', async () => {
|
|
97
|
+
it('kills the tmux session by exact name', async () => {
|
|
95
98
|
const runner = createMockRunner();
|
|
96
99
|
runner.runCommand.mockResolvedValue({
|
|
97
100
|
stdout: '',
|
|
@@ -102,20 +105,22 @@ describe('NodeTmuxSessionRepository', () => {
|
|
|
102
105
|
|
|
103
106
|
await repository.killSession('no_task_session');
|
|
104
107
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
'
|
|
108
|
+
const tmuxCall = runner.runCommand.mock.calls.find(
|
|
109
|
+
(call) => call[0] === 'tmux',
|
|
110
|
+
);
|
|
111
|
+
expect(tmuxCall).toEqual([
|
|
112
|
+
'tmux',
|
|
113
|
+
['kill-session', '-t', '=no_task_session'],
|
|
110
114
|
]);
|
|
111
115
|
});
|
|
112
116
|
|
|
113
117
|
it('throws when tmux exits non-zero', async () => {
|
|
114
118
|
const runner = createMockRunner();
|
|
115
|
-
runner.runCommand.
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
+
runner.runCommand.mockImplementation(async (program: string) => {
|
|
120
|
+
if (program === 'tmux') {
|
|
121
|
+
return { stdout: '', stderr: "can't find session", exitCode: 1 };
|
|
122
|
+
}
|
|
123
|
+
return { stdout: '', stderr: '', exitCode: 0 };
|
|
119
124
|
});
|
|
120
125
|
const repository = new NodeTmuxSessionRepository(runner);
|
|
121
126
|
|
|
@@ -124,7 +129,7 @@ describe('NodeTmuxSessionRepository', () => {
|
|
|
124
129
|
);
|
|
125
130
|
});
|
|
126
131
|
|
|
127
|
-
it('stops the systemd user scope for the session
|
|
132
|
+
it('stops the systemd user scope for the session before killing it, wrapping the stop with reset-failed', async () => {
|
|
128
133
|
const runner = createMockRunner();
|
|
129
134
|
runner.runCommand.mockResolvedValue({
|
|
130
135
|
stdout: '',
|
|
@@ -137,16 +142,14 @@ describe('NodeTmuxSessionRepository', () => {
|
|
|
137
142
|
|
|
138
143
|
const expectedScopeUnitName =
|
|
139
144
|
'cl-https---github-com-owner-repo-issues-9.scope';
|
|
140
|
-
|
|
141
|
-
expect(calls[0]).toEqual([
|
|
142
|
-
'tmux',
|
|
143
|
-
['kill-session', '-t', 'https_//github_com/owner/repo/issues/9'],
|
|
144
|
-
]);
|
|
145
|
-
const systemctlCalls = calls.filter((call) => call[0] === 'systemctl');
|
|
146
|
-
expect(systemctlCalls).toEqual([
|
|
145
|
+
expect(runner.runCommand.mock.calls).toEqual([
|
|
147
146
|
['systemctl', ['--user', 'reset-failed', expectedScopeUnitName]],
|
|
148
147
|
['systemctl', ['--user', 'stop', expectedScopeUnitName]],
|
|
149
148
|
['systemctl', ['--user', 'reset-failed', expectedScopeUnitName]],
|
|
149
|
+
[
|
|
150
|
+
'tmux',
|
|
151
|
+
['kill-session', '-t', '=https_//github_com/owner/repo/issues/9'],
|
|
152
|
+
],
|
|
150
153
|
]);
|
|
151
154
|
});
|
|
152
155
|
|
|
@@ -180,6 +183,63 @@ describe('NodeTmuxSessionRepository', () => {
|
|
|
180
183
|
});
|
|
181
184
|
});
|
|
182
185
|
|
|
186
|
+
describe('killOwnSession', () => {
|
|
187
|
+
let procDirectory: string;
|
|
188
|
+
|
|
189
|
+
beforeEach(() => {
|
|
190
|
+
procDirectory = fs.mkdtempSync(
|
|
191
|
+
path.join(os.tmpdir(), 'node-tmux-session-repository-proc-'),
|
|
192
|
+
);
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
afterEach(() => {
|
|
196
|
+
fs.rmSync(procDirectory, { recursive: true, force: true });
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
const writeCgroupContent = (content: string): void => {
|
|
200
|
+
const selfDirectory = path.join(procDirectory, 'self');
|
|
201
|
+
fs.mkdirSync(selfDirectory, { recursive: true });
|
|
202
|
+
fs.writeFileSync(path.join(selfDirectory, 'cgroup'), content);
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
it('stops only the current session scope derived from /proc/self/cgroup, without calling tmux', async () => {
|
|
206
|
+
writeCgroupContent(
|
|
207
|
+
'0::/user.slice/user-1000.slice/user@1000.service/app.slice/cl-leader-session.scope\n',
|
|
208
|
+
);
|
|
209
|
+
const runner = createMockRunner();
|
|
210
|
+
runner.runCommand.mockResolvedValue({
|
|
211
|
+
stdout: '',
|
|
212
|
+
stderr: '',
|
|
213
|
+
exitCode: 0,
|
|
214
|
+
});
|
|
215
|
+
const repository = new NodeTmuxSessionRepository(runner, procDirectory);
|
|
216
|
+
|
|
217
|
+
await repository.killOwnSession();
|
|
218
|
+
|
|
219
|
+
expect(runner.runCommand.mock.calls).toEqual([
|
|
220
|
+
['systemctl', ['--user', 'reset-failed', 'cl-leader-session.scope']],
|
|
221
|
+
['systemctl', ['--user', 'stop', 'cl-leader-session.scope']],
|
|
222
|
+
['systemctl', ['--user', 'reset-failed', 'cl-leader-session.scope']],
|
|
223
|
+
]);
|
|
224
|
+
expect(
|
|
225
|
+
runner.runCommand.mock.calls.some((call) => call[0] === 'tmux'),
|
|
226
|
+
).toBe(false);
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
it('throws when no cl-*.scope unit can be found in /proc/self/cgroup', async () => {
|
|
230
|
+
writeCgroupContent(
|
|
231
|
+
'0::/user.slice/user-1000.slice/user@1000.service/app.slice/vte-spawn-abc.scope\n',
|
|
232
|
+
);
|
|
233
|
+
const runner = createMockRunner();
|
|
234
|
+
const repository = new NodeTmuxSessionRepository(runner, procDirectory);
|
|
235
|
+
|
|
236
|
+
await expect(repository.killOwnSession()).rejects.toThrow(
|
|
237
|
+
'Failed to determine the current cl-*.scope systemd user unit from /proc/self/cgroup',
|
|
238
|
+
);
|
|
239
|
+
expect(runner.runCommand.mock.calls).toHaveLength(0);
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
|
|
183
243
|
describe('listInteractiveProcessCommandLines', () => {
|
|
184
244
|
it('parses process command lines from ps output', async () => {
|
|
185
245
|
const runner = createMockRunner();
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
1
3
|
import { LocalCommandRunner } from '../../domain/usecases/adapter-interfaces/LocalCommandRunner';
|
|
2
4
|
import { TmuxSessionRepository } from '../../domain/usecases/adapter-interfaces/TmuxSessionRepository';
|
|
3
5
|
import { LiveTmuxSession } from '../../domain/entities/LiveTmuxSession';
|
|
4
6
|
import { clSessionScopeUnitName } from './clSessionScopeUnitName';
|
|
7
|
+
import { clSessionScopeUnitNameFromCgroupContent } from './clSessionScopeUnitNameFromCgroupContent';
|
|
5
8
|
|
|
6
9
|
export class NodeTmuxSessionRepository implements TmuxSessionRepository {
|
|
7
|
-
constructor(
|
|
10
|
+
constructor(
|
|
11
|
+
private readonly localCommandRunner: LocalCommandRunner,
|
|
12
|
+
private readonly procDirectory: string = '/proc',
|
|
13
|
+
) {}
|
|
8
14
|
|
|
9
15
|
listLiveSessionNames = async (): Promise<string[]> => {
|
|
10
16
|
const { stdout, exitCode } = await this.localCommandRunner.runCommand(
|
|
@@ -75,9 +81,11 @@ export class NodeTmuxSessionRepository implements TmuxSessionRepository {
|
|
|
75
81
|
};
|
|
76
82
|
|
|
77
83
|
killSession = async (sessionName: string): Promise<void> => {
|
|
84
|
+
const scopeUnitName = clSessionScopeUnitName(sessionName);
|
|
85
|
+
await this.stopScopeUnit(scopeUnitName);
|
|
78
86
|
const { stderr, exitCode } = await this.localCommandRunner.runCommand(
|
|
79
87
|
'tmux',
|
|
80
|
-
['kill-session', '-t', sessionName],
|
|
88
|
+
['kill-session', '-t', `=${sessionName}`],
|
|
81
89
|
);
|
|
82
90
|
if (exitCode !== 0) {
|
|
83
91
|
throw new Error(
|
|
@@ -86,11 +94,24 @@ export class NodeTmuxSessionRepository implements TmuxSessionRepository {
|
|
|
86
94
|
}`,
|
|
87
95
|
);
|
|
88
96
|
}
|
|
89
|
-
await this.stopClSessionScope(sessionName);
|
|
90
97
|
};
|
|
91
98
|
|
|
92
|
-
|
|
93
|
-
const
|
|
99
|
+
killOwnSession = async (): Promise<void> => {
|
|
100
|
+
const cgroupContent = fs.readFileSync(
|
|
101
|
+
path.join(this.procDirectory, 'self', 'cgroup'),
|
|
102
|
+
'utf8',
|
|
103
|
+
);
|
|
104
|
+
const scopeUnitName =
|
|
105
|
+
clSessionScopeUnitNameFromCgroupContent(cgroupContent);
|
|
106
|
+
if (scopeUnitName === null) {
|
|
107
|
+
throw new Error(
|
|
108
|
+
'Failed to determine the current cl-*.scope systemd user unit from /proc/self/cgroup',
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
await this.stopScopeUnit(scopeUnitName);
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
private stopScopeUnit = async (scopeUnitName: string): Promise<void> => {
|
|
94
115
|
await this.localCommandRunner.runCommand('systemctl', [
|
|
95
116
|
'--user',
|
|
96
117
|
'reset-failed',
|
|
@@ -107,7 +128,7 @@ export class NodeTmuxSessionRepository implements TmuxSessionRepository {
|
|
|
107
128
|
]);
|
|
108
129
|
if (exitCode !== 0) {
|
|
109
130
|
console.error(
|
|
110
|
-
`Failed to stop systemd user scope "${scopeUnitName}"
|
|
131
|
+
`Failed to stop systemd user scope "${scopeUnitName}": exit code ${exitCode}${
|
|
111
132
|
stderr ? `: ${stderr}` : ''
|
|
112
133
|
}`,
|
|
113
134
|
);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { clSessionScopeUnitNameFromCgroupContent } from './clSessionScopeUnitNameFromCgroupContent';
|
|
2
|
+
|
|
3
|
+
describe('clSessionScopeUnitNameFromCgroupContent', () => {
|
|
4
|
+
it('extracts the cl-*.scope unit from a cgroup v2 single-hierarchy line', () => {
|
|
5
|
+
const cgroupContent =
|
|
6
|
+
'0::/user.slice/user-1000.slice/user@1000.service/app.slice/cl-https---github-com-owner-repo-issues-9.scope\n';
|
|
7
|
+
|
|
8
|
+
const result = clSessionScopeUnitNameFromCgroupContent(cgroupContent);
|
|
9
|
+
|
|
10
|
+
expect(result).toBe('cl-https---github-com-owner-repo-issues-9.scope');
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('extracts the cl-*.scope unit from a multi-hierarchy cgroup v1 file', () => {
|
|
14
|
+
const cgroupContent = [
|
|
15
|
+
'12:pids:/user.slice/user-1000.slice/user@1000.service/app.slice/cl-leader-session.scope',
|
|
16
|
+
'11:cpu,cpuacct:/user.slice/user-1000.slice/user@1000.service/app.slice/cl-leader-session.scope',
|
|
17
|
+
'0::/user.slice/user-1000.slice/user@1000.service/app.slice/cl-leader-session.scope',
|
|
18
|
+
'',
|
|
19
|
+
].join('\n');
|
|
20
|
+
|
|
21
|
+
const result = clSessionScopeUnitNameFromCgroupContent(cgroupContent);
|
|
22
|
+
|
|
23
|
+
expect(result).toBe('cl-leader-session.scope');
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('returns null when no cl-*.scope unit is present', () => {
|
|
27
|
+
const cgroupContent =
|
|
28
|
+
'0::/user.slice/user-1000.slice/user@1000.service/app.slice/vte-spawn-abc.scope\n';
|
|
29
|
+
|
|
30
|
+
const result = clSessionScopeUnitNameFromCgroupContent(cgroupContent);
|
|
31
|
+
|
|
32
|
+
expect(result).toBeNull();
|
|
33
|
+
});
|
|
34
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const CL_SESSION_SCOPE_UNIT_PATTERN = /cl-[A-Za-z0-9._-]+\.scope/;
|
|
2
|
+
|
|
3
|
+
export const clSessionScopeUnitNameFromCgroupContent = (
|
|
4
|
+
cgroupContent: string,
|
|
5
|
+
): string | null => {
|
|
6
|
+
const match = cgroupContent.match(CL_SESSION_SCOPE_UNIT_PATTERN);
|
|
7
|
+
return match ? match[0] : null;
|
|
8
|
+
};
|
|
@@ -123,26 +123,36 @@ describe('SetWorkflowManagementIssueToStoryUseCase', () => {
|
|
|
123
123
|
expect(mockIssueRepository.removeLabel).not.toHaveBeenCalled();
|
|
124
124
|
});
|
|
125
125
|
|
|
126
|
-
it('should
|
|
127
|
-
|
|
126
|
+
it('should map story label to matching story when cacheUsed is true', async () => {
|
|
127
|
+
const issue: Issue = {
|
|
128
|
+
...mock<Issue>(),
|
|
129
|
+
labels: ['story:high-priority'],
|
|
130
|
+
story: null,
|
|
131
|
+
state: 'OPEN',
|
|
132
|
+
nextActionDate: null,
|
|
133
|
+
nextActionHour: null,
|
|
134
|
+
isPr: false,
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
const promise = useCase.run({
|
|
128
138
|
targetDates: [targetDate],
|
|
129
139
|
project: basicProject,
|
|
130
|
-
issues: [
|
|
131
|
-
{
|
|
132
|
-
...mock<Issue>(),
|
|
133
|
-
labels: ['story:high-priority'],
|
|
134
|
-
story: null,
|
|
135
|
-
state: 'OPEN',
|
|
136
|
-
nextActionDate: null,
|
|
137
|
-
nextActionHour: null,
|
|
138
|
-
isPr: false,
|
|
139
|
-
},
|
|
140
|
-
],
|
|
140
|
+
issues: [issue],
|
|
141
141
|
cacheUsed: true,
|
|
142
142
|
});
|
|
143
|
+
await jest.runAllTimersAsync();
|
|
144
|
+
await promise;
|
|
143
145
|
|
|
144
|
-
expect(mockIssueRepository.updateStory).
|
|
145
|
-
|
|
146
|
+
expect(mockIssueRepository.updateStory.mock.calls).toEqual([
|
|
147
|
+
[
|
|
148
|
+
{ ...basicProject, story: basicProject.story },
|
|
149
|
+
issue,
|
|
150
|
+
'highPriorityId',
|
|
151
|
+
],
|
|
152
|
+
]);
|
|
153
|
+
expect(mockIssueRepository.removeLabel.mock.calls).toEqual([
|
|
154
|
+
[issue, 'story:high-priority'],
|
|
155
|
+
]);
|
|
146
156
|
});
|
|
147
157
|
|
|
148
158
|
it('should map story label to matching story on non-minute-0 target date', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAsJzB,eAAO,MAAM,OAAO,SAAgB,CAAC"}
|
|
@@ -3,12 +3,14 @@ import { TmuxSessionRepository } from '../../domain/usecases/adapter-interfaces/
|
|
|
3
3
|
import { LiveTmuxSession } from '../../domain/entities/LiveTmuxSession';
|
|
4
4
|
export declare class NodeTmuxSessionRepository implements TmuxSessionRepository {
|
|
5
5
|
private readonly localCommandRunner;
|
|
6
|
-
|
|
6
|
+
private readonly procDirectory;
|
|
7
|
+
constructor(localCommandRunner: LocalCommandRunner, procDirectory?: string);
|
|
7
8
|
listLiveSessionNames: () => Promise<string[]>;
|
|
8
9
|
listLiveSessionsWithActivity: () => Promise<LiveTmuxSession[]>;
|
|
9
10
|
listInteractiveProcessCommandLines: () => Promise<string[]>;
|
|
10
11
|
launchDetachedSession: (sessionName: string, launcherCommand: string, issueUrl: string) => Promise<void>;
|
|
11
12
|
killSession: (sessionName: string) => Promise<void>;
|
|
12
|
-
|
|
13
|
+
killOwnSession: () => Promise<void>;
|
|
14
|
+
private stopScopeUnit;
|
|
13
15
|
}
|
|
14
16
|
//# sourceMappingURL=NodeTmuxSessionRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeTmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeTmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAIxE,qBAAa,yBAA0B,YAAW,qBAAqB;IAEnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,GAAE,MAAgB;IAGlD,oBAAoB,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAYhD;IAEF,4BAA4B,QAAa,OAAO,CAAC,eAAe,EAAE,CAAC,CAkBjE;IAEF,kCAAkC,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAY9D;IAEF,qBAAqB,GACnB,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,UAAU,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAcd;IAEF,WAAW,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CActD;IAEF,cAAc,QAAa,OAAO,CAAC,IAAI,CAAC,CAatC;IAEF,OAAO,CAAC,aAAa,CAsBnB;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clSessionScopeUnitNameFromCgroupContent.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/clSessionScopeUnitNameFromCgroupContent.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uCAAuC,GAClD,eAAe,MAAM,KACpB,MAAM,GAAG,IAGX,CAAC"}
|
|
@@ -5,5 +5,6 @@ export interface TmuxSessionRepository {
|
|
|
5
5
|
listInteractiveProcessCommandLines: () => Promise<string[]>;
|
|
6
6
|
launchDetachedSession: (sessionName: string, launcherCommand: string, issueUrl: string) => Promise<void>;
|
|
7
7
|
killSession: (sessionName: string) => Promise<void>;
|
|
8
|
+
killOwnSession: () => Promise<void>;
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=TmuxSessionRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/TmuxSessionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,4BAA4B,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/D,kCAAkC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,qBAAqB,EAAE,CACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"TmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/TmuxSessionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,4BAA4B,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/D,kCAAkC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,qBAAqB,EAAE,CACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC"}
|