@volter/supercode-teams 0.3.116 → 0.3.118
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/bin/workspace.mjs +19 -0
- package/machine.mjs +2 -1
- package/package.json +2 -2
package/bin/workspace.mjs
CHANGED
|
@@ -1064,6 +1064,10 @@ async function connectorCommand(verb, { flags, rest, output, client, context, te
|
|
|
1064
1064
|
// The service's own run (no terminal; no flag, or --foreground on Windows) never adds a rule or returns early: a
|
|
1065
1065
|
// service whose folder is not among the roots (an enrollment from before roots were kept) only gets its root back.
|
|
1066
1066
|
const serviceRun = !addingRoot && !flags.install && !(process.stdin.isTTY && process.stdout.isTTY) && (!flags.foreground || process.platform === 'win32');
|
|
1067
|
+
// A service's error log keeps no time of its own: each line the connector writes there is stamped, so an outage,
|
|
1068
|
+
// a restart or a refused link can be placed against the server's and the service manager's records (2026-10-06:
|
|
1069
|
+
// a restart and a window of "temporarily unavailable" could be timed only from a killed process's uptime).
|
|
1070
|
+
if (serviceRun) stampStderr();
|
|
1067
1071
|
// A folder a person adds gets its sync rule first, whatever runs the connector, so a refused or failed rule leaves
|
|
1068
1072
|
// the enrollment as it was; a machine context adds none.
|
|
1069
1073
|
const addedRule = (addedRoot || addingRoot) && !serviceRun && !context.machine_only ? await addedRootRule({ team, saved, root, harnesses: ruleHarnesses, flags }).catch(error => { core.close(); throw error; }) : null;
|
|
@@ -1462,3 +1466,18 @@ if (import.meta.url === new URL(`file://${process.argv[1]}`).href) workspaceMain
|
|
|
1462
1466
|
// still holds the event loop open gets a moment, then the exit is forced.
|
|
1463
1467
|
setTimeout(() => process.exit(process.exitCode), 2_000).unref();
|
|
1464
1468
|
});
|
|
1469
|
+
|
|
1470
|
+
/** Every line this process writes to stderr from here on, stamped with its UTC time (a write's line starts only). */
|
|
1471
|
+
function stampStderr() {
|
|
1472
|
+
if (process.stderr.__stamped) return;
|
|
1473
|
+
const write = process.stderr.write.bind(process.stderr);
|
|
1474
|
+
let atStart = true;
|
|
1475
|
+
process.stderr.write = (chunk, ...rest) => {
|
|
1476
|
+
const text = typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf8');
|
|
1477
|
+
const stamp = new Date().toISOString();
|
|
1478
|
+
const stamped = text.replace(/(^|\n)(?=[^\n])/g, (match, newline, offset) => (offset === 0 && !atStart ? match : `${newline}${stamp} `));
|
|
1479
|
+
atStart = text.endsWith('\n');
|
|
1480
|
+
return write(stamped, ...rest);
|
|
1481
|
+
};
|
|
1482
|
+
process.stderr.__stamped = true;
|
|
1483
|
+
}
|
package/machine.mjs
CHANGED
|
@@ -2429,7 +2429,8 @@ export class TeamsMachine extends MachineCore {
|
|
|
2429
2429
|
// Compared with whitespace removed on both sides: the composer's text joins its screen rows with line breaks,
|
|
2430
2430
|
// so a first line wider than one row never matches as it was sent.
|
|
2431
2431
|
const squash = (value) => value.replace(/\s+/gu, '');
|
|
2432
|
-
|
|
2432
|
+
// The first line with text: a body opening with a blank line would otherwise match nothing but the placeholder.
|
|
2433
|
+
const firstLine = squash(body.split('\n').find((line) => line.trim()) ?? '');
|
|
2433
2434
|
if (/^\[Pasted Content \d+ chars\]/u.test(shown) || (firstLine && squash(shown).startsWith(firstLine))) {
|
|
2434
2435
|
await this.#clearCodexComposer(session, composer, pause);
|
|
2435
2436
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volter/supercode-teams",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.118",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A machine daemon serving this machine's doors, and a local or remote Teams server for shared session discovery, OpenTelemetry ingestion and access to enrolled machines.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"@volter/supercode-health": "^0.1.0",
|
|
71
71
|
"@volter/supercode-terminal": "^0.2.54",
|
|
72
72
|
"@volter/supercode-trace": "^0.1.0",
|
|
73
|
-
"@volter/teams": "0.2.
|
|
73
|
+
"@volter/teams": "0.2.34",
|
|
74
74
|
"@xterm/addon-serialize": "^0.14.0",
|
|
75
75
|
"@xterm/headless": "^6.0.0",
|
|
76
76
|
"protobufjs": "8.8.0",
|