Skip to content

Release to Production v2.9.28 - 2026-08-23 - #2276

Open
github-actions[bot] wants to merge 2 commits into
mainfrom
staging
Open

Release to Production v2.9.28 - 2026-08-23#2276
github-actions[bot] wants to merge 2 commits into
mainfrom
staging

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

🎯 Production Release

Release Date: August 23, 2026
Commits ahead: 2

This automated PR promotes tested changes from staging to main for production deployment.

What's Included

All changes that have been verified in the staging environment.

Note: This PR is directly from staging, so new commits merged to staging will automatically appear here.

Pre-Deployment Checklist

  • All staging tests passed
  • QA sign-off received
  • Stakeholder approval obtained
  • Deployment plan reviewed
  • Rollback plan confirmed

Deployment Notes

Merging this PR will trigger production deployment.


This PR was automatically created by the Release Calendar workflow on August 23, 2026

@vercel

vercel Bot commented Aug 23, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
self-webview-app Ignored Ignored Aug 23, 2026 5:03pm

Request Review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 44d7ddb5a9

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +129 to +132
The field set is the raw union of `VerificationRequest` + the
`QueryParamsBuilder`-encoded `SelfSdkConfig` fields — **delivered raw, not
pre-derived**. EM-02 feeds this object through the (refactored)
`parseVerificationRequestContext` so all normalization/derivation is preserved.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve the canonical RN verification-request fields

When EM-01 is resumed and implemented from this contract, the KMP/Swift response will not actually match the live RN host: LifecycleHandler.getConfig returns config.request wholesale, whose VerificationRequest includes proofItems, documentType, documentTypes, and ids, while the listed “raw union” omits them and explicitly excludes proofItems. In particular, requestRequiresUnavailableCapability reads the three document constraints, so dropping them makes the embed boot capability guard treat a constrained request as unconstrained and proceed toward unavailable NFC/MRZ handlers instead of failing closed. Include the complete canonical request shape in the contract, builder, and tests.

AGENTS.md reference: AGENTS.md:L34-L36

Useful? React with 👍 / 👎.

@@ -0,0 +1,196 @@
# MRZ Scan: Black Viewfinder / Apparent Hang (Android demo)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Rename the diagnosis to a supported document type

Adding SPEC-MRZ-PREVIEW.md creates a second subject-named spec inside an existing workstream, contrary to the repository convention that documents use doc-type names and workstream context lives at workstreams/<scope>/SPEC.md. Since this is explicitly a parked debugging record rather than the workstream spec, name it by an allowed type such as REVIEW.md and update the new index link so future navigation and spec tooling do not treat it as another authoritative spec.

AGENTS.md reference: AGENTS.md:L81-L86

Useful? React with 👍 / 👎.

Comment on lines +111 to +113
| `src/components/InitialRouteRedirect.tsx` | Make doc-aware + async with a loading state; defer to the shared embed-entry decision instead of the unconditional jump. |
| `src/utils/resolveEmbedEntry.ts` (new) | Extract `loadSelectedDocument → isRegistered ? '/disclose/request' : '/tour/1'`; reused by `InitialRouteRedirect` and `embed/TourScreen`. |
| `src/screens/embed/TourScreen.tsx` | Replace the inline branch (`:29-39`) with the shared helper. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the post-tour destination out of the entry helper

If this table is followed for a host that successfully reports embed mode, resolveEmbedEntry returns /tour/1 when no document is registered and the same helper is then reused by screens/embed/TourScreen. At the final tour step that user still has no document, so the helper sends them back to /tour/1 instead of continuing to capture—the current screen deliberately uses /capture/kyc for that case. Separate the initial entry decision from the post-tour destination, or parameterize the helper, so a real getConfig host cannot loop through the tour indefinitely.

Useful? React with 👍 / 👎.

1. **CANONICAL HOME is still undecided (WIA-17).** The split between this repo's `packages/kmp-sdk/` and `selfxyz/self-webview-sdk`'s `kmp-sdk/` has no written convergence plan. See [WIA-17 open questions](../../webview-in-app/plans/SPIKE-rn-wraps-kmp.md): one live option is the **opposite** of this spec — keep kmp-sdk in _this_ repo behind `self.sdk.optional.*` build flags and **retire `self-webview-sdk`** ([WIA-17-open-questions.js](../../webview-in-app/plans/WIA-17-open-questions.js)). SD-07 is only valid if `self-webview-sdk` is confirmed canonical. **Resolve this first; it gates everything below.**
1. **CANONICAL HOME — EXPLICITLY UNRESOLVED as of 2026-08-09. Owner: Seshanth Saravanakumar.** The split between this repo's `packages/kmp-sdk/` and `selfxyz/self-webview-sdk`'s `kmp-sdk/` has no written convergence plan. See [WIA-17 open questions](../../webview-in-app/plans/SPIKE-rn-wraps-kmp.md): one live option is the **opposite** of this spec — keep kmp-sdk in _this_ repo behind `self.sdk.optional.*` build flags and **retire `self-webview-sdk`** ([WIA-17-open-questions.js](../../webview-in-app/plans/WIA-17-open-questions.js)). SD-07 is only valid if `self-webview-sdk` is confirmed canonical. **Resolve this first; it gates everything below.**

This was carried as a silent blocker until [SELF-3708](https://linear.app/selfprotocol/issue/SELF-3708) named an owner; it is now an open decision with one, not an unowned gap. What it gates: SD-06 vs SD-07 (mutually exclusive — see the parent [SPEC.md](../SPEC.md)) and cutover item B3 ([WIA-APP-CUTOVER.md](../../webview-in-app/plans/WIA-APP-CUTOVER.md)). What is _not_ in dispute: the vendored `packages/kmp-sdk` is a **stale mirror** — **no functional/source changes since 2026-04-30** (`1ba722fe0`); its only later commit is `04b3bb86f` (2026-06-12, pnpm migration), a one-line `gradle/libs.versions.toml` edit. Do not edit it — active KMP work happens in `self-webview-sdk`. De-facto practice therefore already favors external-canonical; this decision is the formal ratification of that plus the cost of a tagged release, not a coin flip.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Permit compatibility fixes until the canonical home is decided

The parent sdk-distribution/SPEC.md now says to avoid speculative feature work in the vendored tree while explicitly allowing compatibility fixes required by current monorepo consumers, but this execution plan gives the unconditional instruction “Do not edit it.” Before the canonical-home decision, a compatibility break in the currently consumed packages/kmp-sdk would therefore either be left unfixed or patched only in the external tree that the build does not resolve. Align this sentence with the parent rule by prohibiting new feature development while retaining the compatibility-fix exception.

AGENTS.md reference: AGENTS.md:L89-L89

Useful? React with 👍 / 👎.

Comment on lines +128 to +133
### P1 — web-side resilience (webview-app / webview-bridge) — WRITTEN 2026-07-02, UNMERGED

> Written and validated on `justin/wia-demo-rd1` only; none of it is on `dev`
> (`webview-bridge/src/adapters/camera.ts` on `dev` has no scan timeout and no
> unmount `stopCamera`). Reviving this means porting the items below, not
> re-deriving them.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Mark the unmount cleanup as already landed

At this reviewed commit, both passport/CodeScanViewfinderRoute.tsx and eu-id/ViewfinderRoute.tsx already send camera.stopCamera from their deferred unmount cleanup, so the claim that none of this work is on dev and that unmount cleanup is absent is false. The subsequent instruction to sync all listed route files from the parked branch can cause an engineer to overwrite landed logic while trying to port the genuinely missing timeout/rejection handling. Record the status per subitem and limit the recovery instructions to the deltas that are actually absent.

Useful? React with 👍 / 👎.

Comment on lines +10 to +14
> draft). Neither is merged. This document and the `plans/` beneath it were
> cherry-picked onto `self-3708` for landing on `dev`, so the track's written
> record survives branch deletion — see
> [SELF-3708](https://linear.app/selfprotocol/issue/SELF-3708). Until that lands,
> `justin/wia-demo-rd1` is still the only other copy.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove the pre-landing status from the landed record

This commit itself adds the embed-mode record to the repository, so after applying it the statement that the document is merely queued on self-3708 and that justin/wia-demo-rd1 is still the only other copy is no longer true; the MRZ record repeats the same stale wording. Anyone recovering the work after the parked branches are deleted may waste time looking for a supposedly unlanded copy or misread the repository version as provisional. Update both headers to record the actual landing commit/branch rather than retaining the pre-landing handoff text.

Useful? React with 👍 / 👎.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant