Merge branch 'unstable' into area/playback-qa

This commit is contained in:
thePR0M3TH3AN committed 2026-10-20 10:50:00 -04:00
commit 124be14310
35 files changed
+655 -24

No files matched your search

+11
View File
@@ -2,6 +2,9 @@
## dispatch
- 2026-10-20 trial first product landed: item5 product0bd0b1c3,closuredc852597;dispatch lifecycle18/18/build-artifact/previewHTTP200+dist match. Storage slot grant13:58:27 after949s wait,full/normal landing underway;QA next,ready95a77a7f. Remaining: storage/QA durable landings,preview refresh after product changes,final trial evidence;real cloud/peers/activeabort/CPU unverified.
- 2026-10-20 trial current: all3 pickups verified; admin notes durableb922c186. Client item5 owns exclusive full/browser/product landing from13:43:51 (~10m57s wait); storage CORS ready9/9+8mutants,next slot; QA retained4/4+6mutants,third slot,browser released. Remaining: full merged-tree validation,durable product/test landings,preview refresh and final trial outcome. No real cloud/peers/CPU qualification.
@@ -28,6 +31,14 @@
## client-reliability
- 2026-10-20: item5 done/closed after normal product landing0bd0b1c3(submission4bc52f9d,gate exit0,unstable ancestry exit0). Full427files/focused28/lifecycle18/six reverted mutants/lint11/build-artifact/Chromium+Firefox controlled smoke pass;obsolete mirror HEAD1→0. Browser+expensive slot released13:57UTC after10m57s initial wait. Dispatch landing/release event sent;preview refresh dispatch-owned. Closure metadata/final follow;no next item. Active abort/actual fallback/livepeers/CPU/fullStage3 unverified.
- 2026-10-20: item5 ready atmergedf2a392fa(product12f92732):full427/427 files60s-bound exit0,focused28/lifecycle18,six reverted mutants,lint11/build-artifact/native Chromium+Firefox smoke pass;obsolete mirror HEAD1→0,shared/rejoin/retry/hidden reveal pass,0 external/pageerrors. Full-slot wait10m57s recorded;browser released,expensive slot held through normal landing. Remaining queue/durable ancestry/close;active abort/real playback/CPU unverified.
- 2026-10-20: item5 routed controller-only pre-candidate guard implemented; baseline16pass/2fail→fixed18/18 lifecycle,6 rejected/reverted mutants,focused28/4files,lint11/build+artifact pass. No full/browser launch while dispatch administrative drain/QA reservation holds; slot requested13:32:54UTC,await explicit grant and verified unstable merge. No active abort/observer/cache/limits change; actual fallback/CPU unverified. Unique integrity/evidence in test_logs/*client-reliability-5*.
- 2026-10-20: item5 investigation at0c1dd7e8:active URL success/real4000ms controlled timeout release media/slot correctly;disposed active primary media error starts1 obsolete mirror HEAD(expected0),strict assertion naturally exits1 after cleanup/retry. Shared/rejoin owner and later same-source controls pass. Proposed controller-only pre-candidate ownership guard + focused tests; await dispatch routing. No product/tests changed; active abort/browser/fallback/CPU unverified. See test_logs/TEST_LOG_2026-10-20_13-30-00_client-reliability-5.md.
- 2026-10-20: item4 done/closed after normal landing89ccb907(submission7055496b,gate exit0,unstable ancestry exit0). Full427/427 files,focused22,lifecycle12,13 reverted mutants,lint11,build/artifact/native Chromium+Firefox controlled IO pass;obsolete starts1→0. Dispatch landing event sent; preview refresh owned by dispatch. No further item without routing. Actual media fallback/live peers/active abort/CPU and whole Stage3 unverified. Closure metadata/final event follow.
- 2026-10-20: item4 ready atce1381f5; full427/427 file exits0 with60s/file bound,focused22/22,lifecycle12/12,13 rejected/reverted mutants,lint11/11,build/artifact and Chromium+Firefox controlled native-observer smoke pass (obsolete starts0). Remaining normal queue/durable landing/ancestry then close/report. Actual fallback/live IO/active abort/CPU remain unverified.
@@ -1,9 +1,11 @@
{
"id": "client-reliability-5",
"area": "client-reliability",
"status": "open",
"status": "done",
"title": "Reproduce remaining active URL or torrent probe lifecycle defect before scoping a fix",
"blockedOn": null,
"addedOn": "2026-10-20",
"filedAt": "3f627f5df3da7bcd28d910d9f8161844fa77ff74"
"filedAt": "3f627f5df3da7bcd28d910d9f8161844fa77ff74",
"evidence": "Landed0bd0b1c3 via4bc52f9d,normal gate exit0/unstable ancestry exit0. Full427files,focused28/lifecycle18,six reverted mutants,lint11/build/native browser smoke pass;obsoleteHEAD1\u21920.10m57s initial slot wait;expensive/browser released13:57UTC. See test_logs/TEST_LOG_2026-10-20_13-58-00_client-reliability-5-landed.md;activeabort/playback/CPU unverified.",
"closedOn": "2026-10-20"
}
+8 -7
View File
@@ -1,9 +1,10 @@
{
"id": "storage-cors-1",
"area": "storage-cors",
"status": "open",
"title": "Reproduce existing-origin loss in bucket CORS provisioning using offline transport",
"blockedOn": null,
"addedOn": "2026-10-20",
"filedAt": "0c1dd7e86be3e28edc96aca47f7753a98990dde0"
"id": "storage-cors-1",
"area": "storage-cors",
"status": "done",
"title": "Reproduce existing-origin loss in bucket CORS provisioning using offline transport",
"blockedOn": null,
"addedOn": "2026-10-20",
"filedAt": "0c1dd7e86be3e28edc96aca47f7753a98990dde0",
"closedOn": "2026-10-20"
}
+59
View File
@@ -0,0 +1,59 @@
# storage-cors-1 investigation
Start UTC 2026-10-20T13:38:00Z. Investigation checkpoint 13:39:21Z.
HEAD bbc1be79e941add929c9c51f984778676822b5f2; filedAt0c1dd7e helper/client unchanged.
Actual caller behavior: R2Service.getCorsOrigins returns current window origin (plus HTTPS localhost counterpart). ensureBucketConfigForNpub and verifyPublicAccess use this list; generic prepareS3Connection takes supplied origins, and its getCorsOrigins likewise returns current-site origins. r2-s3 reexports the helper. Thus existing policies are not passed through callers.
Offline command `env -u NODE_TEST_CONTEXT node /tmp/storage-cors-reproduce.mjs` exit0, 5 characterization scenarios. Real s3-client and s3-multipart imported; registerHooks replaces only remote SDK with input-holding command classes; fake S3 send implements full-policy replacement on PutBucketCors. Unexpected HTTP imports throw. Fixtures use example.invalid and no credentials.
- Existing GET-only rule: origin first.example.invalid, header Range, ETag exposure, maxAge75, ID existing-read-only. Request second.example.invalid. Result retains0/1 prior rules; origins only second.example.invalid; helper default methods/headers replace prior fields.
- Repeat same request: policy identical, PUT total2 (no skip).
- No existing CORS config: PUT1/GET0, default policy installed.
- AccessDenied on read: PUT1/GET0; configured read error cannot surface because helper never reads.
- Empty origins: zero transport calls, policy untouched.
Proposed semantics sent dispatch: preserve all existing rules/fields verbatim; add default rule for new origins without widening arbitrary existing rules; skip PUT when exact equivalent default rules already satisfy all requested origins; only explicit NoSuchCORSConfiguration permits absent-policy creation; other read failures reject without PUT. Wildcards/unknown fields preserved; no speculative permission merging. Scope needs dispatch routing before implementation.
No regression test changes yet, so no Test Integrity Note/mutants claimed. No browser/full-suite/lint/build/cloud/live-policy/concurrency qualification. PR overlap check unavailable (curl DNS exit6). Preview3000 untouched. Tool/browser/gate contention before reproduction0s; routing wait starts13:39:21Z.
## Routed implementation and integrity (2026-10-20T13:43Z)
Dispatch routed bounded product/test fix at13:40:50UTC after independent failure. Routing wait89s. Existing rules remain verbatim/in order; only explicit origins in rules with identical default permission/header/exposure/maxAge fields count as covered. ID is preserved metadata; unknown fields disqualify coverage. Wildcards remain unchanged and are not expanded/interpreted. Append current defaults for uncovered deduplicated origins. Only NoSuchCORSConfiguration permits creation after failed read; denied/404/transport failures propagate without PUT. Existing method defaults unchanged, no SDK upgrade.
```yaml
test_integrity_note:
change_type: ["new_tests"]
scenarios:
- id: SCN-storage-cors-preservation
given: "existing custom or wildcard rules, or equivalent default coverage"
when: "real ensureBucketCors adds/repeats requested origins through actual SDK wrapper"
then: "all original rules and fields persist; only uncovered explicit origins get default rule; repeats issue no PUT"
- id: SCN-storage-cors-read-safety
given: "absent configuration, denied read, non-CORS 404, transport failure, or empty origins"
when: "real helper configures CORS"
then: "only explicit NoSuchCORSConfiguration creates policy; other read errors propagate identically with zero PUT; empty origins zero IO"
observable_outcomes:
- "full persisted CORS policy, unchanged rule fields/order, exact write count, original error identity"
determinism_controls:
- "actual helper and SDK wrapper; fake remote SDK command classes and S3 transport; no network, credentials, clock, retries, sleeps"
anti_cheat_rationale:
prevents:
- "hard-coded success/no-op"
- "over-mocking internal helper logic"
- "policy overwrite or arbitrary permission widening"
- "snapshot rubber-stamping and retry/sleep masking"
relaxation:
did_relax_any_assertion: false
if_true_explain_spec_basis: ""
```
Nine regression scenarios pass. Original helper fails8/9 with exit1; empty-origin control passes. Ten deliberately broken variants exit1 and were restored: overwrite existing rules; reverse rules; omit dedup; repeat PUT; include covered origins; reject absent policy; swallow read errors; empty-origins IO; ignore non-origin permissions (kills scenario5); remove SDK GetBucketCors export. Every scenario fails under at least one variant. Final focused runner passes3/3 files (13 scenarios total:9 CORS,3 cache-control,1 empty upload).
`npm ci --offline --ignore-scripts`: exit0,441 installed packages in4s from local cache. Initial lint exit127 absent stylelint; after install lint exit2 sandbox EPERM read-only git subprocess. Unchanged lint with sandbox permission exits0,11 checks. `npm run build`: exit0 incl dist artifact verification. No dependency file changes. Normal full-suite/landing slot reserved after client; awaiting explicit grant. Cloud IAM permissions, actual provider response serialization, concurrent read-modify-write races, browser/live playback remain unverified. Read-modify-write has no provider CAS guarantee and concurrent writers can still race.
Final merged gate atbfa36a3f350d6a9751a1a43c83fc890c855091fc: full normal runner428/428 files exit0 with UNIT_TEST_TIMEOUT_MS=60000/NODE_TEST_CONTEXT unset; focused3/3 files(13 scenarios),lint11 checks,build/artifact pass. Resource wait949s before13:58:27UTC grant; full completed14:03:49UTC. No product changes since restored mutants. Normal landing pending; no real-cloud/concurrent-writer claim.
## Durable completion
Submission699d72927bee46bdafb6a7775a12d05f75e3c7e1 landed2026-10-20T14:09:21.582Z asd3f4c2155fe38d1b73554a6163f732b4c0ba3308. Durable landq result: landed, unchanged normal install+`npm test` gate exit0. `git log -1 unstable` matched landed SHA; `git merge-base --is-ancestor 699d72927bee46bdafb6a7775a12d05f75e3c7e1 unstable` exit0. Backlog closed only after these checks. Slot release14:09:38UTC (dispatch notification14:09:47UTC). No product edits after checked tree. Actual cloud/provider permissions/serialization/concurrent writers remain unverified; no-CAS race limitation remains. No browser/cloud/preview changes.