docs(row253): record green 27-file run and measured timeout basis
This commit is contained in:
1 parent
0604d91fcf
commit
34401e7c90
73 files changed
+9823
-18
No files matched your search
@@ -5318,3 +5318,7 @@ Fresh gate on3e4c77ac6 under sage-2648: bus793/0, WebUI345/0/1 (esbuild version
|
||||
Gander: after Duckworth-0100 design approval with C1-C5, prepared the two host-script socket migrations, fake fixtures, updated retirement docs and 33 unique change checks. Static syntax/diff and source inventory checks pass; behavioral tests have not run. Sage-2191 queues the requested full scope and will send CLEAR. No host, unit or live config changed.
|
||||
|
||||
2026-10-22 02:13:30 UTC | Gander row253 C4 committed candidate, gate pending | Sage-2335 explicitly directs committing runnable source and tests before the whole gate. The repair implements the approved after-uid supervisor with separate inner/outer bounds; the static packet is b64aa316a. Current repaired bytes have run no syntax check, test, probe or host experiment. Earlier static syntax results apply only to the old build. Results from 8a8df4171 are historical and do not carry. Duckworth static verdict and Sage CLEAR precede all gate execution. F5 is row276 / #1781 in DEFERRED.md.
|
||||
|
||||
2026-10-22 14:45 UTC | Gander row253 focused27 on finalaca16404c base | Fresh0604d91fc / manifest573c51cf:27 whole files604/0/0, no timeout/retry, case134/0 in99.281s, case243/0 in66.418s, stack-release includingT46221/0 in583.453s. N9 sandbox bind ran and passed, no focused skips. Seven source blobs unchanged; sweep0 run-created leftovers, pre-existing infrastructure receipts retained. Whole gate and M1-M40 await separate Sage CLEAR after Duckworth rebase check. No live action.
|
||||
|
||||
2026-10-22 14:46 UTC | Gander correction to the row253 focused27 entry immediately above | stack-release whole was218/0/0, not221/0. The27-file sum604/0/0 and duration583.453s are unchanged; raw files/results.json and SUMMARY.json give the exact per-file totals.
|
||||
@@ -234,3 +234,50 @@ New gander/row253-aca1 rebases13 commits ontoaca16404c without conflicts; all13
|
||||
Step2 file bounds: every file listed in integration-aca1/FILE-LIMITS.json runs whole as timeout -k10 300 node --test --test-reporter=tap FILE, outer harness330s. Own case1/case2 first, then25 others. Busy check before each start, pipefail and tee, TMPDIR from mktemp-d /mnt/storage/scratch/tmp/gXXXXXX. First unexpected failure or timeout stops to Sage/Mos unplaced; no retry. Print HEAD and manifest digest first. No test has run. Expect10-15min; status at15min. Whole-suite limits are separate and will be written before whole-gate CLEAR.
|
||||
|
||||
Whole-shell limits remain as in the earlier table and SHELL-LIMITS.json:auth126,conductor145,config130,discord147,extension130,foundation240,land-work158,queue191,release157,task231. Each is at least3x its longest recorded successful whole run. No script changed.
|
||||
|
||||
## Focused27 green under sage-2709
|
||||
|
||||
Fresh candidate0604d91fc onaca16404c, manifest573c51cf. HEAD and digest are the first controller-log line, followed by the full900s CLI/300s bus-WebUI limit header before any test. Actual run14:30:03Z to2026-10-22T14:44:57Z, 894.0 wall seconds. All27 files whole604/0/0, timeout0, no retry or busy refusal. Commands use timeout-k10 per file, pipefail/tee and scratch gXXXXXX TMPDIR. No product/test/assertion changed. Entire seven-path manifest verifies after the run.
|
||||
|
||||
N9 did not skip. Verbatim case2 result: `ok 43 - inside a session's sandbox a bind below 1024 fails with EACCES, and a bind on a free high port succeeds`. There are no skip lines in any focused file. Later wholeWebUI and shell skips are not measured by this focused scope.
|
||||
|
||||
Every measured file duration and its later3x basis follows. The last column is ceil(3*measured whole-file wall)+120, not a completed whole-gate result. Historical C4 gates carry nothing. The whole gate still awaits separate CLEAR and Duckworth rebase review.
|
||||
|
||||
# Focused27 whole-file results
|
||||
|
||||
| Whole file | Pass/fail/skip | Wall seconds | Command limit seconds | Next3x plus120 basis |
|
||||
|---|---:|---:|---:|---:|
|
||||
| packages/cli/tests/case1-accept.test.mjs | 34/0/0 | 99.281 | 900 | 418 |
|
||||
| packages/cli/tests/case2-unit.test.mjs | 43/0/0 | 66.418 | 900 | 320 |
|
||||
| packages/bus/tests/account-migration.test.mjs | 3/0/0 | 0.415 | 300 | 122 |
|
||||
| packages/bus/tests/chief-of-staff.test.mjs | 42/0/0 | 2.168 | 300 | 127 |
|
||||
| packages/bus/tests/comment-migration.test.mjs | 5/0/0 | 0.565 | 300 | 122 |
|
||||
| packages/bus/tests/end-launch.test.mjs | 7/0/0 | 0.415 | 300 | 122 |
|
||||
| packages/bus/tests/fire-revokes-grants.test.mjs | 22/0/0 | 3.271 | 300 | 130 |
|
||||
| packages/bus/tests/gitea-grant.test.mjs | 49/0/0 | 8.634 | 300 | 146 |
|
||||
| packages/bus/tests/gitea-migration.test.mjs | 5/0/0 | 0.415 | 300 | 122 |
|
||||
| packages/bus/tests/grant-executor.test.mjs | 42/0/0 | 21.562 | 300 | 185 |
|
||||
| packages/bus/tests/grant-migration.test.mjs | 6/0/0 | 0.465 | 300 | 122 |
|
||||
| packages/bus/tests/lifecycle-revoke.test.mjs | 8/0/0 | 0.665 | 300 | 122 |
|
||||
| packages/bus/tests/message-filter.test.mjs | 6/0/0 | 0.515 | 300 | 122 |
|
||||
| packages/bus/tests/name-migration.test.mjs | 1/0/0 | 0.214 | 300 | 121 |
|
||||
| packages/bus/tests/schema.test.mjs | 1/0/0 | 0.214 | 300 | 121 |
|
||||
| packages/bus/tests/sessions.test.mjs | 7/0/0 | 0.615 | 300 | 122 |
|
||||
| packages/bus/tests/spec-migration.test.mjs | 1/0/0 | 0.214 | 300 | 121 |
|
||||
| packages/bus/tests/tester-writes.test.mjs | 8/0/0 | 0.565 | 300 | 122 |
|
||||
| packages/bus/tests/thread-claims.test.mjs | 6/0/0 | 0.264 | 300 | 121 |
|
||||
| packages/bus/tests/thread-migration.test.mjs | 3/0/0 | 0.365 | 300 | 122 |
|
||||
| packages/bus/tests/threads.test.mjs | 17/0/0 | 1.216 | 300 | 124 |
|
||||
| packages/bus/tests/usage-migration.test.mjs | 1/0/0 | 0.214 | 300 | 121 |
|
||||
| packages/cli/tests/lifecycle.test.mjs | 24/0/0 | 13.296 | 900 | 160 |
|
||||
| packages/cli/tests/stack-release.test.mjs | 218/0/0 | 583.453 | 900 | 1871 |
|
||||
| packages/cli/tests/thread-cli.test.mjs | 11/0/0 | 1.876 | 900 | 126 |
|
||||
| packages/cli/tests/thread-launch.test.mjs | 11/0/0 | 16.603 | 900 | 170 |
|
||||
| packages/webui/tests/chat.test.mjs | 23/0/0 | 0.515 | 300 | 122 |
|
||||
|
||||
N9 verbatim: ok 43 - inside a session's sandbox a bind below 1024 fails with EACCES, and a bind on a free high port succeeds
|
||||
|
||||
|
||||
Sweep0 run-created leftovers. Initial broad sweep found nine current MCP/npm/code-mode infrastructure processes, all started14:20:57-14:21:07Z before this run14:30:03Z. UTC ps and /proc start ticks are retained; initial output saved, no signalling. Deleted cwd under run TMPDIR is included. No old-PID assumption replaces the receipt check.
|
||||
|
||||
Sage2711/2714 reported unrelated queue reads/write and Python reads by other seats. First and subsequent busy checks passed; no retry was needed and no effect is attributed to those processes. No live data was read by this seat. Raw command/log paths and all27 totals live in run3-focused/files/results.json and SUMMARY.json. Return slot after the record publication; no whole suite or M1-M40 batch starts here.
|
||||
@@ -15,3 +15,5 @@ Post264a supersedes the385a preview: gander/row253-264a on84f53540d, rebased sou
|
||||
Corrected interim integration2700/2702: gander/row253-b789 onb78918850, sourcec75c9bbd3339cb2343467715a14455044c2e4aea, digest573c51cf72f2398532a6ea768536f04e3c1681997cb8b9a6f14a8aef884870ae.27-file scope unchanged. Pending final docs tip, rebase and CLEAR; no gate run.
|
||||
|
||||
Final base under sage-2705: gander/row253-aca1 onaca16404c, sourceed3bb376cdd5128dc58b3aa193282e1c2bfcf57d, digest573c51cf unchanged. integration-aca1/ is the final-hop packet. No runs yet.
|
||||
|
||||
Focused27 under sage-2709 now passed on0604d91fc:604/0/0, no timeouts, no retries, N9 executed and passed (exact line in run3-focused/SUMMARY.json). All7 blobs unchanged;573c51cf remains the review digest. run3-focused/ contains every raw whole-file log/command, HEAD/digest/limits preamble, timings and3x basis. No full gate or mutation-batch result is claimed.
|
||||
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Summarize completed focused evidence without executing tests."""
|
||||
import datetime
|
||||
import hashlib
|
||||
import json
|
||||
import math
|
||||
from pathlib import Path
|
||||
HERE=Path(__file__).resolve().parent
|
||||
RUN=HERE/'run3-focused'
|
||||
def main():
|
||||
results=json.loads((RUN/'files/results.json').read_text())
|
||||
assert len(results['steps'])==27
|
||||
assert all(s['code']==0 and not s['timeout'] and s['counts'].get('fail')==0 for s in results['steps'])
|
||||
header=(RUN/'controller.log').read_text().splitlines()
|
||||
assert json.loads(header[0])=={k:results[k] for k in ['grant','head','manifest']}
|
||||
assert json.loads(header[1])['authority']=='sage-2709'
|
||||
named=[]
|
||||
basis={}
|
||||
lines=['# Focused27 whole-file results','','| Whole file | Pass/fail/skip | Wall seconds | Command limit seconds | Next3x plus120 basis |','|---|---:|---:|---:|---:|']
|
||||
for s in results['steps']:
|
||||
command=json.loads(Path(s['log']).with_suffix('.command.json').read_text())
|
||||
expected=900 if s['file'].startswith('packages/cli/') else 300
|
||||
assert command==['timeout','-k','10',str(expected),'node','--test','--test-reporter=tap',s['file']]
|
||||
c=s['counts'];limit=math.ceil(3*s['seconds'])+120
|
||||
basis[s['file']]=dict(recorded_seconds=s['seconds'],receipt=s['log'],next_limit_seconds=limit,derivation='ceil(3*measured whole-file seconds)+120')
|
||||
lines.append(f"| {s['file']} | {c['pass']}/{c['fail']}/{c['skipped']} | {s['seconds']} | {expected} | {limit} |")
|
||||
named += [dict(file=s['file'],line=line) for line in s['named_skips']]
|
||||
case2=next(s for s in results['steps'] if s['file'].endswith('/case2-unit.test.mjs'))
|
||||
n9=[line for line in Path(case2['log']).read_text().splitlines() if 'inside a session' in line and 'ok ' in line]
|
||||
assert len(n9)==1
|
||||
result=dict(status='GREEN',grant=results['grant'],candidate=results['head'],manifest=results['manifest'],counts={k:sum(s['counts'].get(k,0) for s in results['steps']) for k in ['pass','fail','skipped']},steps=results['steps'],named_skips=named,n9_exact_line=n9[0],file_seconds_sum=round(sum(s['seconds'] for s in results['steps']),3),next_file_limits=basis,timeout_count=0,source_manifest_verified=True)
|
||||
(RUN/'SUMMARY.json').write_text(json.dumps(result,indent=2)+'\n')
|
||||
(RUN/'RESULTS.md').write_text('\n'.join(lines)+'\n\nN9 verbatim: '+n9[0]+'\n\nEvery skip:\n\n'+'\n'.join('- '+s['line'] for s in named)+'\n')
|
||||
(RUN/'MEASURED-FILE-LIMITS.json').write_text(json.dumps(basis,indent=2)+'\n')
|
||||
print(json.dumps({k:result[k] for k in ['counts','named_skips','n9_exact_line','file_seconds_sum']},indent=2))
|
||||
if __name__=='__main__':main()
|
||||
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Read-only sweep of this worktree and focused TMPDIR, including deleted cwd."""
|
||||
import datetime
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
HERE=Path(__file__).resolve().parent
|
||||
REPO=HERE.parents[3]
|
||||
RUN=HERE/'run3-focused'
|
||||
def main():
|
||||
tmp=Path((RUN/'TMPDIR').read_text().strip())
|
||||
started=datetime.datetime.fromisoformat((RUN/'start.txt').read_text().strip().replace('Z','+00:00')).timestamp()
|
||||
boot=int(next(s.split()[1] for s in Path('/proc/stat').read_text().splitlines() if s.startswith('btime ')))
|
||||
ancestors=set();pid=os.getpid()
|
||||
while pid and pid not in ancestors:
|
||||
ancestors.add(pid)
|
||||
try:pid=int(next(s.split(':')[1] for s in Path(f'/proc/{pid}/status').read_text().splitlines() if s.startswith('PPid:')))
|
||||
except (OSError,StopIteration):break
|
||||
known={2880281,2880282,2880283,2880284,2880445,2880487,2880537,2883251,2880439,2469277,2469278,2469279,2469292,2469478,2469485,2469518,2469601,2470486}
|
||||
remaining=[];excluded=[]
|
||||
for proc in Path('/proc').iterdir():
|
||||
if not proc.name.isdigit() or int(proc.name) in ancestors:continue
|
||||
try:
|
||||
rawcwd=os.readlink(proc/'cwd');cwd=Path(rawcwd.removesuffix(' (deleted)'))
|
||||
if not(cwd==REPO or REPO in cwd.parents or cwd==tmp or tmp in cwd.parents):continue
|
||||
stat=(proc/'stat').read_text().rsplit(') ',1)[1].split()
|
||||
stamp=boot+int(stat[19])/os.sysconf('SC_CLK_TCK')
|
||||
item=dict(pid=int(proc.name),comm=(proc/'comm').read_text().strip(),cwd=rawcwd,started_utc=datetime.datetime.fromtimestamp(stamp,datetime.timezone.utc).isoformat())
|
||||
if int(proc.name) in known and stamp<started:excluded.append(item)
|
||||
else:remaining.append(item)
|
||||
except (OSError,ValueError,IndexError):continue
|
||||
result=dict(timestamp=datetime.datetime.now(datetime.timezone.utc).isoformat(),count=len(remaining),remaining=remaining,excluded_preexisting_infrastructure=excluded,note='Read-only /proc cwd sweep, including deleted cwd under this run TMPDIR. Own ancestry excluded. Only known MCP/npm/code-mode infrastructure PIDs with pre-run start ticks are excluded. No signalling.')
|
||||
(RUN/'sweep.json').write_text(json.dumps(result,indent=2)+'\n');print(json.dumps(result,indent=2))
|
||||
if __name__=='__main__':main()
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"packages/cli/tests/case1-accept.test.mjs": {
|
||||
"timeout_seconds": 300,
|
||||
"timeout_seconds": 900,
|
||||
"kill_after_seconds": 10,
|
||||
"outer_harness_seconds": 330,
|
||||
"reason": "Whole-file bound under sage-2705; no prior repaired-C4 whole-file timing claimed."
|
||||
"outer_harness_seconds": 930,
|
||||
"reason": "sage-2709: six CLI whole files use900s; measured durations establish later3x basis."
|
||||
},
|
||||
"packages/cli/tests/case2-unit.test.mjs": {
|
||||
"timeout_seconds": 300,
|
||||
"timeout_seconds": 900,
|
||||
"kill_after_seconds": 10,
|
||||
"outer_harness_seconds": 330,
|
||||
"reason": "Whole-file bound under sage-2705; no prior repaired-C4 whole-file timing claimed."
|
||||
"outer_harness_seconds": 930,
|
||||
"reason": "sage-2709: six CLI whole files use900s; measured durations establish later3x basis."
|
||||
},
|
||||
"packages/bus/tests/account-migration.test.mjs": {
|
||||
"timeout_seconds": 300,
|
||||
@@ -132,28 +132,28 @@
|
||||
"reason": "Whole-file bound under sage-2705; no prior repaired-C4 whole-file timing claimed."
|
||||
},
|
||||
"packages/cli/tests/lifecycle.test.mjs": {
|
||||
"timeout_seconds": 300,
|
||||
"timeout_seconds": 900,
|
||||
"kill_after_seconds": 10,
|
||||
"outer_harness_seconds": 330,
|
||||
"reason": "Whole-file bound under sage-2705; no prior repaired-C4 whole-file timing claimed."
|
||||
"outer_harness_seconds": 930,
|
||||
"reason": "sage-2709: six CLI whole files use900s; measured durations establish later3x basis."
|
||||
},
|
||||
"packages/cli/tests/stack-release.test.mjs": {
|
||||
"timeout_seconds": 300,
|
||||
"timeout_seconds": 900,
|
||||
"kill_after_seconds": 10,
|
||||
"outer_harness_seconds": 330,
|
||||
"reason": "Whole-file bound under sage-2705; no prior repaired-C4 whole-file timing claimed."
|
||||
"outer_harness_seconds": 930,
|
||||
"reason": "sage-2709: six CLI whole files use900s; measured durations establish later3x basis."
|
||||
},
|
||||
"packages/cli/tests/thread-cli.test.mjs": {
|
||||
"timeout_seconds": 300,
|
||||
"timeout_seconds": 900,
|
||||
"kill_after_seconds": 10,
|
||||
"outer_harness_seconds": 330,
|
||||
"reason": "Whole-file bound under sage-2705; no prior repaired-C4 whole-file timing claimed."
|
||||
"outer_harness_seconds": 930,
|
||||
"reason": "sage-2709: six CLI whole files use900s; measured durations establish later3x basis."
|
||||
},
|
||||
"packages/cli/tests/thread-launch.test.mjs": {
|
||||
"timeout_seconds": 300,
|
||||
"timeout_seconds": 900,
|
||||
"kill_after_seconds": 10,
|
||||
"outer_harness_seconds": 330,
|
||||
"reason": "Whole-file bound under sage-2705; no prior repaired-C4 whole-file timing claimed."
|
||||
"outer_harness_seconds": 930,
|
||||
"reason": "sage-2709: six CLI whole files use900s; measured durations establish later3x basis."
|
||||
},
|
||||
"packages/webui/tests/chat.test.mjs": {
|
||||
"timeout_seconds": 300,
|
||||
|
||||
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"packages/cli/tests/case1-accept.test.mjs": {
|
||||
"recorded_seconds": 99.281,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/01.log",
|
||||
"next_limit_seconds": 418,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/cli/tests/case2-unit.test.mjs": {
|
||||
"recorded_seconds": 66.418,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/02.log",
|
||||
"next_limit_seconds": 320,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/account-migration.test.mjs": {
|
||||
"recorded_seconds": 0.415,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/03.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/chief-of-staff.test.mjs": {
|
||||
"recorded_seconds": 2.168,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/04.log",
|
||||
"next_limit_seconds": 127,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/comment-migration.test.mjs": {
|
||||
"recorded_seconds": 0.565,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/05.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/end-launch.test.mjs": {
|
||||
"recorded_seconds": 0.415,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/06.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/fire-revokes-grants.test.mjs": {
|
||||
"recorded_seconds": 3.271,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/07.log",
|
||||
"next_limit_seconds": 130,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/gitea-grant.test.mjs": {
|
||||
"recorded_seconds": 8.634,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/08.log",
|
||||
"next_limit_seconds": 146,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/gitea-migration.test.mjs": {
|
||||
"recorded_seconds": 0.415,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/09.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/grant-executor.test.mjs": {
|
||||
"recorded_seconds": 21.562,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/10.log",
|
||||
"next_limit_seconds": 185,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/grant-migration.test.mjs": {
|
||||
"recorded_seconds": 0.465,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/11.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/lifecycle-revoke.test.mjs": {
|
||||
"recorded_seconds": 0.665,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/12.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/message-filter.test.mjs": {
|
||||
"recorded_seconds": 0.515,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/13.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/name-migration.test.mjs": {
|
||||
"recorded_seconds": 0.214,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/14.log",
|
||||
"next_limit_seconds": 121,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/schema.test.mjs": {
|
||||
"recorded_seconds": 0.214,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/15.log",
|
||||
"next_limit_seconds": 121,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/sessions.test.mjs": {
|
||||
"recorded_seconds": 0.615,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/16.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/spec-migration.test.mjs": {
|
||||
"recorded_seconds": 0.214,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/17.log",
|
||||
"next_limit_seconds": 121,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/tester-writes.test.mjs": {
|
||||
"recorded_seconds": 0.565,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/18.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/thread-claims.test.mjs": {
|
||||
"recorded_seconds": 0.264,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/19.log",
|
||||
"next_limit_seconds": 121,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/thread-migration.test.mjs": {
|
||||
"recorded_seconds": 0.365,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/20.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/threads.test.mjs": {
|
||||
"recorded_seconds": 1.216,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/21.log",
|
||||
"next_limit_seconds": 124,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/usage-migration.test.mjs": {
|
||||
"recorded_seconds": 0.214,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/22.log",
|
||||
"next_limit_seconds": 121,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/cli/tests/lifecycle.test.mjs": {
|
||||
"recorded_seconds": 13.296,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/23.log",
|
||||
"next_limit_seconds": 160,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/cli/tests/stack-release.test.mjs": {
|
||||
"recorded_seconds": 583.453,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/24.log",
|
||||
"next_limit_seconds": 1871,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/cli/tests/thread-cli.test.mjs": {
|
||||
"recorded_seconds": 1.876,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/25.log",
|
||||
"next_limit_seconds": 126,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/cli/tests/thread-launch.test.mjs": {
|
||||
"recorded_seconds": 16.603,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/26.log",
|
||||
"next_limit_seconds": 170,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/webui/tests/chat.test.mjs": {
|
||||
"recorded_seconds": 0.515,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/27.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
# Focused window notes
|
||||
|
||||
Grant sage-2709 at14:29:21Z, test run start14:30:03Z. First busy check passed; no busy refusal occurred. Sage2711 reports one unrelated canonical queue write by Gizmoduck at14:29:42Z, row269 rev3217, and authorizes rechecking if it trips a busy guard. No recheck or test retry was needed. No test path was changed by that write. Later file results determine the gate outcome; no timing explanation is assumed.
|
||||
|
||||
Duckworth0149 static integration check has no blockers on0604d91fc /573c51cf. Focused logs will supply HEAD/digest,27 file totals and every skip, including exact N9 case2 skip.
|
||||
|
||||
Sage2714 reports Darkwing queue-show reads around14:31Z and two Python read operations at14:32Z, outside this worktree/TMPDIR. No own busy refusal or retry occurred. No test impact observed; no causal claim made about timings. This seat did not access the live data named in that notice.
|
||||
@@ -0,0 +1,37 @@
|
||||
# Focused27 whole-file results
|
||||
|
||||
| Whole file | Pass/fail/skip | Wall seconds | Command limit seconds | Next3x plus120 basis |
|
||||
|---|---:|---:|---:|---:|
|
||||
| packages/cli/tests/case1-accept.test.mjs | 34/0/0 | 99.281 | 900 | 418 |
|
||||
| packages/cli/tests/case2-unit.test.mjs | 43/0/0 | 66.418 | 900 | 320 |
|
||||
| packages/bus/tests/account-migration.test.mjs | 3/0/0 | 0.415 | 300 | 122 |
|
||||
| packages/bus/tests/chief-of-staff.test.mjs | 42/0/0 | 2.168 | 300 | 127 |
|
||||
| packages/bus/tests/comment-migration.test.mjs | 5/0/0 | 0.565 | 300 | 122 |
|
||||
| packages/bus/tests/end-launch.test.mjs | 7/0/0 | 0.415 | 300 | 122 |
|
||||
| packages/bus/tests/fire-revokes-grants.test.mjs | 22/0/0 | 3.271 | 300 | 130 |
|
||||
| packages/bus/tests/gitea-grant.test.mjs | 49/0/0 | 8.634 | 300 | 146 |
|
||||
| packages/bus/tests/gitea-migration.test.mjs | 5/0/0 | 0.415 | 300 | 122 |
|
||||
| packages/bus/tests/grant-executor.test.mjs | 42/0/0 | 21.562 | 300 | 185 |
|
||||
| packages/bus/tests/grant-migration.test.mjs | 6/0/0 | 0.465 | 300 | 122 |
|
||||
| packages/bus/tests/lifecycle-revoke.test.mjs | 8/0/0 | 0.665 | 300 | 122 |
|
||||
| packages/bus/tests/message-filter.test.mjs | 6/0/0 | 0.515 | 300 | 122 |
|
||||
| packages/bus/tests/name-migration.test.mjs | 1/0/0 | 0.214 | 300 | 121 |
|
||||
| packages/bus/tests/schema.test.mjs | 1/0/0 | 0.214 | 300 | 121 |
|
||||
| packages/bus/tests/sessions.test.mjs | 7/0/0 | 0.615 | 300 | 122 |
|
||||
| packages/bus/tests/spec-migration.test.mjs | 1/0/0 | 0.214 | 300 | 121 |
|
||||
| packages/bus/tests/tester-writes.test.mjs | 8/0/0 | 0.565 | 300 | 122 |
|
||||
| packages/bus/tests/thread-claims.test.mjs | 6/0/0 | 0.264 | 300 | 121 |
|
||||
| packages/bus/tests/thread-migration.test.mjs | 3/0/0 | 0.365 | 300 | 122 |
|
||||
| packages/bus/tests/threads.test.mjs | 17/0/0 | 1.216 | 300 | 124 |
|
||||
| packages/bus/tests/usage-migration.test.mjs | 1/0/0 | 0.214 | 300 | 121 |
|
||||
| packages/cli/tests/lifecycle.test.mjs | 24/0/0 | 13.296 | 900 | 160 |
|
||||
| packages/cli/tests/stack-release.test.mjs | 218/0/0 | 583.453 | 900 | 1871 |
|
||||
| packages/cli/tests/thread-cli.test.mjs | 11/0/0 | 1.876 | 900 | 126 |
|
||||
| packages/cli/tests/thread-launch.test.mjs | 11/0/0 | 16.603 | 900 | 170 |
|
||||
| packages/webui/tests/chat.test.mjs | 23/0/0 | 0.515 | 300 | 122 |
|
||||
|
||||
N9 verbatim: ok 43 - inside a session's sandbox a bind below 1024 fails with EACCES, and a bind on a free high port succeeds
|
||||
|
||||
Every skip:
|
||||
|
||||
|
||||
@@ -0,0 +1,625 @@
|
||||
{
|
||||
"status": "GREEN",
|
||||
"grant": "sage-2709",
|
||||
"candidate": "0604d91fcfc1949810cd5321aea6ec43e9b74b4b",
|
||||
"manifest": "573c51cf72f2398532a6ea768536f04e3c1681997cb8b9a6f14a8aef884870ae",
|
||||
"counts": {
|
||||
"pass": 604,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"steps": [
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 99.281,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/01.log",
|
||||
"file": "packages/cli/tests/case1-accept.test.mjs",
|
||||
"counts": {
|
||||
"tests": 34,
|
||||
"pass": 34,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 66.418,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/02.log",
|
||||
"file": "packages/cli/tests/case2-unit.test.mjs",
|
||||
"counts": {
|
||||
"tests": 43,
|
||||
"pass": 43,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.415,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/03.log",
|
||||
"file": "packages/bus/tests/account-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 3,
|
||||
"pass": 3,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 2.168,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/04.log",
|
||||
"file": "packages/bus/tests/chief-of-staff.test.mjs",
|
||||
"counts": {
|
||||
"tests": 42,
|
||||
"pass": 42,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.565,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/05.log",
|
||||
"file": "packages/bus/tests/comment-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 5,
|
||||
"pass": 5,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.415,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/06.log",
|
||||
"file": "packages/bus/tests/end-launch.test.mjs",
|
||||
"counts": {
|
||||
"tests": 7,
|
||||
"pass": 7,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 3.271,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/07.log",
|
||||
"file": "packages/bus/tests/fire-revokes-grants.test.mjs",
|
||||
"counts": {
|
||||
"tests": 22,
|
||||
"pass": 22,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 8.634,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/08.log",
|
||||
"file": "packages/bus/tests/gitea-grant.test.mjs",
|
||||
"counts": {
|
||||
"tests": 49,
|
||||
"pass": 49,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.415,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/09.log",
|
||||
"file": "packages/bus/tests/gitea-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 5,
|
||||
"pass": 5,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 21.562,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/10.log",
|
||||
"file": "packages/bus/tests/grant-executor.test.mjs",
|
||||
"counts": {
|
||||
"tests": 42,
|
||||
"pass": 42,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.465,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/11.log",
|
||||
"file": "packages/bus/tests/grant-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 6,
|
||||
"pass": 6,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.665,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/12.log",
|
||||
"file": "packages/bus/tests/lifecycle-revoke.test.mjs",
|
||||
"counts": {
|
||||
"tests": 8,
|
||||
"pass": 8,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.515,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/13.log",
|
||||
"file": "packages/bus/tests/message-filter.test.mjs",
|
||||
"counts": {
|
||||
"tests": 6,
|
||||
"pass": 6,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.214,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/14.log",
|
||||
"file": "packages/bus/tests/name-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 1,
|
||||
"pass": 1,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.214,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/15.log",
|
||||
"file": "packages/bus/tests/schema.test.mjs",
|
||||
"counts": {
|
||||
"tests": 1,
|
||||
"pass": 1,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.615,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/16.log",
|
||||
"file": "packages/bus/tests/sessions.test.mjs",
|
||||
"counts": {
|
||||
"tests": 7,
|
||||
"pass": 7,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.214,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/17.log",
|
||||
"file": "packages/bus/tests/spec-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 1,
|
||||
"pass": 1,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.565,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/18.log",
|
||||
"file": "packages/bus/tests/tester-writes.test.mjs",
|
||||
"counts": {
|
||||
"tests": 8,
|
||||
"pass": 8,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.264,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/19.log",
|
||||
"file": "packages/bus/tests/thread-claims.test.mjs",
|
||||
"counts": {
|
||||
"tests": 6,
|
||||
"pass": 6,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.365,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/20.log",
|
||||
"file": "packages/bus/tests/thread-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 3,
|
||||
"pass": 3,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 1.216,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/21.log",
|
||||
"file": "packages/bus/tests/threads.test.mjs",
|
||||
"counts": {
|
||||
"tests": 17,
|
||||
"pass": 17,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.214,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/22.log",
|
||||
"file": "packages/bus/tests/usage-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 1,
|
||||
"pass": 1,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 13.296,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/23.log",
|
||||
"file": "packages/cli/tests/lifecycle.test.mjs",
|
||||
"counts": {
|
||||
"tests": 24,
|
||||
"pass": 24,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 583.453,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/24.log",
|
||||
"file": "packages/cli/tests/stack-release.test.mjs",
|
||||
"counts": {
|
||||
"tests": 218,
|
||||
"pass": 218,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 1.876,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/25.log",
|
||||
"file": "packages/cli/tests/thread-cli.test.mjs",
|
||||
"counts": {
|
||||
"tests": 11,
|
||||
"pass": 11,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 16.603,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/26.log",
|
||||
"file": "packages/cli/tests/thread-launch.test.mjs",
|
||||
"counts": {
|
||||
"tests": 11,
|
||||
"pass": 11,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.515,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/27.log",
|
||||
"file": "packages/webui/tests/chat.test.mjs",
|
||||
"counts": {
|
||||
"tests": 23,
|
||||
"pass": 23,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
}
|
||||
],
|
||||
"named_skips": [],
|
||||
"n9_exact_line": "ok 43 - inside a session's sandbox a bind below 1024 fails with EACCES, and a bind on a free high port succeeds",
|
||||
"file_seconds_sum": 824.413,
|
||||
"next_file_limits": {
|
||||
"packages/cli/tests/case1-accept.test.mjs": {
|
||||
"recorded_seconds": 99.281,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/01.log",
|
||||
"next_limit_seconds": 418,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/cli/tests/case2-unit.test.mjs": {
|
||||
"recorded_seconds": 66.418,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/02.log",
|
||||
"next_limit_seconds": 320,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/account-migration.test.mjs": {
|
||||
"recorded_seconds": 0.415,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/03.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/chief-of-staff.test.mjs": {
|
||||
"recorded_seconds": 2.168,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/04.log",
|
||||
"next_limit_seconds": 127,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/comment-migration.test.mjs": {
|
||||
"recorded_seconds": 0.565,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/05.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/end-launch.test.mjs": {
|
||||
"recorded_seconds": 0.415,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/06.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/fire-revokes-grants.test.mjs": {
|
||||
"recorded_seconds": 3.271,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/07.log",
|
||||
"next_limit_seconds": 130,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/gitea-grant.test.mjs": {
|
||||
"recorded_seconds": 8.634,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/08.log",
|
||||
"next_limit_seconds": 146,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/gitea-migration.test.mjs": {
|
||||
"recorded_seconds": 0.415,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/09.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/grant-executor.test.mjs": {
|
||||
"recorded_seconds": 21.562,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/10.log",
|
||||
"next_limit_seconds": 185,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/grant-migration.test.mjs": {
|
||||
"recorded_seconds": 0.465,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/11.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/lifecycle-revoke.test.mjs": {
|
||||
"recorded_seconds": 0.665,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/12.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/message-filter.test.mjs": {
|
||||
"recorded_seconds": 0.515,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/13.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/name-migration.test.mjs": {
|
||||
"recorded_seconds": 0.214,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/14.log",
|
||||
"next_limit_seconds": 121,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/schema.test.mjs": {
|
||||
"recorded_seconds": 0.214,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/15.log",
|
||||
"next_limit_seconds": 121,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/sessions.test.mjs": {
|
||||
"recorded_seconds": 0.615,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/16.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/spec-migration.test.mjs": {
|
||||
"recorded_seconds": 0.214,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/17.log",
|
||||
"next_limit_seconds": 121,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/tester-writes.test.mjs": {
|
||||
"recorded_seconds": 0.565,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/18.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/thread-claims.test.mjs": {
|
||||
"recorded_seconds": 0.264,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/19.log",
|
||||
"next_limit_seconds": 121,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/thread-migration.test.mjs": {
|
||||
"recorded_seconds": 0.365,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/20.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/threads.test.mjs": {
|
||||
"recorded_seconds": 1.216,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/21.log",
|
||||
"next_limit_seconds": 124,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/bus/tests/usage-migration.test.mjs": {
|
||||
"recorded_seconds": 0.214,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/22.log",
|
||||
"next_limit_seconds": 121,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/cli/tests/lifecycle.test.mjs": {
|
||||
"recorded_seconds": 13.296,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/23.log",
|
||||
"next_limit_seconds": 160,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/cli/tests/stack-release.test.mjs": {
|
||||
"recorded_seconds": 583.453,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/24.log",
|
||||
"next_limit_seconds": 1871,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/cli/tests/thread-cli.test.mjs": {
|
||||
"recorded_seconds": 1.876,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/25.log",
|
||||
"next_limit_seconds": 126,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/cli/tests/thread-launch.test.mjs": {
|
||||
"recorded_seconds": 16.603,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/26.log",
|
||||
"next_limit_seconds": 170,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
},
|
||||
"packages/webui/tests/chat.test.mjs": {
|
||||
"recorded_seconds": 0.515,
|
||||
"receipt": "agents/gander/work/queue-253/run3-focused/files/27.log",
|
||||
"next_limit_seconds": 122,
|
||||
"derivation": "ceil(3*measured whole-file seconds)+120"
|
||||
}
|
||||
},
|
||||
"timeout_count": 0,
|
||||
"source_manifest_verified": true,
|
||||
"sweep": {
|
||||
"timestamp": "2026-10-22T14:45:17.148081+00:00",
|
||||
"count": 0,
|
||||
"remaining": [],
|
||||
"excluded_preexisting_infrastructure": [
|
||||
{
|
||||
"pid": 2469277,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.360000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469278,
|
||||
"comm": "npm exec @model",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.370000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469279,
|
||||
"comm": "npm exec chrome",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.370000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469292,
|
||||
"comm": "npm exec @playw",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.380000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469478,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:58.770000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469485,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:58.800000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469518,
|
||||
"comm": "chrome-devtools",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:59.100000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469601,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:59.440000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2470486,
|
||||
"comm": "codex-code-mode",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:21:07.580000+00:00"
|
||||
}
|
||||
],
|
||||
"note": "Read-only /proc cwd sweep, including deleted cwd under this run TMPDIR. Own ancestry excluded. Only known MCP/npm/code-mode infrastructure PIDs with pre-run start ticks are excluded. No signalling."
|
||||
},
|
||||
"start": "2026-10-22T14:30:03Z",
|
||||
"end": "2026-10-22T14:44:57Z",
|
||||
"wall_seconds": 894.0
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
/mnt/storage/scratch/tmp/gMJyGKC
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1 @@
|
||||
2026-10-22T14:44:57Z
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "900", "node", "--test", "--test-reporter=tap", "packages/cli/tests/case1-accept.test.mjs"]
|
||||
@@ -0,0 +1,214 @@
|
||||
TAP version 13
|
||||
# Subtest: row253 socket observation uses configured root, metadata and the Console peer without sending bytes
|
||||
ok 1 - row253 socket observation uses configured root, metadata and the Console peer without sending bytes
|
||||
---
|
||||
duration_ms: 635.08322
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure
|
||||
ok 2 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure
|
||||
---
|
||||
duration_ms: 8910.768359
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 acceptance rejects bad config and unsupported copies before talk
|
||||
ok 3 - row253 acceptance rejects bad config and unsupported copies before talk
|
||||
---
|
||||
duration_ms: 1287.210524
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 stalled peer observation ends within its bound without leaving a reader
|
||||
ok 4 - row253 stalled peer observation ends within its bound without leaving a reader
|
||||
---
|
||||
duration_ms: 2759.173042
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 P8 refuses both retired TCP and board listeners
|
||||
ok 5 - row253 P8 refuses both retired TCP and board listeners
|
||||
---
|
||||
duration_ms: 1495.993888
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 acceptance query inner reason holds under both sudo models
|
||||
ok 6 - row253 C4 acceptance query inner reason holds under both sudo models
|
||||
---
|
||||
duration_ms: 10714.050013
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 acceptance query outer reason discards stdout and names residual cleanup
|
||||
ok 7 - row253 C4 acceptance query outer reason discards stdout and names residual cleanup
|
||||
---
|
||||
duration_ms: 14202.380117
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 acceptance query overflow is output-limit in both models
|
||||
ok 8 - row253 C4 acceptance query overflow is output-limit in both models
|
||||
---
|
||||
duration_ms: 533.74284
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 P10 inner reason holds under both sudo models
|
||||
ok 9 - row253 C4 P10 inner reason holds under both sudo models
|
||||
---
|
||||
duration_ms: 5977.183052
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 P10 outer reason holds under both sudo models
|
||||
ok 10 - row253 C4 P10 outer reason holds under both sudo models
|
||||
---
|
||||
duration_ms: 9158.961886
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 P10 overflow reason holds under both sudo models
|
||||
ok 11 - row253 C4 P10 overflow reason holds under both sudo models
|
||||
---
|
||||
duration_ms: 1068.808446
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: every check passing exits 0, with each P mark and counts that match the lines
|
||||
ok 12 - row 195 accept: every check passing exits 0, with each P mark and counts that match the lines
|
||||
---
|
||||
duration_ms: 657.788738
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: exits 1 with each F check failing alone, and its line names it
|
||||
ok 13 - row 195 accept: exits 1 with each F check failing alone, and its line names it
|
||||
---
|
||||
duration_ms: 7275.151025
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes talk's error
|
||||
ok 14 - row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes talk's error
|
||||
---
|
||||
duration_ms: 1359.251446
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: F1 fails on a unit that isn't active or isn't User=mosaic
|
||||
ok 15 - row 195 accept: F1 fails on a unit that isn't active or isn't User=mosaic
|
||||
---
|
||||
duration_ms: 1214.848264
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: F2 fails when healthz doesn't answer and when another pid holds the port
|
||||
ok 16 - row 195 accept: F2 fails when healthz doesn't answer and when another pid holds the port
|
||||
---
|
||||
duration_ms: 1318.107134
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: F5 fails on unpriv_bwrap (enforce), on complain and on a trailing space
|
||||
ok 17 - row 195 accept: F5 fails on unpriv_bwrap (enforce), on complain and on a trailing space
|
||||
---
|
||||
duration_ms: 2891.844673
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: F5 fails with no bwrap of mosaic's, and passes on comm alone
|
||||
ok 18 - row 195 accept: F5 fails with no bwrap of mosaic's, and passes on comm alone
|
||||
---
|
||||
duration_ms: 1370.822639
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude-<pin> and on a .. segment
|
||||
ok 19 - row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude-<pin> and on a .. segment
|
||||
---
|
||||
duration_ms: 2098.024276
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: F7 fails on two live PM launches, one for another business, and no launch.by
|
||||
ok 20 - row 195 accept: F7 fails on two live PM launches, one for another business, and no launch.by
|
||||
---
|
||||
duration_ms: 2106.445728
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: F8 fails on 0640, on another owner and on a symlink, and never prints the credential
|
||||
ok 21 - row 195 accept: F8 fails on 0640, on another owner and on a symlink, and never prints the credential
|
||||
---
|
||||
duration_ms: 2002.61524
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: F9 fails on another owner, a group-writable mode and a number for the flag
|
||||
ok 22 - row 195 accept: F9 fails on another owner, a group-writable mode and a number for the flag
|
||||
---
|
||||
duration_ms: 1861.992457
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: F9 won't run --node as root off the pin path or with a writable directory above it
|
||||
ok 23 - row 195 accept: F9 won't run --node as root off the pin path or with a writable directory above it
|
||||
---
|
||||
duration_ms: 1901.812772
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: F11 fails on one *.json under discord/ and passes on an empty directory
|
||||
ok 24 - row 195 accept: F11 fails on one *.json under discord/ and passes on an empty directory
|
||||
---
|
||||
duration_ms: 1431.808863
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: each P check reports unnamed on its fault, and the exit stays 0
|
||||
ok 25 - row 195 accept: each P check reports unnamed on its fault, and the exit stays 0
|
||||
---
|
||||
duration_ms: 5915.695807
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: P2 is unnamed with a supplementary group, and P5 names docker
|
||||
ok 26 - row 195 accept: P2 is unnamed with a supplementary group, and P5 names docker
|
||||
---
|
||||
duration_ms: 1423.353014
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: P5 is closed with no jarvis account, and P2 with an empty authorized_keys
|
||||
ok 27 - row 195 accept: P5 is closed with no jarvis account, and P2 with an empty authorized_keys
|
||||
---
|
||||
duration_ms: 616.405224
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: P9 is unnamed once for each item missing
|
||||
ok 28 - row 195 accept: P9 is unnamed once for each item missing
|
||||
---
|
||||
duration_ms: 3502.799413
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 accept: P10 fails its observation with another peer; P11 with the unit disabled
|
||||
ok 29 - row253 accept: P10 fails its observation with another peer; P11 with the unit disabled
|
||||
---
|
||||
duration_ms: 1268.612039
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: every P check unnamed together still exits 0
|
||||
ok 30 - row 195 accept: every P check unnamed together still exits 0
|
||||
---
|
||||
duration_ms: 517.656059
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason
|
||||
ok 31 - row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason
|
||||
---
|
||||
duration_ms: 114.130545
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: usage errors and a run without --root as a user exit 2
|
||||
ok 32 - row 195 accept: usage errors and a run without --root as a user exit 2
|
||||
---
|
||||
duration_ms: 12.783137
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=<node dir>:...
|
||||
ok 33 - row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=<node dir>:...
|
||||
---
|
||||
duration_ms: 719.568395
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 195 accept: the host check runs with --check and never --enforce
|
||||
ok 34 - row 195 accept: the host check runs with --check and never --enforce
|
||||
---
|
||||
duration_ms: 753.65801
|
||||
type: 'test'
|
||||
...
|
||||
1..34
|
||||
# tests 34
|
||||
# suites 0
|
||||
# pass 34
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 99207.214655
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "900", "node", "--test", "--test-reporter=tap", "packages/cli/tests/case2-unit.test.mjs"]
|
||||
@@ -0,0 +1,268 @@
|
||||
TAP version 13
|
||||
# Subtest: row253 factory socket uses actual config and target-uid query without widening hardening
|
||||
ok 1 - row253 factory socket uses actual config and target-uid query without widening hardening
|
||||
---
|
||||
duration_ms: 262.277524
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 installer refuses unsafe location and query facts before unit writes
|
||||
ok 2 - row253 installer refuses unsafe location and query facts before unit writes
|
||||
---
|
||||
duration_ms: 2888.737963
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 query timeout kills its process group and leaves no running child
|
||||
ok 3 - row253 query timeout kills its process group and leaves no running child
|
||||
---
|
||||
duration_ms: 7063.145938
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 protected homes refuse before any filesystem access
|
||||
ok 4 - row253 protected homes refuse before any filesystem access
|
||||
---
|
||||
duration_ms: 9.095629
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 sleep query has exact inner reason and cleans all members
|
||||
ok 5 - row253 C4 sleep query has exact inner reason and cleans all members
|
||||
---
|
||||
duration_ms: 10654.435358
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 signals query has exact inner reason and cleans all members
|
||||
ok 6 - row253 C4 signals query has exact inner reason and cleans all members
|
||||
---
|
||||
duration_ms: 10558.851516
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 member query has exact inner reason and cleans all members
|
||||
ok 7 - row253 C4 member query has exact inner reason and cleans all members
|
||||
---
|
||||
duration_ms: 10575.034076
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 overflow is output-limit in both sudo modes
|
||||
ok 8 - row253 C4 overflow is output-limit in both sudo modes
|
||||
---
|
||||
duration_ms: 356.84676
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 stalled supervisor uses the outer reason and explicit residual cleanup
|
||||
ok 9 - row253 C4 stalled supervisor uses the outer reason and explicit residual cleanup
|
||||
---
|
||||
duration_ms: 14132.115825
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 inline supervisor is byte-identical in both host scripts
|
||||
ok 10 - row253 C4 inline supervisor is byte-identical in both host scripts
|
||||
---
|
||||
duration_ms: 0.332222
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 C4 cleanup budget starts after inventory pass one
|
||||
ok 11 - row253 C4 cleanup budget starts after inventory pass one
|
||||
---
|
||||
duration_ms: 27.312099
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 query reaps its group even when a child closes stdout before the query returns
|
||||
ok 12 - row253 query reaps its group even when a child closes stdout before the query returns
|
||||
---
|
||||
duration_ms: 125.14664
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 config parser is strict
|
||||
ok 13 - row253 config parser is strict
|
||||
---
|
||||
duration_ms: 8.171201
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a clean library render writes both units 0644 with the fixed lines, and enables both then starts the bus then the Console
|
||||
ok 14 - a clean library render writes both units 0644 with the fixed lines, and enables both then starts the bus then the Console
|
||||
---
|
||||
duration_ms: 94.172642
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: PATH starts with the --node directory, for a node outside the default list and for /usr/bin/node
|
||||
ok 15 - PATH starts with the --node directory, for a node outside the default list and for /usr/bin/node
|
||||
---
|
||||
duration_ms: 93.781364
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a failed bus start refuses with the Console not started
|
||||
ok 16 - a failed bus start refuses with the Console not started
|
||||
---
|
||||
duration_ms: 91.475307
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the script never links a unit file
|
||||
ok 17 - the script never links a unit file
|
||||
---
|
||||
duration_ms: 0.17219
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: factory renders --pm once and one MOSAIC_CLAUDE_BIN line, and without them both tokens render empty
|
||||
ok 18 - factory renders --pm once and one MOSAIC_CLAUDE_BIN line, and without them both tokens render empty
|
||||
---
|
||||
duration_ms: 533.168317
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a re-install over running units says they are still on the old copy and must restart together, never that it started them
|
||||
ok 19 - a re-install over running units says they are still on the old copy and must restart together, never that it started them
|
||||
---
|
||||
duration_ms: 410.859392
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a re-install to another copy re-renders both units, and an edited installed unit refuses
|
||||
ok 20 - a re-install to another copy re-renders both units, and an edited installed unit refuses
|
||||
---
|
||||
duration_ms: 978.008405
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a template with a namespace, user or system call restriction refuses
|
||||
ok 21 - a template with a namespace, user or system call restriction refuses
|
||||
---
|
||||
duration_ms: 262.771603
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the bus template's EnvironmentFile line must be there and point at the session env, and the Console template must have none
|
||||
ok 22 - the bus template's EnvironmentFile line must be there and point at the session env, and the Console template must have none
|
||||
---
|
||||
duration_ms: 178.505576
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a template holding an unknown token, PermissionsStartOnly or a privileged Exec prefix refuses
|
||||
ok 23 - a template holding an unknown token, PermissionsStartOnly or a privileged Exec prefix refuses
|
||||
---
|
||||
duration_ms: 135.131551
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a symlink at either unit path refuses
|
||||
ok 24 - a symlink at either unit path refuses
|
||||
---
|
||||
duration_ms: 164.772609
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a --node that is relative, not root-owned or under <home> refuses
|
||||
ok 25 - a --node that is relative, not root-owned or under <home> refuses
|
||||
---
|
||||
duration_ms: 18.273626
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a re-install with a different --node or different serve flags refuses
|
||||
ok 26 - a re-install with a different --node or different serve flags refuses
|
||||
---
|
||||
duration_ms: 454.1624
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: an installed pair whose units name different copies refuses
|
||||
ok 27 - an installed pair whose units name different copies refuses
|
||||
---
|
||||
duration_ms: 238.147366
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a copy id that is short, uppercase, holds / or .., or names no directory refuses
|
||||
ok 28 - a copy id that is short, uppercase, holds / or .., or names no directory refuses
|
||||
---
|
||||
duration_ms: 26.564149
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: library refuses a privileged-floor miss, a bad proof pair and every flag outside its set
|
||||
ok 29 - library refuses a privileged-floor miss, a bad proof pair and every flag outside its set
|
||||
---
|
||||
duration_ms: 267.048019
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: library refuses a proof file not owned by <user>'s uid
|
||||
ok 30 - library refuses a proof file not owned by <user>'s uid
|
||||
---
|
||||
duration_ms: 17.16447
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: factory refuses duplicate socket, a missing --port or --business, and each proxy flag
|
||||
ok 31 - factory refuses duplicate socket, a missing --port or --business, and each proxy flag
|
||||
---
|
||||
duration_ms: 179.834197
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row253 factory refuses retired TCP and a value after the socket marker
|
||||
ok 32 - row253 factory refuses retired TCP and a value after the socket marker
|
||||
---
|
||||
duration_ms: 27.35353
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: factory refuses a --claude that is relative, not root-owned or under <home>, and a re-install with another --pm or --claude
|
||||
ok 33 - factory refuses a --claude that is relative, not root-owned or under <home>, and a re-install with another --pm or --claude
|
||||
---
|
||||
duration_ms: 1109.424536
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the precheck passes on a good host and prints free memory, without the key
|
||||
ok 34 - the precheck passes on a good host and prints free memory, without the key
|
||||
---
|
||||
duration_ms: 105.001864
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the precheck refuses each failed host check
|
||||
ok 35 - the precheck refuses each failed host check
|
||||
---
|
||||
duration_ms: 912.086148
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the precheck refuses a user missing from passwd, a business file that does not load, and a symlinked run root
|
||||
ok 36 - the precheck refuses a user missing from passwd, a business file that does not load, and a symlinked run root
|
||||
---
|
||||
duration_ms: 468.71868
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a bwrap that fails refuses and prints the sysctl and where bwrap is
|
||||
ok 37 - a bwrap that fails refuses and prints the sysctl and where bwrap is
|
||||
---
|
||||
duration_ms: 103.211063
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: an unprivileged port floor at or below the Console's port refuses, and so does a missing Console unit
|
||||
ok 38 - an unprivileged port floor at or below the Console's port refuses, and so does a missing Console unit
|
||||
---
|
||||
duration_ms: 483.098555
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: bus.tester: library refuses it on, factory needs it on, and factory refuses a library business
|
||||
ok 39 - bus.tester: library refuses it on, factory needs it on, and factory refuses a library business
|
||||
---
|
||||
duration_ms: 397.641457
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the claude check runs only for a claude-code instance, and refuses a claude that appends or answers wrong
|
||||
ok 40 - the claude check runs only for a claude-code instance, and refuses a claude that appends or answers wrong
|
||||
---
|
||||
duration_ms: 856.874242
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the claude check runs the bus unit's MOSAIC_CLAUDE_BIN over claude on PATH
|
||||
ok 41 - the claude check runs the bus unit's MOSAIC_CLAUDE_BIN over claude on PATH
|
||||
---
|
||||
duration_ms: 262.683595
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the session env file refuses when missing, open to others, a symlink, empty, or emptied by a later line
|
||||
ok 42 - the session env file refuses when missing, open to others, a symlink, empty, or emptied by a later line
|
||||
---
|
||||
duration_ms: 591.944048
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: inside a session's sandbox a bind below 1024 fails with EACCES, and a bind on a free high port succeeds
|
||||
ok 43 - inside a session's sandbox a bind below 1024 fails with EACCES, and a bind on a free high port succeeds
|
||||
---
|
||||
duration_ms: 82.554846
|
||||
type: 'test'
|
||||
...
|
||||
1..43
|
||||
# tests 43
|
||||
# suites 0
|
||||
# pass 43
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 66326.521088
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/account-migration.test.mjs"]
|
||||
@@ -0,0 +1,28 @@
|
||||
TAP version 13
|
||||
# Subtest: REQ-LIMIT-4 3h copy migrates to 3i: every row keeps its seq, the sequence carries over, and only the account CHECK changes
|
||||
ok 1 - REQ-LIMIT-4 3h copy migrates to 3i: every row keeps its seq, the sequence carries over, and only the account CHECK changes
|
||||
---
|
||||
duration_ms: 82.597902
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-LIMIT-4 a 3h→3i step that fails partway leaves the store at 3h with every row, the sequence and the schema intact
|
||||
ok 2 - REQ-LIMIT-4 a 3h→3i step that fails partway leaves the store at 3h with every row, the sequence and the schema intact
|
||||
---
|
||||
duration_ms: 92.53462
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-LIMIT-4 the 3h engine refuses a migrated store, migrating or not, and leaves it as it was
|
||||
ok 3 - REQ-LIMIT-4 the 3h engine refuses a migrated store, migrating or not, and leaves it as it was
|
||||
---
|
||||
duration_ms: 81.102574
|
||||
type: 'test'
|
||||
...
|
||||
1..3
|
||||
# tests 3
|
||||
# suites 0
|
||||
# pass 3
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 340.975929
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/chief-of-staff.test.mjs"]
|
||||
@@ -0,0 +1,271 @@
|
||||
TAP version 13
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# Subtest: REQ-COS-1, REQ-ROLE-2: the chief of staff ends a run with a reason and no decision, and the reason is logged
|
||||
ok 1 - REQ-COS-1, REQ-ROLE-2: the chief of staff ends a run with a reason and no decision, and the reason is logged
|
||||
---
|
||||
duration_ms: 28.331746
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-ROLE-2: a role without role.end still needs a resolved decision to revoke
|
||||
ok 2 - REQ-ROLE-2: a role without role.end still needs a resolved decision to revoke
|
||||
---
|
||||
duration_ms: 26.434808
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-ROLE-2: storage accepts a revoke with a reason or a decision and aborts one with neither
|
||||
ok 3 - REQ-ROLE-2: storage accepts a revoke with a reason or a decision and aborts one with neither
|
||||
---
|
||||
duration_ms: 17.938787
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-ROLE-2: the chief of staff may still cite a decision, and a decision alone is the old path
|
||||
ok 4 - REQ-ROLE-2: the chief of staff may still cite a decision, and a decision alone is the old path
|
||||
---
|
||||
duration_ms: 18.620206
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-ROLE-2: a role without role.end still ends a run through a resolved decision, which is recorded and has no reason
|
||||
ok 5 - REQ-ROLE-2: a role without role.end still ends a run through a resolved decision, which is recorded and has no reason
|
||||
---
|
||||
duration_ms: 21.128166
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-ROLE-2: a reason is required, bounded, and never sent with a decision
|
||||
ok 6 - REQ-ROLE-2: a reason is required, bounded, and never sent with a decision
|
||||
---
|
||||
duration_ms: 23.298242
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-COS-1: the chief of staff cannot end its own run; its end of the assistant stops the assistant's thread run
|
||||
ok 7 - REQ-COS-1: the chief of staff cannot end its own run; its end of the assistant stops the assistant's thread run
|
||||
---
|
||||
duration_ms: 24.376739
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-LIMIT-1, REQ-COS-1: organization.set from the chief of staff reaches the shared writer, named as the actor
|
||||
ok 8 - REQ-LIMIT-1, REQ-COS-1: organization.set from the chief of staff reaches the shared writer, named as the actor
|
||||
---
|
||||
duration_ms: 18.346487
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-LIMIT-1, REQ-COS-1: a refused organization.set logs action.refused and no action.allowed, like a refused limits.set
|
||||
ok 9 - REQ-LIMIT-1, REQ-COS-1: a refused organization.set logs action.refused and no action.allowed, like a refused limits.set
|
||||
---
|
||||
duration_ms: 23.149091
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-LIMIT-1: organization.set is refused for every caller whose role file lacks organization.change
|
||||
ok 10 - REQ-LIMIT-1: organization.set is refused for every caller whose role file lacks organization.change
|
||||
---
|
||||
duration_ms: 26.114851
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-LIMIT-1: the chief of staff is logged as allowed, and organization.set takes only the human's keys
|
||||
ok 11 - REQ-LIMIT-1: the chief of staff is logged as allowed, and organization.set takes only the human's keys
|
||||
---
|
||||
duration_ms: 28.913122
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-COS-1: organization.revision answers the revision alone to the chief of staff and spends nothing
|
||||
ok 12 - REQ-COS-1: organization.revision answers the revision alone to the chief of staff and spends nothing
|
||||
---
|
||||
duration_ms: 23.086141
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-COS-1, REQ-LIMIT-1: organization.revision is refused for every caller whose role file lacks organization.change
|
||||
ok 13 - REQ-COS-1, REQ-LIMIT-1: organization.revision is refused for every caller whose role file lacks organization.change
|
||||
---
|
||||
duration_ms: 24.973528
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-ROLE-3, REQ-LIMIT-1: a chief-of-staff change is validated, written and logged like a human's; an invalid one is refused
|
||||
ok 14 - REQ-ROLE-3, REQ-LIMIT-1: a chief-of-staff change is validated, written and logged like a human's; an invalid one is refused
|
||||
---
|
||||
duration_ms: 121.448868
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-COS-1: the chief of staff reads the revision, changes the file with it, and reads again after a stale one is refused
|
||||
ok 15 - REQ-COS-1: the chief of staff reads the revision, changes the file with it, and reads again after a stale one is refused
|
||||
---
|
||||
duration_ms: 69.528621
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: Q169: the chief of staff's change of the assistant is validated, written and logged; a stale or protection-stripping one is refused
|
||||
ok 16 - Q169: the chief of staff's change of the assistant is validated, written and logged; a stale or protection-stripping one is refused
|
||||
---
|
||||
duration_ms: 77.400397
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 65, Q169: the chief's change of the assistant's route runs the routing checks, and a valid one saves as the chief
|
||||
ok 17 - row 65, Q169: the chief's change of the assistant's route runs the routing checks, and a valid one saves as the chief
|
||||
---
|
||||
duration_ms: 52.105961
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-ROLE-2, REQ-COS-1: the 3c→3d migration lets the chief of staff end a held role with a reason; neither is still refused
|
||||
ok 18 - REQ-ROLE-2, REQ-COS-1: the 3c→3d migration lets the chief of staff end a held role with a reason; neither is still refused
|
||||
---
|
||||
duration_ms: 75.179142
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T10: the chief's reason end of a kept instance refuses instance-kept, holds the claim and spends nothing
|
||||
ok 19 - row 194 T10: the chief's reason end of a kept instance refuses instance-kept, holds the claim and spends nothing
|
||||
---
|
||||
duration_ms: 18.345149
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T10 (Q2): a role.revoke citing a decision the human resolved still ends a kept run
|
||||
ok 20 - row 194 T10 (Q2): a role.revoke citing a decision the human resolved still ends a kept run
|
||||
---
|
||||
duration_ms: 19.386726
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T10 (B7): the chief's organization.set of a kept instance's model refuses before the writer; the human's limits.set does not
|
||||
ok 21 - row 194 T10 (B7): the chief's organization.set of a kept instance's model refuses before the writer; the human's limits.set does not
|
||||
---
|
||||
duration_ms: 19.01179
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T13: organization.set and limits.set refuse the launch, retired, keep and noHire keys before the writer
|
||||
ok 22 - row 194 T13: organization.set and limits.set refuse the launch, retired, keep and noHire keys before the writer
|
||||
---
|
||||
duration_ms: 23.117738
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T18 (D2.4): from a chief session veto.set and instances.set refuse, and nothing reaches the writer
|
||||
ok 23 - row 194 T18 (D2.4): from a chief session veto.set and instances.set refuse, and nothing reaches the writer
|
||||
---
|
||||
duration_ms: 22.420802
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T8: the chief hires with a reason and no decision, the writer gets the reason as context, and the log names it
|
||||
ok 24 - row 194 T8: the chief hires with a reason and no decision, the writer gets the reason as context, and the log names it
|
||||
---
|
||||
duration_ms: 21.138167
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T11: on a bus with two businesses, the chief of one hires and fires only in its own
|
||||
ok 25 - row 194 T11: on a bus with two businesses, the chief of one hires and fires only in its own
|
||||
---
|
||||
duration_ms: 18.321241
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T8: hire and fire need a reason of 1 to 500 characters and refuse a decision key
|
||||
ok 26 - row 194 T8: hire and fire need a reason of 1 to 500 characters and refuse a decision key
|
||||
---
|
||||
duration_ms: 29.401579
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T8 (sage-1471): only the chief hires or fires; every other role refuses role-not-chief, even one granted the actions
|
||||
ok 27 - row 194 T8 (sage-1471): only the chief hires or fires; every other role refuses role-not-chief, even one granted the actions
|
||||
---
|
||||
duration_ms: 27.890795
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T8 (sage-1471): a chief whose authority lacks role.hire or role.fire refuses decision-required before the writer
|
||||
ok 28 - row 194 T8 (sage-1471): a chief whose authority lacks role.hire or role.fire refuses decision-required before the writer
|
||||
---
|
||||
duration_ms: 39.940767
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T8a: a re-hire of a fired name goes to the writer like a hire, and the writer's refusals pass through by name
|
||||
ok 29 - row 194 T8a: a re-hire of a fired name goes to the writer like a hire, and the writer's refusals pass through by name
|
||||
---
|
||||
duration_ms: 23.456981
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T8b: a definition is hireable only when every action is on HIRE_ALLOWED, it is version 2, the chief lists it and noHire doesn't
|
||||
ok 30 - row 194 T8b: a definition is hireable only when every action is on HIRE_ALLOWED, it is version 2, the chief lists it and noHire doesn't
|
||||
---
|
||||
duration_ms: 664.437436
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T8b: a hire without the role files configured refuses not-configured
|
||||
ok 31 - row 194 T8b: a hire without the role files configured refuses not-configured
|
||||
---
|
||||
duration_ms: 18.714128
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T9: a fire revokes the claim, cancels open requests, asks the launcher to kill the runs, then delists and logs
|
||||
ok 32 - row 194 T9: a fire revokes the claim, cancels open requests, asks the launcher to kill the runs, then delists and logs
|
||||
---
|
||||
duration_ms: 21.402072
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T9a (bus): a fire end's done writes lifecycle.end.killed and lifecycle.end.alive with run and pid, and an unknown stop's reason; a terminate's done or a bad stop refuses
|
||||
ok 33 - row 194 T9a (bus): a fire end's done writes lifecycle.end.killed and lifecycle.end.alive with run and pid, and an unknown stop's reason; a terminate's done or a bad stop refuses
|
||||
---
|
||||
duration_ms: 25.798012
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T9: fire refusals come before step A and leave the claim, the requests and the file alone
|
||||
ok 34 - row 194 T9: fire refusals come before step A and leave the claim, the requests and the file alone
|
||||
---
|
||||
duration_ms: 22.191888
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T9c: a writer failure at B leaves the instance firing, and the repeat delists and logs once
|
||||
ok 35 - row 194 T9c: a writer failure at B leaves the instance firing, and the repeat delists and logs once
|
||||
---
|
||||
duration_ms: 23.500086
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T9c: a failure at C leaves the fire unlogged and the instance firing, and the repeat logs it
|
||||
ok 36 - row 194 T9c: a failure at C leaves the fire unlogged and the instance firing, and the repeat logs it
|
||||
---
|
||||
duration_ms: 24.322177
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 W-N1: a fire.done before a later fire.stopped of the same instance leaves it firing; another instance's done does not end it
|
||||
ok 37 - row 194 W-N1: a fire.done before a later fire.stopped of the same instance leaves it firing; another instance's done does not end it
|
||||
---
|
||||
duration_ms: 21.989082
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T10: a hire or fire of a kept name refuses instance-kept before the writer
|
||||
ok 38 - row 194 T10: a hire or fire of a kept name refuses instance-kept before the writer
|
||||
---
|
||||
duration_ms: 18.687603
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T10: a fire the writer's check refuses from the file stops nothing and leaves the instance launchable
|
||||
ok 39 - row 194 T10: a fire the writer's check refuses from the file stops nothing and leaves the instance launchable
|
||||
---
|
||||
duration_ms: 18.529568
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T18: hire and fire take only their own keys, and a refused call writes nothing
|
||||
ok 40 - row 194 T18: hire and fire take only their own keys, and a refused call writes nothing
|
||||
---
|
||||
duration_ms: 24.530376
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T8, T9, T18: through the runtime the chief hires and fires with the real writer, the receipt carries the reason, and a refusal leaves the file alone
|
||||
ok 41 - row 194 T8, T9, T18: through the runtime the chief hires and fires with the real writer, the receipt carries the reason, and a refusal leaves the file alone
|
||||
---
|
||||
duration_ms: 67.04966
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 W-N1: the launcher's take of a launch or regenerate of a firing instance closes it as instance-firing
|
||||
ok 42 - row 194 W-N1: the launcher's take of a launch or regenerate of a firing instance closes it as instance-firing
|
||||
---
|
||||
duration_ms: 24.174855
|
||||
type: 'test'
|
||||
...
|
||||
1..42
|
||||
# tests 42
|
||||
# suites 0
|
||||
# pass 42
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 2069.126162
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/comment-migration.test.mjs"]
|
||||
@@ -0,0 +1,40 @@
|
||||
TAP version 13
|
||||
# Subtest: explicit 3b copy migration preserves evidence and opens as 3g; normal startup never migrates
|
||||
ok 1 - explicit 3b copy migration preserves evidence and opens as 3g; normal startup never migrates
|
||||
---
|
||||
duration_ms: 66.915434
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: migration refuses active writers and drifted legacy schemas, with no partial upgrade
|
||||
ok 2 - migration refuses active writers and drifted legacy schemas, with no partial upgrade
|
||||
---
|
||||
duration_ms: 87.090397
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: named migration registry chains 3b through 3g to a fixture-only future version in order
|
||||
ok 3 - named migration registry chains 3b through 3g to a fixture-only future version in order
|
||||
---
|
||||
duration_ms: 92.896241
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: migration refuses mismatched source metadata without changing schema or evidence
|
||||
ok 4 - migration refuses mismatched source metadata without changing schema or evidence
|
||||
---
|
||||
duration_ms: 36.477831
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: offline command migrates only the supplied fixture root and reports usage errors
|
||||
ok 5 - offline command migrates only the supplied fixture root and reports usage errors
|
||||
---
|
||||
duration_ms: 168.952237
|
||||
type: 'test'
|
||||
...
|
||||
1..5
|
||||
# tests 5
|
||||
# suites 0
|
||||
# pass 5
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 517.394008
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/end-launch.test.mjs"]
|
||||
@@ -0,0 +1,52 @@
|
||||
TAP version 13
|
||||
# Subtest: endLaunch writes session.ended, releases the run claim and kills its capabilities
|
||||
ok 1 - endLaunch writes session.ended, releases the run claim and kills its capabilities
|
||||
---
|
||||
duration_ms: 19.923626
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: endLaunch refuses an unknown run, a second end and a rebind of the ended run
|
||||
ok 2 - endLaunch refuses an unknown run, a second end and a rebind of the ended run
|
||||
---
|
||||
duration_ms: 11.57898
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a restarted broker refuses to rebind an ended run; a refused rebind leaves the run unbound
|
||||
ok 3 - a restarted broker refuses to rebind an ended run; a refused rebind leaves the run unbound
|
||||
---
|
||||
duration_ms: 13.959669
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: endLaunch leaves a claim another run took alone
|
||||
ok 4 - endLaunch leaves a claim another run took alone
|
||||
---
|
||||
duration_ms: 15.607261
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: refuse records action.refused against the caller with the code only
|
||||
ok 5 - refuse records action.refused against the caller with the code only
|
||||
---
|
||||
duration_ms: 11.34653
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: launches off refuses role.launch with launch-revoked until launches on
|
||||
ok 6 - launches off refuses role.launch with launch-revoked until launches on
|
||||
---
|
||||
duration_ms: 15.612767
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: broker process: launch ops authorize role.launch, record refusals and end runs
|
||||
ok 7 - broker process: launch ops authorize role.launch, record refusals and end runs
|
||||
---
|
||||
duration_ms: 162.081295
|
||||
type: 'test'
|
||||
...
|
||||
1..7
|
||||
# tests 7
|
||||
# suites 0
|
||||
# pass 7
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 323.68804
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/fire-revokes-grants.test.mjs"]
|
||||
@@ -0,0 +1,142 @@
|
||||
TAP version 13
|
||||
# Subtest: row 281 T2: a fire with host grants on two hosts and a Gitea grant answers with a job, then revokes all three
|
||||
ok 1 - row 281 T2: a fire with host grants on two hosts and a Gitea grant answers with a job, then revokes all three
|
||||
---
|
||||
duration_ms: 232.783752
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T3 (sage-2575): a delete with grants takes two requests: the first starts the job, the next completes
|
||||
ok 2 - row 281 T3 (sage-2575): a delete with grants takes two requests: the first starts the job, the next completes
|
||||
---
|
||||
duration_ms: 223.116777
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T3b (Q2): a delete whose job refuses on host B; the retry refuses grant-revoke-failed and revokes only B and Gitea
|
||||
ok 3 - row 281 T3b (Q2): a delete whose job refuses on host B; the retry refuses grant-revoke-failed and revokes only B and Gitea
|
||||
---
|
||||
duration_ms: 211.879543
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T3b: B cleared by hand with hosts.revoke; the next delete starts a job for Gitea and the leftover line only
|
||||
ok 4 - row 281 T3b: B cleared by hand with hosts.revoke; the next delete starts a job for Gitea and the leftover line only
|
||||
---
|
||||
duration_ms: 208.941116
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T3c (sage-2575 condition 4): a delete of an instance with no grant completes in one request
|
||||
ok 5 - row 281 T3c (sage-2575 condition 4): a delete of an instance with no grant completes in one request
|
||||
---
|
||||
duration_ms: 52.070752
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T4: host B unreachable in a fire: the job refuses, A stays revoked, B and Gitea untouched; a repeat completes
|
||||
ok 6 - row 281 T4: host B unreachable in a fire: the job refuses, A stays revoked, B and Gitea untouched; a repeat completes
|
||||
---
|
||||
duration_ms: 193.713805
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T4b (Q1): a line a manual hosts.revoke left on C is removed by the fire, with its close
|
||||
ok 7 - row 281 T4b (Q1): a line a manual hosts.revoke left on C is removed by the fire, with its close
|
||||
---
|
||||
duration_ms: 100.196392
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T4b (Q1): with C unreachable, the fire completes and names the line in grantsLeft
|
||||
ok 8 - row 281 T4b (Q1): with C unreachable, the fire completes and names the line in grantsLeft
|
||||
---
|
||||
duration_ms: 82.925658
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T5: Gitea's admin token can't be checked: the job refuses with the Gitea grant intact
|
||||
ok 9 - row 281 T5: Gitea's admin token can't be checked: the job refuses with the Gitea grant intact
|
||||
---
|
||||
duration_ms: 112.342135
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T5b (N1): a failed token DELETE refuses gitea-left; the repeat retries only this agent's entries
|
||||
ok 10 - row 281 T5b (N1): a failed token DELETE refuses gitea-left; the repeat retries only this agent's entries
|
||||
---
|
||||
duration_ms: 295.497967
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T6 (sage-2574): a host decision approved before the fire and run after it ends revoked, with nothing applied
|
||||
ok 11 - row 281 T6 (sage-2574): a host decision approved before the fire and run after it ends revoked, with nothing applied
|
||||
---
|
||||
duration_ms: 64.894992
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T6b (sage-2574): a Gitea decision approved before the fire and run after it ends revoked before any Gitea write
|
||||
ok 12 - row 281 T6b (sage-2574): a Gitea decision approved before the fire and run after it ends revoked before any Gitea write
|
||||
---
|
||||
duration_ms: 86.54008
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T6c: a host executor in flight aborts and ends revoked; a Gitea executor in flight is awaited and leaves no token
|
||||
ok 13 - row 281 T6c: a host executor in flight aborts and ends revoked; a Gitea executor in flight is awaited and leaves no token
|
||||
---
|
||||
duration_ms: 237.49431
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T6d (B1): undecided host and Gitea decisions are in the set, and approved after the fire both end revoked
|
||||
ok 14 - row 281 T6d (B1): undecided host and Gitea decisions are in the set, and approved after the fire both end revoked
|
||||
---
|
||||
duration_ms: 92.642809
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T6e (B1): a grant raise refuses instance-fired while firing and after the fire, goes through after a rehire, and refuses grant-revoke-running during a delete job
|
||||
ok 15 - row 281 T6e (B1): a grant raise refuses instance-fired while firing and after the fire, goes through after a rehire, and refuses grant-revoke-running during a delete job
|
||||
---
|
||||
duration_ms: 104.408759
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T7: an instance with no grant fires as today, synchronously, with the same events
|
||||
ok 16 - row 281 T7: an instance with no grant fires as today, synchronously, with the same events
|
||||
---
|
||||
duration_ms: 52.79141
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T9 (B3): one step G per agent; the manual verbs refuse while it runs, and sweep names it running
|
||||
ok 17 - row 281 T9 (B3): one step G per agent; the manual verbs refuse while it runs, and sweep names it running
|
||||
---
|
||||
duration_ms: 223.695847
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T10 (B2): the fire and the delete answer while their jobs are held, and the broker answers other verbs
|
||||
ok 18 - row 281 T10 (B2): the fire and the delete answer while their jobs are held, and the broker answers other verbs
|
||||
---
|
||||
duration_ms: 196.138967
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T11 (C1): a fire's job completes after the chief's run ends and processing halts
|
||||
ok 19 - row 281 T11 (C1): a fire's job completes after the chief's run ends and processing halts
|
||||
---
|
||||
duration_ms: 81.192633
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T12 (C1, N7): a step B refusal in the job is fire.failed, and the repeat runs B and C synchronously
|
||||
ok 20 - row 281 T12 (C1, N7): a step B refusal in the job is fire.failed, and the repeat runs B and C synchronously
|
||||
---
|
||||
duration_ms: 76.945309
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T13 (N4): a restart records each held job interrupted once, with one message each; an ended job gets none
|
||||
ok 21 - row 281 T13 (N4): a restart records each held job interrupted once, with one message each; an ended job gets none
|
||||
---
|
||||
duration_ms: 129.403455
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T14 (N1, sage-2653): a host removed under an undecided decision stops the fire on host-unknown; the human's no closes it, and the repeat fire has no job
|
||||
ok 22 - row 281 T14 (N1, sage-2653): a host removed under an undecided decision stops the fire on host-unknown; the human's no closes it, and the repeat fire has no job
|
||||
---
|
||||
duration_ms: 61.78992
|
||||
type: 'test'
|
||||
...
|
||||
1..22
|
||||
# tests 22
|
||||
# suites 0
|
||||
# pass 22
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 3217.339801
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/gitea-grant.test.mjs"]
|
||||
@@ -0,0 +1,304 @@
|
||||
TAP version 13
|
||||
# Subtest: versionAtLeast compares numbers and refuses a prerelease of 1.27.0
|
||||
ok 1 - versionAtLeast compares numbers and refuses a prerelease of 1.27.0
|
||||
---
|
||||
duration_ms: 1.237036
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G1: a raise that fails a check refuses and stores nothing
|
||||
ok 2 - X-G1: a raise that fails a check refuses and stores nothing
|
||||
---
|
||||
duration_ms: 62.068324
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G1: a creative role, a role without identity and a missing or due slot refuse at raise
|
||||
ok 3 - X-G1: a creative role, a role without identity and a missing or due slot refuse at raise
|
||||
---
|
||||
duration_ms: 180.218463
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G2: admin set refuses each failed check and writes nothing, then writes the slot once
|
||||
ok 4 - X-G2: admin set refuses each failed check and writes nothing, then writes the slot once
|
||||
---
|
||||
duration_ms: 143.52952
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G3 to X-G8: an approve makes the user, mints the token, forks, checks reach and writes the file, record and grant.applied
|
||||
ok 5 - X-G3 to X-G8: an approve makes the user, mints the token, forks, checks reach and writes the file, record and grant.applied
|
||||
---
|
||||
duration_ms: 102.221906
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G4: a user this stack did not make, an admin, a disabled user and a remade user each refuse
|
||||
ok 6 - X-G4: a user this stack did not make, an admin, a disabled user and a remade user each refuse
|
||||
---
|
||||
duration_ms: 306.504597
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G6 and X-G8: the user and mint steps are written before their calls, and each result after its call
|
||||
ok 7 - X-G6 and X-G8: the user and mint steps are written before their calls, and each result after its call
|
||||
---
|
||||
duration_ms: 100.565961
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G4: a fork by the seat user of another repository than the project refuses fork-foreign
|
||||
ok 8 - X-G4: a fork by the seat user of another repository than the project refuses fork-foreign
|
||||
---
|
||||
duration_ms: 79.418473
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G5: a failure after the mint deletes the token, unloads nothing it did not load and leaves no file
|
||||
ok 9 - X-G5: a failure after the mint deletes the token, unloads nothing it did not load and leaves no file
|
||||
---
|
||||
duration_ms: 124.149748
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G5: a token delete that fails is left at Gitea, shown by status and taken by sweep
|
||||
ok 10 - X-G5: a token delete that fails is left at Gitea, shown by status and taken by sweep
|
||||
---
|
||||
duration_ms: 128.702874
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G5: a mint that fails deletes by name, and a refusal at step 0 leaves the decision unspent
|
||||
ok 11 - X-G5: a mint that fails deletes by name, and a refusal at step 0 leaves the decision unspent
|
||||
---
|
||||
duration_ms: 145.353601
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G5: an agent held for an unknown token is refused at step 0 with no Gitea call
|
||||
ok 12 - X-G5: an agent held for an unknown token is refused at step 0 with no Gitea call
|
||||
---
|
||||
duration_ms: 65.829336
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G5 and X-G9 (step 7): a rotation whose old-token delete fails stays applied with the old id left
|
||||
ok 13 - X-G5 and X-G9 (step 7): a rotation whose old-token delete fails stays applied with the old id left
|
||||
---
|
||||
duration_ms: 170.790626
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G10: in a rotation the store file holds the new token before the old one is deleted
|
||||
ok 14 - X-G10: in a rotation the store file holds the new token before the old one is deleted
|
||||
---
|
||||
duration_ms: 145.852525
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G6: a rotation cut before the rename settles back at once, and the old token stays live
|
||||
ok 15 - X-G6: a rotation cut before the rename settles back at once, and the old token stays live
|
||||
---
|
||||
duration_ms: 167.483708
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G6: a rotation whose step 8 write fails is settle-pending, and a restart settles it forward
|
||||
ok 16 - X-G6: a rotation whose step 8 write fails is settle-pending, and a restart settles it forward
|
||||
---
|
||||
duration_ms: 178.569723
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G6: a restart settles an open rotation back when the file still holds the old token
|
||||
ok 17 - X-G6: a restart settles an open rotation back when the file still holds the old token
|
||||
---
|
||||
duration_ms: 134.9967
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G6: a restart settles an open rotation forward when the file holds the new token
|
||||
ok 18 - X-G6: a restart settles an open rotation forward when the file holds the new token
|
||||
---
|
||||
duration_ms: 113.009774
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G6: a 401 on the file token loses the grant: both tokens go, the record goes and memory unloads
|
||||
ok 19 - X-G6: a 401 on the file token loses the grant: both tokens go, the record goes and memory unloads
|
||||
---
|
||||
duration_ms: 136.104972
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G6: a 403, 404, 500, a hang and a dropped socket each leave the rotation settle-pending with nothing deleted
|
||||
ok 20 - X-G6: a 403, 404, 500, a hang and a dropped socket each leave the rotation settle-pending with nothing deleted
|
||||
---
|
||||
duration_ms: 996.868783
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G6: a file token no grant minted is held; the next restart says so again; a revoke clears it and takes both ids
|
||||
ok 21 - X-G6: a file token no grant minted is held; the next restart says so again; a revoke clears it and takes both ids
|
||||
---
|
||||
duration_ms: 155.766188
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: N9: a revoke of an open rotation, then a restart: no settle, no Gitea call and no message
|
||||
ok 22 - N9: a revoke of an open rotation, then a restart: no settle, no Gitea call and no message
|
||||
---
|
||||
duration_ms: 113.207925
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: N9: a 404 on a delete by id counts as done
|
||||
ok 23 - N9: a 404 on a delete by id counts as done
|
||||
---
|
||||
duration_ms: 128.801734
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G6: a restart undoes each step a killed child left, and spends an approved unspent decision
|
||||
ok 24 - X-G6: a restart undoes each step a killed child left, and spends an approved unspent decision
|
||||
---
|
||||
duration_ms: 416.149926
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G6: a restart with no admin slot leaves the user an orphan and the token left
|
||||
ok 25 - X-G6: a restart with no admin slot leaves the user an orphan and the token left
|
||||
---
|
||||
duration_ms: 53.694027
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G7: a change to the definition, identity, publish remotes or admin slot after the raise ends decision-mismatch
|
||||
ok 26 - X-G7: a change to the definition, identity, publish remotes or admin slot after the raise ends decision-mismatch
|
||||
---
|
||||
duration_ms: 140.801435
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G7 and X-G9: an admin rotate voids open decisions, and rotate --finish deletes what was left
|
||||
ok 27 - X-G7 and X-G9: an admin rotate voids open decisions, and rotate --finish deletes what was left
|
||||
---
|
||||
duration_ms: 123.822535
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G9: a rotate whose name is taken refuses and writes nothing; remove takes the slot away
|
||||
ok 28 - X-G9: a rotate whose name is taken refuses and writes nothing; remove takes the slot away
|
||||
---
|
||||
duration_ms: 73.422448
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G9: a slot past its rotate-by date refuses a run at step 0, leaving the decision unspent
|
||||
ok 29 - X-G9: a slot past its rotate-by date refuses a run at step 0, leaving the decision unspent
|
||||
---
|
||||
duration_ms: 50.180389
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G11: run refuses every caller but the human, an unapproved, a spent and a busy decision
|
||||
ok 30 - X-G11: run refuses every caller but the human, an unapproved, a spent and a busy decision
|
||||
---
|
||||
duration_ms: 105.874572
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: kill switch (plan :16): while halted the chief still reads grants.status, and an agent grants.revoke refuses
|
||||
ok 31 - kill switch (plan :16): while halted the chief still reads grants.status, and an agent grants.revoke refuses
|
||||
---
|
||||
duration_ms: 106.333602
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G11: a revoke while the executor runs aborts it and the grant ends revoked
|
||||
ok 32 - X-G11: a revoke while the executor runs aborts it and the grant ends revoked
|
||||
---
|
||||
duration_ms: 110.333063
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G11: a revoke unloads memory and removes the file before its Gitea delete
|
||||
ok 33 - X-G11: a revoke unloads memory and removes the file before its Gitea delete
|
||||
---
|
||||
duration_ms: 132.61075
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G11: a revoke during a rotation step 7 ends it revoked, and step 8 writes no record back
|
||||
ok 34 - X-G11: a revoke during a rotation step 7 ends it revoked, and step 8 writes no record back
|
||||
---
|
||||
duration_ms: 217.837803
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G11: a revoke while a sweep settles a rotation, forward or back, ends it revoked with no record
|
||||
ok 35 - X-G11: a revoke while a sweep settles a rotation, forward or back, ends it revoked with no record
|
||||
---
|
||||
duration_ms: 373.129907
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G11: a revoke during a settle whoami that finds a foreign token ends it revoked, not held
|
||||
ok 36 - X-G11: a revoke during a settle whoami that finds a foreign token ends it revoked, not held
|
||||
---
|
||||
duration_ms: 159.428511
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G11: a revoke during a settle whoami that gets a 401 ends it revoked, not lost
|
||||
ok 37 - X-G11: a revoke during a settle whoami that gets a 401 ends it revoked, not lost
|
||||
---
|
||||
duration_ms: 190.121277
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G12: a token that reaches wider than its forks fails with the repository named
|
||||
ok 38 - X-G12: a token that reaches wider than its forks fails with the repository named
|
||||
---
|
||||
duration_ms: 422.103379
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G12: reach is paged by X-Total-Count and a count that does not add up refuses
|
||||
ok 39 - X-G12: reach is paged by X-Total-Count and a count that does not add up refuses
|
||||
---
|
||||
duration_ms: 268.091756
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G13: an agent cannot record a grant event, and the trigger refuses one from any writer but the grant writer
|
||||
ok 40 - X-G13: an agent cannot record a grant event, and the trigger refuses one from any writer but the grant writer
|
||||
---
|
||||
duration_ms: 41.808143
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G14: credentials delete fires the user: tokens go, login is prohibited, and grant.revoke.closed records it
|
||||
ok 41 - X-G14: credentials delete fires the user: tokens go, login is prohibited, and grant.revoke.closed records it
|
||||
---
|
||||
duration_ms: 293.964549
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G14: a fire whose token delete or login PATCH fails lands it in serviceLeft
|
||||
ok 42 - X-G14: a fire whose token delete or login PATCH fails lands it in serviceLeft
|
||||
---
|
||||
duration_ms: 155.089131
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G14: a fire whose user is gone or remade skips the fire steps and says why
|
||||
ok 43 - X-G14: a fire whose user is gone or remade skips the fire steps and says why
|
||||
---
|
||||
duration_ms: 259.152973
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G14: a sweep retries a fire only for the user it fired: a remade or gone user is skipped and named
|
||||
ok 44 - X-G14: a sweep retries a fire only for the user it fired: a remade or gone user is skipped and named
|
||||
---
|
||||
duration_ms: 347.428274
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G14: a revoke Gitea cannot reach stays open, and a restart closes it
|
||||
ok 45 - X-G14: a revoke Gitea cannot reach stays open, and a restart closes it
|
||||
---
|
||||
duration_ms: 116.580427
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T8: a tester grants.revoke refuses tester-dev-only once bus.tester is off; the human revoke keeps its records and starts no job
|
||||
ok 46 - row 281 T8: a tester grants.revoke refuses tester-dev-only once bus.tester is off; the human revoke keeps its records and starts no job
|
||||
---
|
||||
duration_ms: 132.268866
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G15: look-alike commit steps outside the grant writer are ignored at start, by revoke and by status
|
||||
ok 47 - X-G15: look-alike commit steps outside the grant writer are ignored at start, by revoke and by status
|
||||
---
|
||||
duration_ms: 127.609667
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: X-G15: a look-alike spend under another kind with the grant writer pair is not an open grant
|
||||
ok 48 - X-G15: a look-alike spend under another kind with the grant writer pair is not an open grant
|
||||
---
|
||||
duration_ms: 43.046865
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: status lists the slot, users, grants and nothing secret, and every grants verb needs service gitea
|
||||
ok 49 - status lists the slot, users, grants and nothing secret, and every grants verb needs service gitea
|
||||
---
|
||||
duration_ms: 109.158689
|
||||
type: 'test'
|
||||
...
|
||||
1..49
|
||||
# tests 49
|
||||
# suites 0
|
||||
# pass 49
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 8542.307737
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/gitea-migration.test.mjs"]
|
||||
@@ -0,0 +1,40 @@
|
||||
TAP version 13
|
||||
# Subtest: 3j copy migrates to 3k: every row kept, and sqlite_master gains only the two tables and their keys
|
||||
ok 1 - 3j copy migrates to 3k: every row kept, and sqlite_master gains only the two tables and their keys
|
||||
---
|
||||
duration_ms: 81.838559
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a 3j→3k step that fails partway leaves the store at 3j with every row and the schema intact
|
||||
ok 2 - a 3j→3k step that fails partway leaves the store at 3j with every row and the schema intact
|
||||
---
|
||||
duration_ms: 89.482209
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the 3j engine refuses a migrated store, migrating or not, and leaves it as it was
|
||||
ok 3 - the 3j engine refuses a migrated store, migrating or not, and leaves it as it was
|
||||
---
|
||||
duration_ms: 82.697499
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: gitea_users: one user per business and agent, an id above 0, a 16-hex nonce and a real decision
|
||||
ok 4 - gitea_users: one user per business and agent, an id above 0, a 16-hex nonce and a real decision
|
||||
---
|
||||
duration_ms: 10.237684
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: gitea_grants: one grant per agent, a projects array, a token id above 0, and only for a recorded user
|
||||
ok 5 - gitea_grants: one grant per agent, a projects array, a token id above 0, and only for a recorded user
|
||||
---
|
||||
duration_ms: 11.403049
|
||||
type: 'test'
|
||||
...
|
||||
1..5
|
||||
# tests 5
|
||||
# suites 0
|
||||
# pass 5
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 356.386753
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/grant-executor.test.mjs"]
|
||||
@@ -0,0 +1,262 @@
|
||||
TAP version 13
|
||||
# Subtest: row 280: an occupied TCP port is attempted, refused, and retried with our sshd
|
||||
ok 1 - row 280: an occupied TCP port is attempted, refused, and retried with our sshd
|
||||
---
|
||||
duration_ms: 83.960769
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 280: every injected picker sample is unprivileged and outside the ephemeral range
|
||||
ok 2 - row 280: every injected picker sample is unprivileged and outside the ephemeral range
|
||||
---
|
||||
duration_ms: 0.361575
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G7: an Approve installs the tagged line, logs in with the new key, and writes the key file, record and grant.applied
|
||||
ok 3 - G7: an Approve installs the tagged line, logs in with the new key, and writes the key file, record and grant.applied
|
||||
---
|
||||
duration_ms: 657.627333
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G7: a commands change on a live grant updates the record in one transaction and keeps the key and line
|
||||
ok 4 - G7: a commands change on a live grant updates the record in one transaction and keeps the key and line
|
||||
---
|
||||
duration_ms: 531.338182
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G8: a failure at install or verify removes the line and leaves no record, key file or reference
|
||||
ok 5 - G8: a failure at install or verify removes the line and leaves no record, key file or reference
|
||||
---
|
||||
duration_ms: 1517.262253
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G8: a failed remove adds hostLineLeft and tells the human to sweep
|
||||
ok 6 - G8: a failed remove adds hostLineLeft and tells the human to sweep
|
||||
---
|
||||
duration_ms: 651.737964
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G8: a failure in step 5 before commit unlinks the key file, drops the reference and removes the line
|
||||
ok 7 - G8: a failure in step 5 before commit unlinks the key file, drops the reference and removes the line
|
||||
---
|
||||
duration_ms: 649.340641
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G8: a store fault in the commit transaction ends host-failed with no record, key file, reference or line
|
||||
ok 8 - G8: a store fault in the commit transaction ends host-failed with no record, key file, reference or line
|
||||
---
|
||||
duration_ms: 671.126429
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G8: a failed step 1 check spends the decision and runs nothing remote
|
||||
ok 9 - G8: a failed step 1 check spends the decision and runs nothing remote
|
||||
---
|
||||
duration_ms: 81.673932
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G9: a registry, definition or commands change between raise and Approve ends decision-mismatch before any remote step
|
||||
ok 10 - G9: a registry, definition or commands change between raise and Approve ends decision-mismatch before any remote step
|
||||
---
|
||||
duration_ms: 521.508803
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G9: an agent no longer a role or no longer declaring host ends with its code, spent
|
||||
ok 11 - G9: an agent no longer a role or no longer declaring host ends with its code, spent
|
||||
---
|
||||
duration_ms: 68.84932
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G10: a second start refuses decision-consumed, and an unresolved or agent-resolved decision not-authorized, writing nothing
|
||||
ok 12 - G10: a second start refuses decision-consumed, and an unresolved or agent-resolved decision not-authorized, writing nothing
|
||||
---
|
||||
duration_ms: 513.85868
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G15: no event, message or decision holds the private key
|
||||
ok 13 - G15: no event, message or decision holds the private key
|
||||
---
|
||||
duration_ms: 490.733182
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G23: a revoke during install ends grant.failed revoked with no key file, no grant and no line
|
||||
ok 14 - G23: a revoke during install ends grant.failed revoked with no key file, no grant and no line
|
||||
---
|
||||
duration_ms: 525.579468
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G23 (row 249): an add that writes after an abort's remove leaves hostLineLeft until the sweep
|
||||
ok 15 - G23 (row 249): an add that writes after an abort's remove leaves hostLineLeft until the sweep
|
||||
---
|
||||
duration_ms: 794.760968
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G23 (row 249): an add that writes after a timed-out install's remove leaves hostLineLeft until the sweep
|
||||
ok 16 - G23 (row 249): an add that writes after a timed-out install's remove leaves hostLineLeft until the sweep
|
||||
---
|
||||
duration_ms: 855.43114
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G23: a revoke recorded after the raise and before the start ends step 1 revoked, and a held slot ends host-busy
|
||||
ok 17 - G23: a revoke recorded after the raise and before the start ends step 1 revoked, and a held slot ends host-busy
|
||||
---
|
||||
duration_ms: 512.62141
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G24: names at 64 characters with . and _ give distinct tags of the fixed length
|
||||
ok 18 - G24: names at 64 characters with . and _ give distinct tags of the fixed length
|
||||
---
|
||||
duration_ms: 0.409892
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G11: a restart after install removes the line, then ends interrupted with the tag, holding the slot until then
|
||||
ok 19 - G11: a restart after install removes the line, then ends interrupted with the tag, holding the slot until then
|
||||
---
|
||||
duration_ms: 216.10008
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G11: a restart after a new key's commit, with the key file written, ends with no key file, record, reference or line
|
||||
ok 20 - G11: a restart after a new key's commit, with the key file written, ends with no key file, record, reference or line
|
||||
---
|
||||
duration_ms: 220.396391
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G11: a restart after a commands change's commit leaves the record as it was and asks nothing of the host
|
||||
ok 21 - G11: a restart after a commands change's commit leaves the record as it was and asks nothing of the host
|
||||
---
|
||||
duration_ms: 560.5996
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G11 (B2): a restart before step 1, spent or not yet spent, ends interrupted and nothing runs later
|
||||
ok 22 - G11 (B2): a restart before step 1, spent or not yet spent, ends interrupted and nothing runs later
|
||||
---
|
||||
duration_ms: 68.008875
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G11: a remote undo that fails ends interrupted with hostLineLeft and the sweep hint
|
||||
ok 23 - G11: a remote undo that fails ends interrupted with hostLineLeft and the sweep hint
|
||||
---
|
||||
duration_ms: 294.19336
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G11: a restart leaves a finished grant alone, and the reconcile adds nothing for it
|
||||
ok 24 - G11: a restart leaves a finished grant alone, and the reconcile adds nothing for it
|
||||
---
|
||||
duration_ms: 492.228554
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: N1 (G27): the start sweep unlinks host.<id> files with no record in loaded businesses only, and refuses a store dir that is not private
|
||||
ok 25 - N1 (G27): the start sweep unlinks host.<id> files with no record in loaded businesses only, and refuses a store dir that is not private
|
||||
---
|
||||
duration_ms: 6.558346
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G12: the human's hosts.revoke deletes the record, the key file, the reference and the line, with a closed marker
|
||||
ok 26 - G12: the human's hosts.revoke deletes the record, the key file, the reference and the line, with a closed marker
|
||||
---
|
||||
duration_ms: 637.696071
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G12 (N4): a revoke with no record still removes the computed tag's line, with granted false; bad args refuse
|
||||
ok 27 - G12 (N4): a revoke with no record still removes the computed tag's line, with granted false; bad args refuse
|
||||
---
|
||||
duration_ms: 217.392809
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G13: a revoke during install aborts the executor, which ends revoked, and the line goes
|
||||
ok 28 - G13: a revoke during install aborts the executor, which ends revoked, and the line goes
|
||||
---
|
||||
duration_ms: 560.229976
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G26: the human, the assistant and the tester revoke; the chief and a pm refuse; sweep is the human's or the tester's
|
||||
ok 29 - G26: the human, the assistant and the tester revoke; the chief and a pm refuse; sweep is the human's or the tester's
|
||||
---
|
||||
duration_ms: 508.929241
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T8: a tester hosts.revoke refuses tester-dev-only once bus.tester is off, and a human revoke writes no job records
|
||||
ok 30 - row 281 T8: a tester hosts.revoke refuses tester-dev-only once bus.tester is off, and a human revoke writes no job records
|
||||
---
|
||||
duration_ms: 641.807226
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G27: a restart after step 1 sweeps the key file and runs step 3 once the bus is up; status shows the revoke until then
|
||||
ok 31 - G27: a restart after step 1 sweeps the key file and runs step 3 once the bus is up; status shows the revoke until then
|
||||
---
|
||||
duration_ms: 659.52398
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G27: after step 2 with the host down, the restart closes the marker with hostLineLeft; a marker without a revoke id is not reopened
|
||||
ok 32 - G27: after step 2 with the host down, the restart closes the marker with hostLineLeft; a marker without a revoke id is not reopened
|
||||
---
|
||||
duration_ms: 936.59984
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G27: a key file a revoke could not unlink is reported left and goes at the next start
|
||||
ok 33 - G27: a key file a revoke could not unlink is reported left and goes at the next start
|
||||
---
|
||||
duration_ms: 632.639641
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G28: a commands change, then a revoke, then a restart leave no record, key, reference or line
|
||||
ok 34 - G28: a commands change, then a revoke, then a restart leave no record, key, reference or line
|
||||
---
|
||||
duration_ms: 653.467997
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G24 (B4): hosts.sweep removes only this business's recorded tags no live grant holds, and records what it left
|
||||
ok 35 - G24 (B4): hosts.sweep removes only this business's recorded tags no live grant holds, and records what it left
|
||||
---
|
||||
duration_ms: 962.241764
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G12: the local steps finish before the host step, so a host that hangs leaves the agent no access
|
||||
ok 36 - G12: the local steps finish before the host step, so a host that hangs leaves the agent no access
|
||||
---
|
||||
duration_ms: 714.365535
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G23 (X5): a revoke right after the spend reaches the executor's claim, so the grant ends revoked
|
||||
ok 37 - G23 (X5): a revoke right after the spend reaches the executor's claim, so the grant ends revoked
|
||||
---
|
||||
duration_ms: 207.206499
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G23 (X5): a revoke that lands as verify returns ends revoked with no record, key file or line
|
||||
ok 38 - G23 (X5): a revoke that lands as verify returns ends revoked with no record, key file or line
|
||||
---
|
||||
duration_ms: 664.698225
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G13: a revoke whose host remove fails still drops the record and key, and reports the line left for a sweep
|
||||
ok 39 - G13: a revoke whose host remove fails still drops the record and key, and reports the line left for a sweep
|
||||
---
|
||||
duration_ms: 653.766611
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: G22: enroll, check, grant, host.run, a commands change the next host.run uses, and a revoke that kills a run in flight
|
||||
ok 40 - G22: enroll, check, grant, host.run, a commands change the next host.run uses, and a revoke that kills a run in flight
|
||||
---
|
||||
duration_ms: 1172.54697
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: mos-1163: a grant whose agent became a creative role after the raise ends host-creative-role at step 1, spent, with nothing remote
|
||||
ok 41 - mos-1163: a grant whose agent became a creative role after the raise ends host-creative-role at step 1, spent, with nothing remote
|
||||
---
|
||||
duration_ms: 61.460666
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: sage-1908: once the agent of an applied grant is a creative role, host.run refuses host-creative-role, runs nothing remote and keeps the record
|
||||
ok 42 - sage-1908: once the agent of an applied grant is a creative role, host.run refuses host-creative-role, runs nothing remote and keeps the record
|
||||
---
|
||||
duration_ms: 510.214713
|
||||
type: 'test'
|
||||
...
|
||||
1..42
|
||||
# tests 42
|
||||
# suites 0
|
||||
# pass 42
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 21467.137575
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/grant-migration.test.mjs"]
|
||||
@@ -0,0 +1,46 @@
|
||||
TAP version 13
|
||||
# Subtest: 3i copy migrates to 3j: every row kept, and sqlite_master gains only the two tables, their keys and the guard
|
||||
ok 1 - 3i copy migrates to 3j: every row kept, and sqlite_master gains only the two tables, their keys and the guard
|
||||
---
|
||||
duration_ms: 73.964009
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: a 3i→3j step that fails partway leaves the store at 3i with every row and the schema intact
|
||||
ok 2 - a 3i→3j step that fails partway leaves the store at 3i with every row and the schema intact
|
||||
---
|
||||
duration_ms: 84.711984
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the 3i engine refuses a migrated store, migrating or not, and leaves it as it was
|
||||
ok 3 - the 3i engine refuses a migrated store, migrating or not, and leaves it as it was
|
||||
---
|
||||
duration_ms: 82.795225
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: A22b, sage-1703: a session-written grant.* row from before the step survives it, and the grant readers ignore it
|
||||
ok 4 - A22b, sage-1703: a session-written grant.* row from before the step survives it, and the grant readers ignore it
|
||||
---
|
||||
duration_ms: 69.813637
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the guard: a grant.* action or operation on action.allowed needs the (NULL, grant) actor
|
||||
ok 5 - the guard: a grant.* action or operation on action.allowed needs the (NULL, grant) actor
|
||||
---
|
||||
duration_ms: 13.398811
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: hosts: one record per business and host, a ready host has its installer and check, grants need the host
|
||||
ok 6 - hosts: one record per business and host, a ready host has its installer and check, grants need the host
|
||||
---
|
||||
duration_ms: 10.836824
|
||||
type: 'test'
|
||||
...
|
||||
1..6
|
||||
# tests 6
|
||||
# suites 0
|
||||
# pass 6
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 412.883239
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/lifecycle-revoke.test.mjs"]
|
||||
@@ -0,0 +1,59 @@
|
||||
TAP version 13
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# Subtest: T20 fire: a revoke that fails stops the fire with the file unchanged; one that succeeds revokes, keeps the directory and names the services outside the store
|
||||
ok 1 - T20 fire: a revoke that fails stops the fire with the file unchanged; one that succeeds revokes, keeps the directory and names the services outside the store
|
||||
---
|
||||
duration_ms: 91.565281
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T20 fire: an instance already delisted still has its tokens revoked and the file is left alone
|
||||
ok 2 - T20 fire: an instance already delisted still has its tokens revoked and the file is left alone
|
||||
---
|
||||
duration_ms: 49.803348
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T20 fire: with no entry in the running bus, a token on disk refuses and an empty store goes on
|
||||
ok 3 - T20 fire: with no entry in the running bus, a token on disk refuses and an empty store goes on
|
||||
---
|
||||
duration_ms: 52.945145
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T20 delete: a revoke that fails keeps the file; one that succeeds clears the store, deletes, and names the tracker bot
|
||||
ok 4 - T20 delete: a revoke that fails keeps the file; one that succeeds clears the store, deletes, and names the tracker bot
|
||||
---
|
||||
duration_ms: 67.222042
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T20 delete: with no entry in the running bus, a token file is cleared and the delete goes on; a file reference refuses
|
||||
ok 5 - T20 delete: with no entry in the running bus, a token file is cleared and the delete goes on; a file reference refuses
|
||||
---
|
||||
duration_ms: 55.353852
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T21 delete: a write between the raise and the take makes the delete refuse revision-conflict before it revokes anything
|
||||
ok 6 - T21 delete: a write between the raise and the take makes the delete refuse revision-conflict before it revokes anything
|
||||
---
|
||||
duration_ms: 55.857643
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T1 fire: a host.<id> or granted gitea file in the store refuses step B credential-revoke-failed, file unchanged
|
||||
ok 7 - row 281 T1 fire: a host.<id> or granted gitea file in the store refuses step B credential-revoke-failed, file unchanged
|
||||
---
|
||||
duration_ms: 52.390335
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T1 start: a host grant record whose key file is gone starts and reads not-issued
|
||||
ok 8 - row 281 T1 start: a host grant record whose key file is gone starts and reads not-issued
|
||||
---
|
||||
duration_ms: 49.199992
|
||||
type: 'test'
|
||||
...
|
||||
1..8
|
||||
# tests 8
|
||||
# suites 0
|
||||
# pass 8
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 581.917366
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/message-filter.test.mjs"]
|
||||
@@ -0,0 +1,46 @@
|
||||
TAP version 13
|
||||
# Subtest: trail on a hidden message id answers exactly as on an unknown id, for the owner, a reader and the tester
|
||||
ok 1 - trail on a hidden message id answers exactly as on an unknown id, for the owner, a reader and the tester
|
||||
---
|
||||
duration_ms: 23.582065
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: replies on a hidden message id answers exactly as on an unknown id, for the owner, a reader and the tester
|
||||
ok 2 - replies on a hidden message id answers exactly as on an unknown id, for the owner, a reader and the tester
|
||||
---
|
||||
duration_ms: 23.016106
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: trail on a decision keeps the decision and drops the user thread messages, their deliveries and their events
|
||||
ok 3 - trail on a decision keeps the decision and drops the user thread messages, their deliveries and their events
|
||||
---
|
||||
duration_ms: 27.394648
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: replies leaves out other users thread messages and still fills a page
|
||||
ok 4 - replies leaves out other users thread messages and still fills a page
|
||||
---
|
||||
duration_ms: 168.512501
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: messages in the business human and tester threads are not hidden (row 177 unchanged)
|
||||
ok 5 - messages in the business human and tester threads are not hidden (row 177 unchanged)
|
||||
---
|
||||
duration_ms: 31.043561
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: governance pin: the owner sees decisions, inbox entries, claims, tasks and project files, but not the user messages
|
||||
ok 6 - governance pin: the owner sees decisions, inbox entries, claims, tasks and project files, but not the user messages
|
||||
---
|
||||
duration_ms: 97.561497
|
||||
type: 'test'
|
||||
...
|
||||
1..6
|
||||
# tests 6
|
||||
# suites 0
|
||||
# pass 6
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 441.717371
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/name-migration.test.mjs"]
|
||||
@@ -0,0 +1,16 @@
|
||||
TAP version 13
|
||||
# Subtest: 3f copy migrates to 3g preserving every old column/row, with an empty instance_names and null to_name
|
||||
ok 1 - 3f copy migrates to 3g preserving every old column/row, with an empty instance_names and null to_name
|
||||
---
|
||||
duration_ms: 83.476176
|
||||
type: 'test'
|
||||
...
|
||||
1..1
|
||||
# tests 1
|
||||
# suites 0
|
||||
# pass 1
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 148.867035
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/schema.test.mjs"]
|
||||
@@ -0,0 +1,16 @@
|
||||
TAP version 13
|
||||
# Subtest: v3b prototype refusals, views and append-only mutations
|
||||
ok 1 - v3b prototype refusals, views and append-only mutations
|
||||
---
|
||||
duration_ms: 81.916017
|
||||
type: 'test'
|
||||
...
|
||||
1..1
|
||||
# tests 1
|
||||
# suites 0
|
||||
# pass 1
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 127.351705
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/sessions.test.mjs"]
|
||||
@@ -0,0 +1,52 @@
|
||||
TAP version 13
|
||||
# Subtest: T1 REQ-ROLE-2: two sessions of one thread keep their own history, delivery and replies
|
||||
ok 1 - T1 REQ-ROLE-2: two sessions of one thread keep their own history, delivery and replies
|
||||
---
|
||||
duration_ms: 40.706821
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T2 REQ-ROLE-2: one holder per session, generations count its claims, and a sibling session's message never reaches the other holder
|
||||
ok 2 - T2 REQ-ROLE-2: one holder per session, generations count its claims, and a sibling session's message never reaches the other holder
|
||||
---
|
||||
duration_ms: 31.91851
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T2 sage-2257: a released or revoked run's retired generation refuses its approval, delivery and read, and writes nothing
|
||||
ok 3 - T2 sage-2257: a released or revoked run's retired generation refuses its approval, delivery and read, and writes nothing
|
||||
---
|
||||
duration_ms: 42.685057
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: session.create is idempotent on its op, refuses a reused op or a taken name, and reaches only the owner's threads
|
||||
ok 4 - session.create is idempotent on its op, refuses a reused op or a taken name, and reaches only the owner's threads
|
||||
---
|
||||
duration_ms: 29.35201
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the 3l triggers keep sessions in their thread and session ids apart from thread ids
|
||||
ok 5 - the 3l triggers keep sessions in their thread and session ids apart from thread ids
|
||||
---
|
||||
duration_ms: 61.867285
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T7: a 3k store migrates to 3l, each thread's default session has the thread's id, and old rows keep their seqs
|
||||
ok 6 - T7: a 3k store migrates to 3l, each thread's default session has the thread's id, and old rows keep their seqs
|
||||
---
|
||||
duration_ms: 91.694237
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T7 D9: the 3k engine refuses a 3l store, migrating or not, and leaves it as it was
|
||||
ok 7 - T7 D9: the 3k engine refuses a 3l store, migrating or not, and leaves it as it was
|
||||
---
|
||||
duration_ms: 148.41378
|
||||
type: 'test'
|
||||
...
|
||||
1..7
|
||||
# tests 7
|
||||
# suites 0
|
||||
# pass 7
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 518.953205
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/spec-migration.test.mjs"]
|
||||
@@ -0,0 +1,16 @@
|
||||
TAP version 13
|
||||
# Subtest: 3e copy migrates through 3f to 3g preserving every old column/row and adding null spec citations
|
||||
ok 1 - 3e copy migrates through 3f to 3g preserving every old column/row and adding null spec citations
|
||||
---
|
||||
duration_ms: 85.093606
|
||||
type: 'test'
|
||||
...
|
||||
1..1
|
||||
# tests 1
|
||||
# suites 0
|
||||
# pass 1
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 149.197988
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/tester-writes.test.mjs"]
|
||||
@@ -0,0 +1,63 @@
|
||||
TAP version 13
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
# Subtest: row 175: TESTER_VERBS and the organization branch tester set are pinned
|
||||
ok 1 - row 175: TESTER_VERBS and the organization branch tester set are pinned
|
||||
---
|
||||
duration_ms: 1.224975
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 175: each of the six reads as the tester deep-equals the human read
|
||||
ok 2 - row 175: each of the six reads as the tester deep-equals the human read
|
||||
---
|
||||
duration_ms: 70.208706
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 175: W1-W3 as the tester land with receipt actor tester; the human still logs the human
|
||||
ok 3 - row 175: W1-W3 as the tester land with receipt actor tester; the human still logs the human
|
||||
---
|
||||
duration_ms: 71.053044
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 175: W2 as the tester refuses credentials, protected definitions, human, tester and bus.tester, and changes nothing
|
||||
ok 4 - row 175: W2 as the tester refuses credentials, protected definitions, human, tester and bus.tester, and changes nothing
|
||||
---
|
||||
duration_ms: 70.377914
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 175: the human-only actions refuse a tester tester-refused, and the file and store stay as they were
|
||||
ok 5 - row 175: the human-only actions refuse a tester tester-refused, and the file and store stay as they were
|
||||
---
|
||||
duration_ms: 64.353653
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 175: W4 as the tester writes by tester and keeps every name check
|
||||
ok 6 - row 175: W4 as the tester writes by tester and keeps every name check
|
||||
---
|
||||
duration_ms: 17.315774
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 175: W6 as the tester records created_by tester; the human records the human
|
||||
ok 7 - row 175: W6 as the tester records created_by tester; the human records the human
|
||||
---
|
||||
duration_ms: 12.393188
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 175: with bus.tester unset or not exactly true no tester binds, so no read or write runs
|
||||
ok 8 - row 175: with bus.tester unset or not exactly true no tester binds, so no read or write runs
|
||||
---
|
||||
duration_ms: 47.667854
|
||||
type: 'test'
|
||||
...
|
||||
1..8
|
||||
# tests 8
|
||||
# suites 0
|
||||
# pass 8
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 472.183847
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/thread-claims.test.mjs"]
|
||||
@@ -0,0 +1,46 @@
|
||||
TAP version 13
|
||||
# Subtest: T1: the human and the reader see a held thread claim; agents still lists the role only
|
||||
ok 1 - T1: the human and the reader see a held thread claim; agents still lists the role only
|
||||
---
|
||||
duration_ms: 27.73167
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T2: a released or revoked thread claim is not listed, though its thread has an earlier claim row
|
||||
ok 2 - T2: a released or revoked thread claim is not listed, though its thread has an earlier claim row
|
||||
---
|
||||
duration_ms: 22.109132
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T3: a role session refuses human-required and the tester refuses tester-refused
|
||||
ok 3 - T3: a role session refuses human-required and the tester refuses tester-refused
|
||||
---
|
||||
duration_ms: 20.683145
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T4: agents answers each session the same before and after a thread run claims
|
||||
ok 4 - T4: agents answers each session the same before and after a thread run claims
|
||||
---
|
||||
duration_ms: 20.849476
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T5: the result carries neither the thread name a user wrote nor a message body
|
||||
ok 5 - T5: the result carries neither the thread name a user wrote nor a message body
|
||||
---
|
||||
duration_ms: 21.572027
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: T6: two held sessions of one thread list as two rows, each its session's latest claim
|
||||
ok 6 - T6: two held sessions of one thread list as two rows, each its session's latest claim
|
||||
---
|
||||
duration_ms: 22.023845
|
||||
type: 'test'
|
||||
...
|
||||
1..6
|
||||
# tests 6
|
||||
# suites 0
|
||||
# pass 6
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 213.478425
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/thread-migration.test.mjs"]
|
||||
@@ -0,0 +1,28 @@
|
||||
TAP version 13
|
||||
# Subtest: REQ-THREAD-1 REQ-ORG-2: the 3d→3e migration adds the thread tables and leaves messages from before threads as written
|
||||
ok 1 - REQ-THREAD-1 REQ-ORG-2: the 3d→3e migration adds the thread tables and leaves messages from before threads as written
|
||||
---
|
||||
duration_ms: 93.461019
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-THREAD-1: a 3d bus with a changed schema is refused and keeps its version and tables
|
||||
ok 2 - REQ-THREAD-1: a 3d bus with a changed schema is refused and keeps its version and tables
|
||||
---
|
||||
duration_ms: 39.774352
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-THREAD-1: the offline command prints the kept-message counts before the ready line
|
||||
ok 3 - REQ-THREAD-1: the offline command prints the kept-message counts before the ready line
|
||||
---
|
||||
duration_ms: 112.069661
|
||||
type: 'test'
|
||||
...
|
||||
1..3
|
||||
# tests 3
|
||||
# suites 0
|
||||
# pass 3
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 313.065794
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/threads.test.mjs"]
|
||||
@@ -0,0 +1,112 @@
|
||||
TAP version 13
|
||||
# Subtest: REQ-ROLE-2 REQ-THREAD-1: one holder per thread, through the broker and the trigger
|
||||
ok 1 - REQ-ROLE-2 REQ-THREAD-1: one holder per thread, through the broker and the trigger
|
||||
---
|
||||
duration_ms: 35.368018
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-ROLE-2 REQ-THREAD-1: the 3e triggers refuse writes that skip the broker
|
||||
ok 2 - REQ-ROLE-2 REQ-THREAD-1: the 3e triggers refuse writes that skip the broker
|
||||
---
|
||||
duration_ms: 62.531658
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-MSG-1: a message to or from the assistant names its thread, or is refused
|
||||
ok 3 - REQ-MSG-1: a message to or from the assistant names its thread, or is refused
|
||||
---
|
||||
duration_ms: 30.552241
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-MSG-1: the chief of staff's reply comes back to the thread that sent the work
|
||||
ok 4 - REQ-MSG-1: the chief of staff's reply comes back to the thread that sent the work
|
||||
---
|
||||
duration_ms: 565.000553
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-MSG-1: a reply can't carry one thread instance's thread to another thread instance
|
||||
ok 5 - REQ-MSG-1: a reply can't carry one thread instance's thread to another thread instance
|
||||
---
|
||||
duration_ms: 21.500353
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-THREAD-1 REQ-USER-2: one thread's messages never reach another thread's holder
|
||||
ok 6 - REQ-THREAD-1 REQ-USER-2: one thread's messages never reach another thread's holder
|
||||
---
|
||||
duration_ms: 26.695901
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-LAUNCH-1: a message to a thread with no holder waits, and the next holder gets it
|
||||
ok 7 - REQ-LAUNCH-1: a message to a thread with no holder waits, and the next holder gets it
|
||||
---
|
||||
duration_ms: 27.432301
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-THREAD-2 REQ-LAUNCH-1: threadIdle releases only a thread with nothing waiting, and only for its holder
|
||||
ok 8 - REQ-THREAD-2 REQ-LAUNCH-1: threadIdle releases only a thread with nothing waiting, and only for its holder
|
||||
---
|
||||
duration_ms: 31.260651
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-THREAD-2 REQ-LAUNCH-1: a message delivered to a run that ended unread doesn't hold up the next holder
|
||||
ok 9 - REQ-THREAD-2 REQ-LAUNCH-1: a message delivered to a run that ended unread doesn't hold up the next holder
|
||||
---
|
||||
duration_ms: 26.185036
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-ROLE-2 REQ-THREAD-1 Q169: a role.revoke the human approved ends every thread run of the assistant
|
||||
ok 10 - REQ-ROLE-2 REQ-THREAD-1 Q169: a role.revoke the human approved ends every thread run of the assistant
|
||||
---
|
||||
duration_ms: 24.095062
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: Q169 REQ-USER-2: assistant.stop ends the human's own assistant thread runs, and only the human's
|
||||
ok 11 - Q169 REQ-USER-2: assistant.stop ends the human's own assistant thread runs, and only the human's
|
||||
---
|
||||
duration_ms: 36.251131
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-USER-2: the human verbs refuse another owner's thread
|
||||
ok 12 - REQ-USER-2: the human verbs refuse another owner's thread
|
||||
---
|
||||
duration_ms: 25.603294
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-THREAD-1: thread.create refuses when the business has no thread instance or more than one
|
||||
ok 13 - REQ-THREAD-1: thread.create refuses when the business has no thread instance or more than one
|
||||
---
|
||||
duration_ms: 20.346426
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-ORG-2: projects and threads are named once, and the repo names a business project
|
||||
ok 14 - REQ-ORG-2: projects and threads are named once, and the repo names a business project
|
||||
---
|
||||
duration_ms: 25.607994
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-THREAD-2: thread.messages returns the thread's history in pages and writes nothing
|
||||
ok 15 - REQ-THREAD-2: thread.messages returns the thread's history in pages and writes nothing
|
||||
---
|
||||
duration_ms: 78.720869
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: project.create refuses a repository name without its matching repo before any write
|
||||
ok 16 - project.create refuses a repository name without its matching repo before any write
|
||||
---
|
||||
duration_ms: 14.676439
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: project.create keeps unrelated names with and without a repository
|
||||
ok 17 - project.create keeps unrelated names with and without a repository
|
||||
---
|
||||
duration_ms: 10.228522
|
||||
type: 'test'
|
||||
...
|
||||
1..17
|
||||
# tests 17
|
||||
# suites 0
|
||||
# pass 17
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 1141.505018
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/bus/tests/usage-migration.test.mjs"]
|
||||
@@ -0,0 +1,16 @@
|
||||
TAP version 13
|
||||
# Subtest: REQ-LIMIT-4 3g copy migrates through 3h, 3i, 3j and 3k to 3l preserving every old column, row and sequence; new usage table is empty
|
||||
ok 1 - REQ-LIMIT-4 3g copy migrates through 3h, 3i, 3j and 3k to 3l preserving every old column, row and sequence; new usage table is empty
|
||||
---
|
||||
duration_ms: 85.600888
|
||||
type: 'test'
|
||||
...
|
||||
1..1
|
||||
# tests 1
|
||||
# suites 0
|
||||
# pass 1
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 151.46092
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "900", "node", "--test", "--test-reporter=tap", "packages/cli/tests/lifecycle.test.mjs"]
|
||||
@@ -0,0 +1,161 @@
|
||||
TAP version 13
|
||||
# Subtest: row 194 T2: the human's launch runs an unlisted instance and launch.by through the pm branch, and closes with the run
|
||||
ok 1 - row 194 T2: the human's launch runs an unlisted instance and launch.by through the pm branch, and closes with the run
|
||||
---
|
||||
duration_ms: 387.952455
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T2: a request past its 60 s never launches, and a refused check closes the request with its code
|
||||
ok 2 - row 194 T2: a request past its 60 s never launches, and a refused check closes the request with its code
|
||||
---
|
||||
duration_ms: 80.244644
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T3: a --no-launch host closes each request launches-disabled and starts nothing
|
||||
ok 3 - row 194 T3: a --no-launch host closes each request launches-disabled and starts nothing
|
||||
---
|
||||
duration_ms: 77.542422
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T3: a limit refusal closes the request with its code and the limit in the launch log
|
||||
ok 4 - row 194 T3: a limit refusal closes the request with its code and the limit in the launch log
|
||||
---
|
||||
duration_ms: 204.384901
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T4: terminate revokes and cancels at the verb, then the pass signals the run, which ends once
|
||||
ok 5 - row 194 T4: terminate revokes and cancels at the verb, then the pass signals the run, which ends once
|
||||
---
|
||||
duration_ms: 273.116636
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T5: regenerate ends the run in the registry and starts a new run on the same workspace
|
||||
ok 6 - row 194 T5: regenerate ends the run in the registry and starts a new run on the same workspace
|
||||
---
|
||||
duration_ms: 472.04789
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T5: a run that outlasts the request's mark closes the regenerate regenerate-timeout and starts nothing
|
||||
ok 7 - row 194 T5: a run that outlasts the request's mark closes the regenerate regenerate-timeout and starts nothing
|
||||
---
|
||||
duration_ms: 2750.446694
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 V5: delete retires the name, renames the workspace to .retired/I-<transaction> at 0700, and a retry renames after workspace-rename-failed
|
||||
ok 8 - row 194 V5: delete retires the name, renames the workspace to .retired/I-<transaction> at 0700, and a retry renames after workspace-rename-failed
|
||||
---
|
||||
duration_ms: 97.398807
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 V5: a delete with no workspace commits and closes with the transaction
|
||||
ok 9 - row 194 V5: a delete with no workspace commits and closes with the transaction
|
||||
---
|
||||
duration_ms: 85.452376
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 281 T10: the delete pass closes a granted instance's first request grants-revoking and the host channel stays up
|
||||
ok 10 - row 281 T10: the delete pass closes a granted instance's first request grants-revoking and the host channel stays up
|
||||
---
|
||||
duration_ms: 98.396833
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 D1.1 item 5: the CLI's launch, regenerate, terminate and delete end to end through the pass, and a closed refusal exits 3 with the request id
|
||||
ok 11 - row 194 D1.1 item 5: the CLI's launch, regenerate, terminate and delete end to end through the pass, and a closed refusal exits 3 with the request id
|
||||
---
|
||||
duration_ms: 567.881776
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T20: a store-only delete with a tracker bot closes naming the bot, and the CLI says to remove it in Vikunja
|
||||
ok 12 - row 194 T20: a store-only delete with a tracker bot closes naming the bot, and the CLI says to remove it in Vikunja
|
||||
---
|
||||
duration_ms: 99.557568
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T2a: a launch.revoke between the request and the pass closes it launch-revoked with no process; a done that fails once leaves the request taken and the next pass starts nothing
|
||||
ok 13 - row 194 T2a: a launch.revoke between the request and the pass closes it launch-revoked with no process; a done that fails once leaves the request taken and the next pass starts nothing
|
||||
---
|
||||
duration_ms: 216.950371
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T4: terminate signals a spawned run in the registry that the bus never bound, and not a run whose start time differs
|
||||
ok 14 - row 194 T4: terminate signals a spawned run in the registry that the bus never bound, and not a run whose start time differs
|
||||
---
|
||||
duration_ms: 384.655751
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T9a: fire signals its bound run and a spawned but unbound registry run; a SIGTERM-ignoring runner gets SIGKILL and lifecycle.end.killed, and one whose kill fails gets lifecycle.end.alive
|
||||
ok 15 - row 194 T9a: fire signals its bound run and a spawned but unbound registry run; a SIGTERM-ignoring runner gets SIGKILL and lifecycle.end.killed, and one whose kill fails gets lifecycle.end.alive
|
||||
---
|
||||
duration_ms: 1067.735579
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T9a: fire of a registry run with no runtime record reads lifecycle.end.alive with reason unknown, never killed
|
||||
ok 16 - row 194 T9a: fire of a registry run with no runtime record reads lifecycle.end.alive with reason unknown, never killed
|
||||
---
|
||||
duration_ms: 525.631573
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T9a: a runner whose identity changed before the SIGTERM gets no signal, and one whose identity changed between the SIGTERM and the SIGKILL gets no SIGKILL
|
||||
ok 17 - row 194 T9a: a runner whose identity changed before the SIGTERM gets no signal, and one whose identity changed between the SIGTERM and the SIGKILL gets no SIGKILL
|
||||
---
|
||||
duration_ms: 210.505397
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T9a: V3 terminate of a SIGTERM-ignoring runner sends no SIGKILL
|
||||
ok 18 - row 194 T9a: V3 terminate of a SIGTERM-ignoring runner sends no SIGKILL
|
||||
---
|
||||
duration_ms: 982.216716
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T9b: a halt during a fire's stop sends no second SIGTERM, keeps the fire's deadline, writes one stop receipt with reason fire and the request, and counts the run; a fire while halted refuses
|
||||
ok 19 - row 194 T9b: a halt during a fire's stop sends no second SIGTERM, keeps the fire's deadline, writes one stop receipt with reason fire and the request, and counts the run; a fire while halted refuses
|
||||
---
|
||||
duration_ms: 1690.42137
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T15: while halted the pass closes a launch and a regenerate processing-halted and runs no thread pass, terminate signals, and after a resume a launch starts
|
||||
ok 20 - row 194 T15: while halted the pass closes a launch and a regenerate processing-halted and runs no thread pass, terminate signals, and after a resume a launch starts
|
||||
---
|
||||
duration_ms: 277.574644
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 N6: a run spawned after a terminate's verb survives its pass, and the next terminate ends it
|
||||
ok 21 - row 194 N6: a run spawned after a terminate's verb survives its pass, and the next terminate ends it
|
||||
---
|
||||
duration_ms: 517.235834
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T6: a delete leaves the run evidence bytes unchanged, and the retired name refuses a create and a launch
|
||||
ok 22 - row 194 T6: a delete leaves the run evidence bytes unchanged, and the retired name refuses a create and a launch
|
||||
---
|
||||
duration_ms: 298.352196
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: row 194 T11: two stack roots with the same business id; a launch, a terminate and a delete in one leave the other byte-identical
|
||||
ok 23 - row 194 T11: two stack roots with the same business id; a launch, a terminate and a delete in one leave the other byte-identical
|
||||
---
|
||||
duration_ms: 360.459796
|
||||
type: 'test'
|
||||
...
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"rb800d18639ac","instance":"chief","turn":"52f92469-bdcc-4062-b60c-ea5f05f513a6","source":"@none","code":"baseline-unknown"}
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"rb800d18639ac","instance":"chief","turn":"b02ab9f7-2aa6-4c31-80ab-2716cbedfdda","source":"@none","code":"baseline-unknown"}
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"rb800d18639ac","instance":"chief","turn":"c9ef219d-3af5-4ccd-a612-62b3df700dbf","source":"@none","code":"baseline-unknown"}
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"rb800d18639ac","instance":"chief","turn":"9827408b-6a47-4671-bb47-611a17aa6e2e","source":"@none","code":"baseline-unknown"}
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"rb800d18639ac","instance":"chief","turn":"cd45f590-2a8c-498c-99c7-23b19358cfa1","source":"@none","code":"baseline-unknown"}
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"rb800d18639ac","instance":"chief","turn":"09e3ce2f-553e-419b-b437-8f0577401044","source":"@none","code":"baseline-unknown"}
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"rb800d18639ac","instance":"chief","turn":"eeb1210a-96af-4c5f-8b9d-f952048e0ab2","source":"@none","code":"baseline-unknown"}
|
||||
# Subtest: row 194 D3 item 5: the chief's session hires with its tool and launches its hire in the same session, then fires it
|
||||
ok 24 - row 194 D3 item 5: the chief's session hires with its tool and launches its hire in the same session, then fires it
|
||||
---
|
||||
duration_ms: 1337.408893
|
||||
type: 'test'
|
||||
...
|
||||
1..24
|
||||
# tests 24
|
||||
# suites 0
|
||||
# pass 24
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 13228.183722
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "900", "node", "--test", "--test-reporter=tap", "packages/cli/tests/stack-release.test.mjs"]
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "900", "node", "--test", "--test-reporter=tap", "packages/cli/tests/thread-cli.test.mjs"]
|
||||
@@ -0,0 +1,76 @@
|
||||
TAP version 13
|
||||
# Subtest: REQ-CLI-1 project create and list work on the bus record and refuse what the broker refuses
|
||||
ok 1 - REQ-CLI-1 project create and list work on the bus record and refuse what the broker refuses
|
||||
---
|
||||
duration_ms: 62.377749
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-CLI-1 thread create, list, open and read
|
||||
ok 2 - REQ-CLI-1 thread create, list, open and read
|
||||
---
|
||||
duration_ms: 51.588757
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-CLI-1 thread read pages through every message, oldest first
|
||||
ok 3 - REQ-CLI-1 thread read pages through every message, oldest first
|
||||
---
|
||||
duration_ms: 259.255194
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-CLI-1 the business needs exactly one threaded instance to create a thread
|
||||
ok 4 - REQ-CLI-1 the business needs exactly one threaded instance to create a thread
|
||||
---
|
||||
duration_ms: 25.937393
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-CLI-1 a thread is its id, an id prefix of 8 characters or more, or <project>/<name>; anything else is refused before any write
|
||||
ok 5 - REQ-CLI-1 a thread is its id, an id prefix of 8 characters or more, or <project>/<name>; anything else is refused before any write
|
||||
---
|
||||
duration_ms: 41.582366
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-CLI-2 REQ-THREAD-2 talk --thread sends to the thread and prints only the reply to it; the rest stays unread
|
||||
ok 6 - REQ-CLI-2 REQ-THREAD-2 talk --thread sends to the thread and prints only the reply to it; the rest stays unread
|
||||
---
|
||||
duration_ms: 30.979841
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-CLI-2 talk --thread --wait gives up with exit 1 and leaves the thread's messages unread
|
||||
ok 7 - REQ-CLI-2 talk --thread --wait gives up with exit 1 and leaves the thread's messages unread
|
||||
---
|
||||
duration_ms: 1030.531062
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-CLI-2 talk --thread --follow and follow --thread print and read only that thread's messages
|
||||
ok 8 - REQ-CLI-2 talk --thread --follow and follow --thread print and read only that thread's messages
|
||||
---
|
||||
duration_ms: 75.583468
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-CLI-2 plain talk to the assistant asks for a thread and exits 2 without a write
|
||||
ok 9 - REQ-CLI-2 plain talk to the assistant asks for a thread and exits 2 without a write
|
||||
---
|
||||
duration_ms: 18.870123
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-USER-2 a thread of another user is refused for talk, open, read and follow, and nothing is written
|
||||
ok 10 - REQ-USER-2 a thread of another user is refused for talk, open, read and follow, and nothing is written
|
||||
---
|
||||
duration_ms: 35.368799
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-CLI-1 the new verbs refuse inside an agent run, as every human verb does
|
||||
ok 11 - REQ-CLI-1 the new verbs refuse inside an agent run, as every human verb does
|
||||
---
|
||||
duration_ms: 10.342626
|
||||
type: 'test'
|
||||
...
|
||||
1..11
|
||||
# tests 11
|
||||
# suites 0
|
||||
# pass 11
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 1774.007884
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "900", "node", "--test", "--test-reporter=tap", "packages/cli/tests/thread-launch.test.mjs"]
|
||||
@@ -0,0 +1,90 @@
|
||||
TAP version 13
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"rb6ad1f5b21bb","instance":"assistant","turn":"0a2efbe4-6a2f-44e5-af9c-c6d60314afa6","source":"@none","code":"baseline-unknown"}
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"r0eb35d40b86a","instance":"assistant","turn":"a496b5ab-090e-493b-a03d-05c06bf5e50c","source":"@none","code":"baseline-unknown"}
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"re77ee664419c","instance":"assistant","turn":"9a0eefd5-9a2c-40d9-8c93-fff7383f7fcc","source":"@none","code":"baseline-unknown"}
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"r180c2c6ed593","instance":"assistant","turn":"a9aae14a-5e0c-42e8-90be-46e44fc65979","source":"@none","code":"baseline-unknown"}
|
||||
# Subtest: REQ-THREAD-2 REQ-LAUNCH-1 REQ-MSG-1 a thread message starts the thread's session, which stops when idle; its history survives the stop and a restart and no other thread sees it
|
||||
ok 1 - REQ-THREAD-2 REQ-LAUNCH-1 REQ-MSG-1 a thread message starts the thread's session, which stops when idle; its history survives the stop and a restart and no other thread sees it
|
||||
---
|
||||
duration_ms: 5830.838516
|
||||
type: 'test'
|
||||
...
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"r5ade9c5abb73","instance":"assistant","turn":"8c1459a9-e7f2-445a-b427-06157fa83852","source":"@none","code":"baseline-unknown"}
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"r5ede1873b667","instance":"assistant","turn":"6bde4bc4-f2d1-4765-92b0-c09b7f434390","source":"@none","code":"baseline-unknown"}
|
||||
# Subtest: REQ-THREAD-2 REQ-LAUNCH-1 a running thread counts against its model's limit and an idle-stopped one doesn't
|
||||
ok 2 - REQ-THREAD-2 REQ-LAUNCH-1 a running thread counts against its model's limit and an idle-stopped one doesn't
|
||||
---
|
||||
duration_ms: 1744.655482
|
||||
type: 'test'
|
||||
...
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"rbc96143c0955","instance":"assistant","turn":"1db7fc2f-d26b-4ed0-9813-f84604422fcb","source":"@none","code":"baseline-unknown"}
|
||||
# Subtest: REQ-THREAD-2 REQ-LAUNCH-1 a turn longer than the idle time isn't stopped, and the thread idles out after it
|
||||
ok 3 - REQ-THREAD-2 REQ-LAUNCH-1 a turn longer than the idle time isn't stopped, and the thread idles out after it
|
||||
---
|
||||
duration_ms: 4435.982598
|
||||
type: 'test'
|
||||
...
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"rdae872029c54","instance":"assistant","turn":"ab9209ff-ef36-44ad-9108-05e7f7af1f4d","source":"@none","code":"baseline-unknown"}
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"rdae872029c54","instance":"assistant","turn":"42586325-b659-4e4a-9a4d-1f39be95740e","source":"@none","code":"baseline-unknown"}
|
||||
# Subtest: REQ-THREAD-2 REQ-LAUNCH-1 a message sent after the idle snapshot keeps the session, which answers it
|
||||
ok 4 - REQ-THREAD-2 REQ-LAUNCH-1 a message sent after the idle snapshot keeps the session, which answers it
|
||||
---
|
||||
duration_ms: 2881.533996
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-ROLE-2 REQ-LAUNCH-1 a thread held by a run the launcher didn't start gets no second session
|
||||
ok 5 - REQ-ROLE-2 REQ-LAUNCH-1 a thread held by a run the launcher didn't start gets no second session
|
||||
---
|
||||
duration_ms: 76.274489
|
||||
type: 'test'
|
||||
...
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"ra70ea4a5dde4","instance":"assistant","turn":"0a70c13f-656d-4af6-b3f6-4e8f83378394","source":"@none","code":"baseline-unknown"}
|
||||
# Subtest: REQ-LAUNCH-1 a thread run's session file has no landing, even when landHolders names its instance
|
||||
ok 6 - REQ-LAUNCH-1 a thread run's session file has no landing, even when landHolders names its instance
|
||||
---
|
||||
duration_ms: 371.707935
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-LAUNCH-1 a run that ends without taking its thread's message isn't started again for that message
|
||||
ok 7 - REQ-LAUNCH-1 a run that ends without taking its thread's message isn't started again for that message
|
||||
---
|
||||
duration_ms: 228.026468
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-THREAD-2 REQ-LAUNCH-1 a thread id that isn't a safe segment, or a thread of a non-thread instance, launches nothing
|
||||
ok 8 - REQ-THREAD-2 REQ-LAUNCH-1 a thread id that isn't a safe segment, or a thread of a non-thread instance, launches nothing
|
||||
---
|
||||
duration_ms: 220.298182
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-THREAD-1 REQ-LAUNCH-1 the chief can't launch the assistant outside a thread
|
||||
ok 9 - REQ-THREAD-1 REQ-LAUNCH-1 the chief can't launch the assistant outside a thread
|
||||
---
|
||||
duration_ms: 75.436755
|
||||
type: 'test'
|
||||
...
|
||||
# limits: {"event":"limit-reached","business":"acme","check":"token-limit","export":"mayLaunch","subject":{"instance":"assistant","provider":"zai","model":"claude-sonnet-5-5","account":null},"path":["tokens","instances","assistant"],"limit":0,"count":0,"unknownTurns":0}
|
||||
# limits: {"event":"limit-reached","business":"acme","check":"token-limit","export":"mayLaunch","subject":{"instance":"assistant","provider":"zai","model":"claude-sonnet-5-5","account":null},"path":["tokens","instances","assistant"],"limit":0,"count":0,"unknownTurns":0}
|
||||
# Subtest: REQ-LIMIT-3 REQ-LIMIT-4 a thread start whose instance is at its token limit is refused, logged once with the limit and the count
|
||||
ok 10 - REQ-LIMIT-3 REQ-LIMIT-4 a thread start whose instance is at its token limit is refused, logged once with the limit and the count
|
||||
---
|
||||
duration_ms: 189.035089
|
||||
type: 'test'
|
||||
...
|
||||
# usage: {"event":"usage-unknown","business":"acme","run":"r8fe913dfa11a","instance":"assistant","turn":"9c6d8e34-432d-4e98-9c84-597e9851c30a","source":"@none","code":"baseline-unknown"}
|
||||
# limits: {"event":"limit-reached","business":"acme","check":"token-limit","export":"mustStop","subject":{"instance":"assistant","provider":"zai","model":"claude-sonnet-5-5","account":null},"path":["tokens","instances","assistant"],"limit":0,"count":0,"unknownTurns":1}
|
||||
# Subtest: REQ-LIMIT-4 a thread run at its token limit stops at the end of its turn: the reply lands, and the end record names the limit
|
||||
ok 11 - REQ-LIMIT-4 a thread run at its token limit stops at the end of its turn: the reply lands, and the end record names the limit
|
||||
---
|
||||
duration_ms: 337.389868
|
||||
type: 'test'
|
||||
...
|
||||
1..11
|
||||
# tests 11
|
||||
# suites 0
|
||||
# pass 11
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 16519.142963
|
||||
@@ -0,0 +1 @@
|
||||
["timeout", "-k", "10", "300", "node", "--test", "--test-reporter=tap", "packages/webui/tests/chat.test.mjs"]
|
||||
@@ -0,0 +1,148 @@
|
||||
TAP version 13
|
||||
# Subtest: chat reads map only fixed verbs, strict forward paging and pure GET
|
||||
ok 1 - chat reads map only fixed verbs, strict forward paging and pure GET
|
||||
---
|
||||
duration_ms: 22.861132
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat refuses malformed and repeated query/id values before transport
|
||||
ok 2 - chat refuses malformed and repeated query/id values before transport
|
||||
---
|
||||
duration_ms: 4.841651
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat project.create: one verified write, fixed identity/class and private log
|
||||
ok 3 - chat project.create: one verified write, fixed identity/class and private log
|
||||
---
|
||||
duration_ms: 2.794084
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat project.create: each existing Console write fence makes zero bus calls
|
||||
ok 4 - chat project.create: each existing Console write fence makes zero bus calls
|
||||
---
|
||||
duration_ms: 6.764949
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat project.create: refusal or lost/malformed receipt never retries or invents success
|
||||
ok 5 - chat project.create: refusal or lost/malformed receipt never retries or invents success
|
||||
---
|
||||
duration_ms: 3.587143
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat thread.create: one verified write, fixed identity/class and private log
|
||||
ok 6 - chat thread.create: one verified write, fixed identity/class and private log
|
||||
---
|
||||
duration_ms: 1.174827
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat thread.create: each existing Console write fence makes zero bus calls
|
||||
ok 7 - chat thread.create: each existing Console write fence makes zero bus calls
|
||||
---
|
||||
duration_ms: 5.516326
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat thread.create: refusal or lost/malformed receipt never retries or invents success
|
||||
ok 8 - chat thread.create: refusal or lost/malformed receipt never retries or invents success
|
||||
---
|
||||
duration_ms: 3.939116
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat thread.send: one verified write, fixed identity/class and private log
|
||||
ok 9 - chat thread.send: one verified write, fixed identity/class and private log
|
||||
---
|
||||
duration_ms: 1.108563
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat thread.send: each existing Console write fence makes zero bus calls
|
||||
ok 10 - chat thread.send: each existing Console write fence makes zero bus calls
|
||||
---
|
||||
duration_ms: 4.964503
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat thread.send: refusal or lost/malformed receipt never retries or invents success
|
||||
ok 11 - chat thread.send: refusal or lost/malformed receipt never retries or invents success
|
||||
---
|
||||
duration_ms: 2.823311
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat thread.open: one verified write, fixed identity/class and private log
|
||||
ok 12 - chat thread.open: one verified write, fixed identity/class and private log
|
||||
---
|
||||
duration_ms: 0.975249
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat thread.open: each existing Console write fence makes zero bus calls
|
||||
ok 13 - chat thread.open: each existing Console write fence makes zero bus calls
|
||||
---
|
||||
duration_ms: 6.197542
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat thread.open: refusal or lost/malformed receipt never retries or invents success
|
||||
ok 14 - chat thread.open: refusal or lost/malformed receipt never retries or invents success
|
||||
---
|
||||
duration_ms: 4.447509
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat createThread receipt requires an instance even when its id is valid
|
||||
ok 15 - chat createThread receipt requires an instance even when its id is valid
|
||||
---
|
||||
duration_ms: 2.034364
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat write receipts expose only the fields belonging to their operation
|
||||
ok 16 - chat write receipts expose only the fields belonging to their operation
|
||||
---
|
||||
duration_ms: 3.200614
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat validates names, body, project and strict empty open payload
|
||||
ok 17 - chat validates names, body, project and strict empty open payload
|
||||
---
|
||||
duration_ms: 3.333389
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat read failures redact ownership and refuse invalid transport arrays
|
||||
ok 18 - chat read failures redact ownership and refuse invalid transport arrays
|
||||
---
|
||||
duration_ms: 3.34412
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: REQ-USER-2 real broker: owned catalog, create/name/filter, isolated history and 403/404 without mutations
|
||||
ok 19 - REQ-USER-2 real broker: owned catalog, create/name/filter, isolated history and 403/404 without mutations
|
||||
---
|
||||
duration_ms: 79.076193
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat repeats every POST boundary even when called behind an admitted request
|
||||
ok 20 - chat repeats every POST boundary even when called behind an admitted request
|
||||
---
|
||||
duration_ms: 0.885504
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: configured Console process injects chat through its existing human transport
|
||||
ok 21 - configured Console process injects chat through its existing human transport
|
||||
---
|
||||
duration_ms: 125.514296
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: chat assets, GET purity, method and unknown-route refusals are explicit
|
||||
ok 22 - chat assets, GET purity, method and unknown-route refusals are explicit
|
||||
---
|
||||
duration_ms: 11.747057
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: the chat seam names the transport it is given: the human one and the tester one both pass, anything else is a TypeError
|
||||
ok 23 - the chat seam names the transport it is given: the human one and the tester one both pass, anything else is a TypeError
|
||||
---
|
||||
duration_ms: 0.438052
|
||||
type: 'test'
|
||||
...
|
||||
1..23
|
||||
# tests 23
|
||||
# suites 0
|
||||
# pass 23
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 418.941921
|
||||
@@ -0,0 +1,385 @@
|
||||
{
|
||||
"grant": "sage-2709",
|
||||
"head": "0604d91fcfc1949810cd5321aea6ec43e9b74b4b",
|
||||
"manifest": "573c51cf72f2398532a6ea768536f04e3c1681997cb8b9a6f14a8aef884870ae",
|
||||
"steps": [
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 99.281,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/01.log",
|
||||
"file": "packages/cli/tests/case1-accept.test.mjs",
|
||||
"counts": {
|
||||
"tests": 34,
|
||||
"pass": 34,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 66.418,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/02.log",
|
||||
"file": "packages/cli/tests/case2-unit.test.mjs",
|
||||
"counts": {
|
||||
"tests": 43,
|
||||
"pass": 43,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.415,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/03.log",
|
||||
"file": "packages/bus/tests/account-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 3,
|
||||
"pass": 3,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 2.168,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/04.log",
|
||||
"file": "packages/bus/tests/chief-of-staff.test.mjs",
|
||||
"counts": {
|
||||
"tests": 42,
|
||||
"pass": 42,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.565,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/05.log",
|
||||
"file": "packages/bus/tests/comment-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 5,
|
||||
"pass": 5,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.415,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/06.log",
|
||||
"file": "packages/bus/tests/end-launch.test.mjs",
|
||||
"counts": {
|
||||
"tests": 7,
|
||||
"pass": 7,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 3.271,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/07.log",
|
||||
"file": "packages/bus/tests/fire-revokes-grants.test.mjs",
|
||||
"counts": {
|
||||
"tests": 22,
|
||||
"pass": 22,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 8.634,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/08.log",
|
||||
"file": "packages/bus/tests/gitea-grant.test.mjs",
|
||||
"counts": {
|
||||
"tests": 49,
|
||||
"pass": 49,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.415,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/09.log",
|
||||
"file": "packages/bus/tests/gitea-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 5,
|
||||
"pass": 5,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 21.562,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/10.log",
|
||||
"file": "packages/bus/tests/grant-executor.test.mjs",
|
||||
"counts": {
|
||||
"tests": 42,
|
||||
"pass": 42,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.465,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/11.log",
|
||||
"file": "packages/bus/tests/grant-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 6,
|
||||
"pass": 6,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.665,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/12.log",
|
||||
"file": "packages/bus/tests/lifecycle-revoke.test.mjs",
|
||||
"counts": {
|
||||
"tests": 8,
|
||||
"pass": 8,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.515,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/13.log",
|
||||
"file": "packages/bus/tests/message-filter.test.mjs",
|
||||
"counts": {
|
||||
"tests": 6,
|
||||
"pass": 6,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.214,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/14.log",
|
||||
"file": "packages/bus/tests/name-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 1,
|
||||
"pass": 1,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.214,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/15.log",
|
||||
"file": "packages/bus/tests/schema.test.mjs",
|
||||
"counts": {
|
||||
"tests": 1,
|
||||
"pass": 1,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.615,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/16.log",
|
||||
"file": "packages/bus/tests/sessions.test.mjs",
|
||||
"counts": {
|
||||
"tests": 7,
|
||||
"pass": 7,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.214,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/17.log",
|
||||
"file": "packages/bus/tests/spec-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 1,
|
||||
"pass": 1,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.565,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/18.log",
|
||||
"file": "packages/bus/tests/tester-writes.test.mjs",
|
||||
"counts": {
|
||||
"tests": 8,
|
||||
"pass": 8,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.264,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/19.log",
|
||||
"file": "packages/bus/tests/thread-claims.test.mjs",
|
||||
"counts": {
|
||||
"tests": 6,
|
||||
"pass": 6,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.365,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/20.log",
|
||||
"file": "packages/bus/tests/thread-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 3,
|
||||
"pass": 3,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 1.216,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/21.log",
|
||||
"file": "packages/bus/tests/threads.test.mjs",
|
||||
"counts": {
|
||||
"tests": 17,
|
||||
"pass": 17,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.214,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/22.log",
|
||||
"file": "packages/bus/tests/usage-migration.test.mjs",
|
||||
"counts": {
|
||||
"tests": 1,
|
||||
"pass": 1,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 13.296,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/23.log",
|
||||
"file": "packages/cli/tests/lifecycle.test.mjs",
|
||||
"counts": {
|
||||
"tests": 24,
|
||||
"pass": 24,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 583.453,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/24.log",
|
||||
"file": "packages/cli/tests/stack-release.test.mjs",
|
||||
"counts": {
|
||||
"tests": 218,
|
||||
"pass": 218,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 1.876,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/25.log",
|
||||
"file": "packages/cli/tests/thread-cli.test.mjs",
|
||||
"counts": {
|
||||
"tests": 11,
|
||||
"pass": 11,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 16.603,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/26.log",
|
||||
"file": "packages/cli/tests/thread-launch.test.mjs",
|
||||
"counts": {
|
||||
"tests": 11,
|
||||
"pass": 11,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"timeout": false,
|
||||
"seconds": 0.515,
|
||||
"log": "agents/gander/work/queue-253/run3-focused/files/27.log",
|
||||
"file": "packages/webui/tests/chat.test.mjs",
|
||||
"counts": {
|
||||
"tests": 23,
|
||||
"pass": 23,
|
||||
"fail": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"named_skips": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
PID PPID STARTED COMMAND
|
||||
2469277 2469078 Thu Oct 22 14:20:57 2026 node-MainThread
|
||||
2469278 2469078 Thu Oct 22 14:20:57 2026 npm exec @model
|
||||
2469279 2469078 Thu Oct 22 14:20:57 2026 npm exec chrome
|
||||
2469292 2469078 Thu Oct 22 14:20:57 2026 npm exec @playw
|
||||
2469478 2469278 Thu Oct 22 14:20:58 2026 node-MainThread
|
||||
2469485 2469292 Thu Oct 22 14:20:58 2026 node-MainThread
|
||||
2469518 2469279 Thu Oct 22 14:20:59 2026 chrome-devtools
|
||||
2469601 2469518 Thu Oct 22 14:20:59 2026 node-MainThread
|
||||
2470486 2469078 Thu Oct 22 14:21:07 2026 codex-code-mode
|
||||
@@ -0,0 +1 @@
|
||||
2026-10-22T14:30:03Z
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"timestamp": "2026-10-22T14:44:57.963446+00:00",
|
||||
"count": 9,
|
||||
"remaining": [
|
||||
{
|
||||
"pid": 2469277,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.360000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469278,
|
||||
"comm": "npm exec @model",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.370000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469279,
|
||||
"comm": "npm exec chrome",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.370000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469292,
|
||||
"comm": "npm exec @playw",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.380000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469478,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:58.770000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469485,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:58.800000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469518,
|
||||
"comm": "chrome-devtools",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:59.100000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469601,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:59.440000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2470486,
|
||||
"comm": "codex-code-mode",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:21:07.580000+00:00"
|
||||
}
|
||||
],
|
||||
"excluded_preexisting_infrastructure": [],
|
||||
"note": "Read-only /proc cwd sweep, including deleted cwd under this run TMPDIR. Own ancestry excluded. Only nine known MCP/npm/code-mode infrastructure PIDs with pre-run start ticks are excluded. No signalling."
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"timestamp": "2026-10-22T14:45:17.148081+00:00",
|
||||
"count": 0,
|
||||
"remaining": [],
|
||||
"excluded_preexisting_infrastructure": [
|
||||
{
|
||||
"pid": 2469277,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.360000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469278,
|
||||
"comm": "npm exec @model",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.370000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469279,
|
||||
"comm": "npm exec chrome",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.370000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469292,
|
||||
"comm": "npm exec @playw",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:57.380000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469478,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:58.770000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469485,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:58.800000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469518,
|
||||
"comm": "chrome-devtools",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:59.100000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2469601,
|
||||
"comm": "node-MainThread",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:20:59.440000+00:00"
|
||||
},
|
||||
{
|
||||
"pid": 2470486,
|
||||
"comm": "codex-code-mode",
|
||||
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
|
||||
"started_utc": "2026-10-22T14:21:07.580000+00:00"
|
||||
}
|
||||
],
|
||||
"note": "Read-only /proc cwd sweep, including deleted cwd under this run TMPDIR. Own ancestry excluded. Only known MCP/npm/code-mode infrastructure PIDs with pre-run start ticks are excluded. No signalling."
|
||||
}
|
||||
@@ -32,6 +32,7 @@ def main():
|
||||
args.out.mkdir(parents=True,exist_ok=True)
|
||||
result=dict(grant=args.grant,head=subprocess.check_output(['git','rev-parse','HEAD'],cwd=driver.REPO,text=True).strip(),manifest=hashlib.sha256((HERE/'MANIFEST.sha256').read_bytes()).hexdigest(),steps=[])
|
||||
print(json.dumps({k:result[k] for k in ['grant','head','manifest']}),flush=True)
|
||||
print(json.dumps(dict(authority='sage-2709',file_limits=limits)),flush=True)
|
||||
(args.out/'results.json').write_text(json.dumps(result,indent=2)+'\n')
|
||||
for index,name in enumerate(files):
|
||||
limit=limits[name]
|
||||
|
||||
Reference in new issue
Block a user