litmus-cli 1.4.46 → 1.4.47

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.
@@ -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
- return `^[^ ]*(/[.]${serverHomeName}/|${cacheRoot}/)`;
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
- if (current.serverProcesses > 0)
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":"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"}
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
- * Two lines, and deliberately no more. This is the ONLY route that reaches a
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, next to a Cursor notice that is already long; anything more
104
- * than the fact and what to do with it is noise at the wrong moment.
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(editorLabel: string): string[];
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;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrE"}
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"}
@@ -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
- * Two lines, and deliberately no more. This is the ONLY route that reaches a
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, next to a Cursor notice that is already long; anything more
114
- * than the fact and what to do with it is noise at the wrong moment.
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(editorLabel) {
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;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,qCAAqC,WAAW,kCAAkC,CAAC;QAC7F,KAAK,CAAC,GAAG,CAAC,gFAAgF,CAAC;KAC5F,CAAA;AACH,CAAC"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "litmus-cli",
3
- "version": "1.4.46",
3
+ "version": "1.4.47",
4
4
  "description": "CLI tool for Litmus engineering assessments",
5
5
  "license": "MIT",
6
6
  "author": "elenazhao",