fix(proxy): normalize absent provider GET after regression RED and pinned acceptance
This commit is contained in:
1 parent
e7438743ff
commit
b47ee2c0ef
51 files changed
+2057
No files matched your search
@@ -5591,3 +5591,5 @@ claim. Receipts and limitations in agents/lena/work/queue-296/BUILD.md and run-r
|
||||
2026-10-25 Poe — row330 / #1828 focused block: first account RED6pass/4expected; source-only fixes; eight new files88/88 green, no skips. Offline PIN8.0.42 acceptance then exited1 before initial-account checkpoint and reported nice16 despite19 wrapper. Stopped at first unexpected red, returned slot to Sage, no rerun or mutants. Root cause unresolved; no full-gate or landing claim. Evidence: agents/poe/work/queue-330/BUILD.md and green-*.txt / upgrade-8.0.42.txt.
|
||||
|
||||
2026-10-25 Poe — row330 focused retry per sage-4446: all8 files88/88 green again; uptime per step retained. After Store fixture correction, offline PIN8.0.42 acceptance reached broker-bound but refused proxy-down at initial-accounts (load5.98/15.98/16.44). Stopped, returned slot, no rerun or mutants. See agents/poe/work/queue-330/block2-* and BUILD.md. No full-gate or completion claim.
|
||||
|
||||
2026-10-25 Poe — row330 sage-4469 block: approved fixed GET provider404 normalization after exact RED2fail/9pass; GREEN10whole files99/99, pinned8.0.42 offline acceptance passed (both priority read-backs), four named mutants killed/restored with all controls green. No retries, old assertions or timeout changes. Slot returned. Evidence agents/poe/work/queue-330/404-* and BUILD.md. P2 integration/full global gate/Q246 reviews still pending; no landing claim.
|
||||
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:47:01Z
|
||||
02:47:01 up 11 days, 18:06, 2 users, load average: 13.77, 14.23, 20.51
|
||||
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:54Z
|
||||
02:46:54 up 11 days, 18:06, 2 users, load average: 13.49, 14.18, 20.53
|
||||
@@ -0,0 +1,20 @@
|
||||
P4 offline upgrade version=8.0.42 nice=16
|
||||
P4 diagnostic {"stage":"binary-start","nodePriority":16,"childPriority":16,"lastClientErrorCode":null,"nodeSchedulingPolicy":5,"childSchedulingPolicy":5,"childExitCode":null,"childSignal":null}
|
||||
P4 diagnostic {"stage":"management-ready","nodePriority":16,"childPriority":16,"lastClientErrorCode":"proxy-client-down","nodeSchedulingPolicy":5,"childSchedulingPolicy":5,"childExitCode":null,"childSignal":null}
|
||||
P4 diagnostic {"stage":"store-open","nodePriority":16,"childPriority":16,"lastClientErrorCode":"proxy-client-down","nodeSchedulingPolicy":5,"childSchedulingPolicy":5,"childExitCode":null,"childSignal":null}
|
||||
P4 diagnostic {"stage":"broker-bound","nodePriority":16,"childPriority":16,"lastClientErrorCode":"proxy-client-down","nodeSchedulingPolicy":5,"childSchedulingPolicy":5,"childExitCode":null,"childSignal":null}
|
||||
P4 diagnostic {"stage":"initial-accounts","nodePriority":16,"childPriority":16,"lastClientErrorCode":"proxy-client-down","nodeSchedulingPolicy":5,"childSchedulingPolicy":5,"childExitCode":null,"childSignal":null}
|
||||
P4 empty-provider diagnostic {"httpStatus":404,"type":"object","isArray":true,"count":0}
|
||||
proxy.accounts initial empty; GET /credentials + GET /config/api-keys/claude
|
||||
proxy.login.start claude GET /oauth/auth-url; fields=url,state only
|
||||
proxy.login.submit POST /oauth/callback; fake code never ok; GET /oauth/status=wait
|
||||
proxy.login.cancel DELETE /oauth/session confirmed
|
||||
proxy.login.start codex GET /oauth/auth-url; fields=url,state only
|
||||
proxy.login.submit POST /oauth/callback; fake code never ok; GET /oauth/status=wait
|
||||
proxy.login.cancel DELETE /oauth/session confirmed
|
||||
proxy.apikey.add PUT /config/api-keys/claude; account fields=accountId,provider,displayName,status,priority; id from auth_index
|
||||
proxy.priority.set API-key PUT /config/api-keys/claude; priority read-back=7
|
||||
proxy.keys GET /config/access/api-keys; fields=keyId,management,agent,issuedAt,state; sentinel labelled; values absent
|
||||
proxy.priority.set OAuth PATCH /credentials/fields body={name,priority}; priority read-back=8
|
||||
PASS offline native-page bus contract and secret-free receipts
|
||||
P4 diagnostic {"stage":"initial-accounts","nodePriority":16,"childPriority":null,"lastClientErrorCode":"proxy-client-down","nodeSchedulingPolicy":5,"childSchedulingPolicy":null,"childExitCode":0,"childSignal":null}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/ICE0YV
|
||||
✔ accounts have exactly the allowlisted public fields, id from credential identifier (28.859027ms)
|
||||
✔ token-like data in every upstream field never reaches public accounts (5.070752ms)
|
||||
✔ API key account is derived from proxy auth_index, never api-key, and can set priority (12.225188ms)
|
||||
✔ OAuth priority uses top-level name/priority and confirms it through list (4.580885ms)
|
||||
✔ priority-unconfirmed: accepted API-key write with unchanged read-back refuses (5.588673ms)
|
||||
✔ priority-write-refused: OAuth PATCH status 201 (3.491938ms)
|
||||
✔ priority-write-refused: OAuth PATCH status 400 (4.410853ms)
|
||||
✔ priority-invalid: unknown account refuses before any write (2.983779ms)
|
||||
✔ proxy-down: a closed management listener refuses once (1.996951ms)
|
||||
✔ client keys return ids, sentinel/foreign labels and only scoped record metadata (3.672515ms)
|
||||
ℹ tests 10
|
||||
ℹ suites 0
|
||||
ℹ pass 10
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 183.915712
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:24Z
|
||||
02:46:24 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:24Z
|
||||
02:46:24 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/WlQ8bY
|
||||
✔ fresh404 yields no accounts, then adds the first key once with no value leakage (32.08173ms)
|
||||
✔ malformed200 null remains proxy-down, no retry or write (7.8998ms)
|
||||
✔ malformed200 object remains proxy-down, no retry or write (3.878116ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 147.324337
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:23Z
|
||||
02:46:23 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:22Z
|
||||
02:46:22 up 11 days, 18:06, 2 users, load average: 13.76, 14.37, 20.83
|
||||
@@ -0,0 +1,26 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/zFmWGh
|
||||
✔ proxy.login.start: provider-not-allowed (32.675653ms)
|
||||
✔ proxy.apikey.add: provider-not-allowed (0.468026ms)
|
||||
✔ apikey-invalid empty (0.345583ms)
|
||||
✔ apikey-invalid too long (0.330348ms)
|
||||
✔ apikey-invalid charset (0.281139ms)
|
||||
✔ callback-url-invalid not URL (1.581908ms)
|
||||
✔ callback-url-invalid oversize (0.382376ms)
|
||||
✔ callback-url-invalid repeated state (0.344928ms)
|
||||
✔ login-state-unknown callback never reaches proxy (0.456109ms)
|
||||
✔ login state is scoped to the human and business (0.514738ms)
|
||||
✔ accepted callback wait is pending; only a status ok completes and retires state (0.915716ms)
|
||||
✔ expiry reports login-timeout once with no management call and retires state (0.306001ms)
|
||||
✔ cancel calls DELETE and retires state (0.39506ms)
|
||||
✔ upstream OAuth error body never crosses bus response (0.266204ms)
|
||||
✔ priority-invalid {"accountId":"bad","priority":1} (0.216492ms)
|
||||
✔ priority-invalid {"accountId":"aaaaaaaaaaaa","priority":1.5} (0.206751ms)
|
||||
✔ priority-invalid {"accountId":"aaaaaaaaaaaa","priority":1001} (0.245944ms)
|
||||
ℹ tests 17
|
||||
ℹ suites 0
|
||||
ℹ pass 17
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 107.671923
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:24Z
|
||||
02:46:24 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:24Z
|
||||
02:46:24 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
@@ -0,0 +1,50 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/WXpqyV
|
||||
✔ proxy.accounts: owner calls page once with business/human scope (26.116796ms)
|
||||
✔ proxy.accounts: tester human-required (20.297319ms)
|
||||
✔ proxy.accounts: agent human-required (16.822485ms)
|
||||
✔ proxy.accounts: user human-required (17.662186ms)
|
||||
✔ proxy.accounts: not-configured (23.121015ms)
|
||||
✔ proxy.login.start: owner calls page once with business/human scope (17.138825ms)
|
||||
✔ proxy.login.start: tester human-required (17.581147ms)
|
||||
✔ proxy.login.start: agent human-required (20.879742ms)
|
||||
✔ proxy.login.start: user human-required (24.234711ms)
|
||||
✔ proxy.login.start: not-configured (19.75879ms)
|
||||
✔ proxy.login.submit: owner calls page once with business/human scope (22.157242ms)
|
||||
✔ proxy.login.submit: tester human-required (25.380596ms)
|
||||
✔ proxy.login.submit: agent human-required (21.217295ms)
|
||||
✔ proxy.login.submit: user human-required (23.521967ms)
|
||||
✔ proxy.login.submit: not-configured (24.585017ms)
|
||||
✔ proxy.login.status: owner calls page once with business/human scope (22.913517ms)
|
||||
✔ proxy.login.status: tester human-required (21.7594ms)
|
||||
✔ proxy.login.status: agent human-required (28.198167ms)
|
||||
✔ proxy.login.status: user human-required (18.344285ms)
|
||||
✔ proxy.login.status: not-configured (20.030294ms)
|
||||
✔ proxy.login.cancel: owner calls page once with business/human scope (16.420549ms)
|
||||
✔ proxy.login.cancel: tester human-required (20.486195ms)
|
||||
✔ proxy.login.cancel: agent human-required (17.871874ms)
|
||||
✔ proxy.login.cancel: user human-required (20.801042ms)
|
||||
✔ proxy.login.cancel: not-configured (24.049445ms)
|
||||
✔ proxy.apikey.add: owner calls page once with business/human scope (20.743633ms)
|
||||
✔ proxy.apikey.add: tester human-required (20.590224ms)
|
||||
✔ proxy.apikey.add: agent human-required (20.621701ms)
|
||||
✔ proxy.apikey.add: user human-required (23.304327ms)
|
||||
✔ proxy.apikey.add: not-configured (26.176447ms)
|
||||
✔ proxy.priority.set: owner calls page once with business/human scope (18.750335ms)
|
||||
✔ proxy.priority.set: tester human-required (19.039252ms)
|
||||
✔ proxy.priority.set: agent human-required (18.745218ms)
|
||||
✔ proxy.priority.set: user human-required (17.214992ms)
|
||||
✔ proxy.priority.set: not-configured (17.152828ms)
|
||||
✔ proxy.keys: owner calls page once with business/human scope (18.060003ms)
|
||||
✔ proxy.keys: tester human-required (17.424731ms)
|
||||
✔ proxy.keys: agent human-required (14.943668ms)
|
||||
✔ proxy.keys: user human-required (16.025103ms)
|
||||
✔ proxy.keys: not-configured (16.373436ms)
|
||||
✔ API-key canary never enters broker events or unknown error output (15.813479ms)
|
||||
ℹ tests 41
|
||||
ℹ suites 0
|
||||
ℹ pass 41
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 994.095736
|
||||
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:24Z
|
||||
02:46:24 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:23Z
|
||||
02:46:23 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/qBvaqm
|
||||
✔ empty provider GET404 yields empty array, discards body and receipts actual404 once (23.337829ms)
|
||||
✔ provider GET401 remains proxy-client-refused, no retry (5.03975ms)
|
||||
✔ provider GET403 remains proxy-client-refused, no retry (2.874184ms)
|
||||
✔ provider GET500 remains proxy-client-refused, no retry (2.839998ms)
|
||||
✔ getCredentials404 remains proxy-client-refused, no retry (3.031846ms)
|
||||
✔ getKeys404 remains proxy-client-refused, no retry (2.739596ms)
|
||||
✔ provider PUT404 remains proxy-client-refused, never treated as empty GET (1.681292ms)
|
||||
✔ provider GET200 array passes through, with receipt and no retry (1.893456ms)
|
||||
ℹ tests 8
|
||||
ℹ suites 0
|
||||
ℹ pass 8
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 148.993332
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:22Z
|
||||
02:46:22 up 11 days, 18:06, 2 users, load average: 13.76, 14.37, 20.83
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:22Z
|
||||
02:46:22 up 11 days, 18:06, 2 users, load average: 13.76, 14.37, 20.83
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/NaZhtr
|
||||
✔ OAuth management calls keep URL and state out of receipts (25.417454ms)
|
||||
✔ upstream key goes only in request body and upstream refusal body is discarded (5.332331ms)
|
||||
✔ redirected management calls are not followed or retried (2.562305ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 139.356091
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:23Z
|
||||
02:46:23 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:23Z
|
||||
02:46:23 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/UVkG6Q
|
||||
✔ Console production module graph cannot import the model-proxy client (93.862563ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 177.142216
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:30Z
|
||||
02:46:30 up 11 days, 18:06, 2 users, load average: 12.40, 14.06, 20.66
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:29Z
|
||||
02:46:29 up 11 days, 18:06, 2 users, load average: 12.40, 14.06, 20.66
|
||||
@@ -0,0 +1,12 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/HkzUFL
|
||||
✔ proxy browser clears write-only key immediately, sends once and renders data as text (923.252097ms)
|
||||
✔ proxy browser OAuth opens safely, callback wait stays pending, status ok completes (2763.533016ms)
|
||||
✔ proxy browser read-only disables account changes (662.846864ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 4447.991189
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:29Z
|
||||
02:46:29 up 11 days, 18:06, 2 users, load average: 12.40, 14.06, 20.66
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:25Z
|
||||
02:46:25 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
@@ -0,0 +1,11 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/MVzxL3
|
||||
✔ API-key canary reaches fake once and zero responses/logs/receipts/store files (49.859682ms)
|
||||
✔ OAuth URLs, state and code stay out of broker records and management receipts (21.222227ms)
|
||||
ℹ tests 2
|
||||
ℹ suites 0
|
||||
ℹ pass 2
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 266.31653
|
||||
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:25Z
|
||||
02:46:25 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:25Z
|
||||
02:46:25 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
@@ -0,0 +1,20 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/pooz0I
|
||||
✔ owner proxy routes each make exactly one allowlisted call (30.857128ms)
|
||||
✔ proxy write refuses signed-out (3.336504ms)
|
||||
✔ proxy write refuses loopback (2.704228ms)
|
||||
✔ proxy write refuses cross-origin (1.698264ms)
|
||||
✔ proxy write refuses missing Fetch Metadata (1.705732ms)
|
||||
✔ all proxy writes are read-only without --send (4.69854ms)
|
||||
✔ granted user never reaches owner page or any proxy route (7.577808ms)
|
||||
✔ native page offers write-only key input and no panel script (2.379451ms)
|
||||
✔ Console caller rejects every non-proxy verb (1.337229ms)
|
||||
✔ tester socket refuses proxy page, reads and writes before any owner call (8.577124ms)
|
||||
✔ malformed API-key JSON never appears in errors or logs (1.827938ms)
|
||||
ℹ tests 11
|
||||
ℹ suites 0
|
||||
ℹ pass 11
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 255.783124
|
||||
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:25Z
|
||||
02:46:25 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:24Z
|
||||
02:46:24 up 11 days, 18:06, 2 users, load average: 13.22, 14.25, 20.76
|
||||
@@ -0,0 +1,10 @@
|
||||
packages/model-proxy/tests/empty-provider.test.mjs
|
||||
packages/bus/tests/proxy-page-empty-provider.test.mjs
|
||||
packages/model-proxy/tests/page-client.test.mjs
|
||||
packages/bus/tests/proxy-page.test.mjs
|
||||
packages/bus/tests/proxy-page-state.test.mjs
|
||||
packages/bus/tests/proxy-page-accounts.test.mjs
|
||||
packages/webui/tests/proxy-page.test.mjs
|
||||
packages/webui/tests/proxy-canary.test.mjs
|
||||
packages/webui/tests/proxy-browser.test.mjs
|
||||
packages/webui/tests/proxy-architecture.test.mjs
|
||||
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:47:52Z
|
||||
02:47:52 up 11 days, 18:07, 2 users, load average: 9.43, 13.06, 19.79
|
||||
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:47:50Z
|
||||
02:47:50 up 11 days, 18:07, 2 users, load average: 9.43, 13.06, 19.79
|
||||
@@ -0,0 +1,8 @@
|
||||
{"mutant":"accounts-unfiltered-field","test":"packages/bus/tests/proxy-page-accounts.test.mjs","exit":1,"nice":19,"failures":2,"passes":8,"failingTests":["accounts have exactly the allowlisted public fields, id from credential identifier","token-like data in every upstream field never reaches public accounts"],"killed":true,"restored":true,"originalSha256":"14acdb4d3fdaabad508eec7378740b13c175d4bdd0c6e707a673138eff82365b"}
|
||||
{"mutant":"accounts-unfiltered-field","positiveControl":true,"test":"packages/bus/tests/proxy-page-accounts.test.mjs","exit":0,"nice":19,"failures":0,"passes":10,"failingTests":[],"positive":true}
|
||||
{"mutant":"callback-skips-state","test":"packages/bus/tests/proxy-page-state.test.mjs","exit":1,"nice":19,"failures":2,"passes":15,"failingTests":["login-state-unknown callback never reaches proxy","accepted callback wait is pending; only a status ok completes and retires state"],"killed":true,"restored":true,"originalSha256":"14acdb4d3fdaabad508eec7378740b13c175d4bdd0c6e707a673138eff82365b"}
|
||||
{"mutant":"callback-skips-state","positiveControl":true,"test":"packages/bus/tests/proxy-page-state.test.mjs","exit":0,"nice":19,"failures":0,"passes":17,"failingTests":[],"positive":true}
|
||||
{"mutant":"proxy-route-accepts-granted-user","test":"packages/webui/tests/proxy-page.test.mjs","exit":1,"nice":19,"failures":1,"passes":10,"failingTests":["granted user never reaches owner page or any proxy route"],"killed":true,"restored":true,"originalSha256":"7b7bee91604b7bd973027b177de83205db9aed366e694072fc6343b46465b5ba"}
|
||||
{"mutant":"proxy-route-accepts-granted-user","positiveControl":true,"test":"packages/webui/tests/proxy-page.test.mjs","exit":0,"nice":19,"failures":0,"passes":11,"failingTests":[],"positive":true}
|
||||
{"mutant":"apikey-logged","test":"packages/webui/tests/proxy-canary.test.mjs","exit":1,"nice":19,"failures":1,"passes":1,"failingTests":["API-key canary reaches fake once and zero responses/logs/receipts/store files"],"killed":true,"restored":true,"originalSha256":"14acdb4d3fdaabad508eec7378740b13c175d4bdd0c6e707a673138eff82365b"}
|
||||
{"mutant":"apikey-logged","positiveControl":true,"test":"packages/webui/tests/proxy-canary.test.mjs","exit":0,"nice":19,"failures":0,"passes":2,"failingTests":[],"positive":true}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/zwP2zD
|
||||
✖ fresh404 yields no accounts, then adds the first key once with no value leakage (31.629717ms)
|
||||
✔ malformed200 null remains proxy-down, no retry or write (10.121658ms)
|
||||
✔ malformed200 object remains proxy-down, no retry or write (5.73007ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 2
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 218.324391
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at packages/bus/tests/proxy-page-empty-provider.test.mjs:7:1
|
||||
✖ fresh404 yields no accounts, then adds the first key once with no value leakage (31.629717ms)
|
||||
Error [ProxyError]: proxy-down
|
||||
at refuse (file:///home/jwoltje/.t3/worktrees/mosaic-stack/poe-row330/packages/model-proxy/src/common.mjs:8:39)
|
||||
at ProxyPage.request (file:///home/jwoltje/.t3/worktrees/mosaic-stack/poe-row330/packages/bus/src/proxy-page.mjs:80:7)
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/poe-row330/packages/bus/tests/proxy-page-empty-provider.test.mjs:10:17)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) {
|
||||
code: 'proxy-down'
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:06Z
|
||||
02:46:06 up 11 days, 18:05, 2 users, load average: 15.17, 14.64, 21.02
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:06Z
|
||||
02:46:06 up 11 days, 18:05, 2 users, load average: 15.17, 14.64, 21.02
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
nice=19 TMPDIR=/mnt/storage/scratch/tmp/gJcxnP
|
||||
✖ empty provider GET404 yields empty array, discards body and receipts actual404 once (30.718928ms)
|
||||
✔ provider GET401 remains proxy-client-refused, no retry (8.324236ms)
|
||||
✔ provider GET403 remains proxy-client-refused, no retry (2.996504ms)
|
||||
✔ provider GET500 remains proxy-client-refused, no retry (2.838583ms)
|
||||
✔ getCredentials404 remains proxy-client-refused, no retry (3.923009ms)
|
||||
✔ getKeys404 remains proxy-client-refused, no retry (4.502681ms)
|
||||
✔ provider PUT404 remains proxy-client-refused, never treated as empty GET (2.271108ms)
|
||||
✔ provider GET200 array passes through, with receipt and no retry (2.585158ms)
|
||||
ℹ tests 8
|
||||
ℹ suites 0
|
||||
ℹ pass 7
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 192.563954
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at packages/model-proxy/tests/empty-provider.test.mjs:35:1
|
||||
✖ empty provider GET404 yields empty array, discards body and receipts actual404 once (30.718928ms)
|
||||
Error [ProxyError]: proxy-client-refused
|
||||
at ClientRequest.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/poe-row330/packages/model-proxy/src/client.mjs:30:49)
|
||||
at ClientRequest.wrapper (node:events:639:12)
|
||||
at ClientRequest.emit (node:events:514:20)
|
||||
at HTTPParser.parserOnIncomingClient (node:_http_client:973:27)
|
||||
at HTTPParser.parserOnHeadersComplete (node:_http_common:125:17)
|
||||
at Socket.socketOnData (node:_http_client:808:22)
|
||||
at Socket.emit (node:events:514:20)
|
||||
at addChunk (node:internal/streams/readable:575:12)
|
||||
at readableAddChunkPushByteMode (node:internal/streams/readable:526:3)
|
||||
at Readable.push (node:internal/streams/readable:406:5) {
|
||||
code: 'proxy-client-refused'
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:06Z
|
||||
02:46:06 up 11 days, 18:05, 2 users, load average: 15.17, 14.64, 21.02
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026-10-25T07:46:05Z
|
||||
02:46:05 up 11 days, 18:05, 2 users, load average: 15.17, 14.64, 21.02
|
||||
@@ -523,3 +523,66 @@ Required later GREEN should include both new whole files and the8 focused whole
|
||||
files because the helper is shared; full gate and P2 key-join still wait their
|
||||
separate authorized stage. No Node syntax check, test, acceptance, mutant or
|
||||
proxy process ran during preparation. Slot remains with Magica331r4.
|
||||
|
||||
## Test-first404 block — sage-4469 CLEAR
|
||||
|
||||
2026-10-25T07:46Z–07:47Z. On prepared e7438743f, unchanged product RED was
|
||||
exactly the two intended failures: model-proxy empty-provider8cases7pass/1fail
|
||||
(proxy-client-refused rather than[]), bus empty-provider3cases2pass/1fail
|
||||
(proxy-down on fresh accounts). Negative controls all passed; no skipped,
|
||||
cancelled or timed-out case. Receipts404-red-*.txt plus per-file uptime.start/.end.
|
||||
|
||||
Applied ONLY the approved proposed-empty-provider.patch: three lines in the
|
||||
client's #page catch normalize404 only for the fixed GET provider-config path.
|
||||
Actual404 receipt remains; error body was discarded by #request. No assertion,
|
||||
timeout, scheduling, public schema, other product file or refusal code changed.
|
||||
|
||||
GREEN: both new files and the existing8focused files whole, serialized,99/99
|
||||
passes,0skip/cancel. Fresh short TMPDIR per file; shell wrappers requested and
|
||||
recorded nice19. No automatic retry. Receipts404-green-*.txt and each file's
|
||||
UTC/uptime start/end. Idle scheduling is accepted under mos-1678/sage-4446.
|
||||
|
||||
Pinned8.0.42 acceptance rc0,07:46:54Z–07:47:01Z. Load13.49/14.18/20.53 ->
|
||||
13.77/14.23/20.51. Node and its fixture child observed nice16/policy5. Exact
|
||||
safe output is copied below from404-acceptance.txt; private namespace/temp-root
|
||||
cleanup completed with childexit0. No real provider credential or external
|
||||
upstream request; the made-up OAuth codes never complete sign-in.
|
||||
|
||||
P4 offline upgrade version=8.0.42 nice=16
|
||||
P4 diagnostic {"stage":"binary-start","nodePriority":16,"childPriority":16,"lastClientErrorCode":null,"nodeSchedulingPolicy":5,"childSchedulingPolicy":5,"childExitCode":null,"childSignal":null}
|
||||
P4 diagnostic {"stage":"management-ready","nodePriority":16,"childPriority":16,"lastClientErrorCode":"proxy-client-down","nodeSchedulingPolicy":5,"childSchedulingPolicy":5,"childExitCode":null,"childSignal":null}
|
||||
P4 diagnostic {"stage":"store-open","nodePriority":16,"childPriority":16,"lastClientErrorCode":"proxy-client-down","nodeSchedulingPolicy":5,"childSchedulingPolicy":5,"childExitCode":null,"childSignal":null}
|
||||
P4 diagnostic {"stage":"broker-bound","nodePriority":16,"childPriority":16,"lastClientErrorCode":"proxy-client-down","nodeSchedulingPolicy":5,"childSchedulingPolicy":5,"childExitCode":null,"childSignal":null}
|
||||
P4 diagnostic {"stage":"initial-accounts","nodePriority":16,"childPriority":16,"lastClientErrorCode":"proxy-client-down","nodeSchedulingPolicy":5,"childSchedulingPolicy":5,"childExitCode":null,"childSignal":null}
|
||||
P4 empty-provider diagnostic {"httpStatus":404,"type":"object","isArray":true,"count":0}
|
||||
proxy.accounts initial empty; GET /credentials + GET /config/api-keys/claude
|
||||
proxy.login.start claude GET /oauth/auth-url; fields=url,state only
|
||||
proxy.login.submit POST /oauth/callback; fake code never ok; GET /oauth/status=wait
|
||||
proxy.login.cancel DELETE /oauth/session confirmed
|
||||
proxy.login.start codex GET /oauth/auth-url; fields=url,state only
|
||||
proxy.login.submit POST /oauth/callback; fake code never ok; GET /oauth/status=wait
|
||||
proxy.login.cancel DELETE /oauth/session confirmed
|
||||
proxy.apikey.add PUT /config/api-keys/claude; account fields=accountId,provider,displayName,status,priority; id from auth_index
|
||||
proxy.priority.set API-key PUT /config/api-keys/claude; priority read-back=7
|
||||
proxy.keys GET /config/access/api-keys; fields=keyId,management,agent,issuedAt,state; sentinel labelled; values absent
|
||||
proxy.priority.set OAuth PATCH /credentials/fields body={name,priority}; priority read-back=8
|
||||
PASS offline native-page bus contract and secret-free receipts
|
||||
P4 diagnostic {"stage":"initial-accounts","nodePriority":16,"childPriority":null,"lastClientErrorCode":"proxy-client-down","nodeSchedulingPolicy":5,"childSchedulingPolicy":null,"childExitCode":0,"childSignal":null}
|
||||
|
||||
Named mutants rc0 overall,07:47:50Z–07:47:52Z, load9.43/13.06/19.79 at both
|
||||
endpoints. Each mutated whole file ran once, was restored byte-for-byte, then
|
||||
its restored positive control ran once before the next mutant:
|
||||
- accounts-unfiltered-field:2fail, restored control10pass;
|
||||
- callback-skips-state:2fail, restored control17pass;
|
||||
- proxy-route-accepts-granted-user:1fail, restored control11pass;
|
||||
- apikey-logged:1fail, restored control2pass.
|
||||
Runner records nice19 launch observations and original source SHA256s. All4
|
||||
killed, all4 restored, all4 controls green. No raw mutant output/key values
|
||||
were written; canary captures process output. Receipt404-mutants.txt/.start/.end.
|
||||
|
||||
SLOT BACK reported to Sage as poe-330-0030. No unexpected result in this block,
|
||||
no retry, no old assertion or timeout edits, no protected action. This is scoped
|
||||
99-test/upgrade/mutant evidence, NOT the full package/global landing gate. P2
|
||||
landing/rebase/key-record join and Q246 independent review remain outstanding.
|
||||
Final product/test diff and manifest prepared for independent review; no landing
|
||||
or refactor push authorized. No further test/process run after returning slot.
|
||||
@@ -0,0 +1,49 @@
|
||||
# Row330 / P4 review packet — #1828
|
||||
|
||||
Owner Poe; first independent Codex review Gladstone; landing review Filbert.
|
||||
Brief docs/plans/2026-10-24_proxy-page-brief.md (heading17, blob4c005dc4936c).
|
||||
Original base78b69e1e6. Candidate branch poe/row330. No landing authority.
|
||||
|
||||
## Review scope and evidence
|
||||
|
||||
review-product-test.diff is the complete changed packages/ source/test/docs diff
|
||||
from78b69e1e6. review-404-normalization.diff is the exact latest three-line product
|
||||
fix against prepared e7438743f; its tests/helper were committed first there.
|
||||
review-MANIFEST.sha256 pins every changed package file and the current offline
|
||||
acceptance/mutant scripts, diff artifacts, run list and successful scoped receipts.
|
||||
BUILD.md preserves all earlier failures and corrections append-only.
|
||||
|
||||
Current scoped verification: exact intended RED2fail/9pass, then99/99 focused
|
||||
GREEN, pinned8.0.42 offline bus acceptance, four named mutants killed with four
|
||||
restored positive controls (10/17/11/2passes). Whole-file receipts and uptime
|
||||
are404-*.txt/.start/.end. Actual idle scheduling is reported, not overwritten.
|
||||
No test reruns after an unexpected outcome. Earlier fixture-root and missing
|
||||
provider404 findings are separate commits; product normalization is exactly
|
||||
GET /v8/management/config/api-keys/claude HTTP404 ->[], with original404 receipt.
|
||||
Every other endpoint/method/status still refuses, malformed200 null/object still
|
||||
refuses proxy-down; no new refusal code, assertion weakening or timeout change.
|
||||
|
||||
## Security focus
|
||||
|
||||
- Owner human-only broker gate before generic user/tester handling; all8verbs.
|
||||
- Native /proxy and /api/proxy routes through fixed Console caller allowlist;
|
||||
writes require signed-in owner, named host, --send, own Origin and Fetch
|
||||
Metadata. Granted/tester/loopback callers refuse. No webui management client.
|
||||
- API-key input is write-only, promptly cleared, no browser storage; management
|
||||
header only numeric loopback. OAuth pending-state ownership/expiry/finish
|
||||
guards, no wait-to-success shortcut. Unknown errors are sanitized.
|
||||
- Accounts project exactly5public fields. Stable generated display names avoid
|
||||
arbitrary upstream credential strings; ids derive from proxy identifiers,
|
||||
never token/key values. Client keys return ids and management labels only.
|
||||
- Canary checks HTTP responses, structured logs/receipts, captured process output
|
||||
and bus files; fake receives first key once. No real host proxy/credential access.
|
||||
|
||||
## Explicit outstanding work / review limits
|
||||
|
||||
P2 has not yet been rebased/joined into this branch. Runtime key-status projection
|
||||
is provisional until the actual P2 metadata contract lands. Broad package suites
|
||||
(model-proxy/bus/webui, webui requiring editor build), collateral import-derived
|
||||
files and Sage's global landing gate still need authorized execution after that
|
||||
integration. The prior broader inventory is not a current post-P2 manifest.
|
||||
Independent Q246 first/landing verdicts are not claimed. Do not treat this packet
|
||||
or the scoped checks as approval to land, push refactor, deploy or cut over.
|
||||
@@ -0,0 +1,14 @@
|
||||
diff --git a/packages/model-proxy/src/client.mjs b/packages/model-proxy/src/client.mjs
|
||||
index 7440bc3c7..c7d72f234 100644
|
||||
--- a/packages/model-proxy/src/client.mjs
|
||||
+++ b/packages/model-proxy/src/client.mjs
|
||||
@@ -70,6 +70,9 @@ export class ManagementClient {
|
||||
const answer = await this.#request(method, endpoint, payload, value => { status = value; });
|
||||
if (expectedStatus !== null && status !== expectedStatus) refuse('proxy-client-refused');
|
||||
return answer;
|
||||
+ } catch (error) {
|
||||
+ if (method === 'GET' && endpoint === '/v8/management/config/api-keys/claude' && status === 404) return [];
|
||||
+ throw error;
|
||||
}
|
||||
finally { this.#receipt({ call: `${method} ${endpoint.split('?')[0]}`, status, keyIds: [] }); }
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
72d5b9c800ab62f0daad197730bdb483f86d8d30b7b229a4c5060e1c726e0736 agents/poe/work/queue-330/404-acceptance.end
|
||||
93869f4c4ba709250785294c766ba35c5e566611979b5f1c1168eb1ac38b2187 agents/poe/work/queue-330/404-acceptance.start
|
||||
37ee6bf7ff69f1eb2043237ee4d6901d0fa511081fbb43ce4aebea146f1d6b56 agents/poe/work/queue-330/404-acceptance.txt
|
||||
cccd9c46429681a225a717b330626fdcb3fa4b4c2c316c848dc3ddd6dacdbbc6 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page-accounts.test.mjs.txt
|
||||
9424865d186040e600adea91450379376c9affac71b6536f5738cf40152cca69 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page-accounts.test.mjs.txt.end
|
||||
9424865d186040e600adea91450379376c9affac71b6536f5738cf40152cca69 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page-accounts.test.mjs.txt.start
|
||||
21cf4b7b5a66151595ecadb079a4a8456a10fa6c7bd1d3bc5c4f7ddf1f9f57a9 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page-empty-provider.test.mjs.txt
|
||||
1b7488b852dbd23785233f9feeb33e40bd60cf5613bbc501ca6e87dd93ef3884 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page-empty-provider.test.mjs.txt.end
|
||||
7c47a8b1c9ab3a67a1ee8f0efacfb1123ec4a93aa37b7838d5c68781c8a31138 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page-empty-provider.test.mjs.txt.start
|
||||
dfe6cf20ace7c20c62080617ce9599c8918ecb63867ffc3f02cff111c873bd56 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page-state.test.mjs.txt
|
||||
9424865d186040e600adea91450379376c9affac71b6536f5738cf40152cca69 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page-state.test.mjs.txt.end
|
||||
9424865d186040e600adea91450379376c9affac71b6536f5738cf40152cca69 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page-state.test.mjs.txt.start
|
||||
53e4f011864d90b97a53d76f5c2408661bc6a8ecd6cf02eafbefe5a2c853e348 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page.test.mjs.txt
|
||||
9424865d186040e600adea91450379376c9affac71b6536f5738cf40152cca69 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page.test.mjs.txt.end
|
||||
1b7488b852dbd23785233f9feeb33e40bd60cf5613bbc501ca6e87dd93ef3884 agents/poe/work/queue-330/404-green-packages-bus-tests-proxy-page.test.mjs.txt.start
|
||||
0ccd15e17c34462dafbd66ef356d1db30bc7ac4b835822be8395fde34721126f agents/poe/work/queue-330/404-green-packages-model-proxy-tests-empty-provider.test.mjs.txt
|
||||
7c47a8b1c9ab3a67a1ee8f0efacfb1123ec4a93aa37b7838d5c68781c8a31138 agents/poe/work/queue-330/404-green-packages-model-proxy-tests-empty-provider.test.mjs.txt.end
|
||||
7c47a8b1c9ab3a67a1ee8f0efacfb1123ec4a93aa37b7838d5c68781c8a31138 agents/poe/work/queue-330/404-green-packages-model-proxy-tests-empty-provider.test.mjs.txt.start
|
||||
14e6b2f1bc3970b52286ab170d37797f69dc9a3c02a1f231d63e5da8fda669c0 agents/poe/work/queue-330/404-green-packages-model-proxy-tests-page-client.test.mjs.txt
|
||||
1b7488b852dbd23785233f9feeb33e40bd60cf5613bbc501ca6e87dd93ef3884 agents/poe/work/queue-330/404-green-packages-model-proxy-tests-page-client.test.mjs.txt.end
|
||||
1b7488b852dbd23785233f9feeb33e40bd60cf5613bbc501ca6e87dd93ef3884 agents/poe/work/queue-330/404-green-packages-model-proxy-tests-page-client.test.mjs.txt.start
|
||||
9a85972389ed133138a47e956ceb982f8ec15a9b7138474513e358b241150866 agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-architecture.test.mjs.txt
|
||||
2f565840aadf7b1303e5b35902d4674d913adae865bbd91c038aa4a0fca7656c agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-architecture.test.mjs.txt.end
|
||||
f47cf83581a4d837d58aaa34ace54d8d2e4fd53e218250167994f37be39ffaa2 agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-architecture.test.mjs.txt.start
|
||||
e3e45bae3306be1fdb166950163bcf1ffad0f65bc641a39eb4b94a0b146dcf3f agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-browser.test.mjs.txt
|
||||
f47cf83581a4d837d58aaa34ace54d8d2e4fd53e218250167994f37be39ffaa2 agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-browser.test.mjs.txt.end
|
||||
61c9f069944fd925380cb181020a80fa249fa14f1875271dc99a8cddd52568b6 agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-browser.test.mjs.txt.start
|
||||
cb90be4c02955ca66c193a24b9c26e80b7aacb50adb8750a8be11b603154f1f4 agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-canary.test.mjs.txt
|
||||
61c9f069944fd925380cb181020a80fa249fa14f1875271dc99a8cddd52568b6 agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-canary.test.mjs.txt.end
|
||||
61c9f069944fd925380cb181020a80fa249fa14f1875271dc99a8cddd52568b6 agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-canary.test.mjs.txt.start
|
||||
afcf804d388ff9cbc648812908b2ac44ca3eedb18796afa77e05a15b3e355f32 agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-page.test.mjs.txt
|
||||
61c9f069944fd925380cb181020a80fa249fa14f1875271dc99a8cddd52568b6 agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-page.test.mjs.txt.end
|
||||
9424865d186040e600adea91450379376c9affac71b6536f5738cf40152cca69 agents/poe/work/queue-330/404-green-packages-webui-tests-proxy-page.test.mjs.txt.start
|
||||
afcfb1f9624449cf6cd609ceb1f23ebd5a797fb45a71f7be9b2b41ac05b9ed98 agents/poe/work/queue-330/404-green-run-list.txt
|
||||
576a8f1e6f9f58bca449ed432eeb9ee8c5d6b457d0178225f8330bdc1e077cc8 agents/poe/work/queue-330/404-mutants.end
|
||||
ccfb1b4d9585dfc89ec7fd98111d7e97f08135d7c09fd52c6c0c6837184fe282 agents/poe/work/queue-330/404-mutants.start
|
||||
1e3943a96d33275d83ff25e6ea8589c008b34d9141696f700fb55a05c053bd54 agents/poe/work/queue-330/404-mutants.txt
|
||||
b2580eb45cb4fea2703d090c6c2e13fa7e368b025450506db06504ca9e705b57 agents/poe/work/queue-330/404-red-packages-bus-tests-proxy-page-empty-provider.test.mjs.txt
|
||||
89792291111ce2df8233a33007188fa8a7b1f83e6088e0f16f9b9d7521b7189d agents/poe/work/queue-330/404-red-packages-bus-tests-proxy-page-empty-provider.test.mjs.txt.end
|
||||
89792291111ce2df8233a33007188fa8a7b1f83e6088e0f16f9b9d7521b7189d agents/poe/work/queue-330/404-red-packages-bus-tests-proxy-page-empty-provider.test.mjs.txt.start
|
||||
6d773572f0ccb74c434eba04733552b6b534cff557398305e41e4da9f9d4802b agents/poe/work/queue-330/404-red-packages-model-proxy-tests-empty-provider.test.mjs.txt
|
||||
89792291111ce2df8233a33007188fa8a7b1f83e6088e0f16f9b9d7521b7189d agents/poe/work/queue-330/404-red-packages-model-proxy-tests-empty-provider.test.mjs.txt.end
|
||||
51fa70c90e470656e97e2c0536ed9c5b412d929e48f6671cf9587f46464e5d4c agents/poe/work/queue-330/404-red-packages-model-proxy-tests-empty-provider.test.mjs.txt.start
|
||||
722e211acc48aa319a378c01ccf3e0174aef958c5570ce69962896811888d8fb agents/poe/work/queue-330/REVIEW.md
|
||||
e55807f718375b0914bcd6448e2a420611c25d37061fd9237986b1484acf1f30 agents/poe/work/queue-330/acceptance.mjs
|
||||
8aa1007a19e70b6be1696896160e7ffdf4ba9afd9fb2d35a996f4a41515b8564 agents/poe/work/queue-330/acceptance.sh
|
||||
ea7584f8935251baa9c32bf675343e8c8cbe19a45c4e7dc48675e14b4409bb1c agents/poe/work/queue-330/empty-provider-prepared-imports.json
|
||||
335e8b1ec268cab5fe7fe644d635cf78e727b2f257eef5b3dc1bf89fb4f7aa5b agents/poe/work/queue-330/mutants.mjs
|
||||
ebd56413e48604ad7e0d0ce135fcae851f529a020bd1b2dba50afffb2e275bb6 agents/poe/work/queue-330/review-404-normalization.diff
|
||||
75bedb29f3e48c148e7a5047a6c2282f198db00cea02ad92e59a60f1e37cc656 agents/poe/work/queue-330/review-product-test.diff
|
||||
ef197f4b52cba6e45fb6aa283a8432b408864bd3ebda14e3d21e7a9245ced62e packages/bus/src/broker.mjs
|
||||
14acdb4d3fdaabad508eec7378740b13c175d4bdd0c6e707a673138eff82365b packages/bus/src/proxy-page.mjs
|
||||
e759c5de92ff4ccb10bf9404f2f0532ea218ef0617cec7a039b9a15101a74642 packages/bus/src/runtime.mjs
|
||||
6c3dce2fed1402ff30331deeaa7524fdaae2a3a16516538a4f74c917b20cdd77 packages/bus/tests/proxy-page-accounts.test.mjs
|
||||
c55cc0bb47cd7716a2c31c665cd2dd426e2c54ab7b629637bdc12089dfeb40ce packages/bus/tests/proxy-page-empty-provider.test.mjs
|
||||
01c18d8d09dac72bed45ce302a88cea449ed22ffde374529cf784bad38adbd72 packages/bus/tests/proxy-page-fixture.mjs
|
||||
1f68f6a0847adaf4ac0ab35f17353c520fae1f29af36b8588b5f1d01097304f8 packages/bus/tests/proxy-page-state.test.mjs
|
||||
4d57069c95339b8208d8f4595497352c386da9aea433b00873ab4f4e7b2986e6 packages/bus/tests/proxy-page.test.mjs
|
||||
3315613da3d2153b7916090bf7ef6168c5fc7fac562d4a20e86c87a1f5b58df4 packages/model-proxy/README.md
|
||||
8e4143c3adb5e00338dadc5db71f440ea846828c2a446e1c944a7ea15f2c24f2 packages/model-proxy/src/client.mjs
|
||||
ed5dfcda6db77921f90f1eb587fb0044d6472fb613ecaa98445ed42bc04d5d46 packages/model-proxy/tests/empty-provider.test.mjs
|
||||
f24e1d121a340cbcaa3f6cd6390eeb7d4b05f778dd498d76ba099cba5a719dea packages/model-proxy/tests/page-client.test.mjs
|
||||
c87158fa73697df244d615c7145d46d06aa4f83c8fb38489008f7e6ac66ecac5 packages/webui/README.md
|
||||
76c4e0a2f964de91483fee3671140ffaa52c35e91d00fd775db047db61718a27 packages/webui/src/cli.mjs
|
||||
6a67c23114fe1d6fed7d496aec46a096f9c0279ce7d02b976e99cce0f03de8ec packages/webui/src/console-bus.mjs
|
||||
a09028cd5ca57367f597d0681e84926ca871fd4626769e9947927d949c2b6ab7 packages/webui/src/proxy-http.mjs
|
||||
34ea24817c8288f7bbb1e7eb2a73290cc0f022594ac0872d5ce4710d55b2d61c packages/webui/src/public/index.html
|
||||
028fdb21b5f6bc7f3a81f53e950d3c867280cec08be3d17a8efc9b0f17d70a0e packages/webui/src/public/proxy.html
|
||||
c329b1ea690e656d89fa0e2b9ad853e18a3209bc56cc47ba778c7bcd56897796 packages/webui/src/public/proxy.js
|
||||
7b7bee91604b7bd973027b177de83205db9aed366e694072fc6343b46465b5ba packages/webui/src/serve.mjs
|
||||
037e4df1ed928570f49d4862d13bd6fbf74169b683a382d789744099104ee71c packages/webui/tests/proxy-architecture.test.mjs
|
||||
866e28ac5aaf73b54dd1a0bd3ad2f404449f94e03f2198b1e1af694c5e6de4b7 packages/webui/tests/proxy-browser.test.mjs
|
||||
add80427295f0756f456e8d578c123b2fc0209104a297649eb44eb791ebd6e2f packages/webui/tests/proxy-canary.test.mjs
|
||||
efa01078110be6021e14a2eda09e549a4e17d4b62f15c4e1d609b5f4d1c7c1a2 packages/webui/tests/proxy-page.test.mjs
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1696,3 +1696,4 @@ are never rewritten or removed; corrections are new entries.
|
||||
2026-10-25 | Sage 1ef1e4f8 | row284 landing #1789 | Gate GREEN 00:09:04Z unchanged, landed ce0b6ed41 pushed 00:09:52Z; #1789 closed c31655; queue note 4071, done 4072 (7c8dc2033); DEFERRED Webby N1 to the next library read-path row; row 332 PROXY_CODEX_API ruled openai-responses (sage-4331), P3 holds for row 331.
|
||||
2026-10-24 | poe | row 330 / #1828 Console proxy page, base 78b69e1e6 | Started requirements recovery and design; test slot held pending Sage CLEAR.
|
||||
2026-10-25 | poe | row330 / #1828 authorized focused block | 88 focused tests green after expected account RED; offline acceptance failed before first account checkpoint, nice16 observed; stopped and returned slot to Sage, no rerun or mutants.
|
||||
2026-10-25 | poe | row330 / #1828 approved test-first404 block | Intended RED observed, exact GET404 catch applied,99 focused passes, pinned acceptance and4mutants/controls passed; slot returned, review packet prepared, P2/full gate pending.
|
||||
@@ -70,6 +70,9 @@ export class ManagementClient {
|
||||
const answer = await this.#request(method, endpoint, payload, value => { status = value; });
|
||||
if (expectedStatus !== null && status !== expectedStatus) refuse('proxy-client-refused');
|
||||
return answer;
|
||||
} catch (error) {
|
||||
if (method === 'GET' && endpoint === '/v8/management/config/api-keys/claude' && status === 404) return [];
|
||||
throw error;
|
||||
}
|
||||
finally { this.#receipt({ call: `${method} ${endpoint.split('?')[0]}`, status, keyIds: [] }); }
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user