tamperward 2.29.16 → 2.29.17

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/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="assets/logo.svg" width="76" height="76" alt="">
2
+ <img src="assets/logo.png" width="76" height="76" alt="">
3
3
  </p>
4
4
 
5
5
  <h1 align="center">Tamperward</h1>
package/dist/cli/index.js CHANGED
@@ -14903,17 +14903,29 @@ function finish(extra) {
14903
14903
  done = true;
14904
14904
  if (descendantTracker) clearInterval(descendantTracker);
14905
14905
  if (drainTimer) clearTimeout(drainTimer);
14906
+ // fd 1 is the reserved result channel (suite streams are separate pipes).
14907
+ // Write synchronously: process.stdout.write is async on a POSIX pipe, so an
14908
+ // immediate process.exit(0) can truncate the result before it flushes.
14909
+ const buf = Buffer.from(JSON.stringify({
14910
+ ...exitInfo,
14911
+ timedOut,
14912
+ ...extra,
14913
+ stdout: diag(stdout),
14914
+ stderr: diag(stderr),
14915
+ }), 'utf8');
14916
+ let offset = 0;
14906
14917
  try {
14907
- // stdout is reserved for the trusted supervisor result. Candidate suite
14908
- // stdout/stderr are separate pipes and are never inherited here.
14909
- process.stdout.write(JSON.stringify({
14910
- ...exitInfo,
14911
- timedOut,
14912
- ...extra,
14913
- stdout: diag(stdout),
14914
- stderr: diag(stderr),
14915
- }));
14916
- } catch {}
14918
+ while (offset < buf.length) {
14919
+ try {
14920
+ offset += fs.writeSync(1, buf, offset, buf.length - offset);
14921
+ } catch (e) {
14922
+ if (e && e.code === 'EAGAIN') continue;
14923
+ throw e;
14924
+ }
14925
+ }
14926
+ } catch {
14927
+ process.exit(1);
14928
+ }
14917
14929
  process.exit(0);
14918
14930
  }
14919
14931
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tamperward",
3
- "version": "2.29.16",
3
+ "version": "2.29.17",
4
4
  "description": "The deterministic agent-integrity gate. One ruleset, evaluated on the actual diff/commands as a verdict, enforced everywhere a change can be made.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "hexrift",