Skip to content

widget: stage SDK submit adapter v1 evidence - #1

Draft
iPLAYCAFE-dev wants to merge 21 commits into
codex/sdk-submit-adapter-v1-baselinefrom
codex/sdk-submit-adapter-v1-source
Draft

widget: stage SDK submit adapter v1 evidence#1
iPLAYCAFE-dev wants to merge 21 commits into
codex/sdk-submit-adapter-v1-baselinefrom
codex/sdk-submit-adapter-v1-source

Conversation

@iPLAYCAFE-dev

Copy link
Copy Markdown
Owner

Purpose

Evidence-only review surface for the Provider-side SDK submit adapter candidate consumed by the Platform PATCH18 rehearsal and the Lynx integration stack.

Draft / do not merge. This PR is intentionally based on the pinned evidence branch codex/sdk-submit-adapter-v1-baseline. It must not be retargeted to main or to QuackbackIO/quackback, merged, published, or deployed.

Immutable provenance

  • baseline: 305b8f06513e9a24e0b5e255ca1746472a8a0a89
  • candidate: e66a110f604ed5f495086a6c55ac83e7bc79e48b
  • candidate tree: db30d0c2a01f920d51350dbdb2f9d9bd364e2596
  • matching Platform PATCH18: 766,064 bytes
  • PATCH18 SHA-256: 9dfe258e4e3ff5b2d9d87fbf2eaaf534c41ca7165e085e448267148d0b2a8aa4
  • PATCH18 stable patch-id: 186d02ca65d754616d37590f990dda49ca4b031c
  • fixture: 3,660 bytes; SHA-256 c02a5a58b2d1a6b7e19f9626af4b88430e5c5e3092130d27cc13f9b2c599ee6e
  • independent temp-index PATCH1–PATCH18 replay reached the exact candidate tree

Verification

  • signed host assertion/replay tests: 21/21
  • Provider host/contract boundaries: 114/114
  • identity/FK/sweep/widget ownership boundaries: 242/242
  • lint: pass (existing warnings only)
  • typecheck: pass
  • widget build: pass
  • web build: pass
  • independent provenance and security/privacy reviews: no Critical, Important, or Minor findings

The repository-wide test run is not green: 5,565 passed, 195 skipped, and 67 failed across 14 files. None of those failing files overlaps PATCH18; this PR does not relabel that baseline state as passing.

Safety posture and blockers

  • adapter/recovery behavior remains default-off
  • assertions are origin/audience-bound, short-lived, and one-use; Redis failure is fail-closed
  • telemetry/logging remain metadata-only; raw report text is excluded
  • no secret, credential, live-state, publication, image, digest, or deploy change is included
  • release still requires the Platform PostgreSQL 18 verify-only workflow, Lynx Node 24 packaging/bundle checks, prerequisite PR sequencing, InsForge upstream dependency resolution, live non-synthetic evidence, and separate rollout approvals

Companion Platform and Lynx Draft PRs will be cross-linked after creation.

Keep prepared transport anonymous until explicit open, reportBug, or launcher intent, and require a fresh identity acknowledgement after promotion. Fail closed across replacement and lifecycle resets.
Reject non-canonical whitespace on both sides of the adapter, preserve valid empty release strings, normalize safe titles, and scrub pre-live queue references even when replay throws.
Bind identity acknowledgements to transport generations so stale provider responses cannot authorize host submissions. Retire provider sessions at correlated actor boundaries and keep writes fail-closed until the current identity settles.
Bind host submissions to short-lived one-use assertions and exact content digests so the provider can fail closed before mutation. Harden identity merge, anonymous sweeping, rate buckets, body limits, and postMessage routing against race, capacity, and privacy failures.
Treat the content-derived report digest as forbidden telemetry and prove it stays out of provider sinks. Replace stage aliases with a validated per-FK callable registry so every guard and merge operation must own the right FK and complete before source deletion.
Prevent the prior actor's report flow from remaining live while exact-origin identity authorization completes asynchronously.
Keep vendored capture code outside first-party linting and preserve fail-closed effect gating without a useless assignment.
Keep media, route, recorder, and help-center fixtures assignable to the production contracts enforced by CI typechecking.
Verification accepts bounded signer clock skew, so Redis must retain the one-time marker until the signed expiry. Otherwise a valid future-issued assertion is rejected before the replay fence is written.
@iPLAYCAFE-dev

Copy link
Copy Markdown
Owner Author

Companion review-only Drafts are now available: Lynx https://github.com/iPLAYCAFE/lynx-template/pull/562 and Platform https://github.com/iPLAYCAFE/platform/pull/729. This fork PR remains an immutable evidence surface pinned to base 305b8f0; do not retarget or merge it.

@iPLAYCAFE-dev

Copy link
Copy Markdown
Owner Author

Terminal CI evidence for exact head e66a110f604ed5f495086a6c55ac83e7bc79e48b on pinned base 305b8f06513e9a24e0b5e255ca1746472a8a0a89:

  • check: SUCCESS — install, lint, widget build, web build, and web typecheck passed.
  • test: FAILURE — 48 failed / 5,768 passed / 11 skipped tests across four Help Center files.
  • The failures are baseline fixture/mock drift (missing helpCenterCategories.findMany, a non-iterable mocked query result, and stale API expectations for the existing includeAdminOnly: true argument).
  • Those failing test and implementation paths are unchanged across this PR. The only changed Help Center test file, categories.test.ts, passed.

Accordingly this PR is not CI-green and remains evidence-only. The result is classified as a pre-existing CI blocker, not relabeled as a passing release gate; no rerun, retarget, merge, publish, or deploy is authorized here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant