row329: finish pinned model proxy P1 and record final gate (#1827)
This commit is contained in:
1 parent
94cde633e2
commit
c65fb34ee6
314 files changed
+11847
-4
No files matched your search
@@ -5576,3 +5576,5 @@ claim. Receipts and limitations in agents/lena/work/queue-296/BUILD.md and run-r
|
||||
2026-10-24T19:44:50Z | Sage | Row 328 (#1826, Vikunja 622, old T9 timer race, Fethry on Codex, Boyd and Dewey) LANDED 8bb5b3c73, pushed 19:40Z 10-24. Before: refactor at 5e77cdd09. After: Fethry's 8 commits cherry-picked onto 5e77cdd09 (same patches); T9's second start passes intervalMs 2147483647 (mos-1594), test-only. Under 8x50 concurrent loops M1 (50 ms back) gave 26 expected failures and the fix 400/400. Boyd APPROVE c31621 rev 4002, Dewey APPROVE c31622 rev 4003. Sage gate GREEN 19:38:54Z on 8bb5b3c73 itself, no drift: bus 1011/0, business 283/0, harness 176/0, cli 990/0 plus the allowed FED R7 skip, webui 458/0, every scripts/test-*.sh rc 0 (Dewey N1). Manifest 1e010468. #1826 closed c31625, Vikunja 622 done (comment 1071), note rev 4019, done rev 4020. Not re-pinned.
|
||||
|
||||
2026-10-24 — Magica row329 P1 (#1827, Vikunja237): beginning pinned model-proxy fetch/init/client/unit build at 7fe32d722, under mos-1600/1601. Acceptance uses only fresh temp roots and unshare -rn; live instance and host proxy excluded. Evidence agents/magica/work/queue-329/BUILD.md.
|
||||
|
||||
2026-10-24 — Magica row329 P1 (#1827): final builder checks green: model-proxy61/61, bus1018/1018, CLI999pass+1listed federation skip, pinned-copy10/10, config55/55 and federation runner1/1. Final unit-config fix verified by two new tests and all direct CLI readers. Original F7 red, Mos1604 diagnostic and Mos1605 unchanged rerun are preserved; cause unknown, landing independent. Q250 drops the panel forward; PIN8.0.42/panel1.26.7 unchanged. Evidence agents/magica/work/queue-329/BUILD.md.
|
||||
@@ -263,3 +263,308 @@ Mos-1602: the /proxy/ panel forward remains pending P4/Jason's subdomain decisio
|
||||
outside the required sandbox; it is no assertion of a working Console panel.
|
||||
No CORS loosening, unsandboxed forward or panel JS on the Console origin ships.
|
||||
The actual sandbox-negative assertions/evidence are unchanged.
|
||||
|
||||
Rebase WIP9edf45003 now has parent8bb5b3c73. Only BUILD-LOG.md and
|
||||
SESSIONS.md conflicted; resolution preserved the entire8bb5 base byte prefix
|
||||
and appended only the row329 additions from the WIP. No old test changed.
|
||||
Offline root npm ci rc0 (128 packages), webui rc0 (2 packages), both nice19.
|
||||
All seven new-file development runs passed on first execution: five model-proxy
|
||||
package files, new bus file and new CLI file. No new-test placement needed.
|
||||
First-run logs preserved under development-gate/ before the whole gate.
|
||||
|
||||
Review packet is REVIEW.md. Builder does not create a Console forward; P4's stop
|
||||
condition remains an explicit pending dependency under mos-1602. Boyd independently
|
||||
re-measures release bytes; Dewey reviews the landing candidate. No review request
|
||||
or protected branch action has been performed here.
|
||||
|
||||
Whole gate progress: model-proxy59/59 and bus1018/1018, no failures, skips or
|
||||
cancellations. CLI still running; no full-gate completion claim yet. New-only
|
||||
first execution totaled76/76 across package59, bus8 and CLI9.
|
||||
No product source has changed after these runs began.
|
||||
|
||||
One narrow acceptance follow-up is prepared for after the gate: directly verify
|
||||
valid, empty-list and revoked /v1/messages through the stand-in (previous probes
|
||||
measured auth on /v1/models and ClaudeCode timeouts), and exercise the P1
|
||||
management client against the pinned binary's real v8 GET/PUT responses. It uses
|
||||
the same fresh unshare wrapper in api-only mode, no browser or external upstream.
|
||||
This resolves endpoint coverage without repeating the original sandbox evidence.
|
||||
|
||||
## First whole-gate result: STOP on old-test red
|
||||
|
||||
At19:49:13Z the serialized gate exited1. No rerun and no old test/source edit.
|
||||
Sage notified magica-0023 and the slot returned. Sage-4245 holds the gate pending
|
||||
Mos under mos-1592. The prepared api-only acceptance follow-up has not run.
|
||||
|
||||
Completed gate files:
|
||||
- model-proxy whole:5 files,59 tests/pass,0fail/skip/cancel.
|
||||
- bus whole:115 files,1018 tests/pass,0fail/skip/cancel (includes row328's
|
||||
library-credential.test.mjs6/6 and new model-proxy.test.mjs8/8).
|
||||
- CLI partial:5 files,124 tests,123pass,1fail,0skip/cancel. access-boot4/4,
|
||||
access34/34, app30/30, boot-status3/3, case1-accept52pass/1fail.
|
||||
- Remaining CLI, webui pinned-copy, test-config.sh and federation acceptance
|
||||
were not run. No full-gate green claim or final candidate manifest.
|
||||
|
||||
Old test packages/cli/tests/case1-accept.test.mjs:503 failed at assertion507:
|
||||
`row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes
|
||||
talk's error`. ERR_ASSERTION, expected["F3"], actual["F3","F7"].
|
||||
The test duration was2140.091658ms; the whole file252577.471202ms, driver252.61s.
|
||||
Command: node --test <worktree>/packages/cli/tests/case1-accept.test.mjs,
|
||||
under timeout-k10/1800; launch nice19; TMPDIR/mnt/storage/scratch/tmp/oEntjx.
|
||||
Whole-file log: gate/cli-case1-accept.test.txt.
|
||||
SHA256:6c528c893f55f259d7bfef319814ed0dd6f8b5437c2e9fdf4966b33b834e8f50.
|
||||
Driver receipt: gate-progress.txt and gate/runs.jsonl, rc1.
|
||||
|
||||
### Requested exact F7 diagnostic is unavailable
|
||||
|
||||
Sage-4245 requested the exact `F7 pm-live FAIL` line to distinguish the branch.
|
||||
It is not in the preserved Node log. The old test's assertion507 deepEqual has
|
||||
no r.out diagnostic argument. run():213-227 holds the acceptance stdout only
|
||||
in its returned in-memory object, not a file; host():158 uses tmp(t), whose
|
||||
helpers.mjs:18-21 t.after deletes its entire fixture. case1-accept.sh removes
|
||||
its WORK/capture files on EXIT too. The failed test process has ended.
|
||||
No exact F7 line can be recovered from retained evidence. Sage notified
|
||||
magica-0024. I will not invent its text, infer a timeout or rerun to obtain it.
|
||||
|
||||
### Static trace only
|
||||
|
||||
- case1-accept.sh:546-556 F7_JS reads the scratch business's launch.by,
|
||||
spawnSyncs the scratch copy's mosaic with launches/list/--json, parses stdout
|
||||
and checks exactly one live launch for the same business.
|
||||
- The fixture's copy mosaic is a fake shell at case1-accept.test.mjs:129-140;
|
||||
its launches branch cats HC/launches.json. The fixture populates exactly one
|
||||
live pm and one dead pm at192-196; F3's sentonly fault changes talk-mode only.
|
||||
- check_f7():557-563 runs through legacy_run pm-list10/12s and maps either a
|
||||
nonzero capture status or a non-ok stdout line to F7. Missing r.out prevents
|
||||
distinguishing which branch this run took. Duration alone is not diagnosis.
|
||||
- No row329 model-proxy, sidecar or copy-closure code is imported on this fake
|
||||
F7 path. git diff against8bb5b3c73 is empty for this old test, its helpers and
|
||||
scripts/case1-accept.sh. No assertion was changed or loosened.
|
||||
|
||||
Current local WIP tip9edf45003 is the rebased draft, not a gate-approved build.
|
||||
No push/review move occurred. Product source remained fixed through the run;
|
||||
subsequent changes are acceptance follow-up preparation and these plain-text
|
||||
receipts only. Hold until Sage passes Mos's ruling and any renewed CLEAR.
|
||||
|
||||
## Mos-1604 scratch-only diagnostic (sage-4248)
|
||||
Approved diagnostic only; it contributes no gate credit. A separate detached
|
||||
worktree of9edf45003 was created at /mnt/storage/scratch/tmp/sV85VX/checkout.
|
||||
It ran its own offline npm ci --ignore-scripts --no-audit --no-fund at root
|
||||
and packages/webui, both rc0, nice19; no canonical npm/rm and no linked dependency
|
||||
directories. Every run used its own shell mktemp-d /mnt/storage/scratch/tmp/XXXXXX
|
||||
TMPDIR, absolute nice19, and timeout-k10 (1800s per test-file run).
|
||||
The original case1-accept.test.mjs was not edited. Its copy was at the same
|
||||
packages/cli/tests depth, with the sole change at507:
|
||||
|
||||
```diff
|
||||
- assert.deepEqual(failed(r), ["F3"]);
|
||||
+ assert.deepEqual(failed(r), ["F3"], r.out);
|
||||
```
|
||||
Original source SHA256:685cf69c741540240c5b414e1907e624cbc59656541316f178d377472fad34a2.
|
||||
Copy SHA256:608a423713d5803430c3f8735622a83d7e359a88e40d899b78c065ab1466e930.
|
||||
Tracked git diff stayed empty; the only untracked checkout file was that copy.
|
||||
Exact focused pattern:
|
||||
|
||||
```text
|
||||
^row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes talk's error$
|
||||
```
|
||||
All20 focused runs passed1/1 with0fail/skip/cancel. Since none failed, all3
|
||||
whole copied-file runs were performed: each53/53,0fail/skip/cancel. Total179
|
||||
diagnostic tests passed. All23 test runs had rc0 and launch nice19. No failure
|
||||
event and no F7 pm-live FAIL line occurred; no full-r.out failure block existed
|
||||
to preserve. The original gate red remains recorded and unexplained by these
|
||||
non-reproducing diagnostics; no timing/cause inference or shape/assertion fix.
|
||||
UTC window:2026-10-24T19:56:21.256Z to2026-10-24T20:10:18.444Z.
|
||||
Sampled start/end1-minute load range1.52..3.93. Every run has start/end UTC/load
|
||||
in the table below and complete plain-text logs/JSON receipts in:
|
||||
/mnt/storage/scratch/tmp/sV85VX/results.
|
||||
The driver would record failure UTC/load at each not-ok event and retain the
|
||||
full multiline r.out assertion message; none occurred.
|
||||
| Run | UTC start | UTC end | load1 start/end | Pass/fail/skip/cancel | rc |
|
||||
|---|---|---|---|---|---|
|
||||
| focused-01 | 2026-10-24T19:56:21.256+00:00 | 2026-10-24T19:56:25.232+00:00 | 1.52/1.64 | 1/0/0/0 | 0 |
|
||||
| focused-02 | 2026-10-24T19:56:25.234+00:00 | 2026-10-24T19:56:29.173+00:00 | 1.64/1.64 | 1/0/0/0 | 0 |
|
||||
| focused-03 | 2026-10-24T19:56:29.175+00:00 | 2026-10-24T19:56:33.132+00:00 | 1.64/1.67 | 1/0/0/0 | 0 |
|
||||
| focused-04 | 2026-10-24T19:56:33.133+00:00 | 2026-10-24T19:56:37.147+00:00 | 1.67/1.86 | 1/0/0/0 | 0 |
|
||||
| focused-05 | 2026-10-24T19:56:37.148+00:00 | 2026-10-24T19:56:41.129+00:00 | 1.86/1.87 | 1/0/0/0 | 0 |
|
||||
| focused-06 | 2026-10-24T19:56:41.130+00:00 | 2026-10-24T19:56:45.286+00:00 | 1.87/2.04 | 1/0/0/0 | 0 |
|
||||
| focused-07 | 2026-10-24T19:56:45.287+00:00 | 2026-10-24T19:56:49.285+00:00 | 2.04/2.04 | 1/0/0/0 | 0 |
|
||||
| focused-08 | 2026-10-24T19:56:49.286+00:00 | 2026-10-24T19:56:53.374+00:00 | 2.04/2.44 | 1/0/0/0 | 0 |
|
||||
| focused-09 | 2026-10-24T19:56:53.376+00:00 | 2026-10-24T19:56:57.441+00:00 | 2.44/2.72 | 1/0/0/0 | 0 |
|
||||
| focused-10 | 2026-10-24T19:56:57.442+00:00 | 2026-10-24T19:57:01.904+00:00 | 2.72/3.07 | 1/0/0/0 | 0 |
|
||||
| focused-11 | 2026-10-24T19:57:01.906+00:00 | 2026-10-24T19:57:06.072+00:00 | 3.07/3.54 | 1/0/0/0 | 0 |
|
||||
| focused-12 | 2026-10-24T19:57:06.074+00:00 | 2026-10-24T19:57:10.220+00:00 | 3.54/3.66 | 1/0/0/0 | 0 |
|
||||
| focused-13 | 2026-10-24T19:57:10.221+00:00 | 2026-10-24T19:57:14.351+00:00 | 3.66/3.66 | 1/0/0/0 | 0 |
|
||||
| focused-14 | 2026-10-24T19:57:14.353+00:00 | 2026-10-24T19:57:18.752+00:00 | 3.66/3.93 | 1/0/0/0 | 0 |
|
||||
| focused-15 | 2026-10-24T19:57:18.753+00:00 | 2026-10-24T19:57:23.015+00:00 | 3.93/3.93 | 1/0/0/0 | 0 |
|
||||
| focused-16 | 2026-10-24T19:57:23.017+00:00 | 2026-10-24T19:57:26.932+00:00 | 3.93/3.70 | 1/0/0/0 | 0 |
|
||||
| focused-17 | 2026-10-24T19:57:26.934+00:00 | 2026-10-24T19:57:30.809+00:00 | 3.70/3.72 | 1/0/0/0 | 0 |
|
||||
| focused-18 | 2026-10-24T19:57:30.811+00:00 | 2026-10-24T19:57:34.661+00:00 | 3.72/3.50 | 1/0/0/0 | 0 |
|
||||
| focused-19 | 2026-10-24T19:57:34.663+00:00 | 2026-10-24T19:57:38.617+00:00 | 3.50/3.50 | 1/0/0/0 | 0 |
|
||||
| focused-20 | 2026-10-24T19:57:38.618+00:00 | 2026-10-24T19:57:42.546+00:00 | 3.50/3.30 | 1/0/0/0 | 0 |
|
||||
| whole-01 | 2026-10-24T19:57:42.548+00:00 | 2026-10-24T20:01:56.880+00:00 | 3.30/3.50 | 53/0/0/0 | 0 |
|
||||
| whole-02 | 2026-10-24T20:01:56.882+00:00 | 2026-10-24T20:06:13.814+00:00 | 3.50/3.23 | 53/0/0/0 | 0 |
|
||||
| whole-03 | 2026-10-24T20:06:13.816+00:00 | 2026-10-24T20:10:18.444+00:00 | 3.23/2.63 | 53/0/0/0 | 0 |
|
||||
|
||||
Whole-file seconds:254.333,256.932,244.628.
|
||||
All25 command logs (including2 npm setups) were rehashed against runs.jsonl;
|
||||
all matched. The scratch checkout was removed after completion; only external
|
||||
plain-text evidence remains under /mnt/storage/scratch/tmp/sV85VX.
|
||||
Evidence manifest /mnt/storage/scratch/tmp/sV85VX/diagnostic-files.sha256
|
||||
SHA256:fcb72f317e7d56e1ada0ee6ebb7bf435c1dd033c958cf9463930c62c2e61537b.
|
||||
No diagnostic copy, old-test edit or instrumentation was added to row329.
|
||||
Only this BUILD.md result receipt changes in the row329 repository for this
|
||||
diagnostic. Vikunja625 is Mos's separate follow-up, not a row329 change.
|
||||
|
||||
Diagnostic slot returned to Sage. Builder gate remains paused pending Mos's
|
||||
ruling on an unchanged rerun; no gate resumed, commit, push or queue move.
|
||||
|
||||
## One unchanged gate rerun authorized (mos-1605 / sage-4250)
|
||||
|
||||
Sage-4250 CLEAR at20:12:20Z authorizes one unchanged whole-file rerun of the
|
||||
original packages/cli/tests/case1-accept.test.mjs. Its SHA256 remains
|
||||
685cf69c741540240c5b414e1907e624cbc59656541316f178d377472fad34a2,
|
||||
byte-identical to8bb5b3c73. On pass, resume the rest of CLI, webui pinned-copy,
|
||||
config and federation. On any red, stop before further rerun and report load.
|
||||
No product or old-test change. F7 cause stays unknown; Vikunja625 is separate.
|
||||
No diagnostic result counts toward the gate and landing must pass independently.
|
||||
|
||||
Runner resume-mos1605.py preserves the first red log, gives the one allowed
|
||||
rerun its own filename, and records UTC/load at each observed failure event plus
|
||||
one-second load samples. Each invocation gets a fresh shell-created short
|
||||
TMPDIR, absolute nice19, timeout-k10, offline npm environment and the same
|
||||
MOSAIC_REQUIRE_EDITOR_BUILD=1 as the initial gate. Earlier completed package,
|
||||
bus and first four CLI files are not rerun. No further command follows a red.
|
||||
|
||||
## Final unit-rendering fix and remaining reader gate
|
||||
|
||||
The approved mos-1605 original-file rerun passed53/53 in242.3s; the remaining
|
||||
planned CLI, pinned-copy, config and federation commands completed rc0. This
|
||||
records a successful continuation, not a first-run green or an explanation of
|
||||
F7. The original red and23-run diagnostic remain above; landing is independent.
|
||||
|
||||
Static P1 review found that the configured default proxy unit bound an explicit
|
||||
MOSAIC_CONFIG but the default bus unit omitted it. Two additions to row329's new
|
||||
config-unit.test.mjs reproduced the mismatch and unsafe-unit-path acceptance:
|
||||
13pass/2expected-new-test-fail (unit-custom-config-red.txt). The fix is solely
|
||||
bus-service.sh's proxy-configured/default-instance branch: validate that selected
|
||||
config path can be carried by systemd and explicitly bind the bus to the same
|
||||
file. No-proxy rendering retains its historical output. No old assertion changed.
|
||||
|
||||
After fix: whole model-proxy61/61, whole CLI stack-instances24/24 and
|
||||
stack-copy18/18, whole webui pinned-copy10/10. Source never changed during an
|
||||
active whole-file run. Sage notified magica-0026 and the prior slot returned.
|
||||
|
||||
Sage-4251 CLEAR now requires the remaining five direct bus-service readers on
|
||||
this final tree: host, stack-release-external, stack-release, stack-upgrade and
|
||||
verbs, all whole files. stack-release-fixture is their helper. Sage found no
|
||||
bus-service SHA256 pin. No product change is planned during this gate. Each
|
||||
reader uses fresh shell mktemp TMPDIR, absolute nice19, timeout-k10; a red stops
|
||||
before any rerun and is sent to Sage. FINAL-COUNTS mapping will point at these
|
||||
final-tree receipts when complete.
|
||||
|
||||
## Narrow API acceptance follow-up (after planned gate)
|
||||
|
||||
Command: acceptance.sh <download-root> api-only. Fresh unshare-rn scratch root,
|
||||
nice19, rc0; no test slot used and no external request. It exercised the actual
|
||||
P1 ManagementClient against the pinned binary's v8 API, then valid/wrong/revoked
|
||||
and empty-list Messages requests through the stand-in. Full plain text:
|
||||
|
||||
```text
|
||||
P1 isolated acceptance root /mnt/storage/scratch/tmp/KXZOfD nice 19
|
||||
binary sha256 74661f8cf949977870231359e8bf4344e07946766a673c08fa25a3e5f72fc95e
|
||||
P1 client receipt {"call":"GET /v8/management/config/access/api-keys","status":200,"keyIds":["48eead3cdecf"]}
|
||||
P1 client real API GET count 1
|
||||
P1 client receipt {"call":"PUT /v8/management/config/access/api-keys","status":200,"keyIds":["48eead3cdecf"]}
|
||||
P1 client real API PUT {"ok":true}
|
||||
pinned panel served 200 8c9c6b7d3fb311e6aad5d06e1993e53a2d28389e640448a1bc6304ed20b057b5
|
||||
pinned login flags -claude-login | -codex-login | -no-browser
|
||||
wrong/missing key models wrong {"status":401,"body":"{\"error\":\"Invalid API key\"}"}
|
||||
wrong/missing key models missing {"status":401,"body":"{\"error\":\"Missing API key\"}"}
|
||||
models local 200 upstream delta 0 body length 1739
|
||||
valid messages {"status":200,"body":"{\"id\":\"msg_p1\",\"type\":\"message\",\"role\":\"assistant\",\"model\":\"claude-sonnet-5-5\",\"content\":[{\"type\":\"text\",\"text\":\"hello\"}],\"stop_reason\":\"end_turn\",\"usage\":{\"input_tokens\":1,\"output_tokens\":1}}"} upstream delta 1
|
||||
wrong messages {"status":401,"body":"{\"error\":\"Invalid API key\"}"}
|
||||
initial key list {"status":200,"body":"[\"p1-client\"]"}
|
||||
set empty {"status":200,"body":"{\"config-version\":8,\"status\":\"ok\"}"}
|
||||
empty list settled {"elapsedMs":105,"statuses":[401,200],"body":"[models]"}
|
||||
empty list missing key status 200
|
||||
empty list missing key messages {"status":200,"body":"{\"id\":\"msg_p1\",\"type\":\"message\",\"role\":\"assistant\",\"model\":\"claude-sonnet-5-5\",\"content\":[{\"type\":\"text\",\"text\":\"hello\"}],\"stop_reason\":\"end_turn\",\"usage\":{\"input_tokens\":1,\"output_tokens\":1}}"}
|
||||
restore list {"status":200,"body":"{\"config-version\":8,\"status\":\"ok\"}"}
|
||||
restored list settled wrong key {"elapsedMs":104,"statuses":[200,401],"body":"{\"error\":\"Invalid API key\"}"}
|
||||
revoke client {"status":200,"body":"{\"config-version\":8,\"status\":\"ok\"}"}
|
||||
revoked key settled {"elapsedMs":2,"statuses":[401],"body":"{\"error\":\"Invalid API key\"}"}
|
||||
revoked key models {"status":401,"body":"{\"error\":\"Invalid API key\"}"}
|
||||
revoked messages {"status":401,"body":"{\"error\":\"Invalid API key\"}"}
|
||||
per-key model object attempt {"status":422,"body":"{\"error\":\"invalid_config\",\"message\":\"parse config payload: yaml: unmarshal errors:\\n line 12: cannot unmarshal !!map into string\"}"}
|
||||
final restored list settled {"elapsedMs":2,"statuses":[401],"body":"{\"error\":\"Invalid API key\"}"}
|
||||
v8 key list {"status":200,"body":"[\"p1-client\"]"}
|
||||
oauth start anthropic {"status":200,"body":"{\"state\":\"208bd2a002a312d996f6c5a416ecc311\",\"status\":\"ok\",\"url\":\"https://claude.ai/oauth/authorize?client_id=9d1c250a-e61b-44d9-88ed-5944d1962f5e\\u0026code=true\\u0026code_challenge=BsWT1fuo1kBcP-EySiawhlK-cfN2B62ta6VKP8qvaIU\\u0026code_challenge_method=S256\\u0026redirect_uri=http%3A%2F%2Flocalhost%3A54545%2Fcallback\\u0026response_type=code\\u0026scope=user%3Aprofile+user%3Ainference+user%3Asessions%3Aclaude_code+user%3Amcp_servers+user%3Afile_upload\\u0026state=208bd2a002a312d996f6c5a416ecc311\"}"}
|
||||
oauth start codex {"status":200,"body":"{\"state\":\"fffb20861e7b44a1d70c45a2de1f9b8c\",\"status\":\"ok\",\"url\":\"https://auth.openai.com/oauth/authorize?client_id=app_EMoamEEZ73f0CkXaXp7hrann\\u0026code_challenge=Swdf4fq2oLSpl2K6CQJYbeHw7aC50nby_h0l-O52kqc\\u0026code_challenge_method=S256\\u0026codex_cli_simplified_flow=true\\u0026id_token_add_organizations=true\\u0026prompt=login\\u0026redirect_uri=http%3A%2F%2Flocalhost%3A1455%2Fauth%2Fcallback\\u0026response_type=code\\u0026scope=openid+email+profile+offline_access\\u0026state=fffb20861e7b44a1d70c45a2de1f9b8c\"}"}
|
||||
acceptance probes complete
|
||||
```
|
||||
|
||||
Valid Messages returned200 with exactly one stand-in upstream call; wrong and
|
||||
revoked Messages returned401 with the same flat error body. With an empty list,
|
||||
a no-key Messages request returned200. P1 client GET/PUT returned200 and receipts
|
||||
contained key IDs only. The measured update lag varies by request/run; no stronger
|
||||
instant-enforcement claim is made. The prior105ms observation remains on P2.
|
||||
|
||||
## Scope amendment Q250 / mos-1606 (sage-4253)
|
||||
|
||||
Jason's Q46/Q47 decision replaces the upstream panel forward with the Console's
|
||||
own proxy page (P4 brief docs/plans/2026-10-24_proxy-page-brief.md at696ea3a3a).
|
||||
P1's two panel acceptance bullets and callback-through-/proxy/ question are no
|
||||
longer required. All previously measured results above remain as recorded;
|
||||
no new panel/sandbox/forward work is added. The pinned rows brief blobfd4325c0
|
||||
is unchanged, as are packages/model-proxy/PIN and src/fetch.mjs.
|
||||
|
||||
Still required and already measured on pinned CLIProxyAPI8.0.42:
|
||||
Claude OAuth start redirect_uri=http://localhost:54545/callback.
|
||||
Codex OAuth start redirect_uri=http://localhost:1455/auth/callback.
|
||||
These returned URLs were recorded without following an external OAuth URL;
|
||||
completion is not claimed. Sent to Sage magica-0027 for the native P4 page.
|
||||
Historical fallback login commands remain recorded, not executed. Current README
|
||||
and review packet reflect Q250; no Console code or management routes ship in P1.
|
||||
|
||||
## Final builder verification and review candidate
|
||||
|
||||
All five final reader files per sage-4251 passed on the final source tree.
|
||||
post-unit-fix-cli-host.test: {'tests': 43, 'pass': 43, 'fail': 0, 'skipped': 0, 'cancelled': 0}, rc0/nice19, 12.262s.
|
||||
post-unit-fix-cli-stack-release-external.test: {'tests': 25, 'pass': 25, 'fail': 0, 'skipped': 0, 'cancelled': 0}, rc0/nice19, 83.766s.
|
||||
post-unit-fix-cli-stack-release.test: {'tests': 224, 'pass': 224, 'fail': 0, 'skipped': 0, 'cancelled': 0}, rc0/nice19, 723.448s.
|
||||
post-unit-fix-cli-stack-upgrade.test: {'tests': 21, 'pass': 21, 'fail': 0, 'skipped': 0, 'cancelled': 0}, rc0/nice19, 97.612s.
|
||||
post-unit-fix-cli-verbs.test: {'tests': 9, 'pass': 9, 'fail': 0, 'skipped': 0, 'cancelled': 0}, rc0/nice19, 3.587s.
|
||||
|
||||
Final per-file mapping is gate/FINAL-COUNTS.json; summary:
|
||||
|
||||
```text
|
||||
model-proxy: 5files 61tests 61pass 0fail 0skip 0cancel
|
||||
bus: 115files 1018tests 1018pass 0fail 0skip 0cancel
|
||||
cli: 69files 1000tests 999pass 0fail 1skip 0cancel
|
||||
webui pinned-copy:10/10; config:55/55; federation runner:1/1 no skip.
|
||||
CLI listed skip: packages/cli/tests/federation-acceptance.test.mjs, FED R7 scratch two-instance acceptance; covered by scripts/test-federation-acceptance.sh.
|
||||
Initial old red and scratch diagnostic are preserved, not included in final pass totals.
|
||||
One unchanged original rerun authorized by mos-1605 passed53/53; final unit-reader checks per sage-4251 all pass.
|
||||
Sage landing gate must independently be green (mos-1583).
|
||||
```
|
||||
|
||||
The CLI skip is the listed FED R7 wrapper at
|
||||
packages/cli/tests/federation-acceptance.test.mjs, test name
|
||||
"FED R7 scratch two-instance acceptance", runner scripts/test-federation-acceptance.sh.
|
||||
That runner passed1/1 with0skips in this gate and verified cleanup. No other skip.
|
||||
|
||||
The original first red, diagnostic, unchanged rerun and final-unit-reader gate
|
||||
are distinct facts. F7 cause remains unknown; Vikunja625 is separate. No old
|
||||
test file/assertion was changed; landing must independently go green.
|
||||
|
||||
Additional read-only acceptance corroboration: the made-up acceptance root
|
||||
3mOycq/auth/logs/main.log contains14 HTTP401 POST /v1/messages?beta=true receipts
|
||||
during the two45s ClaudeCode attempts (7 per attempt by timestamp). Only those
|
||||
status/path lines are retained in claude-401-receipts.txt, with no headers/bodies.
|
||||
Thus the client did reach the proxy and retried while producing no output until
|
||||
the timeout. The reason for that behavior/body-shape hypothesis remains unproven.
|
||||
|
||||
Manifest MANIFEST.sha256 covers every changed regular file against8bb5b3c73
|
||||
except itself. It includes source, tests, all plain-text receipts and both
|
||||
append-only logs. No executable/archive/panel asset is committed. The final
|
||||
commit follows completed applicable green checks; WIP preservation was explicitly
|
||||
authorized by Sage. No live instance, host proxy or protected branch was changed.
|
||||
@@ -0,0 +1,350 @@
|
||||
f34e093e8c711c5d568b1d5128d29b9162e5507be1172cc76429ab314cdb3e72 BUILD-LOG.md
|
||||
cf07d29143e3ffeae5ae0c9156d30558e8d55c538c110960fe08848d465c2a9e agents/magica/work/queue-329/BUILD.md
|
||||
1d6886ad5a44f7c9bdb8df9c263993f1edafd909aa195da11a7a11e566ae41ba agents/magica/work/queue-329/REVIEW.md
|
||||
f5ceab9c8ddbc6474a088426b179074fc8076ef307f148ac17664b4d82774a20 agents/magica/work/queue-329/acceptance-api-only.txt
|
||||
5c3e8d45fe644c442ffbd030c7c8b1d315368f1955fcc2ec2b8b9aba269b1ec3 agents/magica/work/queue-329/acceptance-final.txt
|
||||
3ef44d7e6ab26ce1f7e8a9b31c0fc69f71d0f9331e860908e97ded398bd3216d agents/magica/work/queue-329/acceptance-probe-1.mjs
|
||||
f24af6fa5fd4f3c89e4ce6da5d414e19f64d5c217d623e53610e8ed26c0b17b1 agents/magica/work/queue-329/acceptance-probe-1.txt
|
||||
471579b1c51f20893a552f19f2d8689fc09410c16b195ef60b2970888d7f915f agents/magica/work/queue-329/acceptance-probe-2.txt
|
||||
6ca780daad5962d783e50b94f47509fd0dc1f98d3abea0500e47ac1392826728 agents/magica/work/queue-329/acceptance-probe-3.txt
|
||||
7973fb50698805fdda35d8604a7a2881f01b305608d7376bc216ff991ca9621d agents/magica/work/queue-329/acceptance-probe-4.txt
|
||||
32e6ecd9199d5919121902ef02a9eca7ee881f980c5b5c5d48c133f5df85dbae agents/magica/work/queue-329/acceptance.mjs
|
||||
15fc26371aae25c944bdbc264f6841549ceceb295b2981465d8edea3ecd3f1f6 agents/magica/work/queue-329/acceptance.sh
|
||||
f94ec0fc73c13db93ef901bcb26fcd9bd5ae4009fe8fcc654ef3642b308a5e29 agents/magica/work/queue-329/claude-401-receipts.txt
|
||||
ff23a1447800b8a238fe99a491d2dce47772fcdffc0b953bf870ee1dc55f3548 agents/magica/work/queue-329/development-gate/bus-model-proxy.test.txt
|
||||
1aaf064ad2641963c5d1cdc8fb5b0c6a16a33b51d1dfc167c8e5efe31d2bcdd9 agents/magica/work/queue-329/development-gate/cli-model-proxy.test.txt
|
||||
b6768b3834ab009109f114ae4ae1d82ed0804491afe08df649e3412bbda2b63c agents/magica/work/queue-329/development-gate/model-proxy-client.test.txt
|
||||
a5815c185c59996085f979b8437e7309860153471f02bc75ee491d9d5e0bcf86 agents/magica/work/queue-329/development-gate/model-proxy-config-unit.test.txt
|
||||
ab7e64e36d22c1e82fc65e93efc69194f595ee14971e0d5f9be58ca8b8725f18 agents/magica/work/queue-329/development-gate/model-proxy-fetch.test.txt
|
||||
8fd3d91b04eb9d96df7b8a66bb072dd619c4f82bfba003a658a5b5f335ce5a6d agents/magica/work/queue-329/development-gate/model-proxy-runner.test.txt
|
||||
12a1a8c9472bb8cda2b7582518325e396c3a31215caa41c0cdc8feba3d1563b8 agents/magica/work/queue-329/development-gate/model-proxy-settings.test.txt
|
||||
ca054157c6bb36f40dc6c7a0942d4195fccdfc87b1a77062fb44f6db3fd84c2d agents/magica/work/queue-329/development-gate/npm-root.txt
|
||||
66ac3eda1c48dd7eff9d87623cfd89ed91eddf8af2a53ea15c91ba9564036882 agents/magica/work/queue-329/development-gate/npm-webui.txt
|
||||
1cae643fc1de823a04293ec68cfc5286903ab58bf8e16d6a63acbf4f34cac13e agents/magica/work/queue-329/development-gate/runs.jsonl
|
||||
1e84defa58b9e975217a497720b6e5533effbb9cfe49d024c30031f5f8f4a5b6 agents/magica/work/queue-329/download-sha256.txt
|
||||
46314ae67d564d2bb6cf9c7571bdde9481570c5467499e040b951c30d0ce6dc1 agents/magica/work/queue-329/final-counts.py
|
||||
1c5ae4b57246985ba1dea30784481f0407877ae373d8e6e00f7a9317731835ff agents/magica/work/queue-329/final-reader-progress.txt
|
||||
60a80c5f01c17605cf371fc4eacf851471109edf0b65e830e029b661d51fffcb agents/magica/work/queue-329/gate-progress.txt
|
||||
3cf1a426d12e30b16356b6b754488d3e1f53004eb1757945f93401e3ef42630e agents/magica/work/queue-329/gate.py
|
||||
92496b89026da562390bb124e3911df83084f0ce4e36382d32cc632f6bb6bbe6 agents/magica/work/queue-329/gate/FINAL-COUNTS.json
|
||||
b79b1d1b5253de212b6419a8d80bace53ac2d8899fec9f5917e1dd17f515bd17 agents/magica/work/queue-329/gate/FINAL-COUNTS.txt
|
||||
cd66b3817e5dfc02162b2126224581b52c8b6ca1c4377ed2615f013533df1682 agents/magica/work/queue-329/gate/STATUS.txt
|
||||
b8eb4f8a9fc5bef1c7a753f6a3b1cd32889116590939532697d194cc9b6cf2ed agents/magica/work/queue-329/gate/bus-access-revoke.test.txt
|
||||
caa2b941ab50c4c215d47d65fb64ffb8351347ccddbf110a7d6e1d83104fd7ef agents/magica/work/queue-329/gate/bus-account-migration.test.txt
|
||||
810f315fac98018713c45992da26d7657220df53b5c4a3110f81e647ec5c11f0 agents/magica/work/queue-329/gate/bus-address.test.txt
|
||||
972b18ca91d0e4612bfbbbdc6d2c5cb8029d1fb24c9937b8739d4773bac10d95 agents/magica/work/queue-329/gate/bus-agents.test.txt
|
||||
92699e0e797ea976591082b055bcd1870eb27b61aa7cf32cfe2e532407433ed8 agents/magica/work/queue-329/gate/bus-approval-binding.test.txt
|
||||
b961355e1c47cd6857ebfe08f3ed9e36f7650014b20f4e071c284565f86330f7 agents/magica/work/queue-329/gate/bus-broker.test.txt
|
||||
90315764208c1d0ecb3931d2c548e8a127990937f30d226ffb159961f053bb10 agents/magica/work/queue-329/gate/bus-business.test.txt
|
||||
b85c329304609b8c87601fa7f254821986aa12f40997ef2223319456211c4b3e agents/magica/work/queue-329/gate/bus-channel-proof.test.txt
|
||||
4463268787aaa843d859c11e1f86d34d5ca1e520d209eeb2599d34c475f4692e agents/magica/work/queue-329/gate/bus-chief-of-staff.test.txt
|
||||
2c1e88fa00384cc94010ba5d629f1cae3b21b4f24aab42896c9b010a0f801f1d agents/magica/work/queue-329/gate/bus-citation-availability.test.txt
|
||||
00e27c6f2f2a5efab11183a461da0e611c733daab2e8a4d809132daa3cf1d7d3 agents/magica/work/queue-329/gate/bus-citation-guard.test.txt
|
||||
88c56afb30bca8d23f09f2174c95d0fbc26bdd38a09d1b404ff31b2f58c4d608 agents/magica/work/queue-329/gate/bus-citation-runtime.test.txt
|
||||
4fb9fdbbe7b4c5300c6f704faea3f6bcd99eb7061596b89b9baceb6c726ef873 agents/magica/work/queue-329/gate/bus-comment-cursors.test.txt
|
||||
9b66c816f0c1775a10ee485d5009440ab1fdfea4843802c0e14d48ee00c73ee9 agents/magica/work/queue-329/gate/bus-comment-migration.test.txt
|
||||
936e0171744f7a20009fcdbca104ad7a73a4eeb95fe9aa30ca9f1291670a9c51 agents/magica/work/queue-329/gate/bus-console-decide.test.txt
|
||||
bbf9e325105a92de29a8b32fd1a9ef40d8b9f7ddf20244a635b5872ae595fd11 agents/magica/work/queue-329/gate/bus-creative.test.txt
|
||||
38e4b9eddfb41392b718e8fd4aefb24502d97f764b55a7b7753a054632b59387 agents/magica/work/queue-329/gate/bus-credential-claim.test.txt
|
||||
74eea762c96911ccc50bd08eec60b3ac51628f1172269ffc914f5b40fcdb17f5 agents/magica/work/queue-329/gate/bus-credential-status.test.txt
|
||||
336de155d1e674920430d6f7e39d3b99ef4d52dbc7b8bd550be42243ce33c92b agents/magica/work/queue-329/gate/bus-credential-store.test.txt
|
||||
3c7623569a045d8aa0b2f3dee0eea8ef324fd7765747c3d958bbe0b0945dc38b agents/magica/work/queue-329/gate/bus-credential-verbs.test.txt
|
||||
c28299788b46783631b8722f25057f9f89914aacd642d741f20cea10f117aaef agents/magica/work/queue-329/gate/bus-credentials.test.txt
|
||||
c8cee523b76eb075abc741e3aa7eb2e972a5b58d21e6d880144fa83864800ebe agents/magica/work/queue-329/gate/bus-csuite-messaging.test.txt
|
||||
7c2d0c2ea48fe473ca89773d0ed7b7edd02ba539ff2dfd2674da3de81ecffedd agents/magica/work/queue-329/gate/bus-daily-quota-runtime.test.txt
|
||||
ac0162cbceb71d9676e2216a4e4674b9e84a29c4764723902478aef75db6fd52 agents/magica/work/queue-329/gate/bus-decision-close.test.txt
|
||||
d98db72bd9310a33fa9335929e7712456d367f389e2b1295de70c099628ca260 agents/magica/work/queue-329/gate/bus-decision-route.test.txt
|
||||
e7784c44043f0c574de3b2c0355d77035942cb08ef5fbf8655d43f46d30f3b9d agents/magica/work/queue-329/gate/bus-decisions.test.txt
|
||||
2ae8a88d8747d851430e1c559ef37748749ca0428cc6bf01f27a9e16b1dfe792 agents/magica/work/queue-329/gate/bus-end-launch.test.txt
|
||||
863a428fc1863ce928d08cab75d06422b88161c0217827e0756535861b18af97 agents/magica/work/queue-329/gate/bus-fire-revokes-grants.test.txt
|
||||
b22fd0196ec874ae6d56d3a75ddf136fe23aa7f978cf9afc2276e792a768d1fd agents/magica/work/queue-329/gate/bus-gitea-grant-docker.test.txt
|
||||
9ad6e1266fc5fd7894783d6ab9bea4da63547f111e5f91abc48566251bd1e624 agents/magica/work/queue-329/gate/bus-gitea-grant.test.txt
|
||||
347e2ce76520948c8d971ea7ed0e97f047199b7a1acfbbec40d0d0bbfdd32e98 agents/magica/work/queue-329/gate/bus-gitea-migration.test.txt
|
||||
4f929c0078ce4051d913b17a297d701ee5b5ef23923e938683b98c906ead5009 agents/magica/work/queue-329/gate/bus-grant-enroll.test.txt
|
||||
306dcbf7abfbb888532ae7fb6437b8237163b55ef8a4fa7ba9e70fdff66c9bae agents/magica/work/queue-329/gate/bus-grant-executor.test.txt
|
||||
95aeb9842c41cfde79b219b3083551d739b2121bd7b561c0d6c80389a31fa057 agents/magica/work/queue-329/gate/bus-grant-host.test.txt
|
||||
5739dfa566d9700f64bddaa6075b717669037f574078d859dae208875cbcd032 agents/magica/work/queue-329/gate/bus-grant-migration.test.txt
|
||||
0ad89746be0cbbf5bbf89d9699405e4b747d3a632c035cb10a8964018e6c7622 agents/magica/work/queue-329/gate/bus-grant-scope-runtime.test.txt
|
||||
dbe2f0058b93a30bfd41696fa0c81235caa39ae30c0553a31ca27c3b2233c6de agents/magica/work/queue-329/gate/bus-grant-scope.test.txt
|
||||
f254c636671b4f1234de0875b2d56ea29334f0170ec491ff77a0f0f872a86a65 agents/magica/work/queue-329/gate/bus-hard-waits.test.txt
|
||||
a6afaadc8d3ae900cb2ffb7fbccd86678663488f0243f9b59e44dd58fd70341d agents/magica/work/queue-329/gate/bus-host-run.test.txt
|
||||
4fbd616efae71854ac6240f38c9ec7e5b817c040614828aed0727760688e7dc7 agents/magica/work/queue-329/gate/bus-host-tools.test.txt
|
||||
838cb5a28b57be818d68899cd007bfebf3d5e16b451c9db1a791431f5ed269c7 agents/magica/work/queue-329/gate/bus-human.test.txt
|
||||
bbc61d1c0fe8912862c1e6c4d497b96c827a9603c78763912c0933575c792da8 agents/magica/work/queue-329/gate/bus-instances-verb.test.txt
|
||||
31ea0720b080af1d1d46b0f7c6ce619fbb2ce707d212432d237d04e24de0cff0 agents/magica/work/queue-329/gate/bus-interpreter.test.txt
|
||||
7551cdb800728fd62d4f7e8ef93343dd2b8fe39712fe9b9a0d646a8e02310cd1 agents/magica/work/queue-329/gate/bus-land.test.txt
|
||||
1d3e7da6d80f2d0859086d01194f2d3c552d082dc9be0acebcf287822433534d agents/magica/work/queue-329/gate/bus-launch-notice.test.txt
|
||||
325aff3f6f015b18fd70f3531ff4e187c95f0250ace89d97aa0cd4a68bf8bbf6 agents/magica/work/queue-329/gate/bus-launcher-released.test.txt
|
||||
26a76acd54739c47fe8e0a2a13dec00a5bc9daedb9c0462bc1a91361f4af52fc agents/magica/work/queue-329/gate/bus-library-credential.test.txt
|
||||
9e9db829573d4562a8a29a3cc8b12aa5f65ef0784f076ea71c1467ffad22458a agents/magica/work/queue-329/gate/bus-library-lookups.test.txt
|
||||
68c2d9828981359e7cd5fc1aba9fe1fa287d513b39ceaaa54cc5cc6a5450fd7c agents/magica/work/queue-329/gate/bus-library-sync.test.txt
|
||||
54e5795aae4962c37fdd3fec5f7c81432160f416c5b9aa7a07bf256735d60649 agents/magica/work/queue-329/gate/bus-library.test.txt
|
||||
97cd8f9efd99f0147664462e90e587896f7a418e32293933251c0062e7f929a7 agents/magica/work/queue-329/gate/bus-lifecycle-revoke.test.txt
|
||||
cd5c6bb7c4a794267b36b8c42c89d10f033c7f6fd4b8e14771afeec484201e93 agents/magica/work/queue-329/gate/bus-lifecycle-verbs.test.txt
|
||||
b3bc88d80f58d9d06ab97712cd26e8490d868033d295d0869c8fc298c6927287 agents/magica/work/queue-329/gate/bus-limit-checks.test.txt
|
||||
613b7b658c9d3f7eb1fe07323b5c8b19ad3a691417d4835c8bc4490b2b976bf9 agents/magica/work/queue-329/gate/bus-limit-stop.test.txt
|
||||
29d028c5bde519510b301c55a0162e80d9ef6f9e72aa4e6e7703b1020a38477c agents/magica/work/queue-329/gate/bus-limits-runtime.test.txt
|
||||
fbf52753b382219a343634678f87c5d4fad11ad99c4f9a01930a21d9df0029f2 agents/magica/work/queue-329/gate/bus-limits.test.txt
|
||||
bfa4f0e430c6c80eac6b610a7f15c3979e4f3e3b346853e2f377d56e683d3d96 agents/magica/work/queue-329/gate/bus-message-citation.test.txt
|
||||
e51f9a5d77ddb25c739a6fde5f47b98db037aa6c225dd815d299975f1fc3c2fa agents/magica/work/queue-329/gate/bus-message-filter.test.txt
|
||||
727383abc09c395557ed3c0f38b8f900f2e6ab73a192b7c11fd6ff00f378df20 agents/magica/work/queue-329/gate/bus-messages.test.txt
|
||||
8b4f7d3b7fba2f7ad0770480824d9176aa570343be103fc8befaf9409a835f8a agents/magica/work/queue-329/gate/bus-messaging.test.txt
|
||||
9350046b3138d978c84aae9df759f2696535ff78820d60302820e13cd8429b96 agents/magica/work/queue-329/gate/bus-model-proxy.test.txt
|
||||
71c12ae86c0e0ce3b0f052b2e16c14518440d221abeae42748feb8d18142e4ad agents/magica/work/queue-329/gate/bus-name-migration.test.txt
|
||||
29831e8069447bf17b94301f67d4a2536a45dfe1c5bb0107a3b0d85cdfe16db3 agents/magica/work/queue-329/gate/bus-names.test.txt
|
||||
dd325088a465a4e21ffcb3234a9ae706b6396b2752a1b3302ab1ceeeb12fb2d4 agents/magica/work/queue-329/gate/bus-peer-transport.test.txt
|
||||
62aa57f946a5e2053bcb35914d4f1e3c1fe388f4c23b7f293454a2f7a2cc749e agents/magica/work/queue-329/gate/bus-peercred.test.txt
|
||||
70a8337fcbb9c5900367cf664ea1a70a14ba8f9e4bc2582a0c1cdcc162a478bd agents/magica/work/queue-329/gate/bus-plugins-verb.test.txt
|
||||
11d1cf556f8ea4211e1da686e8db7701a88128a579e63468bc1e09a6d3623496 agents/magica/work/queue-329/gate/bus-principal.test.txt
|
||||
fb6429d41db8dc9fcd05739837654eeca4d522a3c8cd5d3c9ffa79f618334ccb agents/magica/work/queue-329/gate/bus-process.test.txt
|
||||
a78e6f75ba41afeeb5131a930ad125a12082aa37e1eb66d4cd6f11d6c0a6eb54 agents/magica/work/queue-329/gate/bus-processing-runtime.test.txt
|
||||
3e3c5a28b36d6e1faaa9d0be44eabd959b315f711e69ff9c54fd747f29a109f3 agents/magica/work/queue-329/gate/bus-processing-timeout.test.txt
|
||||
bddb9973338df6181c23607c79e9274a4b601799f8bafe0948434d05a0f08655 agents/magica/work/queue-329/gate/bus-processing-web.test.txt
|
||||
3d773fcf857c0de5d0fda431d6526eaadc2a89d7c68236c27920d08df33000ca agents/magica/work/queue-329/gate/bus-processing.test.txt
|
||||
44951a2c880532e466038c580d8ef3490a9c1207b848a90a26f7a32031e38238 agents/magica/work/queue-329/gate/bus-project-await.test.txt
|
||||
829bd4c633e4c5e6d56f1c6dc89202683791380083d569acc86094fe8f787e6a agents/magica/work/queue-329/gate/bus-project-files.test.txt
|
||||
b87218c25abf74733ba7b28f9d940dee1829c23f067b6647ad148d5e0bd9ed48 agents/magica/work/queue-329/gate/bus-project-runtime.test.txt
|
||||
415dbf4c8c5d041adae04db089c8a2923606ca3e040330bdd46bf3209d3dd650 agents/magica/work/queue-329/gate/bus-publish.test.txt
|
||||
76c8365b8e37b6716b4d943434af5c4bd725ed4d3fae27ebbf32339352541bfd agents/magica/work/queue-329/gate/bus-reload.test.txt
|
||||
34a83a35be74c51f5b0196321176aab65d43e63a6516f8fe839c122963b5142f agents/magica/work/queue-329/gate/bus-replies.test.txt
|
||||
77b45c8db75e239e2b80161e97a5c7a98ea1def514ac9ddedbcdf5a90a2a4c09 agents/magica/work/queue-329/gate/bus-requirements.test.txt
|
||||
511ecbe0711be2f17de772f9f2f9e096995143ad20f5b5c667a51ddfe398a77a agents/magica/work/queue-329/gate/bus-review.test.txt
|
||||
530dddca74de5a173e1630215e7aa7b7ffa457c69d7737b57d055bd30585d79d agents/magica/work/queue-329/gate/bus-revoke-window.test.txt
|
||||
faa26fb718d95282aa3e7f770a363374fdad6e356d4746126ed6b4b51dd32a1c agents/magica/work/queue-329/gate/bus-room-check.test.txt
|
||||
f79ed2c136e662e3a19b4dd74542bdbd00507c8cfc23557fee82c9a01a073af3 agents/magica/work/queue-329/gate/bus-rooms.test.txt
|
||||
bd75978eee4d6020275c7c13f160b8c3c094d623ceac002e0e200f9050a28094 agents/magica/work/queue-329/gate/bus-routes-verb.test.txt
|
||||
40e87c31458d01e74a37af359c3687b8ab094e719e05ef374d3123534b513634 agents/magica/work/queue-329/gate/bus-schema.test.txt
|
||||
9b1a6d9e77566fb8003211d27962a177c9a142fddfa90e41d836721ae4855012 agents/magica/work/queue-329/gate/bus-session-clear.test.txt
|
||||
9a2aaaf282938a7204c9a498ca65d63a3940c54c0b6c71553c4333ff5dc9c563 agents/magica/work/queue-329/gate/bus-session-compactions.test.txt
|
||||
1a2c1b8baca95d3f48f0acd57ae1afee1429b8cc60d7698ccacebbed024fc8d2 agents/magica/work/queue-329/gate/bus-sessions.test.txt
|
||||
2f7148a583306bac2d379ebabd2cad2beed23d2711f4f9d412052d7f11c295a9 agents/magica/work/queue-329/gate/bus-single-use.test.txt
|
||||
f5ed62ffe475b60ba77ba269795fb929f144842642adadfd3a2f180bbb352da4 agents/magica/work/queue-329/gate/bus-spec-migration.test.txt
|
||||
56eabf5e66c1360a9435b5b65338bbb7a898971cc3ec82e4506dd713edc65ee2 agents/magica/work/queue-329/gate/bus-spec-review.test.txt
|
||||
803aadb4b3bf5f7d9c1e7cb8caf44ecf937535784e2b0afdcc85491fa8b84edb agents/magica/work/queue-329/gate/bus-spec-socket.test.txt
|
||||
4ebdb1b883a9ca690b7ad554acdbcc609f5e237490344ec33876c2936cf773f7 agents/magica/work/queue-329/gate/bus-spec.test.txt
|
||||
1c3f7ac8c175550d5d2118abb7edb6e667df164b533115679f2916d5cf46ab2b agents/magica/work/queue-329/gate/bus-staff-request.test.txt
|
||||
df45bd55dfbbaa4aadd743da6fcb4466c948b615894241302764b7a39c7bd35b agents/magica/work/queue-329/gate/bus-state.test.txt
|
||||
d56a3ec03670cbbb54b89374cacff875f01b7db52080d8a824e13c522620ca7f agents/magica/work/queue-329/gate/bus-store.test.txt
|
||||
c7f95b6145d9c568ae2b90dc5186f6c68da304623c63bbf85f94dca6fecda77a agents/magica/work/queue-329/gate/bus-task-page.test.txt
|
||||
c2e84f7d7da2de232e675d6f3e7d79f889b291186d8300b23473a56e92b29283 agents/magica/work/queue-329/gate/bus-task-read.test.txt
|
||||
85ca4c7be8e2881dc29ab6a13971f7500befd648b2cc9441060375c8b7731234 agents/magica/work/queue-329/gate/bus-tasks.test.txt
|
||||
989ef8ece1692263619072136970df050607b8bdba83ebc37b1e94996e97de9c agents/magica/work/queue-329/gate/bus-tester-threads.test.txt
|
||||
d9545891373696ac9ab0d01b4d00d5f383c9299e8219ba83cd392afb799b118f agents/magica/work/queue-329/gate/bus-tester-writes.test.txt
|
||||
41b33e178e135d4b07a30570c814d224f5d594782d18acb56900481075665c28 agents/magica/work/queue-329/gate/bus-tester.test.txt
|
||||
4b946e966b3d3b5f836f312ec59a2e060014d2686b09aff8af6ec9bd270901ce agents/magica/work/queue-329/gate/bus-thread-claims.test.txt
|
||||
9f0526b32047d5cbe0af049c84cd7ea5cf5115e98306baca552eaa4404da6a3d agents/magica/work/queue-329/gate/bus-thread-migration.test.txt
|
||||
0be44f74aa5381030bb381a49cefc2c5201cc5fa193375b984c443af518b1158 agents/magica/work/queue-329/gate/bus-thread-shares.test.txt
|
||||
a0444775133a71a46e40dca4a508459f29a1a1c15b45ac82f53f4f2f20db339b agents/magica/work/queue-329/gate/bus-threads.test.txt
|
||||
d53db05e384b8e2043d64bce9f92f2a6804a37d61e3184bca74f3954d2eb9a07 agents/magica/work/queue-329/gate/bus-transport.test.txt
|
||||
d24accc9a22d772e2b18177c8def973502c32cc7fab7367dd086f0b84583cf97 agents/magica/work/queue-329/gate/bus-usage-broker.test.txt
|
||||
0c87989b3402d0d6071101af6b0377e32de2bac94e1cb31d78f2bef8f384c243 agents/magica/work/queue-329/gate/bus-usage-migration.test.txt
|
||||
871fdbe8521fed8bc85da01b6aecc02900c4189c223108e5b46f3f1fa740dcde agents/magica/work/queue-329/gate/bus-usage-runtime.test.txt
|
||||
59e5d28d16fbf6e37257f9981147605902e6717dec29bd5a7f83496033f1c79b agents/magica/work/queue-329/gate/bus-usage.test.txt
|
||||
5f292b62abd5d2cd0c8e6b6d0ad706320a3885037bf6e0a292ec96379bed982f agents/magica/work/queue-329/gate/bus-user-principal.test.txt
|
||||
df442eff8279ed35406b16a79f48ee42aed881ad1b0b73286a715bf39fdcf4b8 agents/magica/work/queue-329/gate/bus-viewer.test.txt
|
||||
3bb98e51f6dc0a611563526ab3f7b2abc8e065dc12ac450ea066684839f56d24 agents/magica/work/queue-329/gate/bus-web.test.txt
|
||||
f73a9e49f401b2bbcffff087490b02262658f31ea5c2210f27df76afb37a4535 agents/magica/work/queue-329/gate/bus-workflow-roles.test.txt
|
||||
3d2459b32774ca992238dd0d836f7200dc12d8c968f72d558b9050cdb6f22d4b agents/magica/work/queue-329/gate/cli-access-boot.test.txt
|
||||
5d1ccc36176c02666bb5a51e3af9f539c7e7d60078415f79fc6249d8839928b0 agents/magica/work/queue-329/gate/cli-access.test.txt
|
||||
db2f9aa84aeac6896febebd2fdfc00d4607d672791c66099ba3f0e2ce0b33ea9 agents/magica/work/queue-329/gate/cli-app.test.txt
|
||||
643c87cebcf40a268ddd0205b921e1207f2a96ec33530739b3e434cafb596ebe agents/magica/work/queue-329/gate/cli-boot-status.test.txt
|
||||
a28a12b5721aff2b9e07e1d269f876ea8d9b23a794237f696eaf5076edb6d54f agents/magica/work/queue-329/gate/cli-case1-accept.rerun-mos1605.load.jsonl
|
||||
f6c23ffe30284ccc9f7fe03f37033f3e9c117f68be584f2ad7e9a40b372f0fee agents/magica/work/queue-329/gate/cli-case1-accept.rerun-mos1605.txt
|
||||
6c528c893f55f259d7bfef319814ed0dd6f8b5437c2e9fdf4966b33b834e8f50 agents/magica/work/queue-329/gate/cli-case1-accept.test.txt
|
||||
1ccb0b9e65c9e27803737f37b64dd35e50a055a741e858c3203d117c9bb76d8c agents/magica/work/queue-329/gate/cli-case1-hostcheck.test.load.jsonl
|
||||
ea4c54b35ecf063535750936b16da1e3d5e95e9a4f9bcb8252a3f3bf203c9963 agents/magica/work/queue-329/gate/cli-case1-hostcheck.test.txt
|
||||
69c9f2ea3a14d93ad241f6d93665e4c0641c3cc51f7ef643d390c40b008b3246 agents/magica/work/queue-329/gate/cli-case2-install.test.load.jsonl
|
||||
84046cfa41f3f6c66549769028eb693dfaf951ce20b675db8c8ad437582bf972 agents/magica/work/queue-329/gate/cli-case2-install.test.txt
|
||||
ef4cebbd09d14e1770779ace5bd9074ff67fa99c300f95239643fae68fff318f agents/magica/work/queue-329/gate/cli-case2-persona-import.test.load.jsonl
|
||||
4aaed88f6867cdf7174b2e0cdd2382383d9ff98909c71368882ebaa1ebcb3e25 agents/magica/work/queue-329/gate/cli-case2-persona-import.test.txt
|
||||
ac2ba0ca7437d56ec8ad4865e5a87897cb61b5570ff8c4f175ee7d9f62353f76 agents/magica/work/queue-329/gate/cli-case2-unit.test.load.jsonl
|
||||
8a5e7df37d9775b8db45c0df347b5bd9e7c5959dd24dd15d6124cf28d9e13709 agents/magica/work/queue-329/gate/cli-case2-unit.test.txt
|
||||
d07ab08401042c01c8677f1218c7a49bcf2e367f461aa5022634e52e8c0f9d0b agents/magica/work/queue-329/gate/cli-channel-cli.test.load.jsonl
|
||||
31aaafd0d40b6cfd8dbb0caee3720c7397ec580d06a0d4743142ddcc42fc2d7e agents/magica/work/queue-329/gate/cli-channel-cli.test.txt
|
||||
62edb4ed33b35c17528f279e45f5efcf82a7880fc42010cabb94910bf8a0d9b7 agents/magica/work/queue-329/gate/cli-channel-recovery.test.load.jsonl
|
||||
bea9c87767a343e1a27afbe51ef932bd8f6510849b09228345c2244244505302 agents/magica/work/queue-329/gate/cli-channel-recovery.test.txt
|
||||
db3446348539871248e53f1bfcebd35a4496224255743d690228e3447577f215 agents/magica/work/queue-329/gate/cli-cli.test.load.jsonl
|
||||
c1fa513515849d848111d528643a6a7a1ebcc487528bf8632b63c50f6b552f21 agents/magica/work/queue-329/gate/cli-cli.test.txt
|
||||
db76cc5316176707ec787a0ee9cca89a4c02a3f1e10fb50c02700f931a217261 agents/magica/work/queue-329/gate/cli-compactions-launch.test.load.jsonl
|
||||
124c15ceeb37cf038271662c490494c7ab0f9606347eefb34691f4466a6061c5 agents/magica/work/queue-329/gate/cli-compactions-launch.test.txt
|
||||
f61dd35ac07bee8387b79ca354a07184cbacac52513b6eb61e4b01ca86bfb84f agents/magica/work/queue-329/gate/cli-config.test.load.jsonl
|
||||
548d8e036261d3fdac06c9ca24475d7debe4153bd71ea4a8348b7d9211b9eb53 agents/magica/work/queue-329/gate/cli-config.test.txt
|
||||
3c83a92ddf1c32362e25bcd3bfc7ecc36528e09e921b3d2055119241e5dbf26a agents/magica/work/queue-329/gate/cli-credentials.test.load.jsonl
|
||||
c15de39567eba58f484c34a97accb1c453ab1f3794de4ed0216f3a81d3d1d2bf agents/magica/work/queue-329/gate/cli-credentials.test.txt
|
||||
b08d01cd4bfc8364969cbe7a4be997126d0d01012eaf11b25367a20f99fa2237 agents/magica/work/queue-329/gate/cli-federation-acceptance.test.load.jsonl
|
||||
4900425c57bbfb0e67b37864f9f693ff904bbd38c856e068d517f80124e680b4 agents/magica/work/queue-329/gate/cli-federation-acceptance.test.txt
|
||||
1534ac5da32a67b8ffe079d60e1a63f3d82dcee95209548eff809a30ea99a4f3 agents/magica/work/queue-329/gate/cli-follow.test.load.jsonl
|
||||
6051d17bf3d5dca2752d1c10479dac068c92a64da19943205193e549708d192a agents/magica/work/queue-329/gate/cli-follow.test.txt
|
||||
44efe4849113a323350830a5e5ac5d6e832896c4aa4dd02edaca50b96b72db58 agents/magica/work/queue-329/gate/cli-format.test.load.jsonl
|
||||
8e99983328b58a016c7dd051928d020ed7d2884c48f12b2801e455d072e25749 agents/magica/work/queue-329/gate/cli-format.test.txt
|
||||
9d148dbbfc8889c788926291dc9cdb3efdf8aca301977e8e875d1eae0637db24 agents/magica/work/queue-329/gate/cli-gate-lane-auth.test.load.jsonl
|
||||
b2b18d99126e93a6c6bb073d386ebfef3deb841c44957b2ea6040b50dc1de0ba agents/magica/work/queue-329/gate/cli-gate-lane-auth.test.txt
|
||||
7173dbf8bbf16879d0c884686f1df0990087f3329348e9821506acc01a615024 agents/magica/work/queue-329/gate/cli-gate-lane-fixtures.test.load.jsonl
|
||||
69ed25eeaa7be7d32820e0cd3d3e8671f7330d40b65aa15759e12d2ae4390209 agents/magica/work/queue-329/gate/cli-gate-lane-fixtures.test.txt
|
||||
138211126f6dfb1b00312f93aa89a050413666f02c22e9a8b37ee613df03689b agents/magica/work/queue-329/gate/cli-gate-lane-image.test.load.jsonl
|
||||
c97129de02f5b2d044ae181077d6449af8705e73fb168f8e78123c36eb62299f agents/magica/work/queue-329/gate/cli-gate-lane-image.test.txt
|
||||
1188d8fe8253760b288a9a6d7a1d79e85d9ca3312ebaf8d2d52272c7d30dc16a agents/magica/work/queue-329/gate/cli-gate-lane-state.test.load.jsonl
|
||||
80945660b44e84b98bad431097c92f22e60cd4fd9162429182967f7455c5b74f agents/magica/work/queue-329/gate/cli-gate-lane-state.test.txt
|
||||
6779fbe0c1546ac89bae7e7f93cb8db964b1b224dfc90104f7148ccb5e5ec936 agents/magica/work/queue-329/gate/cli-gate-lane.test.load.jsonl
|
||||
a6d33ab80d1e932b91f2f920277a46be00601af8d4f70b45eae61f978acb712f agents/magica/work/queue-329/gate/cli-gate-lane.test.txt
|
||||
43f39357447b8c009e5d168a07570cada702fbcdd4fae18946812d88e3a111c5 agents/magica/work/queue-329/gate/cli-git-socket.test.load.jsonl
|
||||
ed57db2eb019740e0f79667d41716dd54223fc58854963178fc1b3eeba652e5d agents/magica/work/queue-329/gate/cli-git-socket.test.txt
|
||||
fb02271bc17987afc1a6b96c6439549addeaf6c50f492af6a600f7a344376ebb agents/magica/work/queue-329/gate/cli-grants-scope.test.load.jsonl
|
||||
88d4ff60021e957c4234be67452a92793877774bd7738cf2544d16b159d57c8c agents/magica/work/queue-329/gate/cli-grants-scope.test.txt
|
||||
6a8be9e61d750687dfd84a1df96f6d96b3c31d6abfac312fc6b65f1900b4a9f2 agents/magica/work/queue-329/gate/cli-grants.test.load.jsonl
|
||||
06201797ff0b2092ebc45c46a189112943b24ee37700df42092d913762abd9ca agents/magica/work/queue-329/gate/cli-grants.test.txt
|
||||
a08e8194db0c5c99863b2cd6d17a973295274c94bd5911c9a86e7be9196ccbca agents/magica/work/queue-329/gate/cli-host.test.load.jsonl
|
||||
dd8a669b10b62edaa62f7740b99bed09f5a4f0515762e265c072e3d243be98a1 agents/magica/work/queue-329/gate/cli-host.test.txt
|
||||
0d17cc40b6562321f204f7eb6f418a2b8adcdc907b7064838b1fd3c42b28f79c agents/magica/work/queue-329/gate/cli-hosts.test.load.jsonl
|
||||
af2f013109d62a7c0829099bec417fbfddae128a853bc9e09c5bbbcfd4cdc7c9 agents/magica/work/queue-329/gate/cli-hosts.test.txt
|
||||
2d02ce6d0c6eb9d1d81bdb95dd988e74834456323325f96154ce76402b40ef7d agents/magica/work/queue-329/gate/cli-idle-stop-race.test.load.jsonl
|
||||
c9cf01eed62d6e5fa4e648c62e4c4dc55ca4f25f8fcb6b5dc00e2ae3e4a0bfa9 agents/magica/work/queue-329/gate/cli-idle-stop-race.test.txt
|
||||
1414c17e59185a5287cf2345786a36e6463c7aca6419ba69de369f0b21079d4d agents/magica/work/queue-329/gate/cli-instances.test.load.jsonl
|
||||
99dbc498d2db065afcd8f647c0343c44d68acbd7f79076603a874c4beb47430c agents/magica/work/queue-329/gate/cli-instances.test.txt
|
||||
53016472444342a174dd427d0f64e54afb8f37517cf395e86e32e02d03081e7c agents/magica/work/queue-329/gate/cli-launch-account.test.load.jsonl
|
||||
a8c89d5267e3d675cdb8dc921d9d319ae905f24ee02ff0e83ab5ba9784ca01b0 agents/magica/work/queue-329/gate/cli-launch-account.test.txt
|
||||
1cf409576830bce991f0ed2e7d2fa0549c1717797b6cc3f3c85a44235478b756 agents/magica/work/queue-329/gate/cli-launch-limit-checks.test.load.jsonl
|
||||
cff5c939e7c8b076424e4463dee4579c92ee86a826bcaf8e680fccc7bb4d827d agents/magica/work/queue-329/gate/cli-launch-limit-checks.test.txt
|
||||
00fe1959c75253c0ef5cabad1d36c58c43cf0c30b2f32831baf9cad32276be6a agents/magica/work/queue-329/gate/cli-launch-limits.test.load.jsonl
|
||||
4e023e3ff8f9114aca54f9bac9af4426e0153ad2e51034db8bef1ad28d4487a5 agents/magica/work/queue-329/gate/cli-launch-limits.test.txt
|
||||
a203318b6dde32d53de1f886b7a63f685a7fb3211a02a164a9baad08ceb9e77c agents/magica/work/queue-329/gate/cli-launch-routes.test.load.jsonl
|
||||
8ae736af66f78f971cbb5b20b928a2d024e5d94321d226d647953e3ef49e7547 agents/magica/work/queue-329/gate/cli-launch-routes.test.txt
|
||||
3f907dd749672ebabc7ef1f6b0784b793c9671932edf3b70cc04006076118aec agents/magica/work/queue-329/gate/cli-launcher.test.load.jsonl
|
||||
045baf86e618b48397df03c05e3b11e2c552aa2420c81344f6ca0d93046211e3 agents/magica/work/queue-329/gate/cli-launcher.test.txt
|
||||
b05038c5dde19b3b05d4ffa9e2c42db4031c10c7187b134f2c71d2c051a6e28e agents/magica/work/queue-329/gate/cli-lifecycle.test.load.jsonl
|
||||
69b5e8029d3ab819661ecbd24744159c4d9f191051e23aa6ed53107fdc5a89dd agents/magica/work/queue-329/gate/cli-lifecycle.test.txt
|
||||
10efab4ef7ddbb7bf2466754f3d86d21802791d60dc82709e12b5e7214d5cd8c agents/magica/work/queue-329/gate/cli-limits-tokens.test.load.jsonl
|
||||
ae6cde9dce4f7c68d77c37fbf882e7c1d10524ebe3d8c78b0b1af3c5c915143a agents/magica/work/queue-329/gate/cli-limits-tokens.test.txt
|
||||
89fa02463b5ae597027e9057f7659003de03a3c3af9a75848992685e257e9466 agents/magica/work/queue-329/gate/cli-limits.test.load.jsonl
|
||||
b6b9be5a54140a531e56d200b59d64e5a1a4719db047c506cd846c1a2ebcc17b agents/magica/work/queue-329/gate/cli-limits.test.txt
|
||||
92a266aa154f14c1e322035aaefc2316abf040acbd7951747937baddee1f37ff agents/magica/work/queue-329/gate/cli-mark-read.test.load.jsonl
|
||||
0a7ca2abfb72638b2192711db0518bb1f63bb0a3fe61d7c2ca36309cf983897f agents/magica/work/queue-329/gate/cli-mark-read.test.txt
|
||||
c020f16fa803aee328c0e6deceb0c78c5eb9a23b6816ce2f6425770c3111295f agents/magica/work/queue-329/gate/cli-model-proxy.test.load.jsonl
|
||||
f65f7cb67b074b27a444cab847eb49f9106add2c8e0e6b6f672319796864b951 agents/magica/work/queue-329/gate/cli-model-proxy.test.txt
|
||||
ee5cf201426e844de608d4e058a5a09051620a8ab1bac662665dba6075f7d330 agents/magica/work/queue-329/gate/cli-names.test.load.jsonl
|
||||
3b71310f518914e7b921b55ff852b78491ddfb46986be43a6999a27835f45e5d agents/magica/work/queue-329/gate/cli-names.test.txt
|
||||
71b4edfa31d7d160869b9c7fe2f57cf7dbfc322eb487e6b534a1d08885cc981f agents/magica/work/queue-329/gate/cli-notifier.test.load.jsonl
|
||||
fcbb417df5d21d4a05d850a41a6899fe6b26079fa6678ca905d8ba2c7369d563 agents/magica/work/queue-329/gate/cli-notifier.test.txt
|
||||
6d27545f33d7e46248d79a5eca8bbd77180a00ca352ad96bc3b2748af2e1defb agents/magica/work/queue-329/gate/cli-optional-tracker.test.load.jsonl
|
||||
48d1a93820b7c0b362ad6d716c6b98f94df152e4a157cff76dce0a01ae33e6e9 agents/magica/work/queue-329/gate/cli-optional-tracker.test.txt
|
||||
f97e04814208d8938247678cdd45ce6316c2c18f10bcd8433a9efc72f0aa64b2 agents/magica/work/queue-329/gate/cli-other-tree.test.load.jsonl
|
||||
3d95af03f3633b53c8d6d8f102ad3b78f4765c900d3f105757f59bfcc43e4a3f agents/magica/work/queue-329/gate/cli-other-tree.test.txt
|
||||
b8f0620113e69e5e735cc6a3fad53d7fd6889a5dfa4db4a202eba9cb94bbb604 agents/magica/work/queue-329/gate/cli-processing-cli.test.load.jsonl
|
||||
bdabc4c428a177a213bda1a53550ca81a4808d92bdc8020df2c9c658c3fdf472 agents/magica/work/queue-329/gate/cli-processing-cli.test.txt
|
||||
e3611e5a98d7dbeea0ed5bea03e035d845f2ac4131c036163805e0312482d10c agents/magica/work/queue-329/gate/cli-project-name-repo.test.load.jsonl
|
||||
ad14f6db01fd3857279f2b4a0cbee41d4a78b0c6dc37e751017dbc6673fab144 agents/magica/work/queue-329/gate/cli-project-name-repo.test.txt
|
||||
a646b05c06df57b6cec5c7cba3d2aad83662fe30d3287c4d19bcf14d670264b5 agents/magica/work/queue-329/gate/cli-project.test.load.jsonl
|
||||
67cec3d3a39a15fc8228d570d9021060c645e3601a2a3b240955afd1fae29010 agents/magica/work/queue-329/gate/cli-project.test.txt
|
||||
dba5336581c8d7a67905fd51f381cbbbbf825b94734cdfb85146ddb78c354ecd agents/magica/work/queue-329/gate/cli-publish-socket.test.load.jsonl
|
||||
96228ccad31137a17142e5d87684d65bead04e27d61098b766539ce38ca1bb81 agents/magica/work/queue-329/gate/cli-publish-socket.test.txt
|
||||
abba725bb3098df387207af04d20acd4266917cbcd8aadf3f567c904801cb310 agents/magica/work/queue-329/gate/cli-reply-limits.test.load.jsonl
|
||||
9e100b9bedb25b90e1bbb708dd4da28208e97209faff9ddc297006d5006bd216 agents/magica/work/queue-329/gate/cli-reply-limits.test.txt
|
||||
893e7e94364034bf0269cd8cac7b1dbb55dbdeffc1a078a7d79cd7b23d40aac2 agents/magica/work/queue-329/gate/cli-revoke-window.test.load.jsonl
|
||||
9843b1c155e9a90eebb908ba484fdc6ca26be15f50495bd9606cecfbf2d70c52 agents/magica/work/queue-329/gate/cli-revoke-window.test.txt
|
||||
602896213eda73b15c6626f82036dc7aca89be17379ccc4fca0496738c57672c agents/magica/work/queue-329/gate/cli-session-clear.test.load.jsonl
|
||||
71a87f76a2cd60d51dc4f36afe5ab05249111f95af79a780ebc2870304a3e5b9 agents/magica/work/queue-329/gate/cli-session-clear.test.txt
|
||||
3d777d0499f140a660d1570c22df224734407a618a37ec090cdfac8caaf49e3c agents/magica/work/queue-329/gate/cli-session-cli.test.load.jsonl
|
||||
3c11262872ecb88754a183179dda398a90e8e8f471174889f4850856868661af agents/magica/work/queue-329/gate/cli-session-cli.test.txt
|
||||
d98a7094c7e290833cd7d7f4ed7dc67471a00154e85e8726f12bb042d9c70e54 agents/magica/work/queue-329/gate/cli-session-launch.test.load.jsonl
|
||||
8145036eb8893d1802195317f003beaa4fd3b42bc8ac33b2e89b29ceb1e94a4e agents/magica/work/queue-329/gate/cli-session-launch.test.txt
|
||||
933c12567cc912906677eff0ff22e8462e9515638a074a3762e2dddb8cc0b3ce agents/magica/work/queue-329/gate/cli-stack-copy.test.load.jsonl
|
||||
a889e8360f88697ce376fc747836d776fe6e446435d0ea752b3ff00487edaf40 agents/magica/work/queue-329/gate/cli-stack-copy.test.txt
|
||||
b1f4401da8d8bac46b6705d40ca2fb3202c6ac228d6f15871b3b72d9a1f8dbc9 agents/magica/work/queue-329/gate/cli-stack-instances.test.load.jsonl
|
||||
509f688aea4ebd8d2881952b3f8edf7b2641d56e12036b0b50b36db19a174653 agents/magica/work/queue-329/gate/cli-stack-instances.test.txt
|
||||
819f4ea6dabc13c1369d3a28467eff51b80a9d3632e2dcc391a9caf22d24a108 agents/magica/work/queue-329/gate/cli-stack-release-external.test.load.jsonl
|
||||
2d163018ed6b9f3588944e11ed487cd3cb25b95f35cc614399a595bdeaaf1a3d agents/magica/work/queue-329/gate/cli-stack-release-external.test.txt
|
||||
058a150be5ea09633dbb001cacf2abc34a030fa437f88840d41ec5dd2a6d1a22 agents/magica/work/queue-329/gate/cli-stack-release.test.load.jsonl
|
||||
5262abaa192b44f29b4263e0a19f79298c87d0fcad272afdbd7d4e9871033eb7 agents/magica/work/queue-329/gate/cli-stack-release.test.txt
|
||||
35c11b5ab699a3c717ebef8e49191ebb6e70aadde5c98be8a0cb61db5335d75e agents/magica/work/queue-329/gate/cli-stack-upgrade.test.load.jsonl
|
||||
38955376895c743b4b22a071a08136667bed659d6f1dc581b2dd1cfd834a664e agents/magica/work/queue-329/gate/cli-stack-upgrade.test.txt
|
||||
fb1fbb9822512168f6fab0cda02ea2be2b67c6aaab42b0be17d4edb6324de0d0 agents/magica/work/queue-329/gate/cli-tester-http.test.load.jsonl
|
||||
fd200c1068974a19eb17c4d8106711adbcc13ec4e5c737a2ec7592db45c1fd9f agents/magica/work/queue-329/gate/cli-tester-http.test.txt
|
||||
82ddfd9276e9184f6015c169cbb50474fa85a16083ef7297051b703ed7d4a899 agents/magica/work/queue-329/gate/cli-tester-reads.test.load.jsonl
|
||||
27a94718c39ec6bf3506d6d899e206d61c2bed5956db8588486a9d0bd720ceee agents/magica/work/queue-329/gate/cli-tester-reads.test.txt
|
||||
869000218198a46e7f4de5a07259f76f72c24b8a429f521d3c50de627b9f338a agents/magica/work/queue-329/gate/cli-tester-threads.test.load.jsonl
|
||||
c6c6468ffdaa1de4ec7d6742d8f2ddbdf0689979ec4ed24bb9533da5c7c475c4 agents/magica/work/queue-329/gate/cli-tester-threads.test.txt
|
||||
1c266379aeaf97296b5da638943ef11a3ea51efc650f048e26c166d2ea2fa113 agents/magica/work/queue-329/gate/cli-tester.test.load.jsonl
|
||||
723c913422c971613fc7a73b8e370100b1d2fa55e46dffa823fd4b62559d6f15 agents/magica/work/queue-329/gate/cli-tester.test.txt
|
||||
5de22f85a59260a6b31733257d9d49820b72057f9c88c4e6596aa3d8f71c8618 agents/magica/work/queue-329/gate/cli-thread-cli.test.load.jsonl
|
||||
d62c7534909205b239111000fb92a6d47ee3fca96aeb33387162743c9cd2c19b agents/magica/work/queue-329/gate/cli-thread-cli.test.txt
|
||||
9da08a8a07fe855c2ab1a095666597995d54b9856d733d6ff63bc1bf0fab0c34 agents/magica/work/queue-329/gate/cli-thread-launch.test.load.jsonl
|
||||
43bb9c5f7bcfd3739345662206acec794ff76d3b4d501b0d8e47367eb9f47a01 agents/magica/work/queue-329/gate/cli-thread-launch.test.txt
|
||||
e1377c9f503af3d4c660406b1600e7b34ce31b24133c02602eef1eae906924e2 agents/magica/work/queue-329/gate/cli-thread-revoke.test.load.jsonl
|
||||
f1831b82c8e8e8e3fa097ce1c1f5a921b2cd9b0b6ebbb97f62d14a17f6aa1f37 agents/magica/work/queue-329/gate/cli-thread-revoke.test.txt
|
||||
7a5c582e4e58d0200d64e5801afbe39c0f70356ce70ab06c74d11f8cd3a3e75d agents/magica/work/queue-329/gate/cli-trackers-boot.test.load.jsonl
|
||||
2a4580ddf6d31deaad6e9adc8032fa423e7dcbf30da3465f27d8f64c21b5cab3 agents/magica/work/queue-329/gate/cli-trackers-boot.test.txt
|
||||
38aa222d53c4ae719c622c2ee512e6d07418331832724d82e86393b87b2d894b agents/magica/work/queue-329/gate/cli-transport.test.load.jsonl
|
||||
a62e0ea70fcf35378c7f00001bf96435cb3684c23f5cbd6017719b2438474405 agents/magica/work/queue-329/gate/cli-transport.test.txt
|
||||
9fe759634f4d47870e1df709603281b779d2f05c5f0c26d77d43fdaa218bb593 agents/magica/work/queue-329/gate/cli-usage.test.load.jsonl
|
||||
1c4e599c381fad900dae7ff9bba00214a8075f05b82a05bd34726b86e1b02ebe agents/magica/work/queue-329/gate/cli-usage.test.txt
|
||||
3b5b858f1822cce5fe19659868f96e69d1fed53c2e4b1297e0a473b88c4042a9 agents/magica/work/queue-329/gate/cli-verbs.test.load.jsonl
|
||||
693f19a8f0c93c7a33000bd7a86c5af54edbbdfba53631fb892dacbd8173806f agents/magica/work/queue-329/gate/cli-verbs.test.txt
|
||||
4c2531e802ac826df1324345bfc2da9ec18d3531ed67ce2b406f49014a83dba4 agents/magica/work/queue-329/gate/model-proxy-client.test.txt
|
||||
832ec82ece9657a7769e2ff3eed69afa38c53a056a402ad6ea388f6808a0282c agents/magica/work/queue-329/gate/model-proxy-config-unit.test.txt
|
||||
f2dcc1e42876b8446f16466718ee889a4d0801d15b8d1c7c85377d97c2f7c501 agents/magica/work/queue-329/gate/model-proxy-fetch.test.txt
|
||||
471640a8f91144226a4b2b990acb6c9e89c9af545e942bc21b8f507fefda38cb agents/magica/work/queue-329/gate/model-proxy-runner.test.txt
|
||||
356d37019d693ef6e6e2616ab308f66265c599fc579bac9d5984d676c5d75e8c agents/magica/work/queue-329/gate/model-proxy-settings.test.txt
|
||||
ca054157c6bb36f40dc6c7a0942d4195fccdfc87b1a77062fb44f6db3fd84c2d agents/magica/work/queue-329/gate/npm-root.txt
|
||||
66ac3eda1c48dd7eff9d87623cfd89ed91eddf8af2a53ea15c91ba9564036882 agents/magica/work/queue-329/gate/npm-webui.txt
|
||||
6addfaa9d1ec3476ab8cae77bc47790778085305c97e73e3e06bda8e4e11ca1c agents/magica/work/queue-329/gate/post-unit-fix-cli-host.test.load.jsonl
|
||||
4279f8849f31257c754b770cf943c0f4b6bed6106191baa78774d6c17181f957 agents/magica/work/queue-329/gate/post-unit-fix-cli-host.test.txt
|
||||
3f1c6de8792aad1fdb5e3a6979b88d46c7147da162ab040bbc3008e4f77a3160 agents/magica/work/queue-329/gate/post-unit-fix-cli-stack-copy.test.txt
|
||||
f94305b2b9848c18bfdb2be0acf36fa70f9cf1483b084ea916a2335ab4b8a1f9 agents/magica/work/queue-329/gate/post-unit-fix-cli-stack-instances.test.txt
|
||||
2e5e67fa37641602a49b10e3f491d345cd9be86056fd74618a7cba15ae562a5c agents/magica/work/queue-329/gate/post-unit-fix-cli-stack-release-external.test.load.jsonl
|
||||
779c414e2894e42cf59cd320a23998a787e0a16d7878214231eac9fadbd31d6f agents/magica/work/queue-329/gate/post-unit-fix-cli-stack-release-external.test.txt
|
||||
0d3bd523369a665bf464bc442767023ec0144d5e6fe134564cf02a6423c93aeb agents/magica/work/queue-329/gate/post-unit-fix-cli-stack-release.test.load.jsonl
|
||||
c58635b7c238415a30f1a4b7c1f257d7ab90dd320e38da1f44b75813feb2d759 agents/magica/work/queue-329/gate/post-unit-fix-cli-stack-release.test.txt
|
||||
ed297ed67e9c4257004d0b1caab5b854592e4f710146f0e13bf4af52bc70d74c agents/magica/work/queue-329/gate/post-unit-fix-cli-stack-upgrade.test.load.jsonl
|
||||
6bba10f23320b07f43f9f9bb66546b9ade9cf6cb2bfc2447cc1562feceb51fe3 agents/magica/work/queue-329/gate/post-unit-fix-cli-stack-upgrade.test.txt
|
||||
6010d37970747988a35e3971455ef06613e6da0a771d65b131cea97dac90da7b agents/magica/work/queue-329/gate/post-unit-fix-cli-verbs.test.load.jsonl
|
||||
648c3a58103f7bc9d6201b9557c0dd1329713d8b7e171f54b2e3ca7fb3097a81 agents/magica/work/queue-329/gate/post-unit-fix-cli-verbs.test.txt
|
||||
a71091aae2d606745235b527ff6405bfa0933f91e943deea71509512bdd824a7 agents/magica/work/queue-329/gate/post-unit-fix-model-proxy-client.test.txt
|
||||
9935d0cb31e6ea8a268d8737de7e0d1a4694222cca8fd8a1a6fb85b25ca7f584 agents/magica/work/queue-329/gate/post-unit-fix-model-proxy-config-unit.test.txt
|
||||
9a8ca7e1b530a5e20159113efabb7c29afd057de42670c5bee1eef8e224fdaf7 agents/magica/work/queue-329/gate/post-unit-fix-model-proxy-fetch.test.txt
|
||||
f90198940d77683e83a567815bff27a7d3eda3818d83d2e6db98cceccba72dd3 agents/magica/work/queue-329/gate/post-unit-fix-model-proxy-runner.test.txt
|
||||
1d903940b3029921495bf7374cb2f292c217f5305e5e891783427b193a586347 agents/magica/work/queue-329/gate/post-unit-fix-model-proxy-settings.test.txt
|
||||
6f8a696f90f0f3afcaebbd5b13e82d5bc7e40e46c88fef63faa1be16ae321de8 agents/magica/work/queue-329/gate/post-unit-fix-webui-pinned-copy.test.txt
|
||||
21d8ca6d4a6530380a2b94e94872eb6d2bb7aa63c866ee70ff7798b9219c1b2f agents/magica/work/queue-329/gate/resume-mos1605-runs.jsonl
|
||||
5e6ce55ef8a1cb4506384530f4ad8b8af93be6b41411cbcb7d53b5f61bc5379d agents/magica/work/queue-329/gate/runs.jsonl
|
||||
cd473a832391e2588c98d4a4085ece27f3132435f5ddb0fb2977b15f2db9debc agents/magica/work/queue-329/gate/test-config.sh.load.jsonl
|
||||
2dc3ff347b7359af1b729b97405e167f43a66a71a49324d8e902e26e4447b6e6 agents/magica/work/queue-329/gate/test-config.sh.txt
|
||||
a07aeb995eba36fd6bdeb76abdd101d1126fc7188826e7bdd3fee487efe644f0 agents/magica/work/queue-329/gate/test-federation-acceptance.sh.load.jsonl
|
||||
284dee983d7346a0c03fafd917299a135f05efed7989fc1b59883ae3232d602f agents/magica/work/queue-329/gate/test-federation-acceptance.sh.txt
|
||||
40904a9a2b69b15b61e09aa9f1fa5ea79d63e17cd888c532eae19d1679a40d9c agents/magica/work/queue-329/gate/unit-custom-config-red.txt
|
||||
84bf8ea621c5d580953a89a22afc7a30d6001e8aaaa01b31d161c33f230e1a4d agents/magica/work/queue-329/gate/webui-pinned-copy.test.load.jsonl
|
||||
24192013fcf0f1a63402ee0c8e5a00da5ef7fd0c5e87370c2e38c9be1dbbb8b7 agents/magica/work/queue-329/gate/webui-pinned-copy.test.txt
|
||||
e7fa0ff14ca8087fa1733a69e932169099e3a16e5077557ee836f7aa354bc9fb agents/magica/work/queue-329/readers.txt
|
||||
b8a80e488e85953ce9ef815cbe4e0bf4009012c8121ba659074fb8873cca856d agents/magica/work/queue-329/refusal-inventory.txt
|
||||
12c5a63a1cca1f89168ae93eec981888ed2126a2a7abefe65751df66b67686cf agents/magica/work/queue-329/resume-mos1605-progress.txt
|
||||
5de7f8433dfc2ffc0c4496b4fc1ee957ec24e83baecbb7347633b7f5e8d62e65 agents/magica/work/queue-329/resume-mos1605.py
|
||||
05e38853b4e49870bd6b44c246c8e9fbd41f98c2389e0e3ca7b87cc9c143c686 agents/magica/work/queue-329/scratch-root.txt
|
||||
48791faf9e423860bc5a8cefa224256f836f18f803ce8c872c97d033826bb274 docs/SESSIONS.md
|
||||
24620d450b9e2defd2ed738596e440364a2a06fd84712ad154d9da970985e61d packages/bus/src/broker.mjs
|
||||
6688c153b13a401d475212fb7dce9727d78431ab6840550482847f47889e84a6 packages/bus/src/runtime.mjs
|
||||
b88932524302e2f7a7bdfbd4daffc1f5b05ae578b51e2dc2f3f74280fc0de398 packages/bus/src/server.mjs
|
||||
0d6cb865a5b41928708f29795c7bd1011bd568955ddad5289e658ab61b24a00f packages/bus/tests/model-proxy.test.mjs
|
||||
1850d16736322da024d52321e9975ba6f27e2079a59e7da5592e4f9aaf59533c packages/cli/src/cli.mjs
|
||||
d960c2a9df3f7c84deff22dad1f0ab120f95ee365984e390de98eba7292b65a1 packages/cli/src/config.mjs
|
||||
d706a43ed01df1daf15b2ade6132783aff4913f901f80761b319d231e0d279f4 packages/cli/src/model-proxy.mjs
|
||||
16c31f119d064a836794d167d57a6a1b765303005d93d1feba3e07e4b9288bd2 packages/cli/systemd/mosaic-proxy.service.in
|
||||
3031a514f5eb1e911ae5220ee8819ba5d409737a8809bb5922650bbe4f95edfc packages/cli/tests/model-proxy.test.mjs
|
||||
889ac9589fadf7654d4dbb914f968cbafe4255ed215bd6a9ff3f331757c9017b packages/model-proxy/PIN
|
||||
24745f244aba0789245af21d275e3cc2fed8c07342369caa68369b73d8d1d3f6 packages/model-proxy/README.md
|
||||
8fbfb3d1562e9ea824a1bd399b17cb2048c92b125e7699ccf27abdcc6e31e40b packages/model-proxy/package.json
|
||||
c1e835580f2c33d8ce1e75af4e5c99e0425d1a88b50f25bf514a4f90f7134932 packages/model-proxy/src/client.mjs
|
||||
e214c152ce8fa2df867bdc28194aedb53dbba601c248a606dc5d7bcd0735c189 packages/model-proxy/src/common.mjs
|
||||
00378d2ea95ac4945899696462f8ff4c70dc020cc58d93663d731d2f2f333783 packages/model-proxy/src/fetch.mjs
|
||||
919e9b7edac981881d9b39fda3709a11db39b9c3eb138eff1c3ba8d2b55395aa packages/model-proxy/src/run.mjs
|
||||
c9a8783b272c434bb36697d0763e7fd93db8be208d6cf3da97262dd8f5b0ab10 packages/model-proxy/src/runner.mjs
|
||||
1a5690a27d2b192151328b194d96cedd60d0a291cfc8e99431680c3b24ddea29 packages/model-proxy/src/settings.mjs
|
||||
790c6a50ec030a8b27a28fac7fd129bd9eabe79774adf11d6620c00df9b6ae86 packages/model-proxy/tests/client.test.mjs
|
||||
5f9d35c45322b1a843058514e7e2bdb870168195cb7522ad43c13ee4e3899da4 packages/model-proxy/tests/config-unit.test.mjs
|
||||
87065f2ce53f6a793e17c2a7feff1c9e3cf93f5ef61ade4a35ffd2afb2cb17cb packages/model-proxy/tests/fetch.test.mjs
|
||||
21c93b87f8145eb584255bc2a126236ee482e4718b6973e6cce2d8e785c77bf4 packages/model-proxy/tests/runner.test.mjs
|
||||
4e496fb3faf639713c2dd2a12f34d6add962a50c520bcd3590f0590d0563b9b7 packages/model-proxy/tests/settings.test.mjs
|
||||
c2c8ab246ecb5e73faa39b98fbbced5740e7c1abf352d8865ff2028ff7c36e3a scripts/bus-service.sh
|
||||
1aaf56914ea0ba3793f96cace9a774f2076065296603d6baad653fa36c4c90c2 scripts/instance.sh
|
||||
96dfe299b3b9041b42ef27fa6a37d444e735fcefffcb5eefcb1bb390d077e46e scripts/mosaic
|
||||
98a86764925182c2487932257431770053efe758a87dedaf494ccc8d2473b4e3 scripts/mosaic-config.mjs
|
||||
e1d9fd91e3a6eedb3b16ad3145d01ec4f583880f943054b8384ddba6b5ed31ba scripts/proxy-service.sh
|
||||
b96b2f662d2b63e3360bfbd26e453e9fe74953a15d29b2f2beac6deb5a18cf22 scripts/stack-copy.sh
|
||||
@@ -0,0 +1,81 @@
|
||||
# Row 329 P1 review packet — #1827, Vikunja237
|
||||
|
||||
Branch magica/row329, required base8bb5b3c73. Boyd first Codex review,
|
||||
Dewey landing review. BUILD.md carries rulings, acceptance output and gate receipts.
|
||||
This is P1 only; P2-P7 do not ship here.
|
||||
|
||||
## Review focus
|
||||
|
||||
- PIN chain: archive SHA256, extracted executable SHA256 and pinned panel SHA256;
|
||||
manual release-host redirect checks, bounded downloads, no archive path extraction
|
||||
to disk, failed install cleanup, refusal to overwrite a differing target.
|
||||
- Config invariant2: proxy.json is an exclusive sidecar; config.json is never
|
||||
changed. Strict port/path/field validation. A missing sidecar preserves no-proxy
|
||||
behavior; a present invalid/symlink sidecar refuses. Historical no-proxy copies
|
||||
do not import the new package; new pinned copies include its source and PIN.
|
||||
- Human boundary: CLI no-echo double prompt, agent/tester refusal, path-bound
|
||||
human-cli transport, broker #human fence before key handling, async server path.
|
||||
The bus writes private key/config/directories once, with rollback for failures.
|
||||
Public answer is exactly port/binary; neither input nor result key is logged.
|
||||
- Management client: bus holds it after Store's per-root writer lock; no process
|
||||
IPC/verb returns it. node:http addresses numeric loopback directly, never follows
|
||||
redirects, sends management key only as Authorization. GET/PUT v8 list only;
|
||||
receipts contain call/status/12-hex SHA256 key IDs, never values or list bodies.
|
||||
- Unit: default/named names, conditional bus Wants/After only when configured,
|
||||
optional pinned stack copy, hash validation before execution, fixed panel dir,
|
||||
local catalog and no ambient provider/management credentials in child env.
|
||||
- Backward behavior: all old test files and assertions remain byte-identical to
|
||||
base8bb5b3c73. Broad bus/CLI runs and pinned-copy regression are the builder checks;
|
||||
Sage's landing gate covers every other package except queue and all shell suites.
|
||||
|
||||
## Release measurements and acceptance limits
|
||||
|
||||
CLIProxyAPI8.0.42, not8.0.27; panel1.26.7.
|
||||
Archive: 1e10566fe0042ed5a9b80306cf296bf86a83de590cd967a8b177988b896c8d31
|
||||
Executable: 74661f8cf949977870231359e8bf4344e07946766a673c08fa25a3e5f72fc95e
|
||||
Panel: 8c9c6b7d3fb311e6aad5d06e1993e53a2d28389e640448a1bc6304ed20b057b5
|
||||
Boyd independently downloads the exact release assets and re-measures them.
|
||||
|
||||
Acceptance only uses fresh scratch roots and unshare-rn, nice19. No host proxy,
|
||||
real management key, real proxy data, real credentials or external upstream call.
|
||||
Full plain text appears in BUILD.md and acceptance-final.txt. Original probe1
|
||||
and its source are retained separately as requested by Sage.
|
||||
|
||||
Empty list is open; models is local; invalid key gets401 with a flat error body.
|
||||
Removed key enforcement had a100ms-scale lag after a successful PUT. ClaudeCode
|
||||
wrong/revoked keys produced no output and timed out45s; no causal claim/shape fix.
|
||||
Per-key model objects get422; no v8 per-client model restrictions found.
|
||||
OAuth start returns separate localhost callbacks; no external OAuth was completed.
|
||||
|
||||
Panel works with explicit /proxy Custom Connection URL and prefix strip in the
|
||||
unsandboxed diagnostic. With the required CSP sandbox it fails localStorage and
|
||||
login; an explicit opaque-origin fetch loses the SameSite=Lax cookie. Those are historical negative acceptance findings, not a working Console
|
||||
forward. Q250 / mos-1606 supersedes the forward: P4 builds the Console's own
|
||||
proxy page. P1's panel/sub-path/sandbox and callback-forward questions are no
|
||||
longer required, and the existing results stay recorded. PIN/fetch are unchanged.
|
||||
Still-required OAuth start redirects are Claude http://localhost:54545/callback
|
||||
and Codex http://localhost:1455/auth/callback. No CORS loosening, unsandboxed
|
||||
forward or panel JS on the Console origin ships. No external OAuth was completed.
|
||||
|
||||
## Gate
|
||||
|
||||
Final source checked with whole model-proxy61/61, bus1018/1018, CLI999pass
|
||||
plus1listed FED R7 skip, webui pinned-copy10/10, config55/55, and the dedicated
|
||||
federation runner1/1 with0skip and cleanup verified. Own offline npm ci ran at
|
||||
root/webui, ignore-scripts. Every test launch used nice19, short shell-created
|
||||
TMPDIR and timeout-k10. gate/FINAL-COUNTS.json maps every test file to its receipt.
|
||||
|
||||
An initial old case1-accept F3 assertion got an extra F7. Mos1604's separate
|
||||
20focused+3whole scratch diagnostics passed179/179 without gate credit. Mos1605
|
||||
allowed one unchanged original rerun; it passed53/53, then the remaining gate
|
||||
completed. F7 remains unexplained (Vikunja625); no old assertion was changed.
|
||||
Sage's landing gate must pass independently.
|
||||
|
||||
A final P1-only fix binds both default units to an explicit MOSAIC_CONFIG when
|
||||
proxy-configured, instead of the proxy using that config and the bus dropping it.
|
||||
Two new P1 tests failed first, then passed; the full package and all seven direct
|
||||
CLI unit-reader test files were run whole on the final tree per sage4251. They
|
||||
all passed. No-proxy rendering stays unchanged. The helper runs through readers.
|
||||
|
||||
MANIFEST.sha256 covers every changed file versus8bb5b3c73 except itself. Release
|
||||
binaries and panel stay outside Git; independent asset measurements are Boyd's.
|
||||
@@ -0,0 +1,30 @@
|
||||
P1 isolated acceptance root /mnt/storage/scratch/tmp/KXZOfD nice 19
|
||||
binary sha256 74661f8cf949977870231359e8bf4344e07946766a673c08fa25a3e5f72fc95e
|
||||
P1 client receipt {"call":"GET /v8/management/config/access/api-keys","status":200,"keyIds":["48eead3cdecf"]}
|
||||
P1 client real API GET count 1
|
||||
P1 client receipt {"call":"PUT /v8/management/config/access/api-keys","status":200,"keyIds":["48eead3cdecf"]}
|
||||
P1 client real API PUT {"ok":true}
|
||||
pinned panel served 200 8c9c6b7d3fb311e6aad5d06e1993e53a2d28389e640448a1bc6304ed20b057b5
|
||||
pinned login flags -claude-login | -codex-login | -no-browser
|
||||
wrong/missing key models wrong {"status":401,"body":"{\"error\":\"Invalid API key\"}"}
|
||||
wrong/missing key models missing {"status":401,"body":"{\"error\":\"Missing API key\"}"}
|
||||
models local 200 upstream delta 0 body length 1739
|
||||
valid messages {"status":200,"body":"{\"id\":\"msg_p1\",\"type\":\"message\",\"role\":\"assistant\",\"model\":\"claude-sonnet-5-5\",\"content\":[{\"type\":\"text\",\"text\":\"hello\"}],\"stop_reason\":\"end_turn\",\"usage\":{\"input_tokens\":1,\"output_tokens\":1}}"} upstream delta 1
|
||||
wrong messages {"status":401,"body":"{\"error\":\"Invalid API key\"}"}
|
||||
initial key list {"status":200,"body":"[\"p1-client\"]"}
|
||||
set empty {"status":200,"body":"{\"config-version\":8,\"status\":\"ok\"}"}
|
||||
empty list settled {"elapsedMs":105,"statuses":[401,200],"body":"[models]"}
|
||||
empty list missing key status 200
|
||||
empty list missing key messages {"status":200,"body":"{\"id\":\"msg_p1\",\"type\":\"message\",\"role\":\"assistant\",\"model\":\"claude-sonnet-5-5\",\"content\":[{\"type\":\"text\",\"text\":\"hello\"}],\"stop_reason\":\"end_turn\",\"usage\":{\"input_tokens\":1,\"output_tokens\":1}}"}
|
||||
restore list {"status":200,"body":"{\"config-version\":8,\"status\":\"ok\"}"}
|
||||
restored list settled wrong key {"elapsedMs":104,"statuses":[200,401],"body":"{\"error\":\"Invalid API key\"}"}
|
||||
revoke client {"status":200,"body":"{\"config-version\":8,\"status\":\"ok\"}"}
|
||||
revoked key settled {"elapsedMs":2,"statuses":[401],"body":"{\"error\":\"Invalid API key\"}"}
|
||||
revoked key models {"status":401,"body":"{\"error\":\"Invalid API key\"}"}
|
||||
revoked messages {"status":401,"body":"{\"error\":\"Invalid API key\"}"}
|
||||
per-key model object attempt {"status":422,"body":"{\"error\":\"invalid_config\",\"message\":\"parse config payload: yaml: unmarshal errors:\\n line 12: cannot unmarshal !!map into string\"}"}
|
||||
final restored list settled {"elapsedMs":2,"statuses":[401],"body":"{\"error\":\"Invalid API key\"}"}
|
||||
v8 key list {"status":200,"body":"[\"p1-client\"]"}
|
||||
oauth start anthropic {"status":200,"body":"{\"state\":\"208bd2a002a312d996f6c5a416ecc311\",\"status\":\"ok\",\"url\":\"https://claude.ai/oauth/authorize?client_id=9d1c250a-e61b-44d9-88ed-5944d1962f5e\\u0026code=true\\u0026code_challenge=BsWT1fuo1kBcP-EySiawhlK-cfN2B62ta6VKP8qvaIU\\u0026code_challenge_method=S256\\u0026redirect_uri=http%3A%2F%2Flocalhost%3A54545%2Fcallback\\u0026response_type=code\\u0026scope=user%3Aprofile+user%3Ainference+user%3Asessions%3Aclaude_code+user%3Amcp_servers+user%3Afile_upload\\u0026state=208bd2a002a312d996f6c5a416ecc311\"}"}
|
||||
oauth start codex {"status":200,"body":"{\"state\":\"fffb20861e7b44a1d70c45a2de1f9b8c\",\"status\":\"ok\",\"url\":\"https://auth.openai.com/oauth/authorize?client_id=app_EMoamEEZ73f0CkXaXp7hrann\\u0026code_challenge=Swdf4fq2oLSpl2K6CQJYbeHw7aC50nby_h0l-O52kqc\\u0026code_challenge_method=S256\\u0026codex_cli_simplified_flow=true\\u0026id_token_add_organizations=true\\u0026prompt=login\\u0026redirect_uri=http%3A%2F%2Flocalhost%3A1455%2Fauth%2Fcallback\\u0026response_type=code\\u0026scope=openid+email+profile+offline_access\\u0026state=fffb20861e7b44a1d70c45a2de1f9b8c\"}"}
|
||||
acceptance probes complete
|
||||
@@ -5,6 +5,7 @@ import http from 'node:http';
|
||||
import { spawn, execFileSync } from 'node:child_process';
|
||||
import { createHash } from 'node:crypto';
|
||||
import { initialConfig } from '../../../../packages/model-proxy/src/settings.mjs';
|
||||
import { ManagementClient } from '../../../../packages/model-proxy/src/client.mjs';
|
||||
const root = process.argv[2], assets = process.argv[3];
|
||||
if (!root?.startsWith('/mnt/storage/scratch/tmp/') || process.env.P1_ISOLATED !== 'yes') throw Error('acceptance requires wrapper');
|
||||
const children=[], servers=[];
|
||||
@@ -33,24 +34,32 @@ try{
|
||||
console.log('binary sha256',createHash('sha256').update(fs.readFileSync(path.join(assets,'release','cli-proxy-api'))).digest('hex'));
|
||||
await serve((q,s)=>{upstreamCalls++;s.setHeader('Content-Type','application/json');s.end(JSON.stringify({id:'msg_p1',type:'message',role:'assistant',model:'claude-sonnet-5-5',content:[{type:'text',text:'hello'}],stop_reason:'end_turn',usage:{input_tokens:1,output_tokens:1}}));},18401);
|
||||
launch(path.join(assets,'release','cli-proxy-api'),['-config',path.join(root,'config.yaml'),'-local-model'],{env:{...env,MANAGEMENT_STATIC_PATH:path.join(root,'static')}});await wait(port);
|
||||
const management=new ManagementClient({baseUrl:`http://127.0.0.1:${port}`,key:'p1-management',receipt:entry=>console.log('P1 client receipt',JSON.stringify(entry))});
|
||||
console.log('P1 client real API GET count',(await management.getKeys()).length);console.log('P1 client real API PUT',JSON.stringify(await management.putKeys(['p1-client'])));
|
||||
const panelResponse=await request('/management.html',{key:null});console.log('pinned panel served',panelResponse.status,createHash('sha256').update(panelResponse.body).digest('hex'));
|
||||
const cliHelp=launch(path.join(assets,'release','cli-proxy-api'),['-help']);await new Promise(r=>cliHelp.on('close',r));console.log('pinned login flags',fs.readFileSync(path.join(root,`${children.length-1}.stdout`),'utf8').split('\n').filter((l,i,a)=>/-(claude|codex)-login|-no-browser/.test(l)).join(' | '));
|
||||
for(const key of ['wrong',null])console.log('wrong/missing key models',key===null?'missing':'wrong',JSON.stringify(await request('/v1/models',{key})));
|
||||
const before=upstreamCalls;const models=await request('/v1/models');console.log('models local',models.status,'upstream delta',upstreamCalls-before,'body length',models.body.length);
|
||||
const message={model:'claude-sonnet-5-5',max_tokens:32,messages:[{role:'user',content:'hello'}]};
|
||||
const inferenceBefore=upstreamCalls;console.log('valid messages',JSON.stringify(await request('/v1/messages',{method:'POST',body:message})),'upstream delta',upstreamCalls-inferenceBefore);
|
||||
console.log('wrong messages',JSON.stringify(await request('/v1/messages',{method:'POST',key:'wrong',body:message})));
|
||||
console.log('initial key list',JSON.stringify(await request('/v8/management/config/access/api-keys',{key:'p1-management'})));
|
||||
console.log('set empty',JSON.stringify(await request('/v8/management/config/access/api-keys',{method:'PUT',key:'p1-management',body:[]})));
|
||||
await enforce('empty list settled',null,200);
|
||||
console.log('empty list missing key status',(await request('/v1/models',{key:null})).status);
|
||||
console.log('empty list missing key messages',JSON.stringify(await request('/v1/messages',{method:'POST',key:null,body:message})));
|
||||
console.log('restore list',JSON.stringify(await request('/v8/management/config/access/api-keys',{method:'PUT',key:'p1-management',body:['p1-client']})));
|
||||
await enforce('restored list settled wrong key','wrong',401);
|
||||
console.log('revoke client',JSON.stringify(await request('/v8/management/config/access/api-keys',{method:'PUT',key:'p1-management',body:['p1-sentinel']})));
|
||||
await enforce('revoked key settled','p1-client',401);
|
||||
console.log('revoked key models',JSON.stringify(await request('/v1/models',{key:'p1-client'})));
|
||||
console.log('revoked messages',JSON.stringify(await request('/v1/messages',{method:'POST',key:'p1-client',body:message})));
|
||||
console.log('per-key model object attempt',JSON.stringify(await request('/v8/management/config/access/api-keys',{method:'PUT',key:'p1-management',body:[{key:'p1-limited',models:['claude-sonnet-5-5']}]})));
|
||||
await request('/v8/management/config/access/api-keys',{method:'PUT',key:'p1-management',body:['p1-client']});
|
||||
await enforce('final restored list settled','wrong',401);
|
||||
console.log('v8 key list',JSON.stringify(await request('/v8/management/config/access/api-keys',{key:'p1-management'})));
|
||||
for(const provider of ['anthropic','codex'])console.log('oauth start',provider,JSON.stringify(await request(`/v0/management/${provider}-auth-url?is_webui=true`,{key:'p1-management'})));
|
||||
if(process.argv[4]!=='api-only'){
|
||||
await serve((q,s)=>{
|
||||
forwarded.push({method:q.method,path:q.url,origin:q.headers.origin??null,cookie:!!q.headers.cookie});
|
||||
if(sandbox)s.setHeader('Content-Security-Policy','sandbox allow-scripts allow-forms');
|
||||
@@ -89,5 +98,6 @@ try{
|
||||
const c=launch('/usr/bin/timeout',['-k','2','45','/home/jwoltje/.local/bin/claude','-p','Reply hello.','--model','claude-sonnet-5-5','--output-format','text','--restricted','--tools','','--permission-mode','dontAsk','--settings',settings,'--strict-mcp-config','--mcp-config',mcp,'--disable-slash-commands'],{env:{...env,HOME:chome,ANTHROPIC_BASE_URL:`http://127.0.0.1:${port}`,ANTHROPIC_AUTH_TOKEN:key,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:'1'}});
|
||||
const index=children.length-1;const result=await new Promise(r=>c.on('close',(code,signal)=>r({code,signal})));console.log('Claude Code wrong/revoked key',key,JSON.stringify(result),'output',JSON.stringify(fs.readFileSync(path.join(root,`${index}.stdout`),'utf8').slice(0,2000)));
|
||||
}
|
||||
}
|
||||
console.log('acceptance probes complete');
|
||||
}finally{for(const child of children)child.kill('SIGTERM');for(const s of servers)s.closeAllConnections?.();for(const s of servers)s.close();}
|
||||
@@ -3,10 +3,11 @@
|
||||
set -euo pipefail
|
||||
HERE=$(cd "$(dirname "$0")" && pwd)
|
||||
ASSETS=${1:?download root required}
|
||||
MODE=${2:-full}
|
||||
export TMPDIR=$(mktemp -d /mnt/storage/scratch/tmp/XXXXXX)
|
||||
timeout -k 10 240 nice -n $((19 - $(nice))) unshare -rn bash -c '
|
||||
set -e
|
||||
ip link set lo up
|
||||
export P1_ISOLATED=yes
|
||||
exec node "$1/acceptance.mjs" "$TMPDIR" "$2"
|
||||
' bash "$HERE" "$ASSETS"
|
||||
exec node "$1/acceptance.mjs" "$TMPDIR" "$2" "$3"
|
||||
' bash "$HERE" "$ASSETS" "$MODE"
|
||||
@@ -0,0 +1,14 @@
|
||||
[2026-10-24 14:25:55] [0c57327f] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:25:56] [f8b1d5d3] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:25:57] [b6b42520] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:25:59] [fdef34a5] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:26:04] [7dfebc40] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:26:12] [ef0c1281] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:26:29] [a57da9d8] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:26:40] [4573e4c4] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:26:41] [4c48fe38] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:26:42] [e28d6dac] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:26:44] [30d5a01e] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:26:48] [8ad4b4b7] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:26:57] [11396dd0] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
[2026-10-24 14:27:14] [1cdba68c] [warn ] [gin_logger.go:111] 401 | 0s | 127.0.0.1 | POST "/v1/messages?beta=true"
|
||||
@@ -0,0 +1,19 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/model-proxy.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/bTrsYr
|
||||
launch nice: 19
|
||||
✔ proxy.init only accepts path-bound outside-agent human; refuses agent/tester/reader (22.001114ms)
|
||||
✔ proxy.init proxy-key-invalid (12.495581ms)
|
||||
✔ proxy.init proxy-config-invalid (12.799141ms)
|
||||
✔ proxy.init invalid-request (12.031243ms)
|
||||
✔ proxy.init not-configured (11.470404ms)
|
||||
✔ proxy.init callback error redacts key and maps outcome to named refusal (11.928112ms)
|
||||
✔ socket awaits proxy.init and does not return a Promise object or retain human cap (34.01592ms)
|
||||
✔ proxy-init-failed: extra callback fields cannot return a management key (13.259736ms)
|
||||
ℹ tests 8
|
||||
ℹ suites 0
|
||||
ℹ pass 8
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 223.366823
|
||||
@@ -0,0 +1,20 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/cli/tests/model-proxy.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/bTrsYr
|
||||
launch nice: 19
|
||||
✔ proxy init agent and tester refuse before prompting or transport (1.292032ms)
|
||||
✔ proxy init prompts twice through no-echo seam and sends key only through human transport (1.131391ms)
|
||||
✔ proxy-key-mismatch: confirmation refuses without bus call (0.393465ms)
|
||||
✔ proxy-terminal-required: stdin redirection refuses (0.331981ms)
|
||||
✔ proxy-usage: invalid verb and repeated flags refuse (0.565751ms)
|
||||
✔ proxy-config-invalid: port 8317 refuses before prompting (0.347143ms)
|
||||
✔ proxy-key-invalid: empty prompt refuses without printing input (0.381729ms)
|
||||
✔ real no-echo prompt restores terminal state and never writes the key (0.910677ms)
|
||||
✔ real no-echo prompt ctrl-C refuses and restores echo (0.419524ms)
|
||||
ℹ tests 9
|
||||
ℹ suites 0
|
||||
ℹ pass 9
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 161.669135
|
||||
@@ -0,0 +1,27 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/model-proxy/tests/client.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/bTrsYr
|
||||
launch nice: 19
|
||||
✔ proxy-client-invalid: https://127.0.0.1:18318 (1.107341ms)
|
||||
✔ proxy-client-invalid: http://example.com:18318 (0.130074ms)
|
||||
✔ proxy-client-invalid: http://localhost:18318 (0.081768ms)
|
||||
✔ proxy-client-invalid: http://127.0.0.1:8317 (0.083355ms)
|
||||
✔ proxy-client-invalid: http://user:[email protected]:18318 (0.093861ms)
|
||||
✔ proxy-client-invalid: http://127.0.0.1:18318/path (0.083517ms)
|
||||
✔ client GET/PUT v8 only, Authorization header, receipt IDs without values or bodies (21.421201ms)
|
||||
✔ proxy-client-refused (3.58892ms)
|
||||
✔ proxy-client-response (2.46659ms)
|
||||
✔ proxy-client-redirect (1.398621ms)
|
||||
✔ proxy-client-down: transport errors redact details (1.169076ms)
|
||||
✔ proxy-client-invalid: PUT rejects object key records and empty strings locally (0.209769ms)
|
||||
✔ proxy-management-key-invalid: missing, symlink and public key file refuse without values (1.213052ms)
|
||||
✔ bus management-key loader supplies a private fixture key without exposing it on the client (0.58163ms)
|
||||
✔ proxy-client-response: truncated response remains a redacted named refusal (12.893923ms)
|
||||
✔ management client ignores ambient fetch dispatchers (1.614034ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 16
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 119.49347
|
||||
@@ -0,0 +1,24 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/model-proxy/tests/config-unit.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/bTrsYr
|
||||
launch nice: 19
|
||||
✔ loader proxy absent is byte-compatible; present validates sidecar and preserves config.json (86.134497ms)
|
||||
✔ proxy-config-invalid: loader refuses an unknown sidecar key and binary outside pinned install (143.321377ms)
|
||||
✔ proxy unit and bus dependency render default and named instance only when configured (276.591632ms)
|
||||
✔ proxy-not-configured: runner and unit render refuse absent sidecar (104.640115ms)
|
||||
✔ proxy-install-invalid: unit runner refuses tampered executable before spawning (100.758568ms)
|
||||
✔ proxy-unit-usage (49.940866ms)
|
||||
✔ proxy-unit-exists (52.610857ms)
|
||||
✔ proxy-unit-dropin (53.983874ms)
|
||||
✔ proxy-unit-path (59.327826ms)
|
||||
✔ proxy-config-invalid: instance selection also refuses invalid present sidecar (52.506423ms)
|
||||
✔ explicit unit install writes only a scratch user unit and refuses a repeat (107.271134ms)
|
||||
✔ proxy-unit-copy: renderer refuses an unknown or unpinned stack copy (51.244228ms)
|
||||
✔ historical no-proxy config loader works without new package dependency (25.55588ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1244.732304
|
||||
@@ -0,0 +1,19 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/model-proxy/tests/fetch.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/bTrsYr
|
||||
launch nice: 19
|
||||
✔ verified fetch installs binary and panel together; identical repeat is idempotent (19.691069ms)
|
||||
✔ proxy-fetch-hash: either bad asset installs nothing (7.191229ms)
|
||||
✔ proxy-fetch-existing: conflicting install remains byte-identical (8.884597ms)
|
||||
✔ proxy-fetch-archive: missing executable in verified archive refuses without install (9.743912ms)
|
||||
✔ proxy-fetch-url: production downloader permits pinned GitHub release URLs only (0.70142ms)
|
||||
✔ local fake server covers redirect off allowlist and HTTP failure without external fetch (24.613441ms)
|
||||
✔ proxy-fetch-existing: extra content in an existing install refuses (15.063909ms)
|
||||
✔ local fake file server success and same-origin redirect return exact bytes (11.564505ms)
|
||||
ℹ tests 8
|
||||
ℹ suites 0
|
||||
ℹ pass 8
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 177.170425
|
||||
@@ -0,0 +1,14 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/model-proxy/tests/runner.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/bTrsYr
|
||||
launch nice: 19
|
||||
✔ runner verifies before spawning and supplies pinned panel and local model without ambient secrets (1.344665ms)
|
||||
✔ proxy-start-failed: sync and async spawn failures report code only (0.539424ms)
|
||||
✔ hash refusal prevents spawn and ordinary exit status is propagated (0.256786ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 73.721032
|
||||
@@ -0,0 +1,30 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/model-proxy/tests/settings.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/bTrsYr
|
||||
launch nice: 19
|
||||
✔ absent proxy settings preserves no-proxy contract; present settings validate pinned path (1.846201ms)
|
||||
✔ proxy-config-invalid: unknown (0.460617ms)
|
||||
✔ proxy-config-invalid: missing (0.174041ms)
|
||||
✔ proxy-config-invalid: low (0.65088ms)
|
||||
✔ proxy-config-invalid: high (0.177839ms)
|
||||
✔ proxy-config-invalid: host (0.162754ms)
|
||||
✔ proxy-config-invalid: string (0.230744ms)
|
||||
✔ proxy-config-invalid: binary (0.17845ms)
|
||||
✔ proxy-config-invalid: null (0.168819ms)
|
||||
✔ proxy-config-invalid: malformed or symlink settings refuse (0.67631ms)
|
||||
✔ proxy-install-missing: init requires fetch before any state is written (0.767812ms)
|
||||
✔ proxy-install-invalid: binary or panel mutation refuses (0.507922ms)
|
||||
✔ proxy-key-invalid: empty, multiline and too-long key refuse before creation (0.893913ms)
|
||||
✔ exclusive initialization writes private sentinel config, never rewrites config.json or exposes key (7.461291ms)
|
||||
✔ proxy-port-in-use: init refuses occupied loopback without files (2.130005ms)
|
||||
✔ proxy-init-busy: existing lock refuses without touching it (1.273547ms)
|
||||
✔ proxy-init-failed: symlink or non-private secrets directory refuses without changing it (0.868646ms)
|
||||
✔ proxy-already-initialized: each existing target is preserved and never followed (1.265115ms)
|
||||
✔ proxy-install-invalid: modified panel also refuses (0.371958ms)
|
||||
ℹ tests 19
|
||||
ℹ suites 0
|
||||
ℹ pass 19
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 94.08478
|
||||
@@ -0,0 +1,6 @@
|
||||
command: ["npm", "ci", "--offline", "--ignore-scripts", "--no-audit", "--no-fund"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/OS9Bg5
|
||||
launch nice: 19
|
||||
npm warn deprecated [email protected]: Use your platform's native DOMException instead
|
||||
|
||||
added 128 packages in 2s
|
||||
@@ -0,0 +1,5 @@
|
||||
command: ["npm", "ci", "--offline", "--ignore-scripts", "--no-audit", "--no-fund"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/OS9Bg5
|
||||
launch nice: 19
|
||||
|
||||
added 2 packages in 222ms
|
||||
@@ -0,0 +1,9 @@
|
||||
{"label": "npm-root", "rc": 0, "nice": 19, "seconds": 1.76, "log": "agents/magica/work/queue-329/gate/npm-root.txt"}
|
||||
{"label": "npm-webui", "rc": 0, "nice": 19, "seconds": 0.27, "log": "agents/magica/work/queue-329/gate/npm-webui.txt"}
|
||||
{"label": "model-proxy-client.test", "rc": 0, "nice": 19, "seconds": 0.15, "log": "agents/magica/work/queue-329/gate/model-proxy-client.test.txt"}
|
||||
{"label": "model-proxy-config-unit.test", "rc": 0, "nice": 19, "seconds": 1.29, "log": "agents/magica/work/queue-329/gate/model-proxy-config-unit.test.txt"}
|
||||
{"label": "model-proxy-fetch.test", "rc": 0, "nice": 19, "seconds": 0.21, "log": "agents/magica/work/queue-329/gate/model-proxy-fetch.test.txt"}
|
||||
{"label": "model-proxy-runner.test", "rc": 0, "nice": 19, "seconds": 0.11, "log": "agents/magica/work/queue-329/gate/model-proxy-runner.test.txt"}
|
||||
{"label": "model-proxy-settings.test", "rc": 0, "nice": 19, "seconds": 0.12, "log": "agents/magica/work/queue-329/gate/model-proxy-settings.test.txt"}
|
||||
{"label": "bus-model-proxy.test", "rc": 0, "nice": 19, "seconds": 0.25, "log": "agents/magica/work/queue-329/gate/bus-model-proxy.test.txt"}
|
||||
{"label": "cli-model-proxy.test", "rc": 0, "nice": 19, "seconds": 0.19, "log": "agents/magica/work/queue-329/gate/cli-model-proxy.test.txt"}
|
||||
@@ -0,0 +1,43 @@
|
||||
# Reconcile final per-file evidence only; executes no tests.
|
||||
from pathlib import Path
|
||||
import json,re
|
||||
BASE=Path(__file__).resolve().parent
|
||||
REPO=BASE.parents[3]
|
||||
OUT=BASE/'gate'
|
||||
CLI_READERS={'host.test','stack-copy.test','stack-instances.test','stack-release-external.test','stack-release.test','stack-upgrade.test','verbs.test'}
|
||||
all_receipts=[]
|
||||
for file in [OUT/'runs.jsonl',OUT/'resume-mos1605-runs.jsonl']:
|
||||
all_receipts += [json.loads(line) for line in file.read_text().splitlines()]
|
||||
latest={r['label']:r for r in all_receipts}
|
||||
def read(label):
|
||||
r=latest[label];assert r['rc']==0 and r['nice']==19,r
|
||||
text=(OUT/(label+'.txt')).read_text()
|
||||
result={}
|
||||
for key in ['tests','pass','fail','skipped','cancelled']:
|
||||
m=re.search(r'^(?:ℹ |# )'+key+r' (\d+)',text,re.M);assert m,(label,key);result[key]=int(m.group(1))
|
||||
assert result['fail']==0 and result['cancelled']==0,(label,result)
|
||||
return {'label':label,'log':str((OUT/(label+'.txt')).relative_to(REPO)),'counts':result,'rc':r['rc'],'nice':r['nice']}
|
||||
groups={}
|
||||
for suite in ['model-proxy','bus','cli']:
|
||||
total={k:0 for k in ['tests','pass','fail','skipped','cancelled']};mapping=[]
|
||||
for file in sorted((REPO/f'packages/{suite}/tests').glob('*.test.mjs')):
|
||||
label=f'{suite}-{file.stem}'
|
||||
if suite=='model-proxy' or suite=='cli' and file.stem in CLI_READERS:label='post-unit-fix-'+label
|
||||
if suite=='cli' and file.stem=='case1-accept.test':label='cli-case1-accept.rerun-mos1605'
|
||||
row=read(label);row['file']=str(file.relative_to(REPO));mapping.append(row)
|
||||
for k in total:total[k]+=row['counts'][k]
|
||||
groups[suite]={'files':len(mapping),**total,'mapping':mapping}
|
||||
assert total['skipped']==(1 if suite=='cli' else 0),(suite,total)
|
||||
groups['webui-pinned-copy']=read('post-unit-fix-webui-pinned-copy.test')
|
||||
groups['federation-runner']=read('test-federation-acceptance.sh')
|
||||
assert groups['federation-runner']['counts']['pass']==1 and groups['federation-runner']['counts']['skipped']==0
|
||||
assert latest['test-config.sh']['rc']==0 and 'selftest: 55 passed, 0 failed' in (OUT/'test-config.sh.txt').read_text()
|
||||
groups['config-script']={'rc':0,'pass':55,'fail':0,'log':'agents/magica/work/queue-329/gate/test-config.sh.txt'}
|
||||
groups['history']={'initialRed':'gate/cli-case1-accept.test.txt','diagnostic':'mos-1604:20focused+3whole,179pass,no gate credit','unchangedRerun':'mos-1605:53pass','cause':'F7 unknown; Vikunja625','landingGate':'Sage must independently pass'}
|
||||
(OUT/'FINAL-COUNTS.json').write_text(json.dumps(groups,indent=2)+'\n')
|
||||
lines=[]
|
||||
for suite in ['model-proxy','bus','cli']:
|
||||
g=groups[suite];lines.append(f"{suite}: {g['files']}files {g['tests']}tests {g['pass']}pass {g['fail']}fail {g['skipped']}skip {g['cancelled']}cancel")
|
||||
lines += ['webui pinned-copy:10/10; config:55/55; federation runner:1/1 no skip.','CLI listed skip: packages/cli/tests/federation-acceptance.test.mjs, FED R7 scratch two-instance acceptance; covered by scripts/test-federation-acceptance.sh.','Initial old red and scratch diagnostic are preserved, not included in final pass totals.','One unchanged original rerun authorized by mos-1605 passed53/53; final unit-reader checks per sage-4251 all pass.','Sage landing gate must independently be green (mos-1583).']
|
||||
(OUT/'FINAL-COUNTS.txt').write_text('\n'.join(lines)+'\n')
|
||||
print('\n'.join(lines))
|
||||
@@ -0,0 +1,6 @@
|
||||
{"label": "post-unit-fix-cli-host.test", "rc": 0, "nice": 19, "begin": {"utc": "2026-10-24T20:39:03.617+00:00", "load1": "2.07"}, "end": {"utc": "2026-10-24T20:39:15.879+00:00", "load1": "2.05"}, "seconds": 12.262, "counts": {"tests": 43, "pass": 43, "fail": 0, "skipped": 0, "cancelled": 0}, "failure_events": [], "log": "agents/magica/work/queue-329/gate/post-unit-fix-cli-host.test.txt"}
|
||||
{"label": "post-unit-fix-cli-stack-release-external.test", "rc": 0, "nice": 19, "begin": {"utc": "2026-10-24T20:39:15.880+00:00", "load1": "2.05"}, "end": {"utc": "2026-10-24T20:40:39.646+00:00", "load1": "3.19"}, "seconds": 83.766, "counts": {"tests": 25, "pass": 25, "fail": 0, "skipped": 0, "cancelled": 0}, "failure_events": [], "log": "agents/magica/work/queue-329/gate/post-unit-fix-cli-stack-release-external.test.txt"}
|
||||
{"label": "post-unit-fix-cli-stack-release.test", "rc": 0, "nice": 19, "begin": {"utc": "2026-10-24T20:40:39.648+00:00", "load1": "3.19"}, "end": {"utc": "2026-10-24T20:52:43.095+00:00", "load1": "6.67"}, "seconds": 723.448, "counts": {"tests": 224, "pass": 224, "fail": 0, "skipped": 0, "cancelled": 0}, "failure_events": [], "log": "agents/magica/work/queue-329/gate/post-unit-fix-cli-stack-release.test.txt"}
|
||||
{"label": "post-unit-fix-cli-stack-upgrade.test", "rc": 0, "nice": 19, "begin": {"utc": "2026-10-24T20:52:43.099+00:00", "load1": "6.67"}, "end": {"utc": "2026-10-24T20:54:20.710+00:00", "load1": "7.47"}, "seconds": 97.612, "counts": {"tests": 21, "pass": 21, "fail": 0, "skipped": 0, "cancelled": 0}, "failure_events": [], "log": "agents/magica/work/queue-329/gate/post-unit-fix-cli-stack-upgrade.test.txt"}
|
||||
{"label": "post-unit-fix-cli-verbs.test", "rc": 0, "nice": 19, "begin": {"utc": "2026-10-24T20:54:20.712+00:00", "load1": "7.47"}, "end": {"utc": "2026-10-24T20:54:24.299+00:00", "load1": "7.47"}, "seconds": 3.587, "counts": {"tests": 9, "pass": 9, "fail": 0, "skipped": 0, "cancelled": 0}, "failure_events": [], "log": "agents/magica/work/queue-329/gate/post-unit-fix-cli-verbs.test.txt"}
|
||||
Final five reader files complete.
|
||||
@@ -0,0 +1,125 @@
|
||||
{"label": "model-proxy-client.test", "rc": 0, "nice": 19, "seconds": 0.15, "log": "agents/magica/work/queue-329/gate/model-proxy-client.test.txt"}
|
||||
{"label": "model-proxy-config-unit.test", "rc": 0, "nice": 19, "seconds": 1.38, "log": "agents/magica/work/queue-329/gate/model-proxy-config-unit.test.txt"}
|
||||
{"label": "model-proxy-fetch.test", "rc": 0, "nice": 19, "seconds": 0.25, "log": "agents/magica/work/queue-329/gate/model-proxy-fetch.test.txt"}
|
||||
{"label": "model-proxy-runner.test", "rc": 0, "nice": 19, "seconds": 0.12, "log": "agents/magica/work/queue-329/gate/model-proxy-runner.test.txt"}
|
||||
{"label": "model-proxy-settings.test", "rc": 0, "nice": 19, "seconds": 0.16, "log": "agents/magica/work/queue-329/gate/model-proxy-settings.test.txt"}
|
||||
{"label": "bus-access-revoke.test", "rc": 0, "nice": 19, "seconds": 0.54, "log": "agents/magica/work/queue-329/gate/bus-access-revoke.test.txt"}
|
||||
{"label": "bus-account-migration.test", "rc": 0, "nice": 19, "seconds": 0.44, "log": "agents/magica/work/queue-329/gate/bus-account-migration.test.txt"}
|
||||
{"label": "bus-address.test", "rc": 0, "nice": 19, "seconds": 0.1, "log": "agents/magica/work/queue-329/gate/bus-address.test.txt"}
|
||||
{"label": "bus-agents.test", "rc": 0, "nice": 19, "seconds": 0.48, "log": "agents/magica/work/queue-329/gate/bus-agents.test.txt"}
|
||||
{"label": "bus-approval-binding.test", "rc": 0, "nice": 19, "seconds": 0.3, "log": "agents/magica/work/queue-329/gate/bus-approval-binding.test.txt"}
|
||||
{"label": "bus-broker.test", "rc": 0, "nice": 19, "seconds": 0.49, "log": "agents/magica/work/queue-329/gate/bus-broker.test.txt"}
|
||||
{"label": "bus-business.test", "rc": 0, "nice": 19, "seconds": 0.1, "log": "agents/magica/work/queue-329/gate/bus-business.test.txt"}
|
||||
{"label": "bus-channel-proof.test", "rc": 0, "nice": 19, "seconds": 0.6, "log": "agents/magica/work/queue-329/gate/bus-channel-proof.test.txt"}
|
||||
{"label": "bus-chief-of-staff.test", "rc": 0, "nice": 19, "seconds": 2.73, "log": "agents/magica/work/queue-329/gate/bus-chief-of-staff.test.txt"}
|
||||
{"label": "bus-citation-availability.test", "rc": 0, "nice": 19, "seconds": 5.36, "log": "agents/magica/work/queue-329/gate/bus-citation-availability.test.txt"}
|
||||
{"label": "bus-citation-guard.test", "rc": 0, "nice": 19, "seconds": 1.08, "log": "agents/magica/work/queue-329/gate/bus-citation-guard.test.txt"}
|
||||
{"label": "bus-citation-runtime.test", "rc": 0, "nice": 19, "seconds": 0.31, "log": "agents/magica/work/queue-329/gate/bus-citation-runtime.test.txt"}
|
||||
{"label": "bus-comment-cursors.test", "rc": 0, "nice": 19, "seconds": 0.15, "log": "agents/magica/work/queue-329/gate/bus-comment-cursors.test.txt"}
|
||||
{"label": "bus-comment-migration.test", "rc": 0, "nice": 19, "seconds": 0.65, "log": "agents/magica/work/queue-329/gate/bus-comment-migration.test.txt"}
|
||||
{"label": "bus-console-decide.test", "rc": 0, "nice": 19, "seconds": 0.87, "log": "agents/magica/work/queue-329/gate/bus-console-decide.test.txt"}
|
||||
{"label": "bus-creative.test", "rc": 0, "nice": 19, "seconds": 0.41, "log": "agents/magica/work/queue-329/gate/bus-creative.test.txt"}
|
||||
{"label": "bus-credential-claim.test", "rc": 0, "nice": 19, "seconds": 0.16, "log": "agents/magica/work/queue-329/gate/bus-credential-claim.test.txt"}
|
||||
{"label": "bus-credential-status.test", "rc": 0, "nice": 19, "seconds": 0.37, "log": "agents/magica/work/queue-329/gate/bus-credential-status.test.txt"}
|
||||
{"label": "bus-credential-store.test", "rc": 0, "nice": 19, "seconds": 0.17, "log": "agents/magica/work/queue-329/gate/bus-credential-store.test.txt"}
|
||||
{"label": "bus-credential-verbs.test", "rc": 0, "nice": 19, "seconds": 0.34, "log": "agents/magica/work/queue-329/gate/bus-credential-verbs.test.txt"}
|
||||
{"label": "bus-credentials.test", "rc": 0, "nice": 19, "seconds": 0.11, "log": "agents/magica/work/queue-329/gate/bus-credentials.test.txt"}
|
||||
{"label": "bus-csuite-messaging.test", "rc": 0, "nice": 19, "seconds": 0.75, "log": "agents/magica/work/queue-329/gate/bus-csuite-messaging.test.txt"}
|
||||
{"label": "bus-daily-quota-runtime.test", "rc": 0, "nice": 19, "seconds": 0.4, "log": "agents/magica/work/queue-329/gate/bus-daily-quota-runtime.test.txt"}
|
||||
{"label": "bus-decision-close.test", "rc": 0, "nice": 19, "seconds": 0.39, "log": "agents/magica/work/queue-329/gate/bus-decision-close.test.txt"}
|
||||
{"label": "bus-decision-route.test", "rc": 0, "nice": 19, "seconds": 0.3, "log": "agents/magica/work/queue-329/gate/bus-decision-route.test.txt"}
|
||||
{"label": "bus-decisions.test", "rc": 0, "nice": 19, "seconds": 0.47, "log": "agents/magica/work/queue-329/gate/bus-decisions.test.txt"}
|
||||
{"label": "bus-end-launch.test", "rc": 0, "nice": 19, "seconds": 0.4, "log": "agents/magica/work/queue-329/gate/bus-end-launch.test.txt"}
|
||||
{"label": "bus-fire-revokes-grants.test", "rc": 0, "nice": 19, "seconds": 4.03, "log": "agents/magica/work/queue-329/gate/bus-fire-revokes-grants.test.txt"}
|
||||
{"label": "bus-gitea-grant-docker.test", "rc": 0, "nice": 19, "seconds": 26.18, "log": "agents/magica/work/queue-329/gate/bus-gitea-grant-docker.test.txt"}
|
||||
{"label": "bus-gitea-grant.test", "rc": 0, "nice": 19, "seconds": 11.98, "log": "agents/magica/work/queue-329/gate/bus-gitea-grant.test.txt"}
|
||||
{"label": "bus-gitea-migration.test", "rc": 0, "nice": 19, "seconds": 0.44, "log": "agents/magica/work/queue-329/gate/bus-gitea-migration.test.txt"}
|
||||
{"label": "bus-grant-enroll.test", "rc": 0, "nice": 19, "seconds": 1.81, "log": "agents/magica/work/queue-329/gate/bus-grant-enroll.test.txt"}
|
||||
{"label": "bus-grant-executor.test", "rc": 0, "nice": 19, "seconds": 22.58, "log": "agents/magica/work/queue-329/gate/bus-grant-executor.test.txt"}
|
||||
{"label": "bus-grant-host.test", "rc": 0, "nice": 19, "seconds": 0.46, "log": "agents/magica/work/queue-329/gate/bus-grant-host.test.txt"}
|
||||
{"label": "bus-grant-migration.test", "rc": 0, "nice": 19, "seconds": 0.51, "log": "agents/magica/work/queue-329/gate/bus-grant-migration.test.txt"}
|
||||
{"label": "bus-grant-scope-runtime.test", "rc": 0, "nice": 19, "seconds": 0.24, "log": "agents/magica/work/queue-329/gate/bus-grant-scope-runtime.test.txt"}
|
||||
{"label": "bus-grant-scope.test", "rc": 0, "nice": 19, "seconds": 1.36, "log": "agents/magica/work/queue-329/gate/bus-grant-scope.test.txt"}
|
||||
{"label": "bus-hard-waits.test", "rc": 0, "nice": 19, "seconds": 1.57, "log": "agents/magica/work/queue-329/gate/bus-hard-waits.test.txt"}
|
||||
{"label": "bus-host-run.test", "rc": 0, "nice": 19, "seconds": 14.99, "log": "agents/magica/work/queue-329/gate/bus-host-run.test.txt"}
|
||||
{"label": "bus-host-tools.test", "rc": 0, "nice": 19, "seconds": 3.94, "log": "agents/magica/work/queue-329/gate/bus-host-tools.test.txt"}
|
||||
{"label": "bus-human.test", "rc": 0, "nice": 19, "seconds": 0.1, "log": "agents/magica/work/queue-329/gate/bus-human.test.txt"}
|
||||
{"label": "bus-instances-verb.test", "rc": 0, "nice": 19, "seconds": 0.33, "log": "agents/magica/work/queue-329/gate/bus-instances-verb.test.txt"}
|
||||
{"label": "bus-interpreter.test", "rc": 0, "nice": 19, "seconds": 0.15, "log": "agents/magica/work/queue-329/gate/bus-interpreter.test.txt"}
|
||||
{"label": "bus-land.test", "rc": 0, "nice": 19, "seconds": 0.97, "log": "agents/magica/work/queue-329/gate/bus-land.test.txt"}
|
||||
{"label": "bus-launch-notice.test", "rc": 0, "nice": 19, "seconds": 0.32, "log": "agents/magica/work/queue-329/gate/bus-launch-notice.test.txt"}
|
||||
{"label": "bus-launcher-released.test", "rc": 0, "nice": 19, "seconds": 0.25, "log": "agents/magica/work/queue-329/gate/bus-launcher-released.test.txt"}
|
||||
{"label": "bus-library-credential.test", "rc": 0, "nice": 19, "seconds": 1.48, "log": "agents/magica/work/queue-329/gate/bus-library-credential.test.txt"}
|
||||
{"label": "bus-library-lookups.test", "rc": 0, "nice": 19, "seconds": 1.31, "log": "agents/magica/work/queue-329/gate/bus-library-lookups.test.txt"}
|
||||
{"label": "bus-library-sync.test", "rc": 0, "nice": 19, "seconds": 6.95, "log": "agents/magica/work/queue-329/gate/bus-library-sync.test.txt"}
|
||||
{"label": "bus-library.test", "rc": 0, "nice": 19, "seconds": 0.72, "log": "agents/magica/work/queue-329/gate/bus-library.test.txt"}
|
||||
{"label": "bus-lifecycle-revoke.test", "rc": 0, "nice": 19, "seconds": 0.8, "log": "agents/magica/work/queue-329/gate/bus-lifecycle-revoke.test.txt"}
|
||||
{"label": "bus-lifecycle-verbs.test", "rc": 0, "nice": 19, "seconds": 0.6, "log": "agents/magica/work/queue-329/gate/bus-lifecycle-verbs.test.txt"}
|
||||
{"label": "bus-limit-checks.test", "rc": 0, "nice": 19, "seconds": 0.35, "log": "agents/magica/work/queue-329/gate/bus-limit-checks.test.txt"}
|
||||
{"label": "bus-limit-stop.test", "rc": 0, "nice": 19, "seconds": 0.35, "log": "agents/magica/work/queue-329/gate/bus-limit-stop.test.txt"}
|
||||
{"label": "bus-limits-runtime.test", "rc": 0, "nice": 19, "seconds": 0.52, "log": "agents/magica/work/queue-329/gate/bus-limits-runtime.test.txt"}
|
||||
{"label": "bus-limits.test", "rc": 0, "nice": 19, "seconds": 0.36, "log": "agents/magica/work/queue-329/gate/bus-limits.test.txt"}
|
||||
{"label": "bus-message-citation.test", "rc": 0, "nice": 19, "seconds": 0.21, "log": "agents/magica/work/queue-329/gate/bus-message-citation.test.txt"}
|
||||
{"label": "bus-message-filter.test", "rc": 0, "nice": 19, "seconds": 0.61, "log": "agents/magica/work/queue-329/gate/bus-message-filter.test.txt"}
|
||||
{"label": "bus-messages.test", "rc": 0, "nice": 19, "seconds": 0.56, "log": "agents/magica/work/queue-329/gate/bus-messages.test.txt"}
|
||||
{"label": "bus-messaging.test", "rc": 0, "nice": 19, "seconds": 0.6, "log": "agents/magica/work/queue-329/gate/bus-messaging.test.txt"}
|
||||
{"label": "bus-model-proxy.test", "rc": 0, "nice": 19, "seconds": 0.28, "log": "agents/magica/work/queue-329/gate/bus-model-proxy.test.txt"}
|
||||
{"label": "bus-name-migration.test", "rc": 0, "nice": 19, "seconds": 0.21, "log": "agents/magica/work/queue-329/gate/bus-name-migration.test.txt"}
|
||||
{"label": "bus-names.test", "rc": 0, "nice": 19, "seconds": 0.29, "log": "agents/magica/work/queue-329/gate/bus-names.test.txt"}
|
||||
{"label": "bus-peer-transport.test", "rc": 0, "nice": 19, "seconds": 0.19, "log": "agents/magica/work/queue-329/gate/bus-peer-transport.test.txt"}
|
||||
{"label": "bus-peercred.test", "rc": 0, "nice": 19, "seconds": 0.43, "log": "agents/magica/work/queue-329/gate/bus-peercred.test.txt"}
|
||||
{"label": "bus-plugins-verb.test", "rc": 0, "nice": 19, "seconds": 0.3, "log": "agents/magica/work/queue-329/gate/bus-plugins-verb.test.txt"}
|
||||
{"label": "bus-principal.test", "rc": 0, "nice": 19, "seconds": 0.09, "log": "agents/magica/work/queue-329/gate/bus-principal.test.txt"}
|
||||
{"label": "bus-process.test", "rc": 0, "nice": 19, "seconds": 1.43, "log": "agents/magica/work/queue-329/gate/bus-process.test.txt"}
|
||||
{"label": "bus-processing-runtime.test", "rc": 0, "nice": 19, "seconds": 0.41, "log": "agents/magica/work/queue-329/gate/bus-processing-runtime.test.txt"}
|
||||
{"label": "bus-processing-timeout.test", "rc": 0, "nice": 19, "seconds": 0.28, "log": "agents/magica/work/queue-329/gate/bus-processing-timeout.test.txt"}
|
||||
{"label": "bus-processing-web.test", "rc": 0, "nice": 19, "seconds": 0.14, "log": "agents/magica/work/queue-329/gate/bus-processing-web.test.txt"}
|
||||
{"label": "bus-processing.test", "rc": 0, "nice": 19, "seconds": 0.39, "log": "agents/magica/work/queue-329/gate/bus-processing.test.txt"}
|
||||
{"label": "bus-project-await.test", "rc": 0, "nice": 19, "seconds": 0.18, "log": "agents/magica/work/queue-329/gate/bus-project-await.test.txt"}
|
||||
{"label": "bus-project-files.test", "rc": 0, "nice": 19, "seconds": 0.92, "log": "agents/magica/work/queue-329/gate/bus-project-files.test.txt"}
|
||||
{"label": "bus-project-runtime.test", "rc": 0, "nice": 19, "seconds": 0.41, "log": "agents/magica/work/queue-329/gate/bus-project-runtime.test.txt"}
|
||||
{"label": "bus-publish.test", "rc": 0, "nice": 19, "seconds": 0.8, "log": "agents/magica/work/queue-329/gate/bus-publish.test.txt"}
|
||||
{"label": "bus-reload.test", "rc": 0, "nice": 19, "seconds": 1.04, "log": "agents/magica/work/queue-329/gate/bus-reload.test.txt"}
|
||||
{"label": "bus-replies.test", "rc": 0, "nice": 19, "seconds": 0.35, "log": "agents/magica/work/queue-329/gate/bus-replies.test.txt"}
|
||||
{"label": "bus-requirements.test", "rc": 0, "nice": 19, "seconds": 0.2, "log": "agents/magica/work/queue-329/gate/bus-requirements.test.txt"}
|
||||
{"label": "bus-review.test", "rc": 0, "nice": 19, "seconds": 0.4, "log": "agents/magica/work/queue-329/gate/bus-review.test.txt"}
|
||||
{"label": "bus-revoke-window.test", "rc": 0, "nice": 19, "seconds": 0.25, "log": "agents/magica/work/queue-329/gate/bus-revoke-window.test.txt"}
|
||||
{"label": "bus-room-check.test", "rc": 0, "nice": 19, "seconds": 0.21, "log": "agents/magica/work/queue-329/gate/bus-room-check.test.txt"}
|
||||
{"label": "bus-rooms.test", "rc": 0, "nice": 19, "seconds": 1.1, "log": "agents/magica/work/queue-329/gate/bus-rooms.test.txt"}
|
||||
{"label": "bus-routes-verb.test", "rc": 0, "nice": 19, "seconds": 0.35, "log": "agents/magica/work/queue-329/gate/bus-routes-verb.test.txt"}
|
||||
{"label": "bus-schema.test", "rc": 0, "nice": 19, "seconds": 0.17, "log": "agents/magica/work/queue-329/gate/bus-schema.test.txt"}
|
||||
{"label": "bus-session-clear.test", "rc": 0, "nice": 19, "seconds": 0.87, "log": "agents/magica/work/queue-329/gate/bus-session-clear.test.txt"}
|
||||
{"label": "bus-session-compactions.test", "rc": 0, "nice": 19, "seconds": 0.19, "log": "agents/magica/work/queue-329/gate/bus-session-compactions.test.txt"}
|
||||
{"label": "bus-sessions.test", "rc": 0, "nice": 19, "seconds": 0.65, "log": "agents/magica/work/queue-329/gate/bus-sessions.test.txt"}
|
||||
{"label": "bus-single-use.test", "rc": 0, "nice": 19, "seconds": 0.43, "log": "agents/magica/work/queue-329/gate/bus-single-use.test.txt"}
|
||||
{"label": "bus-spec-migration.test", "rc": 0, "nice": 19, "seconds": 0.23, "log": "agents/magica/work/queue-329/gate/bus-spec-migration.test.txt"}
|
||||
{"label": "bus-spec-review.test", "rc": 0, "nice": 19, "seconds": 1.26, "log": "agents/magica/work/queue-329/gate/bus-spec-review.test.txt"}
|
||||
{"label": "bus-spec-socket.test", "rc": 0, "nice": 19, "seconds": 0.74, "log": "agents/magica/work/queue-329/gate/bus-spec-socket.test.txt"}
|
||||
{"label": "bus-spec.test", "rc": 0, "nice": 19, "seconds": 0.46, "log": "agents/magica/work/queue-329/gate/bus-spec.test.txt"}
|
||||
{"label": "bus-staff-request.test", "rc": 0, "nice": 19, "seconds": 0.46, "log": "agents/magica/work/queue-329/gate/bus-staff-request.test.txt"}
|
||||
{"label": "bus-state.test", "rc": 0, "nice": 19, "seconds": 0.25, "log": "agents/magica/work/queue-329/gate/bus-state.test.txt"}
|
||||
{"label": "bus-store.test", "rc": 0, "nice": 19, "seconds": 0.27, "log": "agents/magica/work/queue-329/gate/bus-store.test.txt"}
|
||||
{"label": "bus-task-page.test", "rc": 0, "nice": 19, "seconds": 1.11, "log": "agents/magica/work/queue-329/gate/bus-task-page.test.txt"}
|
||||
{"label": "bus-task-read.test", "rc": 0, "nice": 19, "seconds": 0.22, "log": "agents/magica/work/queue-329/gate/bus-task-read.test.txt"}
|
||||
{"label": "bus-tasks.test", "rc": 0, "nice": 19, "seconds": 1.18, "log": "agents/magica/work/queue-329/gate/bus-tasks.test.txt"}
|
||||
{"label": "bus-tester-threads.test", "rc": 0, "nice": 19, "seconds": 0.52, "log": "agents/magica/work/queue-329/gate/bus-tester-threads.test.txt"}
|
||||
{"label": "bus-tester-writes.test", "rc": 0, "nice": 19, "seconds": 0.61, "log": "agents/magica/work/queue-329/gate/bus-tester-writes.test.txt"}
|
||||
{"label": "bus-tester.test", "rc": 0, "nice": 19, "seconds": 1.8, "log": "agents/magica/work/queue-329/gate/bus-tester.test.txt"}
|
||||
{"label": "bus-thread-claims.test", "rc": 0, "nice": 19, "seconds": 0.26, "log": "agents/magica/work/queue-329/gate/bus-thread-claims.test.txt"}
|
||||
{"label": "bus-thread-migration.test", "rc": 0, "nice": 19, "seconds": 0.4, "log": "agents/magica/work/queue-329/gate/bus-thread-migration.test.txt"}
|
||||
{"label": "bus-thread-shares.test", "rc": 0, "nice": 19, "seconds": 0.81, "log": "agents/magica/work/queue-329/gate/bus-thread-shares.test.txt"}
|
||||
{"label": "bus-threads.test", "rc": 0, "nice": 19, "seconds": 1.41, "log": "agents/magica/work/queue-329/gate/bus-threads.test.txt"}
|
||||
{"label": "bus-transport.test", "rc": 0, "nice": 19, "seconds": 0.28, "log": "agents/magica/work/queue-329/gate/bus-transport.test.txt"}
|
||||
{"label": "bus-usage-broker.test", "rc": 0, "nice": 19, "seconds": 0.15, "log": "agents/magica/work/queue-329/gate/bus-usage-broker.test.txt"}
|
||||
{"label": "bus-usage-migration.test", "rc": 0, "nice": 19, "seconds": 0.63, "log": "agents/magica/work/queue-329/gate/bus-usage-migration.test.txt"}
|
||||
{"label": "bus-usage-runtime.test", "rc": 0, "nice": 19, "seconds": 0.26, "log": "agents/magica/work/queue-329/gate/bus-usage-runtime.test.txt"}
|
||||
{"label": "bus-usage.test", "rc": 0, "nice": 19, "seconds": 0.38, "log": "agents/magica/work/queue-329/gate/bus-usage.test.txt"}
|
||||
{"label": "bus-user-principal.test", "rc": 0, "nice": 19, "seconds": 1.01, "log": "agents/magica/work/queue-329/gate/bus-user-principal.test.txt"}
|
||||
{"label": "bus-viewer.test", "rc": 0, "nice": 19, "seconds": 0.65, "log": "agents/magica/work/queue-329/gate/bus-viewer.test.txt"}
|
||||
{"label": "bus-web.test", "rc": 0, "nice": 19, "seconds": 1.18, "log": "agents/magica/work/queue-329/gate/bus-web.test.txt"}
|
||||
{"label": "bus-workflow-roles.test", "rc": 0, "nice": 19, "seconds": 0.24, "log": "agents/magica/work/queue-329/gate/bus-workflow-roles.test.txt"}
|
||||
{"label": "cli-access-boot.test", "rc": 0, "nice": 19, "seconds": 0.5, "log": "agents/magica/work/queue-329/gate/cli-access-boot.test.txt"}
|
||||
{"label": "cli-access.test", "rc": 0, "nice": 19, "seconds": 7.0, "log": "agents/magica/work/queue-329/gate/cli-access.test.txt"}
|
||||
{"label": "cli-app.test", "rc": 0, "nice": 19, "seconds": 14.19, "log": "agents/magica/work/queue-329/gate/cli-app.test.txt"}
|
||||
{"label": "cli-boot-status.test", "rc": 0, "nice": 19, "seconds": 1.35, "log": "agents/magica/work/queue-329/gate/cli-boot-status.test.txt"}
|
||||
{"label": "cli-case1-accept.test", "rc": 1, "nice": 19, "seconds": 252.61, "log": "agents/magica/work/queue-329/gate/cli-case1-accept.test.txt"}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,8 @@
|
||||
model-proxy: 5files 61tests 61pass 0fail 0skip 0cancel
|
||||
bus: 115files 1018tests 1018pass 0fail 0skip 0cancel
|
||||
cli: 69files 1000tests 999pass 0fail 1skip 0cancel
|
||||
webui pinned-copy:10/10; config:55/55; federation runner:1/1 no skip.
|
||||
CLI listed skip: packages/cli/tests/federation-acceptance.test.mjs, FED R7 scratch two-instance acceptance; covered by scripts/test-federation-acceptance.sh.
|
||||
Initial old red and scratch diagnostic are preserved, not included in final pass totals.
|
||||
One unchanged original rerun authorized by mos-1605 passed53/53; final unit-reader checks per sage-4251 all pass.
|
||||
Sage landing gate must independently be green (mos-1583).
|
||||
@@ -0,0 +1,8 @@
|
||||
STOP old-test red; no rerun. Sage notified magica-0023/0024; slot returned.
|
||||
Base8bb5b3c73; local WIP9edf45003; no gate-approved tip or final manifest.
|
||||
model-proxy whole:5files59tests59pass0fail0skip0cancel.
|
||||
bus whole:115files1018tests1018pass0fail0skip0cancel.
|
||||
CLI partial:5files124tests123pass1fail0skip0cancel.
|
||||
Old failing file cli/case1-accept.test.mjs:503; assertion507 expected[F3], actual[F3,F7].
|
||||
Exact F7 pm-live FAIL text not retained by the old assertion/fixture.
|
||||
RemainingCLI, webui pinned-copy, config and federation runner NOT RUN.
|
||||
@@ -0,0 +1,21 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/access-revoke.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ R4: the timer sweep after a hand edit ends only the lost user's run; its next call refuses thread-revoked (41.380152ms)
|
||||
✔ R4: an expiry with no write and no request ends the run at the next timer sweep (31.645712ms)
|
||||
✔ R4: a downgrade to viewer is a loss (27.86252ms)
|
||||
✔ R4: another user's request after a hand edit ends the lost user's run, and its own run stays (27.857996ms)
|
||||
✔ R4: a request reads the access file only when its stamp changed, once per change (26.541593ms)
|
||||
✔ R4: access.reload ends the lost runs at once for the human; the tester, a reader, an agent and a user are refused (31.147796ms)
|
||||
✔ R4: threadsState marks revoked: true on the lost user's thread only, a pending message included (21.870168ms)
|
||||
✔ R4: threadsState after an expiry with no write and no sweep ends the claim before it marks the row revoked (26.348758ms)
|
||||
✔ R4: a new run of a revoked thread refuses thread-revoked at bind and at claim; a rebind is allowed (21.621371ms)
|
||||
✔ R4 runtime: a hand edit ends the run at the first timer period, intervalMs is checked, and close stops the timer (66.086813ms)
|
||||
ℹ tests 10
|
||||
ℹ suites 0
|
||||
ℹ pass 10
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 486.559171
|
||||
@@ -0,0 +1,14 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/account-migration.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ REQ-LIMIT-4 3h copy migrates to 3i: every row keeps its seq, the sequence carries over, and only the account CHECK changes (95.053304ms)
|
||||
✔ REQ-LIMIT-4 a 3h→3i step that fails partway leaves the store at 3h with every row, the sequence and the schema intact (119.108829ms)
|
||||
✔ REQ-LIMIT-4 the 3h engine refuses a migrated store, migrating or not, and leaves it as it was (100.026902ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 405.59395
|
||||
@@ -0,0 +1,26 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/address.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ parseAddress: one (1.363093ms)
|
||||
✔ parseAddress: many (0.145271ms)
|
||||
✔ parseAddress: repeat (0.09284ms)
|
||||
✔ parseAddress: plain (0.105676ms)
|
||||
✔ parseAddress: stop (0.106561ms)
|
||||
✔ parseAddress: EOF tag (0.08607ms)
|
||||
✔ parseAddress: EOF last tag (0.090809ms)
|
||||
✔ parseAddress: leading whitespace (0.111837ms)
|
||||
✔ parseAddress: tags only (0.114344ms)
|
||||
✔ parseAddress: empty (0.166059ms)
|
||||
✔ parseAddress: whitespace (0.091288ms)
|
||||
✔ parseAddress: bare at (0.058457ms)
|
||||
✔ parseAddress: punctuation is a name (0.063035ms)
|
||||
✔ parseAddress rejects non-text without coercion (0.364549ms)
|
||||
✔ the mounted address parser has no import dependency (0.260639ms)
|
||||
ℹ tests 15
|
||||
ℹ suites 0
|
||||
ℹ pass 15
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 65.98955
|
||||
@@ -0,0 +1,22 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/agents.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ agents: a held role with nothing on the bus is idle; a role session gets the claim rows unchanged (25.614659ms)
|
||||
✔ agents: working counts what the holder received and has not read; routed alone is not working (24.589808ms)
|
||||
✔ agents: input needed is the role's open decisions routed to the human, gated first, then oldest (41.7694ms)
|
||||
✔ agents: working wins over waiting, and Input needed still shows (19.359692ms)
|
||||
✔ agents: a new holder doesn't inherit what the last one left unread; decisions stay with the role (20.995853ms)
|
||||
✔ agents: state reads only its own business, even for a run name both use (19.57121ms)
|
||||
✔ agents: a message the holder released unread is stranded; the next holder gets nothing and cannot read it (24.000886ms)
|
||||
✔ agents: a message the holder read is not stranded; one the current holder has not read is not listed (20.170242ms)
|
||||
✔ agents: stranded is oldest first and capped at 50 for a role (89.978335ms)
|
||||
✔ agents: stranded is per role and per business (37.663031ms)
|
||||
✔ agents: a message routed to a held role and not yet received is not stranded (14.590846ms)
|
||||
ℹ tests 11
|
||||
ℹ suites 0
|
||||
ℹ pass 11
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 436.258985
|
||||
@@ -0,0 +1,17 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/approval-binding.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ REQ-DEC an approval outlives its run and a broker restart; a new run of the instance consumes it once (41.710387ms)
|
||||
✔ REQ-DEC another instance of the same definition cannot consume an approval, and its refusal consumes nothing (19.497718ms)
|
||||
✔ REQ-DEC REQ-THREAD-1 a thread approval is consumed only by a run holding the same thread (27.383416ms)
|
||||
✔ REQ-DEC a later run of the same instance supersedes an open decision; another instance cannot (25.024167ms)
|
||||
✔ REQ-DEC REQ-THREAD-1 a thread decision is superseded only from the same thread (26.650605ms)
|
||||
✔ REQ-DEC REQ-THREAD-1 a thread instance decision raised before row 121 is not consumed or superseded by any thread run (35.306844ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 263.821277
|
||||
@@ -0,0 +1,27 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/broker.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ launch identity is stamped, payload identity is refused and stale holder cannot send (28.160527ms)
|
||||
✔ decision classes route from policy; gated resolution is human-only, choice and target must match (24.775935ms)
|
||||
✔ claim exclusion, holder release, gated revoke and rerouting to a new holder are atomic (25.967856ms)
|
||||
✔ launch events require a human CLI capability; generic emit cannot forge authority events (16.499518ms)
|
||||
✔ within-role decisions close atomically and invalid options or blocking omissions refuse (17.065443ms)
|
||||
✔ a recommendation that is not exactly one option key refuses invalid-recommendation after the options (26.77801ms)
|
||||
✔ observer capabilities read human inbox but cannot mutate or forge launch identity (17.522306ms)
|
||||
✔ task action subjects and linked decision trail are complete and ordered (26.090635ms)
|
||||
✔ launch binding is durable and reconnecting requires the identical trusted record (14.123369ms)
|
||||
✔ business isolation includes inherited object names and cross-business message references (21.72964ms)
|
||||
✔ authority never transfers between action, target, unresolved or replaced role holder; a later run of the instance keeps it (29.009561ms)
|
||||
✔ task projection uses schema current view, skipping earlier and equal-start polls (16.831676ms)
|
||||
✔ revocation permanently bars the old run from reclaiming first, including after broker restart (23.68242ms)
|
||||
✔ empty message references refuse before storage; refusal-evidence failure stays a typed error (17.253198ms)
|
||||
✔ both arbiters require human resolution when their cross-role route is themselves (24.127811ms)
|
||||
✔ the shipped coder role raises task.reassign as gated to the human; task.scope.change stays cross-role (26.31891ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 16
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 454.983567
|
||||
@@ -0,0 +1,12 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/business.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ S1 adapter takes resolved limits and refs, rejects mismatched instance, never mutates input (1.351264ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 66.536485
|
||||
@@ -0,0 +1,13 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/channel-proof.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ channel conversion preserves the four proof/transport byte baselines and modules cannot import a proof caller (1.544982ms)
|
||||
✔ channel recovery still requires the same shim path and rejects an absent or forged proof (447.427298ms)
|
||||
ℹ tests 2
|
||||
ℹ suites 0
|
||||
ℹ pass 2
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 569.147411
|
||||
@@ -0,0 +1,62 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/chief-of-staff.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
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"}
|
||||
✔ REQ-COS-1, REQ-ROLE-2: the chief of staff ends a run with a reason and no decision, and the reason is logged (38.080512ms)
|
||||
✔ REQ-ROLE-2: a role without role.end still needs a resolved decision to revoke (36.692059ms)
|
||||
✔ REQ-ROLE-2: storage accepts a revoke with a reason or a decision and aborts one with neither (29.636755ms)
|
||||
✔ REQ-ROLE-2: the chief of staff may still cite a decision, and a decision alone is the old path (28.889768ms)
|
||||
✔ REQ-ROLE-2: a role without role.end still ends a run through a resolved decision, which is recorded and has no reason (24.899245ms)
|
||||
✔ REQ-ROLE-2: a reason is required, bounded, and never sent with a decision (27.863549ms)
|
||||
✔ REQ-COS-1: the chief of staff cannot end its own run; its end of the assistant stops the assistant's thread run (37.146698ms)
|
||||
✔ REQ-LIMIT-1, REQ-COS-1: organization.set from the chief of staff reaches the shared writer, named as the actor (36.106056ms)
|
||||
✔ REQ-LIMIT-1, REQ-COS-1: a refused organization.set logs action.refused and no action.allowed, like a refused limits.set (38.181414ms)
|
||||
✔ REQ-LIMIT-1: organization.set is refused for every caller whose role file lacks organization.change (65.180504ms)
|
||||
✔ REQ-LIMIT-1: the chief of staff is logged as allowed, and organization.set takes only the human's keys (62.933955ms)
|
||||
✔ REQ-COS-1: organization.revision answers the revision alone to the chief of staff and spends nothing (45.920422ms)
|
||||
✔ REQ-COS-1, REQ-LIMIT-1: organization.revision is refused for every caller whose role file lacks organization.change (43.86965ms)
|
||||
✔ 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 (118.766757ms)
|
||||
✔ REQ-COS-1: the chief of staff reads the revision, changes the file with it, and reads again after a stale one is refused (92.218132ms)
|
||||
✔ Q169: the chief of staff's change of the assistant is validated, written and logged; a stale or protection-stripping one is refused (90.613694ms)
|
||||
✔ row 65, Q169: the chief's change of the assistant's route runs the routing checks, and a valid one saves as the chief (62.299216ms)
|
||||
✔ 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 (77.112545ms)
|
||||
✔ row 194 T10: the chief's reason end of a kept instance refuses instance-kept, holds the claim and spends nothing (23.62617ms)
|
||||
✔ row 194 T10 (Q2): a role.revoke citing a decision the human resolved still ends a kept run (24.400839ms)
|
||||
✔ 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 (24.867445ms)
|
||||
✔ row 194 T13: organization.set and limits.set refuse the launch, retired, keep and noHire keys before the writer (28.164387ms)
|
||||
✔ row 194 T18 (D2.4): from a chief session veto.set and instances.set refuse, and nothing reaches the writer (28.202648ms)
|
||||
✔ row 194 T8: the chief hires with a reason and no decision, the writer gets the reason as context, and the log names it (24.35139ms)
|
||||
✔ row 194 T11: on a bus with two businesses, the chief of one hires and fires only in its own (21.513334ms)
|
||||
✔ row 194 T8: hire and fire need a reason of 1 to 500 characters and refuse a decision key (33.968103ms)
|
||||
✔ row 194 T8 (sage-1471): only the chief hires or fires; every other role refuses role-not-chief, even one granted the actions (30.960882ms)
|
||||
✔ row 194 T8 (sage-1471): a chief whose authority lacks role.hire or role.fire refuses decision-required before the writer (50.013594ms)
|
||||
✔ 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 (29.650277ms)
|
||||
✔ 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 (899.737224ms)
|
||||
✔ row 194 T8b: a hire without the role files configured refuses not-configured (22.718322ms)
|
||||
✔ row 194 T9: a fire revokes the claim, cancels open requests, asks the launcher to kill the runs, then delists and logs (29.485778ms)
|
||||
✔ 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 (32.00785ms)
|
||||
✔ row 194 T9: fire refusals come before step A and leave the claim, the requests and the file alone (29.839679ms)
|
||||
✔ row 194 T9c: a writer failure at B leaves the instance firing, and the repeat delists and logs once (30.109172ms)
|
||||
✔ row 194 T9c: a failure at C leaves the fire unlogged and the instance firing, and the repeat logs it (31.6214ms)
|
||||
✔ 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 (25.721903ms)
|
||||
✔ row 194 T10: a hire or fire of a kept name refuses instance-kept before the writer (21.85392ms)
|
||||
✔ row 194 T10: a fire the writer's check refuses from the file stops nothing and leaves the instance launchable (22.21371ms)
|
||||
✔ row 194 T18: hire and fire take only their own keys, and a refused call writes nothing (30.277446ms)
|
||||
✔ 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 (71.642071ms)
|
||||
✔ row 194 W-N1: the launcher's take of a launch or regenerate of a firing instance closes it as instance-firing (25.505361ms)
|
||||
ℹ tests 42
|
||||
ℹ suites 0
|
||||
ℹ pass 42
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 2698.094981
|
||||
@@ -0,0 +1,14 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/citation-availability.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5161.066421ms)
|
||||
✔ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (43.159906ms)
|
||||
✔ C2-06 no mirror or freshly initialized empty mirror still means no served citation (40.582404ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 5333.128179
|
||||
@@ -0,0 +1,24 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/citation-guard.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ C2-06 coder send_message guard covers every table refusal; inserts nothing (142.70473ms)
|
||||
✔ C2-06 research send_message guard covers every table refusal; inserts nothing (108.841317ms)
|
||||
✔ C2-06 stored check carries the file author trailer at an unrelated cited tip (70.054283ms)
|
||||
✔ C2-06 supporting cite cannot state canon, including a folder also marked playground (50.896173ms)
|
||||
✔ C2-06 supporting file stores supporting scope and its real agent trailer (65.45905ms)
|
||||
✔ C2-06 check evidence and insert are atomic when storing evidence fails (52.236416ms)
|
||||
✔ C2-06 live limits change both directions; unreadable file keeps checks and exact fixed texts (67.571916ms)
|
||||
✔ C2-06 page store is session-local, caps 20 fetches and 200 KiB, drops at disconnect (92.413874ms)
|
||||
✔ C2-06 transport passes safe capped guard reason; ordinary refusal envelope is byte-identical (69.702901ms)
|
||||
✔ C2-06 non-library businesses retain role.claim shape and unguarded free sends (33.185358ms)
|
||||
✔ C2-06 thread messages carry file/last evidence with one read per distinct path (107.640515ms)
|
||||
✔ C2-06 guarded request snapshot cannot change between check and insert (33.406363ms)
|
||||
✔ C2-06 library.limits.set is human-only and invalid settings leave file and receipts unchanged (50.958739ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1048.766974
|
||||
@@ -0,0 +1,12 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/citation-runtime.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ C2-06 runtime reads changed and unreadable reply limits without restarting (135.176261ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 276.707573
|
||||
@@ -0,0 +1,13 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/comment-cursors.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ comment cursors isolate businesses, move only forward and remain append-only (19.085085ms)
|
||||
✔ only trusted sync writes validated cursors; events and cursor share rollback (13.014178ms)
|
||||
ℹ tests 2
|
||||
ℹ suites 0
|
||||
ℹ pass 2
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 119.198645
|
||||
@@ -0,0 +1,16 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/comment-migration.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ explicit 3b copy migration preserves evidence and opens as 3g; normal startup never migrates (78.189707ms)
|
||||
✔ migration refuses active writers and drifted legacy schemas, with no partial upgrade (106.503826ms)
|
||||
✔ named migration registry chains 3b through 3g to a fixture-only future version in order (101.590215ms)
|
||||
✔ migration refuses mismatched source metadata without changing schema or evidence (34.469523ms)
|
||||
✔ offline command migrates only the supplied fixture root and reports usage errors (201.870639ms)
|
||||
ℹ tests 5
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 615.678705
|
||||
@@ -0,0 +1,23 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/console-decide.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ N4: the console verbs are exactly the preview and the console resolve, and decision.resolve is not one (1.201292ms)
|
||||
✔ bindConsole takes only the business human and a three-string owner subject (32.910796ms)
|
||||
✔ J1, Q188: only a console cap reaches the console verbs, and a console cap reaches nothing else (43.713243ms)
|
||||
✔ preview: the two real answers, a grant summary and the digest, for an open grant request only (34.748721ms)
|
||||
✔ J1, J2: a decision that is not an eligible grant request refuses both console verbs (39.309827ms)
|
||||
✔ N2, J13: a Console approve records via console and the owner, before the executor starts, and the grant runs once (106.473264ms)
|
||||
✔ J15: a Console deny closes with the other key and starts nothing (131.876204ms)
|
||||
✔ J2: approve and deny come from approvalChoice and the options, not a fixed yes and no (154.99608ms)
|
||||
✔ J11: a stale digest or a key outside the two refuses decision-stale and writes nothing (36.022167ms)
|
||||
✔ J14: a via console close with no matching human.input approves nothing (41.435831ms)
|
||||
✔ recordEvent keeps human.input reserved, so no agent forges a console answer (26.883906ms)
|
||||
✔ J7: a console proof over the socket binds a cap for its one call and the reply releases it (93.329244ms)
|
||||
ℹ tests 12
|
||||
ℹ suites 0
|
||||
ℹ pass 12
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 833.501753
|
||||
@@ -0,0 +1,17 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/creative.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
✔ M6: a creative raise refuses decision-not-allowed, cited or not, and no decision row appears; the assistant still raises (40.939682ms)
|
||||
✔ a creative instance sends only to the user and hears only from the user (47.519881ms)
|
||||
✔ M10 through the broker: the chief and the tester are refused on bean, the human's limits.set of its models key works (84.60702ms)
|
||||
✔ row 256 T6 the human deletes a creative instance through the broker; the chief and the tester are refused at the verb (66.904761ms)
|
||||
ℹ tests 4
|
||||
ℹ suites 0
|
||||
ℹ pass 4
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 371.397544
|
||||
@@ -0,0 +1,19 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/credential-claim.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ X4: register adds a store reference to the running bus, and issue then writes the key (16.993892ms)
|
||||
✔ X4: register runs the constructor's reference checks (0.815119ms)
|
||||
✔ X4: register reads no file, so a key file left at the path stays unused, and a live token refuses (10.542395ms)
|
||||
✔ X3, X4: unregister drops an entry with no token and refuses one with a live token (9.498952ms)
|
||||
✔ X5: a claim holds the slot, so a second claim and a host.run refuse host-busy until release (6.587637ms)
|
||||
✔ X5: a claim made while a host.run is in flight refuses host-busy (5.981273ms)
|
||||
✔ X5: a stale release leaves a later claim in place (0.464384ms)
|
||||
✔ X5: abortClaim aborts a live claim and says pending, and revoke's abort reaches a claim too (6.565634ms)
|
||||
ℹ tests 8
|
||||
ℹ suites 0
|
||||
ℹ pass 8
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 127.709805
|
||||
@@ -0,0 +1,15 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/credential-status.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ credentials gives human and reader sessions service, account, role, date and state, and nothing else (22.270194ms)
|
||||
✔ credentials refuses a role session and any argument (18.656241ms)
|
||||
✔ credentials reads the status on each request, and a broker without one lists none (24.539998ms)
|
||||
✔ the broker process answers credentials without a token, path or variable in its output, log or store (170.479276ms)
|
||||
ℹ tests 4
|
||||
ℹ suites 0
|
||||
ℹ pass 4
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 332.670177
|
||||
@@ -0,0 +1,23 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/credential-store.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ T1: a store reference with no file yet starts, and the agent is not-issued until issue (5.672615ms)
|
||||
✔ T1: a store path the reference does not own, or no store root, refuses the reference (0.632856ms)
|
||||
✔ T1: a wrong mode on the store root, a business dir, an agent dir or the file refuses start (1.919167ms)
|
||||
✔ T1: a missing store root refuses start; a missing {file} reference still refuses start (0.655534ms)
|
||||
✔ T1: a store file that is a directory or a symlink refuses start (0.833522ms)
|
||||
✔ T2: useFor keys from the session only (1.593099ms)
|
||||
✔ T5: issue, rotate, revoke and delete are live with no restart, and revoke holds across one (4.736513ms)
|
||||
✔ T5: a failed commit leaves the token on disk but not in memory, and a bad token or date writes nothing (1.81929ms)
|
||||
✔ T5: revoke drops the token from memory before the unlink, so a failed unlink still leaves it revoked (2.749193ms)
|
||||
✔ T5: revoke of a {file} reference forgets the token and never unlinks the file (0.680647ms)
|
||||
✔ T5: delete refuses an agent dir holding anything but tokens (1.692302ms)
|
||||
✔ D5: every credentials use( call site is on the allowlist (39.49179ms)
|
||||
ℹ tests 12
|
||||
ℹ suites 0
|
||||
ℹ pass 12
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 133.57155
|
||||
@@ -0,0 +1,13 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/credential-verbs.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ row 199: the lifecycle verbs refuse every session but the human, and the tester revokes only (41.949103ms)
|
||||
✔ T5: issue, rotate, revoke and delete are live, rewrite the business file and leave one receipt each, with no value anywhere (103.766589ms)
|
||||
ℹ tests 2
|
||||
ℹ suites 0
|
||||
ℹ pass 2
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 299.97301
|
||||
@@ -0,0 +1,16 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/credentials.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ only validated broker references load; returned data and exceptions cannot expose a known token (2.940582ms)
|
||||
✔ bad file modes, symlinks, repository/data paths, malformed tokens and missing dates refuse (2.058631ms)
|
||||
✔ expiry refuses use and env references never become client data (0.550077ms)
|
||||
✔ S1 parsed service refs work, service mismatch refuses, Gitea rotation due is a warning state (1.284789ms)
|
||||
✔ opaque tokens shorter than 16 characters refuse before use (0.331326ms)
|
||||
ℹ tests 5
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 78.472569
|
||||
@@ -0,0 +1,27 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/csuite-messaging.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ each C-suite role file carries the same two lists: human, chief-of-staff, pm, cto (1.591921ms)
|
||||
✔ chief-executive-officer: messages to and from the user, chief of staff, pm and cto pass (53.272505ms)
|
||||
✔ chief-executive-officer: a message to or from the coder, reviewer or assistant is refused and logged, and nothing is stored (40.751211ms)
|
||||
✔ chief-executive-officer: another C-suite role isn't on the lists either (35.4154ms)
|
||||
✔ chief-financial-officer: messages to and from the user, chief of staff, pm and cto pass (47.27251ms)
|
||||
✔ chief-financial-officer: a message to or from the coder, reviewer or assistant is refused and logged, and nothing is stored (40.486184ms)
|
||||
✔ chief-financial-officer: another C-suite role isn't on the lists either (33.258085ms)
|
||||
✔ chief-information-officer: messages to and from the user, chief of staff, pm and cto pass (42.992279ms)
|
||||
✔ chief-information-officer: a message to or from the coder, reviewer or assistant is refused and logged, and nothing is stored (41.016257ms)
|
||||
✔ chief-information-officer: another C-suite role isn't on the lists either (37.416475ms)
|
||||
✔ chief-information-security-officer: messages to and from the user, chief of staff, pm and cto pass (48.181514ms)
|
||||
✔ chief-information-security-officer: a message to or from the coder, reviewer or assistant is refused and logged, and nothing is stored (44.261858ms)
|
||||
✔ chief-information-security-officer: another C-suite role isn't on the lists either (34.776835ms)
|
||||
✔ chief-marketing-officer: messages to and from the user, chief of staff, pm and cto pass (42.96077ms)
|
||||
✔ chief-marketing-officer: a message to or from the coder, reviewer or assistant is refused and logged, and nothing is stored (39.743554ms)
|
||||
✔ chief-marketing-officer: another C-suite role isn't on the lists either (34.733687ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 16
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 716.38874
|
||||
@@ -0,0 +1,19 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/daily-quota-runtime.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
limits: {"event":"limit-reached","business":"demo","check":"daily-quota","export":"mayLaunch","subject":{"instance":"coder","provider":"anthropic","model":"opus","account":"jason-max"},"path":["tokens","daily","jason-max"],"limit":0,"count":0,"unknownTurns":0}
|
||||
usage: {"event":"usage-unknown","business":"demo","run":"run1","instance":"coder","turn":"bad680e3-a4d8-4813-87f3-f7d6ef8719b7","source":"@none","code":"baseline-unknown"}
|
||||
limits: {"event":"limit-reached","business":"demo","check":"daily-quota","export":"mustStop","subject":{"instance":"coder","provider":"anthropic","model":"opus","account":"jason-max"},"path":["tokens","daily","jason-max"],"limit":0,"count":0,"unknownTurns":1}
|
||||
usage: {"event":"usage-unknown","business":"demo","run":"run1","instance":"coder","turn":"79ee6047-da59-4fb6-a519-fb9890a0785e","source":"@none","code":"baseline-unknown"}
|
||||
✔ REQ-LIMIT-2 runtime: limits counts the daily quota, and mayLaunch refuses only the account at it (142.624838ms)
|
||||
✔ REQ-LIMIT-4 runtime: a run bound with the account writes it on its usage records and stops at the quota (60.460312ms)
|
||||
✔ REQ-LIMIT-4 runtime: a run bound without an account records null and the daily quota never stops it (52.572376ms)
|
||||
✔ REQ-LIMIT-4 bindLaunch keeps the account off session.launched, refuses one that is not an identifier, and takes null as none (14.958647ms)
|
||||
ℹ tests 4
|
||||
ℹ suites 0
|
||||
ℹ pass 4
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 369.79641
|
||||
@@ -0,0 +1,19 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/decision-close.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ a human resolve sends the raising role one message from the human, and its request is the answer (52.919698ms)
|
||||
✔ a cross-role decision resolved by its arbiter comes from that role and run, with no request (25.148744ms)
|
||||
✔ a human withdraw sends one message with the note (25.272173ms)
|
||||
✔ a human seen before the close leaves the request on the close's answer, not the seen (29.207105ms)
|
||||
✔ the raising run's withdraw, a supersede, a within-role raise and seen send nothing (29.590688ms)
|
||||
✔ refused closes send nothing: invalid-choice, decision-closed, not-resolver (30.782472ms)
|
||||
✔ a raising role nobody holds at the close gets the message on the next claim (26.821575ms)
|
||||
✔ a human DECISION send keeps its own instruction as the request, not a close's answer (25.111102ms)
|
||||
ℹ tests 8
|
||||
ℹ suites 0
|
||||
ℹ pass 8
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 356.88743
|
||||
@@ -0,0 +1,16 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/decision-route.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ a cross-role raise whose arbiter the raiser does not hear from is refused and stores nothing (48.103495ms)
|
||||
✔ a gated raise by a role that does not hear from the human is refused and stores nothing (29.549188ms)
|
||||
✔ a route the raiser hears from is allowed, checked from the route to the raiser (35.714116ms)
|
||||
✔ a refused supersede withdraws nothing (27.74836ms)
|
||||
✔ the assistant's within-role and gated raises still work (30.604762ms)
|
||||
ℹ tests 5
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 260.38115
|
||||
@@ -0,0 +1,18 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/decisions.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ roles lists open decisions routed to a role, and never the human inbox (44.047879ms)
|
||||
✔ recent lists closed decisions of every route, newest close first, with how each closed (33.908895ms)
|
||||
✔ recent gives the closing event as closed when the decision was seen first (35.431976ms)
|
||||
✔ recent stops at RECENT rows (95.459419ms)
|
||||
✔ every row is what trail already gives the same session for that id (45.350189ms)
|
||||
✔ a role session can't list decisions, so it can't read another role's open decisions (40.161217ms)
|
||||
✔ decisions is a read: one business, strict arguments, nothing written (41.148056ms)
|
||||
ℹ tests 7
|
||||
ℹ suites 0
|
||||
ℹ pass 7
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 432.158043
|
||||
@@ -0,0 +1,18 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/end-launch.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ endLaunch writes session.ended, releases the run claim and kills its capabilities (35.061902ms)
|
||||
✔ endLaunch refuses an unknown run, a second end and a rebind of the ended run (12.777791ms)
|
||||
✔ a restarted broker refuses to rebind an ended run; a refused rebind leaves the run unbound (14.085369ms)
|
||||
✔ endLaunch leaves a claim another run took alone (15.276669ms)
|
||||
✔ refuse records action.refused against the caller with the code only (12.059244ms)
|
||||
✔ launches off refuses role.launch with launch-revoked until launches on (17.958158ms)
|
||||
✔ broker process: launch ops authorize role.launch, record refusals and end runs (185.717032ms)
|
||||
ℹ tests 7
|
||||
ℹ suites 0
|
||||
ℹ pass 7
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 372.287347
|
||||
@@ -0,0 +1,35 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/fire-revokes-grants.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ row 281 T2: a fire with host grants on two hosts and a Gitea grant answers with a job, then revokes all three (276.445299ms)
|
||||
✔ row 281 T3 (sage-2575): a delete with grants takes two requests: the first starts the job, the next completes (257.607628ms)
|
||||
✔ row 281 T3b (Q2): a delete whose job refuses on host B; the retry refuses grant-revoke-failed and revokes only B and Gitea (255.578943ms)
|
||||
✔ row 281 T3b: B cleared by hand with hosts.revoke; the next delete starts a job for Gitea and the leftover line only (234.76404ms)
|
||||
✔ row 281 T3c (sage-2575 condition 4): a delete of an instance with no grant completes in one request (66.588821ms)
|
||||
✔ row 281 T4: host B unreachable in a fire: the job refuses, A stays revoked, B and Gitea untouched; a repeat completes (230.096179ms)
|
||||
✔ row 281 T4b (Q1): a line a manual hosts.revoke left on C is removed by the fire, with its close (104.619417ms)
|
||||
✔ row 281 T4b (Q1): with C unreachable, the fire completes and names the line in grantsLeft (104.701275ms)
|
||||
✔ row 281 T5: Gitea's admin token can't be checked: the job refuses with the Gitea grant intact (204.441401ms)
|
||||
✔ row 281 T5b (N1): a failed token DELETE refuses gitea-left; the repeat retries only this agent's entries (350.705899ms)
|
||||
✔ row 281 T6 (sage-2574): a host decision approved before the fire and run after it ends revoked, with nothing applied (72.617176ms)
|
||||
✔ row 281 T6b (sage-2574): a Gitea decision approved before the fire and run after it ends revoked before any Gitea write (91.236721ms)
|
||||
✔ row 281 T6c: a host executor in flight aborts and ends revoked; a Gitea executor in flight is awaited and leaves no token (271.277812ms)
|
||||
✔ row 281 T6d (B1): undecided host and Gitea decisions are in the set, and approved after the fire both end revoked (103.044896ms)
|
||||
✔ 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 (120.748921ms)
|
||||
✔ row 281 T7: an instance with no grant fires as today, synchronously, with the same events (64.160348ms)
|
||||
✔ row 281 T9 (B3): one step G per agent; the manual verbs refuse while it runs, and sweep names it running (234.753132ms)
|
||||
✔ row 281 T10 (B2): the fire and the delete answer while their jobs are held, and the broker answers other verbs (228.236439ms)
|
||||
✔ row 281 T11 (C1): a fire's job completes after the chief's run ends and processing halts (106.75032ms)
|
||||
✔ row 281 T12 (C1, N7): a step B refusal in the job is fire.failed, and the repeat runs B and C synchronously (82.443815ms)
|
||||
✔ row 281 T13 (N4): a restart records each held job interrupted once, with one message each; an ended job gets none (157.436021ms)
|
||||
✔ 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 (69.402176ms)
|
||||
✔ row 239 T4: a refusal after the writer's revoke is named -revoked, in the job's fire.failed and notice, a synchronous fire and a delete (103.872625ms)
|
||||
✔ row 239 T4b: an unmarked step B refusal keeps its code, and the notice says nothing of the tokens (90.666822ms)
|
||||
ℹ tests 24
|
||||
ℹ suites 0
|
||||
ℹ pass 24
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 3991.719131
|
||||
@@ -0,0 +1,31 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/gitea-grant-docker.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ C2-21 F-A/F-B: admin collaborator grant on another owner and seat permission reach; F-C/F-D protection observations (13515.718506ms)
|
||||
ℹ ✔ C2-21 F-A/F-B: admin collaborator grant on another owner and seat permission reach; F-C/F-D protection observations (13364.044244ms)
|
||||
ℹ F-A creative write: PUT status 204
|
||||
ℹ F-B creative: permissions {"admin":false,"push":true,"pull":true}
|
||||
ℹ F-A chief read: PUT status 204
|
||||
ℹ F-B chief: permissions {"admin":false,"push":false,"pull":true}
|
||||
ℹ F-C protected Story/**: seat rc 1, owner rc 1; established false
|
||||
ℹ F-D protected branch: normal rc 0, force rc 1; established true
|
||||
ℹ minted 4, hits 0
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 13474.455093
|
||||
|
||||
ℹ minted 4, hits 0 (complete TAP stdout/stderr)
|
||||
✔ X-G3: on scratch 1.27.1, a grant makes the user, mints, forks, checks reach, writes the file, and revoke deletes the token (12516.996788ms)
|
||||
ℹ tests 2
|
||||
ℹ suites 0
|
||||
ℹ pass 2
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 26150.518142
|
||||
@@ -0,0 +1,77 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/gitea-grant.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ versionAtLeast compares numbers and refuses a prerelease of 1.27.0 (1.337509ms)
|
||||
✔ X-G1: a raise that fails a check refuses and stores nothing (69.474121ms)
|
||||
✔ X-G1: a creative role, a role without identity and a missing or due slot refuse at raise (219.306031ms)
|
||||
✔ X-G1: the chief of staff refuses at raise, whatever its definition, identity and publish declare (47.225004ms)
|
||||
✔ X-G2: admin set refuses each failed check and writes nothing, then writes the slot once (186.081005ms)
|
||||
✔ X-G3 to X-G8: an approve makes the user, mints the token, forks, checks reach and writes the file, record and grant.applied (110.539296ms)
|
||||
✔ X-G4: a user this stack did not make, an admin, a disabled user and a remade user each refuse (371.186116ms)
|
||||
✔ X-G6 and X-G8: the user and mint steps are written before their calls, and each result after its call (109.564615ms)
|
||||
✔ X-G4: a fork by the seat user of another repository than the project refuses fork-foreign (112.369931ms)
|
||||
✔ X-G5: a failure after the mint deletes the token, unloads nothing it did not load and leaves no file (180.184063ms)
|
||||
✔ X-G5: a token delete that fails is left at Gitea, shown by status and taken by sweep (143.352539ms)
|
||||
✔ X-G5: a mint that fails deletes by name, and a refusal at step 0 leaves the decision unspent (194.638622ms)
|
||||
✔ X-G5: an agent held for an unknown token is refused at step 0 with no Gitea call (76.106793ms)
|
||||
✔ X-G5 and X-G9 (step 7): a rotation whose old-token delete fails stays applied with the old id left (215.848938ms)
|
||||
✔ X-G10: in a rotation the store file holds the new token before the old one is deleted (177.375994ms)
|
||||
✔ X-G6: a rotation cut before the rename settles back at once, and the old token stays live (181.893895ms)
|
||||
✔ X-G6: a rotation whose step 8 write fails is settle-pending, and a restart settles it forward (221.633802ms)
|
||||
✔ X-G6: a restart settles an open rotation back when the file still holds the old token (167.487154ms)
|
||||
✔ X-G6: a restart settles an open rotation forward when the file holds the new token (149.45971ms)
|
||||
✔ X-G6: a 401 on the file token loses the grant: both tokens go, the record goes and memory unloads (155.66033ms)
|
||||
✔ X-G6: a 403, 404, 500, a hang and a dropped socket each leave the rotation settle-pending with nothing deleted (1110.210113ms)
|
||||
✔ X-G6: a file token no grant minted is held; the next restart says so again; a revoke clears it and takes both ids (268.295466ms)
|
||||
✔ N9: a revoke of an open rotation, then a restart: no settle, no Gitea call and no message (178.405385ms)
|
||||
✔ N9: a 404 on a delete by id counts as done (146.429096ms)
|
||||
✔ X-G6: a restart undoes each step a killed child left, and spends an approved unspent decision (524.171778ms)
|
||||
✔ X-G6: a restart with no admin slot leaves the user an orphan and the token left (67.758264ms)
|
||||
✔ X-G7: a change to the definition, identity, publish remotes or admin slot after the raise ends decision-mismatch (153.837914ms)
|
||||
✔ X-G7 and X-G9: an admin rotate voids open decisions, and rotate --finish deletes what was left (134.830812ms)
|
||||
✔ X-G9: a rotate whose name is taken refuses and writes nothing; remove takes the slot away (90.744501ms)
|
||||
✔ X-G9: a slot past its rotate-by date refuses a run at step 0, leaving the decision unspent (61.202231ms)
|
||||
✔ X-G11: run refuses every caller but the human, an unapproved, a spent and a busy decision (135.168498ms)
|
||||
✔ kill switch (plan :16): while halted the chief still reads grants.status, and an agent grants.revoke refuses (126.150239ms)
|
||||
✔ X-G11: a revoke while the executor runs aborts it and the grant ends revoked (149.826928ms)
|
||||
✔ X-G11: a revoke unloads memory and removes the file before its Gitea delete (168.804063ms)
|
||||
✔ X-G11: a revoke during a rotation step 7 ends it revoked, and step 8 writes no record back (208.918918ms)
|
||||
✔ X-G11: a revoke while a sweep settles a rotation, forward or back, ends it revoked with no record (442.725196ms)
|
||||
✔ X-G11: a revoke during a settle whoami that finds a foreign token ends it revoked, not held (206.420198ms)
|
||||
✔ X-G11: a revoke during a settle whoami that gets a 401 ends it revoked, not lost (195.229789ms)
|
||||
✔ X-G12: a token that reaches wider than its forks fails with the repository named (466.288235ms)
|
||||
✔ X-G12: reach is paged by X-Total-Count and a count that does not add up refuses (295.755156ms)
|
||||
✔ X-G13: an agent cannot record a grant event, and the trigger refuses one from any writer but the grant writer (45.365905ms)
|
||||
✔ X-G14: credentials delete fires the user: tokens go, login is prohibited, and grant.revoke.closed records it (304.97995ms)
|
||||
✔ X-G14: a fire whose token delete or login PATCH fails lands it in serviceLeft (153.818958ms)
|
||||
✔ X-G14: a fire whose user is gone or remade skips the fire steps and says why (319.729996ms)
|
||||
✔ X-G14: a sweep retries a fire only for the user it fired: a remade or gone user is skipped and named (393.442793ms)
|
||||
✔ X-G14: a revoke Gitea cannot reach stays open, and a restart closes it (187.553966ms)
|
||||
✔ 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 (143.475225ms)
|
||||
✔ X-G15: look-alike commit steps outside the grant writer are ignored at start, by revoke and by status (142.663429ms)
|
||||
✔ X-G15: a look-alike spend under another kind with the grant writer pair is not an open grant (56.780544ms)
|
||||
✔ status lists the slot, users, grants and nothing secret, and every grants verb needs service gitea (123.456643ms)
|
||||
✔ C2-21 L1/L2/L9: research gets write on her repository with declared scopes through raise and yes (139.889708ms)
|
||||
✔ C2-21 L1/L2/L9: chief-of-staff gets read on her repository with declared scopes through raise and yes (140.222692ms)
|
||||
✔ C2-21 L1/L2/L9: coder gets read on her repository with declared scopes through raise and yes (144.290003ms)
|
||||
✔ C2-21 L7/L7b: research refuses non-library targets lib (53.068544ms)
|
||||
✔ C2-21 L7/L7b: research refuses non-library targets app,lib (49.545745ms)
|
||||
✔ C2-21 L7/L7b: chief-of-staff refuses non-library targets lib (47.459267ms)
|
||||
✔ C2-21 L7/L7b: chief-of-staff refuses non-library targets app,lib (45.800088ms)
|
||||
✔ C2-21 L4: read widened to write refuses gitea-reach-wider and deletes the minted token (113.47042ms)
|
||||
✔ C2-21 L4: admin privilege refuses gitea-reach-wider and deletes the minted token (115.701394ms)
|
||||
✔ C2-21 L4: missing pull refuses gitea-reach-wider and deletes the minted token (111.393534ms)
|
||||
✔ C2-21 L4: missing permission object refuses gitea-reach-wider and deletes the minted token (112.867072ms)
|
||||
✔ C2-21 L4: library fork refuses gitea-reach-wider and deletes the minted token (112.69746ms)
|
||||
✔ C2-21 L8: untargeted library collaborator reach is disclosed and accepted publish-wide (114.413065ms)
|
||||
✔ C2-21 L10: project kind or library level changing after raise refuses decision-mismatch (162.249108ms)
|
||||
✔ C2-21 L4: creative write requires push true but ignores unrelated permission keys (226.653935ms)
|
||||
✔ C2-21: a library grant with no declared scopes refuses gitea-not-declared at raise (51.582376ms)
|
||||
ℹ tests 66
|
||||
ℹ suites 0
|
||||
ℹ pass 66
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 11944.93231
|
||||
@@ -0,0 +1,16 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/gitea-migration.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ 3j copy migrates to 3k: every row kept, and sqlite_master gains only the two tables and their keys (93.571039ms)
|
||||
✔ a 3j→3k step that fails partway leaves the store at 3j with every row and the schema intact (111.532457ms)
|
||||
✔ the 3j engine refuses a migrated store, migrating or not, and leaves it as it was (91.980477ms)
|
||||
✔ gitea_users: one user per business and agent, an id above 0, a 16-hex nonce and a real decision (11.362717ms)
|
||||
✔ gitea_grants: one grant per agent, a projects array, a token id above 0, and only for a recorded user (12.796298ms)
|
||||
ℹ tests 5
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 406.14076
|
||||
@@ -0,0 +1,35 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/grant-enroll.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ G1, A1: only the chief raises a grant, and a refused raise stores nothing and runs no keyscan (46.645134ms)
|
||||
✔ G1: grant goes only with credential.mint, row a takes only host-enroll, and E1 refuses each bad field (56.664466ms)
|
||||
✔ G5, A5, A6: the scanned key set must equal the requested set, or host-key-mismatch and nothing stored (36.701202ms)
|
||||
✔ G4 (host-enroll block, M1): the broker appends the keys, fingerprints and sudo line, and the cap counts the block (28.0911ms)
|
||||
✔ G6, X1: the human's cli yes starts enrollment, which writes the record, the key file and the events in order (51.818404ms)
|
||||
✔ A2, A4: a credential.mint without grant, and a no, start nothing (239.59713ms)
|
||||
✔ A3, X1: a resolve by the tester or an agent starts nothing (236.514451ms)
|
||||
✔ G6 (duckworth-0081 B3): a withdraw by the chief or the human, and an arbiter resolve, start nothing (236.673986ms)
|
||||
✔ G10 (duckworth-0081 B1): a second start for a spent decision refuses decision-consumed, and an unresolved or agent-resolved one not-authorized (57.656722ms)
|
||||
✔ A8, S1: two approved enrollments for one host: the second ends host-enrolled and the pin stays (78.14571ms)
|
||||
✔ A9: the hosts primary key refuses a second record for (business, host) (28.890609ms)
|
||||
✔ X3: a failure at step 2 deletes the record again and ends grant.failed, with no key file (51.353326ms)
|
||||
✔ A10, X3: at start a resolved, unspent enrollment is spent and ends interrupted, and never runs late (32.999556ms)
|
||||
✔ X3: at start an enrollment that stopped after its registry step loses its record and key file (54.85496ms)
|
||||
✔ G24 first sentence, M2, A12: tags are mosaic- and 32 hex, and differ by business, agent and host (0.386375ms)
|
||||
✔ E4: hosts.check sets the record ready and records grant.host.checked; a non-zero list leaves it pending (58.522726ms)
|
||||
✔ G20 (duckworth-0081 B3): the human's hosts.check marks the host ready, and the reader refuses (55.395701ms)
|
||||
✔ G18 (duckworth-0081 B2), broker half: a check refused host-key-mismatch leaves the host pending-install with no grant.host.checked (56.214661ms)
|
||||
✔ E4: a check whose installer fingerprint differs from the record refuses host-changed (52.6934ms)
|
||||
✔ E4, G21: hosts.remove is the human's or the tester's, deletes the key and the record, and records grant.host.removed (55.639523ms)
|
||||
✔ G21, F1, F2, M4, A22: hosts.remove refuses host-line-left on a guarded hostLineLeft, and ignores look-alikes (59.528393ms)
|
||||
✔ hosts.remove refuses host-in-use while a grant record names the host (51.634343ms)
|
||||
✔ the grant writer refuses a body outside section 7's shape (27.061082ms)
|
||||
✔ recordEvent refuses reserved-event for a grant.* action or operation (28.617014ms)
|
||||
ℹ tests 24
|
||||
ℹ suites 0
|
||||
ℹ pass 24
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1775.39436
|
||||
@@ -0,0 +1,53 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/grant-executor.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ row 280: an occupied TCP port is attempted, refused, and retried with our sshd (94.660089ms)
|
||||
✔ row 280: every injected picker sample is unprivileged and outside the ephemeral range (0.439198ms)
|
||||
✔ G7: an Approve installs the tagged line, logs in with the new key, and writes the key file, record and grant.applied (722.294369ms)
|
||||
✔ G7: a commands change on a live grant updates the record in one transaction and keeps the key and line (570.920159ms)
|
||||
✔ G8: a failure at install or verify removes the line and leaves no record, key file or reference (1632.927961ms)
|
||||
✔ G8: a failed remove adds hostLineLeft and tells the human to sweep (679.963259ms)
|
||||
✔ G8: a failure in step 5 before commit unlinks the key file, drops the reference and removes the line (697.024716ms)
|
||||
✔ G8: a store fault in the commit transaction ends host-failed with no record, key file, reference or line (676.24616ms)
|
||||
✔ G8: a failed step 1 check spends the decision and runs nothing remote (84.485711ms)
|
||||
✔ G9: a registry, definition or commands change between raise and Approve ends decision-mismatch before any remote step (511.605818ms)
|
||||
✔ G9: an agent no longer a role or no longer declaring host ends with its code, spent (77.932403ms)
|
||||
✔ G10: a second start refuses decision-consumed, and an unresolved or agent-resolved decision not-authorized, writing nothing (523.218075ms)
|
||||
✔ G15: no event, message or decision holds the private key (509.831129ms)
|
||||
✔ G23: a revoke during install ends grant.failed revoked with no key file, no grant and no line (531.598279ms)
|
||||
✔ G23 (row 249): an add that writes after an abort's remove leaves hostLineLeft until the sweep (873.84519ms)
|
||||
✔ G23 (row 249): an add that writes after a timed-out install's remove leaves hostLineLeft until the sweep (884.79913ms)
|
||||
✔ G23: a revoke recorded after the raise and before the start ends step 1 revoked, and a held slot ends host-busy (517.63216ms)
|
||||
✔ G24: names at 64 characters with . and _ give distinct tags of the fixed length (0.419062ms)
|
||||
✔ G11: a restart after install removes the line, then ends interrupted with the tag, holding the slot until then (227.523711ms)
|
||||
✔ G11: a restart after a new key's commit, with the key file written, ends with no key file, record, reference or line (237.225684ms)
|
||||
✔ G11: a restart after a commands change's commit leaves the record as it was and asks nothing of the host (527.207749ms)
|
||||
✔ G11 (B2): a restart before step 1, spent or not yet spent, ends interrupted and nothing runs later (75.518953ms)
|
||||
✔ G11: a remote undo that fails ends interrupted with hostLineLeft and the sweep hint (294.822848ms)
|
||||
✔ G11: a restart leaves a finished grant alone, and the reconcile adds nothing for it (541.14692ms)
|
||||
✔ 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 (7.118517ms)
|
||||
✔ G12: the human's hosts.revoke deletes the record, the key file, the reference and the line, with a closed marker (683.669283ms)
|
||||
✔ G12 (N4): a revoke with no record still removes the computed tag's line, with granted false; bad args refuse (219.881995ms)
|
||||
✔ G13: a revoke during install aborts the executor, which ends revoked, and the line goes (568.768707ms)
|
||||
✔ G26: the human, the assistant and the tester revoke; the chief and a pm refuse; sweep is the human's or the tester's (520.879686ms)
|
||||
✔ row 281 T8: a tester hosts.revoke refuses tester-dev-only once bus.tester is off, and a human revoke writes no job records (661.726101ms)
|
||||
✔ 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 (686.867621ms)
|
||||
✔ G27: after step 2 with the host down, the restart closes the marker with hostLineLeft; a marker without a revoke id is not reopened (964.354003ms)
|
||||
✔ G27: a key file a revoke could not unlink is reported left and goes at the next start (710.946832ms)
|
||||
✔ G28: a commands change, then a revoke, then a restart leave no record, key, reference or line (733.327501ms)
|
||||
✔ G24 (B4): hosts.sweep removes only this business's recorded tags no live grant holds, and records what it left (1035.423551ms)
|
||||
✔ G12: the local steps finish before the host step, so a host that hangs leaves the agent no access (725.603675ms)
|
||||
✔ G23 (X5): a revoke right after the spend reaches the executor's claim, so the grant ends revoked (223.136275ms)
|
||||
✔ G23 (X5): a revoke that lands as verify returns ends revoked with no record, key file or line (687.260709ms)
|
||||
✔ G13: a revoke whose host remove fails still drops the record and key, and reports the line left for a sweep (663.382118ms)
|
||||
✔ G22: enroll, check, grant, host.run, a commands change the next host.run uses, and a revoke that kills a run in flight (1252.408539ms)
|
||||
✔ mos-1163: a grant whose agent became a creative role after the raise ends host-creative-role at step 1, spent, with nothing remote (71.190184ms)
|
||||
✔ 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 (523.043409ms)
|
||||
ℹ tests 42
|
||||
ℹ suites 0
|
||||
ℹ pass 42
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 22539.529342
|
||||
@@ -0,0 +1,21 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/grant-host.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ G1 (host): only the chief raises a host grant, a grant on any other action refuses, and nothing is stored (35.205899ms)
|
||||
✔ G1, R4: the grant takes exactly method, agent, host, commands and rotateBy, and an unknown method refuses (42.625416ms)
|
||||
✔ row 236 (#1742): a gitea grant on a broker with no Gitea path refuses gitea-not-configured, and nothing is stored (24.39352ms)
|
||||
✔ G2: an agent whose definition lacks host refuses host-not-declared, and an unknown agent unknown-role (28.555042ms)
|
||||
✔ mos-1163: a grant whose agent is a creative role refuses host-creative-role, even when its definition declares host (24.356146ms)
|
||||
✔ G3: wildcard, shell, empty and other 210 D6 argv prefixes refuse invalid-request (46.601986ms)
|
||||
✔ R4 rotateBy (sage-1782): a real calendar day after today UTC, or invalid-request (38.677278ms)
|
||||
✔ G19: a grant naming a host that is pending-install refuses host-not-ready, and an unknown host host-unknown (30.343279ms)
|
||||
✔ R4, G5: the raise routes to the human and its event body binds the eight fields with their hashes (24.878582ms)
|
||||
✔ G4 (host block): the broker appends the host, each prefix, the rotate date and new key or change (36.752822ms)
|
||||
ℹ tests 10
|
||||
ℹ suites 0
|
||||
ℹ pass 10
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 427.01057
|
||||
@@ -0,0 +1,17 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/grant-migration.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ 3i copy migrates to 3j: every row kept, and sqlite_master gains only the two tables, their keys and the guard (88.711531ms)
|
||||
✔ a 3i→3j step that fails partway leaves the store at 3i with every row and the schema intact (95.241037ms)
|
||||
✔ the 3i engine refuses a migrated store, migrating or not, and leaves it as it was (88.785742ms)
|
||||
✔ A22b, sage-1703: a session-written grant.* row from before the step survives it, and the grant readers ignore it (84.26533ms)
|
||||
✔ the guard: a grant.* action or operation on action.allowed needs the (NULL, grant) actor (16.050945ms)
|
||||
✔ hosts: one record per business and host, a ready host has its installer and check, grants need the host (12.776631ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 481.267969
|
||||
@@ -0,0 +1,13 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/grant-scope-runtime.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
✔ row 298 runtime: human scope approval writes the file and organization history at the supplied revision (90.465342ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 211.490685
|
||||
@@ -0,0 +1,25 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/grant-scope.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ row 298 (Q3): only the human at the cli reads or sets the scope; agents, the tester, a reader and the Console refuse (87.128588ms)
|
||||
✔ row 298 (Q1): organization.set and limits.set refuse a grantScope key, and nothing is written (56.91985ms)
|
||||
✔ row 298 (Q3): the human verb writes the scope and a grant.scope record with the human proof and both sha256 (58.187056ms)
|
||||
✔ row 298 (Q4): an in-scope Gitea grant is issued with no inbox item, logged with 236 records, and revocable (159.958254ms)
|
||||
✔ row 298: an out-of-scope Gitea grant waits for the human, whose Approve still issues it (115.744827ms)
|
||||
✔ row 298: with no scope, a bad scope or an unreadable file, an in-scope-looking grant waits (163.635851ms)
|
||||
✔ row 298 (Q6): a chief-of-staff instance that is not launch.by never raises in scope (53.19945ms)
|
||||
✔ row 298 (Q5): a scope narrowed between the raise and the spend ends the grant scope-changed (99.030881ms)
|
||||
✔ row 298 (Q2): an in-scope host grant is spent with no Approve; ls never covers lsblk, nor a scope command extra arguments (83.052691ms)
|
||||
✔ row 298 (Q5): a host scope narrowed before the spend ends scope-changed (75.149488ms)
|
||||
✔ row 298 Q4: missing scope evidence or a bad scope digest cannot authorize execution (103.575082ms)
|
||||
✔ row 298 T4/T8: an in-scope host grant issues, records and revokes through the existing executor (81.554137ms)
|
||||
✔ row 298 T6: host enrollment stays open for human Approve even with both methods in scope (51.833627ms)
|
||||
✔ row 298: scope without an organization revision never closes automatically (48.942907ms)
|
||||
ℹ tests 14
|
||||
ℹ suites 0
|
||||
ℹ pass 14
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1329.921435
|
||||
@@ -0,0 +1,24 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/hard-waits.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ REQ-WAIT-1: the broker hard waits are exactly the list, and match the business vocabulary (1.171223ms)
|
||||
✔ REQ-WAIT-2: a business granting a hard wait at either class is refused; the actions that left are grantable (32.164958ms)
|
||||
✔ REQ-DEC-2: every hard wait goes to the human, cited or not, and the arbiter cannot resolve it (521.804202ms)
|
||||
✔ REQ-DEC-2: a gated raise citing the current spec goes to the arbiter for its domain; uncited, to the human (233.811002ms)
|
||||
✔ REQ-DEC-2: an arbiter-approved cited gated decision authorizes the raiser, and the human cannot resolve it (51.329546ms)
|
||||
✔ REQ-DEC-2: a cited merge raised by merge-gate goes to the technical arbiter; a merge raised without the grant routes by citation (67.68312ms)
|
||||
✔ REQ-DEC-2: a stale or unconfirmed citation refuses without a decision; an arbiter raising its own goes to the human (106.214134ms)
|
||||
✔ Q169: the chief of staff's end of the assistant stops every thread run; its own run and another ender's are refused (50.387279ms)
|
||||
✔ Q169: a revoke of the assistant the chief of staff raises goes to the human, cited or not, and no arbiter resolves it (126.730592ms)
|
||||
✔ Q169: another role's cited revoke of the assistant, resolved by an arbiter, is refused (67.790151ms)
|
||||
✔ Q169: a revoke of the assistant citing a decision the human resolved stops its thread run (57.966455ms)
|
||||
✔ Q169: a cited revoke of a role not in END_PROTECTED still goes to the arbiter, and executes (53.043ms)
|
||||
✔ Q169: a role granted role.revoke at either class still sends a revoke of the assistant to the human (70.026454ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1538.012391
|
||||
@@ -0,0 +1,37 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/host-run.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ row 280: an occupied TCP port is attempted, refused, and retried with our sshd (91.359013ms)
|
||||
✔ row 280: every injected picker sample is unprivileged and outside the ephemeral range (0.402429ms)
|
||||
✔ the executor tests need sshd, ssh, ssh-agent, ssh-add, ssh-keygen and setpriv: a missing one fails, never skips (0.114796ms)
|
||||
✔ T3: organization.set, limits.set and instances.set refuse hosts, and the writer never runs (24.749073ms)
|
||||
✔ T4: the value check takes one unencrypted ed25519 key and nothing else (186.403962ms)
|
||||
✔ T5 to T8: registry, grant, argv shape and allowlist refusals (529.576558ms)
|
||||
✔ T9: under 1.7 every call needs a decision bound to its host, argv and stdin, spent once (304.941719ms)
|
||||
✔ T10, T11: argv reaches sudo unchanged after sudo -n -- (336.223417ms)
|
||||
✔ T12, T13: exit code passes through, the timeout kills the group, output is capped (1526.035218ms)
|
||||
✔ T14: a host key not in the registry refuses and nothing runs (190.407495ms)
|
||||
✔ G18: hosts.check with a wrong pin refuses host-key-mismatch and runs nothing on the host (332.111395ms)
|
||||
✔ N3: a remote exit 255 that prints the pin refusal text is the command result, and an ssh failure keeps its message (320.860467ms)
|
||||
✔ T15: ssh reads no config file and no user known_hosts (285.960915ms)
|
||||
✔ T16, T17: key material in output or stdin refuses credential-leak, and no event holds it (664.793841ms)
|
||||
✔ T18, T19, T20: one call at a time, no key in any argv or env, and nothing left after (4676.060209ms)
|
||||
✔ T21: revoke kills the call in flight, and the next call refuses (317.157657ms)
|
||||
✔ T22: events carry host, address, user and argv in clear, and sizes and hashes only (288.225025ms)
|
||||
✔ T24: no literal gitea and vikunja kind list outside vocabulary.mjs, and the credential use sites are known (21.830042ms)
|
||||
✔ T25: no role definition lists host.sudo while it is a hard wait (0.557202ms)
|
||||
✔ T27: the bus child dying takes ssh and ssh-agent with it (348.702638ms)
|
||||
✔ T27: ssh-add -t drops the key from an agent the test keeps alive (3561.06465ms)
|
||||
✔ N2: a hung ssh-add is killed at its limit or on abort, and nothing is left running (429.311091ms)
|
||||
✔ T27: the start sweep keeps a live bus dir and kills only a matching live process (28.055229ms)
|
||||
✔ T27: the bus start sweeps <configDir>/secrets/run before it listens, and a stray entry stops the start (66.255666ms)
|
||||
✔ M3: host.run refuses host-not-granted unless the grant record has an approved, spent host grant (185.900047ms)
|
||||
✔ M3: a host_grants record gives Credentials a store reference at start, and a restart reads its key (108.768545ms)
|
||||
ℹ tests 26
|
||||
ℹ suites 0
|
||||
ℹ pass 26
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 14954.804799
|
||||
@@ -0,0 +1,17 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/host-tools.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ G16: the writer refuses each user, tag and key the design names, before any key file (2354.057787ms)
|
||||
✔ G16: from= comes from the host file, a privileged user skips the group and sudo checks, and the line is exact (641.681362ms)
|
||||
✔ G16: list shows tagged lines only, and add and remove never touch a line outside the tag pattern (312.988539ms)
|
||||
✔ G25: the writer refuses a symlinked dir or user file, a group-writable dir and an odd tmp, and writes 0644 (450.863186ms)
|
||||
✔ G16: mosaic-keys passes the three requests to the writer through sudo and refuses anything else without it (87.33416ms)
|
||||
✔ E3: the sudoers line and the sshd drop-in are the design lines and parse (15.418998ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 3913.268231
|
||||
@@ -0,0 +1,15 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/human.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ human proof binds CLI entry, process start and nonce; agents and incomplete ancestry refuse (1.350593ms)
|
||||
✔ process reader gets own kernel identity without exposing environment values (0.411753ms)
|
||||
✔ EACCES ancestor environments skip only markers; commands and registered launches still refuse (0.545686ms)
|
||||
✔ real pid 1 remains inspectable when its environment is protected (0.218231ms)
|
||||
ℹ tests 4
|
||||
ℹ suites 0
|
||||
ℹ pass 4
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 66.071589
|
||||
@@ -0,0 +1,16 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/instances-verb.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
✔ row 165: instances and instances.set refuse every non-human session but the tester, the chief of staff included, and pass the verified actor (38.443172ms)
|
||||
✔ row 165 runtime: an add and a change reach the organization file with the human as actor; each refusal keeps the bytes and logs nothing (144.334449ms)
|
||||
✔ row 194 T12: agent and reader sessions refuse veto.set; the tester gets add and change but not delete or veto.set; the human passes the hook for each listed verb (27.04305ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 303.207159
|
||||
@@ -0,0 +1,16 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/interpreter.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ system Python is a resolved root-owned ELF, never a shim or home interpreter (2.279597ms)
|
||||
✔ real system interpreter is available and safely inspected (22.498516ms)
|
||||
✔ restart receipt appends actual replacement identity and refuses unsafe files (3.868223ms)
|
||||
✔ activation gate compares fresh startup receipt to the current interpreter identity (1.418072ms)
|
||||
✔ non-regular startup receipt refuses promptly without waiting on a FIFO peer (36.737323ms)
|
||||
ℹ tests 5
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 120.895908
|
||||
@@ -0,0 +1,29 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/land.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ REQ-DEC-2: a merge-gate raise its arbiter resolved lands through the host op: checkLand answers the facts and a ticket, records nothing, and recordLand spends the decision once (42.116778ms)
|
||||
✔ checkLand refuses on the decision and the review (39.192806ms)
|
||||
✔ REQ-LAND-1: a gated merge decision refuses not-authorized, cited and approved by the arbiter or uncited and approved by the human (97.041865ms)
|
||||
✔ REQ-LAND-1: a within-role merge grant refuses not-authorized at the land (25.783942ms)
|
||||
✔ a cross-role merge that routes to the human, because merge-gate is its own arbiter, lands on the human's CLI answer (26.348951ms)
|
||||
✔ a merge option with no first line refuses no-subject, as land-work does (24.292282ms)
|
||||
✔ checkLand refuses with land-work's codes past the authority check, and a decision raised for refactor never lands (65.77898ms)
|
||||
✔ a ticket outlives the run that asked, and recordLand checks the task again (30.468791ms)
|
||||
✔ two tickets on one decision: the first recordLand lands, the second refuses decision-consumed and records nothing (31.8988ms)
|
||||
✔ landRefused files the code on the task, tells the role only with notify, and ends the ticket (34.281789ms)
|
||||
✔ landHeld is true only for an approved, unspent cross-role merge decision this role raised for a task in this thread (42.003595ms)
|
||||
✔ landHolders lists a merge decision exactly while landHeld is true for its non-thread instance, in decision order (47.122026ms)
|
||||
✔ landHolders leaves out a thread instance's decision, even one raised before its role became one (26.839884ms)
|
||||
✔ landRelease releases the holding run by land-relaunch once it has asked message.receive and nothing delivered to it is unread, and waiting messages go to the next holder (42.731787ms)
|
||||
✔ a landing run started after the resolution passes checkLand for its held decision before any message.receive, and lands it (31.505683ms)
|
||||
✔ the bus process answers landHolders and landRelease from their own lines, not as credentialStatus (170.382821ms)
|
||||
✔ usage.begin with a decision id needs it held for the run's instance, usage.end needs the begin, and the limit checks see the landing turn (35.573784ms)
|
||||
✔ no run may write the action.allowed for git.merge.protected itself (17.825151ms)
|
||||
ℹ tests 18
|
||||
ℹ suites 0
|
||||
ℹ pass 18
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 923.100321
|
||||
@@ -0,0 +1,19 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/launch-notice.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ a message to a stopped role sends launch.by one notice, and the result says so (32.255476ms)
|
||||
✔ a message to a role outside launch.instances says so in its result and in the notice (18.258181ms)
|
||||
✔ a message to a running role sends no notice and its result is unchanged (16.519528ms)
|
||||
✔ a re-route at a claim, a release and claim, and a broker restart send no second notice (24.512114ms)
|
||||
✔ a run launched but not yet claimed counts as no holder (14.859489ms)
|
||||
✔ no notice for a message to launch.by, from it, a refused one from a tester, to the human, or in a thread to a thread instance (30.888147ms)
|
||||
✔ a business with no launch block tells nobody and says there is no launcher (14.218399ms)
|
||||
✔ the notice sender stays internal: no role is named _bus and no caller can send as it or to it (36.791821ms)
|
||||
ℹ tests 8
|
||||
ℹ suites 0
|
||||
ℹ pass 8
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 288.144937
|
||||
@@ -0,0 +1,14 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/launcher-released.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ row 302 a run threadIdle released answers launcher-released on receive, state, read and send, logs each, and claims nothing again (48.753352ms)
|
||||
✔ row 302 with a run launcher-released, a run that lost its claim another way still answers not-holder (36.041114ms)
|
||||
✔ row 302 a run landRelease released answers launcher-released, and claims nothing again (36.417076ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 210.153395
|
||||
@@ -0,0 +1,17 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/library-credential.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ C2-03b T6: the slot before any chief evidence, then the listed chief's live grant (28.433906ms)
|
||||
✔ C2-03b T7: a chief revoked through grants.revoke or fired through instance.fire refuses, and the fallback stays ended (321.503246ms)
|
||||
✔ C2-03b T7 choice checks: delisted, a fire under way and held each refuse; a rehire lists the chief again (34.037175ms)
|
||||
✔ C2-03b T8: a chief grant on another project ends the fallback, and two listed chiefs refuse library-fetch-no-grant (33.550891ms)
|
||||
✔ C2-03b departure (sage-2928): with no chief entry, any Gitea grant evidence refuses (19.14349ms)
|
||||
✔ C2-03b T9 runtime: the chief's store file and user, then a real revoke that runs no git with the slot at 0000 (872.931307ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1447.67694
|
||||
@@ -0,0 +1,22 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/library-lookups.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ all five agent verbs read the configured served commit through real queries (137.997898ms)
|
||||
✔ each verb refuses missing universe and unknown keys before host work (75.842489ms)
|
||||
✔ no library, missing host adapter and undeclared project refuse library-not-configured (159.428755ms)
|
||||
✔ reads need the current holder on each call; human/tester/reader are not agents (92.228125ms)
|
||||
✔ releasing a claim during an async lookup fences the response (50.952204ms)
|
||||
✔ a business library removed during an async read cannot leak its result (44.780288ms)
|
||||
✔ freshness boundary, unknown last fetch and failed fetch still use immutable served state (135.702947ms)
|
||||
✔ an unreadable sync state fails closed; a busy sync keeps serving the existing pin (75.158136ms)
|
||||
✔ a stale lookup sees the commit published by its sync, not the prior served commit (86.989494ms)
|
||||
✔ real socket awaits lookup results and rechecks rejected query arguments (102.484989ms)
|
||||
✔ runtime actually injects the lookup adapter, without exposing human library.file (156.865012ms)
|
||||
ℹ tests 11
|
||||
ℹ suites 0
|
||||
ℹ pass 11
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1273.752824
|
||||
@@ -0,0 +1,17 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/library-sync.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ C2-03a library.sync: every agent, the tester and a reader are refused before the adapter runs (30.330167ms)
|
||||
✔ C2-03a library.sync: the human fetches, accept passes through, and a held sync is a recorded refusal (19.255095ms)
|
||||
✔ C2-03a library.sync: a LibraryError keeps its code and a host without sync is not configured (25.964892ms)
|
||||
✔ C2-03a runtime: a librarySync from a boot config, with no function, is refused (1.335076ms)
|
||||
✔ C2-03a runtime: the timer syncs each entry with a user at start and on each tick, logs codes only, and stops on close (595.316687ms)
|
||||
✔ row 254 human-cli: library.sync outlasts the 5 s client default, and library.status does not (6097.963666ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 6913.249088
|
||||
@@ -0,0 +1,17 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/library.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ C2-04 M4: both verbs reject every agent before arguments or adapter access (40.348648ms)
|
||||
✔ C2-04 bus: human reads validate keys and return adapter results without path leakage (16.631544ms)
|
||||
✔ C2-04 socket: each async library verb resolves its result rather than serializing {} (82.94035ms)
|
||||
✔ C2-04 runtime: protectedRoots skips library but retains real code-root credential protection (122.332874ms)
|
||||
✔ C2-04 runtime: unsafe existing mirror refuses boot and never publishes a socket (30.378693ms)
|
||||
✔ C2-04 runtime: real library adapters reach the socket and lock waits leave other bus reads responsive (254.395845ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 685.769026
|
||||
@@ -0,0 +1,20 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/lifecycle-revoke.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
✔ 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 (123.71829ms)
|
||||
✔ T20 fire: an instance already delisted still has its tokens revoked and the file is left alone (61.625067ms)
|
||||
✔ T20 fire: with no entry in the running bus, a token on disk refuses and an empty store goes on (70.463008ms)
|
||||
✔ T20 delete: a revoke that fails keeps the file; one that succeeds clears the store, deletes, and names the tracker bot (84.873087ms)
|
||||
✔ T20 delete: with no entry in the running bus, a token file is cleared and the delete goes on; a file reference refuses (66.62316ms)
|
||||
✔ T21 delete: a write between the raise and the take makes the delete refuse revision-conflict before it revokes anything (69.53016ms)
|
||||
✔ row 281 T1 fire: a host.<id> or granted gitea file in the store refuses step B credential-revoke-failed, file unchanged (69.622521ms)
|
||||
✔ row 281 T1 start: a host grant record whose key file is gone starts and reads not-issued (63.243764ms)
|
||||
ℹ tests 8
|
||||
ℹ suites 0
|
||||
ℹ pass 8
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 766.948689
|
||||
@@ -0,0 +1,24 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/lifecycle-verbs.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ row 194 T12: agent and reader sessions refuse the lifecycle verbs before any effect; the tester gets launch, end and the request read, never regenerate (43.457158ms)
|
||||
✔ row 194 V2 and V4 at the verb: the request is open, by the human, with a human.input; thread, retired, unknown and revoked refuse with no event (24.899895ms)
|
||||
✔ row 194 D1.1 take: a request is taken once, closes once, and lifecycleRequests lists only what is not closed (19.646348ms)
|
||||
✔ row 194 D1.1 take: a launch.revoke after the request closes it launch-revoked, and a request past 60 s closes request-expired (22.328861ms)
|
||||
✔ row 194 T15 (bus): while halted, launch and regenerate refuse processing-halted at the verb and at the take, hire and fire refuse, terminate goes; an unreadable switch refuses with its code (31.705267ms)
|
||||
✔ row 194 T12a: the tester launches and ends on its own business with actor tester; bus.tester off in the file refuses the call and the take tester-off (23.512176ms)
|
||||
✔ row 194 V3 terminate: claims revoked, open requests cancelled, bound runs named, taken requests listed; nothing at all answers not-held (30.750976ms)
|
||||
✔ row 194 V3 terminate of a thread instance: the human ends every thread, the tester only its own (24.744447ms)
|
||||
✔ row 194 T6 V5 order at the verb: the writer's named refusals, then instance-running, instance-starting, the last-listed refusal and the revision (39.171838ms)
|
||||
✔ row 194 V5: an open launch past its 60 s is not starting, as it can only close request-expired (13.773267ms)
|
||||
✔ row 194 V5 after the take: lifecycleDelete re-checks running and starting, then commits through the writer with the human as actor (24.478799ms)
|
||||
✔ row 194 V5 retry: a retired name deletes again only after workspace-rename-failed, and that request commits nothing (21.885622ms)
|
||||
✔ row 194 V5 runtime: a delete request, the take and lifecycleDelete commit the file with retired, log the human and reload so the name no longer binds (152.476894ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 570.885604
|
||||
@@ -0,0 +1,27 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/limit-checks.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ REQ-LIMIT-3 limitLeaves finds every limit object and skips the agent numbers (1.599844ms)
|
||||
✔ REQ-LIMIT-3 limitLeaves takes token limits at schema depth only, whatever their names (0.276521ms)
|
||||
✔ REQ-LIMIT-3 with no check switched on a launch is allowed, a turn never stops, and every limit is not enforced (17.011807ms)
|
||||
✔ REQ-LIMIT-3 a fixture check that refuses refuses the launch and stops the turn, logged with the limit and the count (17.416467ms)
|
||||
✔ REQ-LIMIT-3 a report that omits a limit shows it not enforced; a counted entry and a reason come through (16.441969ms)
|
||||
✔ REQ-LIMIT-4 each check gets the business, a copy of the limits, the subject, the records and the time (18.792049ms)
|
||||
✔ REQ-LIMIT-4 fail closed: a throw refuses, stops and fails the report, naming the check and the code (16.33115ms)
|
||||
✔ REQ-LIMIT-4 fail closed: a malformed answer, a promise, a rejected promise, a non-boolean or a bad hit is malformed-answer (19.086468ms)
|
||||
✔ REQ-LIMIT-4 fail closed: a check switched on but not loaded refuses, stops and fails every limit as not-loaded (16.202538ms)
|
||||
✔ REQ-LIMIT-4 state(), never-loaded case: before any load the report shows not enforced, or not-loaded for a switched-on check (13.292711ms)
|
||||
✔ REQ-LIMIT-4 state(), first-load-refused case: a check refused on its first load is not-loaded in mayLaunch, mustStop and report (14.281973ms)
|
||||
✔ REQ-LIMIT-4 fail closed: an unreadable organization file refuses and stops with check null; the report throws (13.417783ms)
|
||||
✔ REQ-LIMIT-4 fail closed: unreadable records refuse and stop with check null and fail the report (0.600481ms)
|
||||
✔ REQ-LIMIT-3 the shipped token-limit, through the real loader, counts known records only since the limit was set (27.81642ms)
|
||||
✔ REQ-LIMIT-3 a token limit for a provider named limit is counted and refuses, beside an agent limit of the same name (12.878814ms)
|
||||
✔ REQ-LIMIT-3 core reaches limit checks only through the plug-in loader (1.395068ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 16
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 313.502834
|
||||
@@ -0,0 +1,16 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/limit-stop.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ REQ-LIMIT-4 a role run at its limit stops at the end of its turn: RESULT and read land first, the claim is revoked by limit-check (38.101082ms)
|
||||
✔ REQ-LIMIT-4 the stop also lands on state; a run with no stop ends without a limit (34.908211ms)
|
||||
✔ REQ-LIMIT-4 fail closed: a mustStop throw or a malformed answer stops the run, naming the bus and the code (95.380091ms)
|
||||
✔ REQ-LIMIT-4 a thread run at its limit is released with the reason, and its end record names the limit (28.922384ms)
|
||||
✔ REQ-LIMIT-4 a broker with no limit checks configured never stops a run (19.048342ms)
|
||||
ℹ tests 5
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 305.238601
|
||||
@@ -0,0 +1,22 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/limits-runtime.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
limits: {"event":"limit-reached","business":"demo","check":"token-limit","export":"mayLaunch","subject":{"instance":"coder","provider":"zai","model":"glm-5.3-flash","account":null},"path":["tokens","instances","coder"],"limit":0,"count":0,"unknownTurns":0}
|
||||
organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
usage: {"event":"usage-unknown","business":"demo","run":"run1","instance":"coder","turn":"18e16b92-0c3d-423f-8ce1-f4a68bf5b24d","source":"@none","code":"baseline-unknown"}
|
||||
limits: {"event":"limit-reached","business":"demo","check":"token-limit","export":"mustStop","subject":{"instance":"coder","provider":"zai","model":"glm-5.3-flash","account":null},"path":["tokens","instances","coder"],"limit":0,"count":0,"unknownTurns":1}
|
||||
usage: {"event":"usage-unknown","business":"demo","run":"run1","instance":"coder","turn":"65bc80de-4f65-4c0c-b11f-5fabbb337df8","source":"@none","code":"baseline-unknown"}
|
||||
organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
✔ REQ-LIMIT-3 REQ-LIMIT-4 runtime: limits carries the token count, mayLaunch refuses at the limit, a reset moves since (176.332892ms)
|
||||
✔ REQ-LIMIT-3 runtime: with no limit check switched on, the limit shows not enforced and every launch is allowed (48.303381ms)
|
||||
✔ REQ-LIMIT-4 runtime: the broker asks the shipped token-limit after a turn, and the run at its limit stops on its next receive (64.384661ms)
|
||||
✔ REQ-LIMIT-4 runtime: with no usage source a turn is unknown, counts zero and stops nothing under a limit of 1 (61.557366ms)
|
||||
✔ REQ-LIMIT-3 runtime: switching a limit check on with plugins.set loads it without a launch or a turn (74.837608ms)
|
||||
ℹ tests 5
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 483.732161
|
||||
@@ -0,0 +1,16 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/limits.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
organization: {"event":"reload-needs-restart","business":"demo"}
|
||||
✔ limits binds actor from human proof and rejects role, reader, a tester set and forged actor (26.389357ms)
|
||||
✔ runtime wires verified human settings to the actual shared file writer and actor receipt (131.326332ms)
|
||||
✔ uncertain organization receipts leave bus startup and reads alone but refuse writes until reconciled (67.495935ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 329.367772
|
||||
@@ -0,0 +1,14 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/message-citation.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ within-role sends cite an open gated launch decision without spending it or naming it in grants (33.786703ms)
|
||||
✔ missing and foreign-business citations refuse and roll back message and grant (23.022036ms)
|
||||
✔ cross-role sends still need a matching resolved decision and consume it once (26.823402ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 174.083319
|
||||
@@ -0,0 +1,17 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/message-filter.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ trail on a hidden message id answers exactly as on an unknown id, for the owner, a reader and the tester (28.647197ms)
|
||||
✔ replies on a hidden message id answers exactly as on an unknown id, for the owner, a reader and the tester (28.45137ms)
|
||||
✔ trail on a decision keeps the decision and drops the user thread messages, their deliveries and their events (38.380375ms)
|
||||
✔ replies leaves out other users thread messages and still fills a page (215.397939ms)
|
||||
✔ messages in the business human and tester threads are not hidden (row 177 unchanged) (47.334765ms)
|
||||
✔ governance pin: the owner sees decisions, inbox entries, claims, tasks and project files, but not the user messages (119.043011ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 576.557872
|
||||
@@ -0,0 +1,15 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/messages.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ messages pages all human messages newest first without writes; read state is history (358.315594ms)
|
||||
✔ messages refuses role callers, invalid paging and cursors outside this human feed (28.916097ms)
|
||||
✔ views messages passes only its paging arguments through (0.333574ms)
|
||||
✔ messages isolates businesses even with a valid foreign cursor (21.082789ms)
|
||||
ℹ tests 4
|
||||
ℹ suites 0
|
||||
ℹ pass 4
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 521.375984
|
||||
@@ -0,0 +1,24 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/messaging.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ the assistant sends to the user and to the chief of staff only (41.993409ms)
|
||||
✔ an assistant send to any other role, or to the tester, is refused and logged (43.121841ms)
|
||||
✔ only the user and the chief of staff may send to the assistant; the tester is refused by default (39.584296ms)
|
||||
✔ REQ-ASSIST-2 REQ-THREAD-1 thread.send to an instance that does not hear from the user is refused and stores nothing (31.285133ms)
|
||||
✔ a sender-side list alone refuses a send to a role that has no list (34.479897ms)
|
||||
✔ a target-side list alone refuses a send from a role that has no list (35.130953ms)
|
||||
✔ the sender list is checked before the target list (31.657428ms)
|
||||
✔ roles without the field behave exactly as before (45.092982ms)
|
||||
✔ a business with no role definitions at all is unlimited (40.831591ms)
|
||||
✔ a malformed messaging field refuses at boot (15.511551ms)
|
||||
✔ the assistant's review.request to a reviewer is refused and logged, even with an approved decision (38.211668ms)
|
||||
✔ a review.verdict to the assistant from a role outside its receiveFrom is refused and logged (43.53497ms)
|
||||
✔ review requests and verdicts between roles without the field are unchanged (33.169693ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 564.335441
|
||||
@@ -0,0 +1,19 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/model-proxy.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ proxy.init only accepts path-bound outside-agent human; refuses agent/tester/reader (30.158664ms)
|
||||
✔ proxy.init proxy-key-invalid (15.434067ms)
|
||||
✔ proxy.init proxy-config-invalid (15.208282ms)
|
||||
✔ proxy.init invalid-request (14.948605ms)
|
||||
✔ proxy.init not-configured (14.582576ms)
|
||||
✔ proxy.init callback error redacts key and maps outcome to named refusal (16.400417ms)
|
||||
✔ socket awaits proxy.init and does not return a Promise object or retain human cap (37.025958ms)
|
||||
✔ proxy-init-failed: extra callback fields cannot return a management key (13.28496ms)
|
||||
ℹ tests 8
|
||||
ℹ suites 0
|
||||
ℹ pass 8
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 251.574261
|
||||
@@ -0,0 +1,12 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/name-migration.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ 3f copy migrates to 3g preserving every old column/row, with an empty instance_names and null to_name (97.212932ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 178.367219
|
||||
@@ -0,0 +1,18 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/names.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ REQ-MSG-2: the chief of staff names an instance under its within-role grant, and the write is logged (26.603404ms)
|
||||
✔ REQ-MSG-2: the human names an instance through the CLI (21.775782ms)
|
||||
✔ REQ-MSG-2: a role without the grant, or holding it cross-role, is refused not-authorized (23.707657ms)
|
||||
✔ REQ-MSG-2: a name is unique in the business and is never an instance key or a role name (36.97022ms)
|
||||
✔ REQ-MSG-2: a send by name reaches the instance and records both; a send by instance key is unchanged (29.552227ms)
|
||||
✔ REQ-MSG-2: an instance key beats a name that equals it, as when a later instance takes the key (19.980379ms)
|
||||
✔ REQ-MSG-2: a role name beats a name that equals it, as when a later definition takes the word (sage-0590) (22.045582ms)
|
||||
ℹ tests 7
|
||||
ℹ suites 0
|
||||
ℹ pass 7
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 263.705437
|
||||
@@ -0,0 +1,15 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/peer-transport.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ proof receives actual peer, cap traffic never invokes helper and transient cap disconnects (7.391813ms)
|
||||
✔ proof helper error and disconnect during verification never dispatch or bind (1.6363ms)
|
||||
✔ Client receives explicit proof refusal codes without dispatch, not outcome-unknown (45.806916ms)
|
||||
✔ asynchronous proof calls release their transient session on success, failure and timeout (28.94349ms)
|
||||
ℹ tests 4
|
||||
ℹ suites 0
|
||||
ℹ pass 4
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 158.274426
|
||||
@@ -0,0 +1,16 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/peercred.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ T2 eight proof callers and a racing copier bind the exact accepted socket, which survives helper exit (264.734028ms)
|
||||
✔ helper output and failures fail closed including unsafe gid (1.991771ms)
|
||||
✔ helper timeout, capacity and shutdown refuse without leaving children (26.416564ms)
|
||||
✔ missing or non-regular peer helper refuses at construction before opening the bus (0.302794ms)
|
||||
✔ shutdown waits for killed helper close before returning (5.884003ms)
|
||||
ℹ tests 5
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 393.032086
|
||||
@@ -0,0 +1,18 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/plugins-verb.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
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"}
|
||||
✔ plugins and plugins.set refuse every non-human session and a forged actor, and pass only the patch with the verified actor (23.305821ms)
|
||||
✔ runtime: the switch changes the organization file, the receipt carries the actor, and a bad shape, an unknown module and a stale revision are refused with nothing written (114.427291ms)
|
||||
✔ vikunja:19/309 through the broker, a patch switches the kinds it names and keeps the rest; null removes one kind and is trailed (54.319684ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 274.109423
|
||||
@@ -0,0 +1,16 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/principal.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ principal binds kernel peer PID and uid, maps owner, and never takes identity or role from body (1.597129ms)
|
||||
✔ user requires its own nonce and full walk plus immediate same-tree Console parent (0.446685ms)
|
||||
✔ tester deliberately admits agent parents but rejects managed runs and another nonce (0.281855ms)
|
||||
✔ human leaf identity is reread after walking the parents (0.158735ms)
|
||||
✔ console requires its own wrapper, nonce and serve parent, and a configured owner from the spawn env (1.310643ms)
|
||||
ℹ tests 5
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 61.161518
|
||||
@@ -0,0 +1,19 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/process.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ broker process binds trusted launches, offers reader capabilities, refuses human mutation, closes cleanly (176.34163ms)
|
||||
✔ startup token refusal returns safe code without value or partial listening broker (117.135133ms)
|
||||
✔ loaded fixture token is absent from socket replies and SQLite, including refusal evidence (165.840622ms)
|
||||
✔ killed broker leaves an explicit stale lock; another process cannot silently reclaim it (266.442758ms)
|
||||
✔ trusted host registers later launches; socket clients never have a registration verb (167.486697ms)
|
||||
✔ REQ-LIMIT-4 the broker process answers the launcher's mayLaunch op with the limits' awaited decision (158.123215ms)
|
||||
✔ runtime excludes declared project roots even when host supplies no repoRoots (134.98126ms)
|
||||
✔ a refused launch binding leaves the broker and existing capabilities alive; bad protocol stops it (160.164087ms)
|
||||
ℹ tests 8
|
||||
ℹ suites 0
|
||||
ℹ pass 8
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1399.583687
|
||||
@@ -0,0 +1,13 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/processing-runtime.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ real runtime injects the coordinator, stops its workload and mirrors stable stop events across restart (177.61402ms)
|
||||
✔ invalid state still starts the control bus and human halt then resume repairs it (70.885289ms)
|
||||
ℹ tests 2
|
||||
ℹ suites 0
|
||||
ℹ pass 2
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 377.053675
|
||||
@@ -0,0 +1,12 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/processing-timeout.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ processing halt and resume extend only the socket timeout while ordinary status retains the explicit timeout (183.251346ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 245.11661
|
||||
@@ -0,0 +1,12 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/processing-web.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ a root halt aborts the active search-source signal before the normal web deadline (34.356084ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 110.065633
|
||||
@@ -0,0 +1,25 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/processing.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ processing.halt refuses agent reader and tester before any transition (26.688109ms)
|
||||
✔ processing.resume refuses agent reader and tester before any transition (18.052576ms)
|
||||
✔ human halt and clear each have one event with verified actor; launch.restore cannot clear (19.981011ms)
|
||||
✔ all ordinary work verbs refuse before dispatch while pure reads remain available (33.169443ms)
|
||||
✔ task web authorization and bind paths refuse before external work (17.981298ms)
|
||||
✔ recordEvent cannot forge processing.halt (12.885391ms)
|
||||
✔ recordEvent cannot forge processing.resume (13.079871ms)
|
||||
✔ recordEvent cannot forge processing.stop (12.184807ms)
|
||||
✔ recordTask poll cannot forge a processing action through its kinds filter (12.683197ms)
|
||||
✔ recordTask self cannot forge a processing action through its kinds filter (12.420363ms)
|
||||
✔ spec read remains a read but cannot release new write work after an await (16.346502ms)
|
||||
✔ the real socket awaits halt and resume beyond the ordinary idle deadline (55.104253ms)
|
||||
✔ a malformed processing reader never silently admits agent work (17.84528ms)
|
||||
✔ halt refuses the newly landed host executor path before credentials or effects (14.811212ms)
|
||||
ℹ tests 14
|
||||
ℹ suites 0
|
||||
ℹ pass 14
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 365.550852
|
||||
@@ -0,0 +1,15 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/project-await.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ D1: committed write with a failed receipt refuses outcome-unknown without action.allowed (29.428454ms)
|
||||
✔ D2: spec.read refuses without content if its role is released during the read (15.624206ms)
|
||||
✔ D3: spec.read secret check refuses flagged content without content (13.588254ms)
|
||||
✔ D3: spec.read secret check refuses flagged subject without content (13.205698ms)
|
||||
ℹ tests 4
|
||||
ℹ suites 0
|
||||
ℹ pass 4
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 151.450243
|
||||
@@ -0,0 +1,19 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/project-files.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ a human lists, opens and saves; the save is one commit by the business human (132.105444ms)
|
||||
✔ an agent and a reader refuse every file verb and nothing is written (48.207025ms)
|
||||
✔ a stale base refuses stale-base and writes nothing (74.378502ms)
|
||||
✔ paths outside the spec and docs refuse, as do unknown projects, missing files and odd arguments (63.254446ms)
|
||||
✔ without a project adapter the file verbs refuse project-not-configured (28.927136ms)
|
||||
✔ on the socket a save may carry 1 MiB of text; every other request keeps the 64 KiB limit (254.632578ms)
|
||||
✔ a request that names the save verb first and another verb last is refused at 64 KiB (63.401327ms)
|
||||
✔ two saves racing for one repository make one commit (141.008168ms)
|
||||
ℹ tests 8
|
||||
ℹ suites 0
|
||||
ℹ pass 8
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 892.633687
|
||||
@@ -0,0 +1,14 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/project-runtime.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ Broker keeps the sandbox client import closure: only the listed imports, no lazy project import (1.932022ms)
|
||||
✔ without a trusted project adapter all three async paths refuse project-not-configured (51.548381ms)
|
||||
✔ real startBroker injects the project adapter for socket reads and bound-author record writes (207.73414ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 380.527542
|
||||
@@ -0,0 +1,24 @@
|
||||
command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/publish.test.mjs"]
|
||||
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
|
||||
launch nice: 19
|
||||
✔ a raise with no recorded push refuses no-push; a raise binds the latest push and shows it (41.555988ms)
|
||||
✔ happy path: the fork is the upstream repo under the agent's own user, the destination is host-built (24.331189ms)
|
||||
✔ a hard wait: no decision refuses, and a decision for another task refuses (23.035101ms)
|
||||
✔ r4 B4: approve while the latest push is A, push B, publish refuses decision-mismatch (48.316791ms)
|
||||
✔ grant and fork refusals (45.720037ms)
|
||||
✔ remote-not-fork, compared without case, and remote-host-mismatch, at push (87.581486ms)
|
||||
✔ two agents granted one project each get their own fork (42.93137ms)
|
||||
✔ the request cannot name the fork, the user or the destination (20.753ms)
|
||||
✔ one decision, one open publish: a second ticket refuses publish-busy, whatever its branch (49.437518ms)
|
||||
✔ publishRefused files the code on the task's trail and drops the ticket (24.313389ms)
|
||||
✔ git.push.remote is in neither ROUTED list and no shipped role grants it (0.86571ms)
|
||||
✔ runtime: withGitea keys from the open ticket only, and the store root is the organization dir (104.414086ms)
|
||||
✔ the bus process answers the publish ops from their own lines, not launch-op-refused (174.395717ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 767.321648
|
||||
Loaded 100 of 314 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user