litmus-cli 1.4.46 → 1.4.48
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/dist/commands/connect.d.ts +134 -232
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +352 -519
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/init.d.ts +2 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +2 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/lib/connect-skills.d.ts +5 -1
- package/dist/lib/connect-skills.d.ts.map +1 -1
- package/dist/lib/connect-skills.js +6 -2
- package/dist/lib/connect-skills.js.map +1 -1
- package/dist/lib/cursor-restart.d.ts +1 -1
- package/dist/lib/cursor-restart.js +1 -1
- package/dist/lib/editor-server.d.ts +12 -4
- package/dist/lib/editor-server.d.ts.map +1 -1
- package/dist/lib/editor-server.js +30 -4
- package/dist/lib/editor-server.js.map +1 -1
- package/dist/lib/session-end.d.ts +5 -8
- package/dist/lib/session-end.d.ts.map +1 -1
- package/dist/lib/session-end.js +6 -12
- package/dist/lib/session-end.js.map +1 -1
- package/package.json +1 -1
|
@@ -113,8 +113,11 @@ const PROBE_BANNER = "litmus-probe 1";
|
|
|
113
113
|
* will actually run. Keeping both behind one function is what stops the anchor or the
|
|
114
114
|
* alternation being right in one form and wrong in the other.
|
|
115
115
|
*/
|
|
116
|
-
export function serverProcessPattern(serverHomeName, cacheRoot) {
|
|
117
|
-
|
|
116
|
+
export function serverProcessPattern(serverHomeName, cacheRoot, commit) {
|
|
117
|
+
const tree = `^[^ ]*(/[.]${serverHomeName}/|${cacheRoot}/)`;
|
|
118
|
+
// A build's server lives in a directory named by its commit (`bin/linux-x64/<commit>/`,
|
|
119
|
+
// `cli/servers/Stable-<commit>/`), and the executable is inside it, so argv[0] carries it.
|
|
120
|
+
return commit === undefined ? tree : `${tree}[^ ]*${commit}`;
|
|
118
121
|
}
|
|
119
122
|
/**
|
|
120
123
|
* The names under `<serverHome>/data/logs` this probe will consider, as an ERE.
|
|
@@ -133,7 +136,7 @@ export function serverProcessPattern(serverHomeName, cacheRoot) {
|
|
|
133
136
|
* poison the maximum.
|
|
134
137
|
*/
|
|
135
138
|
export const LOG_DIR_NAME_ERE = "^[0-9]{8}T[0-9]{6}";
|
|
136
|
-
export function remoteProbeCommand(serverHomeDir, seedCommitPath) {
|
|
139
|
+
export function remoteProbeCommand(serverHomeDir, seedCommitPath, clientCommit = null) {
|
|
137
140
|
// Both arguments are module constants in `connect.ts`. Assert that rather than trust
|
|
138
141
|
// it: a probe body is a shell program, and the day one of these becomes derived from
|
|
139
142
|
// anything else, this is the line that has to fail instead of interpolating.
|
|
@@ -174,6 +177,15 @@ export function remoteProbeCommand(serverHomeDir, seedCommitPath) {
|
|
|
174
177
|
// Both names reach the pattern as shell VARIABLES, never as literals followed by a
|
|
175
178
|
// slash, so the command text still cannot hold the string it searches for.
|
|
176
179
|
const pattern = serverProcessPattern("${d#.}", "${c}");
|
|
180
|
+
// The client's commit is 40 hex or it is not sent: it reaches a shell program. It sits
|
|
181
|
+
// in `$k` for the same reason the paths sit in variables, and the anchor on argv[0] means
|
|
182
|
+
// this probe's own `sh -c` (whose text does hold the literal) cannot match it.
|
|
183
|
+
const commit = clientCommit !== null && COMMIT_RE.test(clientCommit) ? clientCommit : null;
|
|
184
|
+
const clientPattern = serverProcessPattern("${d#.}", "${c}", "${k}");
|
|
185
|
+
const clientField = commit === null ? [] : [
|
|
186
|
+
`k=${commit};`,
|
|
187
|
+
`printf 'cproc %s\\n' "$(ps -eo args= 2>/dev/null | grep -Ec "${clientPattern}" || true)";`,
|
|
188
|
+
];
|
|
177
189
|
return [
|
|
178
190
|
`printf '${PROBE_BANNER}\\n';`,
|
|
179
191
|
`d=${serverHomeDir};`,
|
|
@@ -182,6 +194,7 @@ export function remoteProbeCommand(serverHomeDir, seedCommitPath) {
|
|
|
182
194
|
`printf 'seed %s\\n' "$(tr -d '\\r\\n' < '${seedCommitPath}' 2>/dev/null)";`,
|
|
183
195
|
`else printf 'seed -\\n'; fi;`,
|
|
184
196
|
`printf 'proc %s\\n' "$(ps -eo args= 2>/dev/null | grep -Ec "${pattern}" || true)";`,
|
|
197
|
+
...clientField,
|
|
185
198
|
`if [ -d ${logs} ]; then`,
|
|
186
199
|
`printf 'log %s\\n' "$(ls -1 ${logs} 2>/dev/null | grep -E '${LOG_DIR_NAME_ERE}' | sort | tail -n 1)";`,
|
|
187
200
|
`else printf 'log -\\n'; fi`,
|
|
@@ -219,9 +232,12 @@ export function parseWorkspaceProbe(stdout) {
|
|
|
219
232
|
if (!Number.isFinite(proc) || proc < 0)
|
|
220
233
|
return null;
|
|
221
234
|
const seedCommit = COMMIT_RE.test(seedRaw) ? seedRaw : null;
|
|
235
|
+
const cprocRaw = field("cproc");
|
|
236
|
+
const cproc = cprocRaw === null ? Number.NaN : Number.parseInt(cprocRaw, 10);
|
|
222
237
|
return {
|
|
223
238
|
seedCommit,
|
|
224
239
|
serverProcesses: proc,
|
|
240
|
+
clientServerProcesses: Number.isFinite(cproc) && cproc >= 0 ? cproc : null,
|
|
225
241
|
newestLogDir: logRaw === "-" || logRaw === "" ? null : logRaw,
|
|
226
242
|
};
|
|
227
243
|
}
|
|
@@ -263,11 +279,21 @@ export function seedVerdict(client, probe) {
|
|
|
263
279
|
export function verifyVerdict(baseline, current) {
|
|
264
280
|
if (!current)
|
|
265
281
|
return { kind: "unverified" };
|
|
266
|
-
|
|
282
|
+
// When the probe knew the client's build, only a server of THAT build is evidence: an
|
|
283
|
+
// older window's server still running would otherwise certify a window that never
|
|
284
|
+
// joined. Without the commit, the editor-wide count is the best reading there is.
|
|
285
|
+
const processes = current.clientServerProcesses ?? current.serverProcesses;
|
|
286
|
+
if (processes > 0)
|
|
267
287
|
return { kind: "connected", via: "process" };
|
|
268
288
|
if (!baseline)
|
|
269
289
|
return { kind: "unverified" };
|
|
270
290
|
if (current.newestLogDir !== null && current.newestLogDir > (baseline.newestLogDir ?? "")) {
|
|
291
|
+
// `data/logs` is shared by every build in the home, so when the probe knew the
|
|
292
|
+
// client's build and found none of its servers running, a new log directory may be
|
|
293
|
+
// another build's (Greptile on #3071): not proof this window attached, and not proof
|
|
294
|
+
// it failed either.
|
|
295
|
+
if (current.clientServerProcesses === 0)
|
|
296
|
+
return { kind: "unverified" };
|
|
271
297
|
return { kind: "connected", via: "logs" };
|
|
272
298
|
}
|
|
273
299
|
// No server running and a log directory that has not advanced is the measured failure:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-server.js","sourceRoot":"","sources":["../../src/lib/editor-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;
|
|
1
|
+
{"version":3,"file":"editor-server.js","sourceRoot":"","sources":["../../src/lib/editor-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,16 +96,13 @@ export declare function editorEndingLines(): string[];
|
|
|
96
96
|
* The same fact, said before it happens, on the native-editor path of
|
|
97
97
|
* `litmus connect`.
|
|
98
98
|
*
|
|
99
|
-
*
|
|
99
|
+
* One line (ENG-2890), and deliberately no more. This is the ONLY route that reaches a
|
|
100
100
|
* candidate who ends their session from somewhere we do not run — the assessment
|
|
101
101
|
* page's Submit, End trial, the deadline cron — and for them it is the whole
|
|
102
102
|
* warning. But it is also printed at the top of a session, minutes or days
|
|
103
|
-
* before it is true
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
* @param editorLabel what the candidate calls the editor being opened, from
|
|
107
|
-
* `NATIVE_EDITORS` — this one CAN be named, because `connect` knows which one
|
|
108
|
-
* it is launching. The dialog's controls still cannot be.
|
|
103
|
+
* before it is true; anything more than the fact and what to do with it is noise
|
|
104
|
+
* at the wrong moment. "This window" is the one connect just opened, so it needs
|
|
105
|
+
* no editor name; the dialog's controls still cannot be named.
|
|
109
106
|
*/
|
|
110
|
-
export declare function editorEndingForewarning(
|
|
107
|
+
export declare function editorEndingForewarning(): string[];
|
|
111
108
|
//# sourceMappingURL=session-end.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../src/lib/session-end.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAS5C;AAED
|
|
1
|
+
{"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../src/lib/session-end.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAS5C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD"}
|
package/dist/lib/session-end.js
CHANGED
|
@@ -106,21 +106,15 @@ export function editorEndingLines() {
|
|
|
106
106
|
* The same fact, said before it happens, on the native-editor path of
|
|
107
107
|
* `litmus connect`.
|
|
108
108
|
*
|
|
109
|
-
*
|
|
109
|
+
* One line (ENG-2890), and deliberately no more. This is the ONLY route that reaches a
|
|
110
110
|
* candidate who ends their session from somewhere we do not run — the assessment
|
|
111
111
|
* page's Submit, End trial, the deadline cron — and for them it is the whole
|
|
112
112
|
* warning. But it is also printed at the top of a session, minutes or days
|
|
113
|
-
* before it is true
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
* @param editorLabel what the candidate calls the editor being opened, from
|
|
117
|
-
* `NATIVE_EDITORS` — this one CAN be named, because `connect` knows which one
|
|
118
|
-
* it is launching. The dialog's controls still cannot be.
|
|
113
|
+
* before it is true; anything more than the fact and what to do with it is noise
|
|
114
|
+
* at the wrong moment. "This window" is the one connect just opened, so it needs
|
|
115
|
+
* no editor name; the dialog's controls still cannot be named.
|
|
119
116
|
*/
|
|
120
|
-
export function editorEndingForewarning(
|
|
121
|
-
return [
|
|
122
|
-
chalk.dim(` When your assessment ends, this ${editorLabel} window loses its connection and`),
|
|
123
|
-
chalk.dim(" reports an error. That is the session ending, not a failure — close it then."),
|
|
124
|
-
];
|
|
117
|
+
export function editorEndingForewarning() {
|
|
118
|
+
return [chalk.dim(" When the assessment ends this window disconnects. That's expected; close it then.")];
|
|
125
119
|
}
|
|
126
120
|
//# sourceMappingURL=session-end.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/lib/session-end.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,EAAE;QACF,kFAAkF;QAClF,sFAAsF;QACtF,qDAAqD;QACrD,KAAK,KAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,EAAE;QACxF,EAAE;KACH,CAAA;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/lib/session-end.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,EAAE;QACF,kFAAkF;QAClF,sFAAsF;QACtF,qDAAqD;QACrD,KAAK,KAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,EAAE;QACxF,EAAE;KACH,CAAA;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC,CAAA;AAC3G,CAAC"}
|