Skip to content

fix: allow native releases from main (TASK-22472) - #3081

Merged
jjramirezn merged 3 commits into
devfrom
codex/TASK-22472-native-release-main
Sep 10, 2026
Merged

jjramirezn merged 3 commits into
devfrom
codex/TASK-22472-native-release-main

Conversation

@jjramirezn

@jjramirezn jjramirezn commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Allow manual Release OTA, Release Native, and Android same-version replacement runs from main, while retaining dev and release/android-kyc. Update the native release runbook to match the supported branches and require verification of the selected commit before dispatch.

Version resolution, compatibility checks, signing, and production locking remain unchanged. Current dev includes the reviewed Android KYC fixes through #3083. This branch retains the Cordova registry keep rule, final-AAB assertions, and narrow Android caller permission from #3080 and #3082.

Task and release gates

TASK-22472 · Sprint 159 release

Before a release from main, verify it contains these reviewed native and KYC changes and completes native release QA. Use Release OTA for resolved production OTA versions. Android Release with blank versionName retains its narrow replacement checks; Release Native builds both platforms.

Revert #3078 is closed without merge. Later production app fixes and the content pointer are preserved. This PR does not dispatch a release.

QA

  • Full local suite before the workflow-only base sync: 561 suites, 6,943 tests passed; 5 skipped.
  • After syncing the merged KYC fixes: all 43 focused branch, version, and Android replacement tests pass.
  • YAML/XML validation confirms the registry keep rule, final-AAB check, and caller permission survive the sync.
  • Typecheck and formatting passed locally; current-head CI and Chip review are required before handoff.
  • Screenshots / native device pass: N/A for this workflow-only PR. The production release still requires native QA.
  • Operational release runbook updated. No customer-facing product or legal facts change.

@notion-workspace

Copy link
Copy Markdown

@vercel

vercel Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
peanut-wallet Ready Ready Preview Sep 9, 2026 7:37pm UTC

Request Review

@coderabbitai

coderabbitai Bot commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 03f8c286-a6e4-4ff8-ba49-26a09dacda4d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jjramirezn

Copy link
Copy Markdown
Contributor Author

/chip review

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Code-analysis diff

Painscore total: 8914.96 → 8914.96 (0)
Findings: 0 net (+0 new, -0 resolved)

@github-actions

github-actions Bot commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

🧪 UI test report — ✅ all green

Suites

  • ✅ unit: 6948 ran, 0 failed, 0 skipped, 2.4m

📊 Coverage (unit)

metric %
statements 76.7%
branches 63.0%
functions 70.8%
lines 77.7%
⏱ 10 slowest test cases
time test
🐢 9.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › Network failure keeps loading while retries remain, then shows the generic error
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › routes the KYC rejection on its wire code, and does not retry it
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_MERCHANT_RECENT_REFUND fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_SOURCE_OVER_MONTHLY_CAP fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › User KYC not approved fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_USER_NOT_PROVISIONED fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_MERCHANT_VOLUME_NEAR_CAP fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › a refused idempotency key tells the user to scan again, not to contact support
3.2s src/components/Card/share-asset/__tests__/shareAssetLayout.test.ts › never places two stickers in heavy overlap (broad seed sweep)
3.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › Going offline blames the connection, and reconnecting clears it for the recovered scan
📍 Inline annotations are in the **Unit test report** check above. Coverage artifact: `coverage-unit`. Generated by `.github/workflows/tests.yml`.

@chip-peanut-bot chip-peanut-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Chip review — no blocking findings — this is not an approval

The widened release guards work as implemented, but the repository's release runbook still documents the old dev-only policy.

Findings

  • MAJOR · .github/workflows/release-native.yml:3 · Update the release runbook for the widened branch policy
    docs/NATIVE-RELEASE.md still says all three dispatches must run from dev, claims main is rejected, and instructs Android replacements to use dev. After this change accepts main and release/android-kyc, an operator following the repository runbook will reject the supported production flow or select the wrong source branch. Update the Cutting a release section and its branch-readiness guidance in this PR so the operational source matches the guards.

Checked clean

  • Verified the detached worktree head and merge base exactly match the supplied SHAs.
  • Exercised the three shell guards conceptually against their accepted and rejected branch sets; the focused exact-head unit gate passed.
  • Checked release version resolution, native compatibility and OTA-surface guards, the production release mutex, downstream secret-bearing jobs, and isolated tag-write permissions.
  • Checked exact-head CI: aggregate CI, unit, typecheck, lint, format, native export, provenance, analysis, review, bot-approval, and preview deployment all completed successfully.

Security review by moonshotai/kimi-k3: 0 finding(s), marked with the model name. It reads the diff only and answers only security, privacy and money, so treat its findings as advice.

Third opinion by claude-opus: 0 finding(s), marked with the model name. It answers only product truth, missing tests and the cross-repo contract, so treat its findings as advice.

Exact head: b22fc4b63d31 · Context: repo · Took 13m

Comment thread .github/workflows/release-native.yml
@jjramirezn

Copy link
Copy Markdown
Contributor Author

/chip review

@chip-peanut-bot chip-peanut-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Chip review — no blocking findings — this is not an approval

The widened release-branch guards are consistent across all three manual workflows, preserve the existing release-safety checks, and are documented in the native release runbook. No actionable defects found.

Checked clean

  • Verified the detached worktree HEAD and merge base exactly match the supplied head and base SHAs.
  • Checked the three changed branch guards with accepted and rejected ref names; dev, main, and release/android-kyc pass while unrelated and empty refs fail closed.
  • Confirmed prior finding P1 is fixed: docs/NATIVE-RELEASE.md names all supported branches, requires release-readiness checks, preserves newer production fixes during KYC integration, and routes production OTA through Release OTA.
  • Reviewed release version resolution, production-release concurrency, Android replacement scope checks, native OTA compatibility checks, and post-success tagging; the branch-policy change leaves these controls intact.
  • Checked the native OTA incident runbook relevant to this release path; production environment protection is currently procedural, so the workflow change warrants a dedicated security pass.
  • Exact-head CI completed green, including ci-success, unit, native-export, typecheck, format, eslint, and human-authors.

Security review by moonshotai/kimi-k3: 0 finding(s), marked with the model name. It reads the diff only and answers only security, privacy and money, so treat its findings as advice.

Third opinion by claude-opus: 0 finding(s), marked with the model name. It answers only product truth, missing tests and the cross-repo contract, so treat its findings as advice.

Exact head: 61af0a3b200d · Context: repo, ops · Took 9m

@jjramirezn
jjramirezn marked this pull request as ready for review September 9, 2026 19:23
@jjramirezn
jjramirezn requested review from innolope-dev and removed request for 0xkkonrad, Hugo0, abalinda and kushagrasarathe September 9, 2026 19:23
@jjramirezn
jjramirezn enabled auto-merge September 9, 2026 19:28

@chip-peanut-bot chip-peanut-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Chip review — no blocking findings — this is not an approval

The widened release-branch guards are consistent across all three manual workflows, preserve the existing release-safety checks, and are documented in the native release runbook. No actionable defects found.

Checked clean

  • Verified the detached worktree HEAD and merge base exactly match the supplied head and base SHAs.
  • Checked the three changed branch guards with accepted and rejected ref names; dev, main, and release/android-kyc pass while unrelated and empty refs fail closed.
  • Confirmed prior finding P1 is fixed: docs/NATIVE-RELEASE.md names all supported branches, requires release-readiness checks, preserves newer production fixes during KYC integration, and routes production OTA through Release OTA.
  • Reviewed release version resolution, production-release concurrency, Android replacement scope checks, native OTA compatibility checks, and post-success tagging; the branch-policy change leaves these controls intact.
  • Checked the native OTA incident runbook relevant to this release path; production environment protection is currently procedural, so the workflow change warrants a dedicated security pass.
  • Exact-head CI completed green, including ci-success, unit, native-export, typecheck, format, eslint, and human-authors.

Security review by moonshotai/kimi-k3: 0 finding(s), marked with the model name. It reads the diff only and answers only security, privacy and money, so treat its findings as advice.

Third opinion by claude-opus: 0 finding(s), marked with the model name. It answers only product truth, missing tests and the cross-repo contract, so treat its findings as advice.

Exact head: 61af0a3b200d · Context: repo, ops · Took 4m

@jjramirezn
jjramirezn marked this pull request as draft September 9, 2026 19:30
auto-merge was automatically disabled September 9, 2026 19:30

Pull request was converted to draft

@jjramirezn

Copy link
Copy Markdown
Contributor Author

/chip review

@chip-peanut-bot chip-peanut-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Chip review — no blocking findings — this is not an approval

No actionable defects found. The widened release-branch guards are consistent across all three workflows, and the previously raised runbook drift is fixed at this head.

Checked clean

  • Verified the detached worktree head and merge base exactly match the supplied SHAs; the diff is limited to the three release workflows, their runbook, and branch-guard tests.
  • Reproduced all 24 branch-guard cases directly: dev, main, and release/android-kyc are accepted, while four unrelated refs are rejected in each workflow.
  • Checked release version resolution, the production-release concurrency mutex, reusable-workflow secret inheritance, Production environment placement, and repository write-permission boundaries; the branch widening does not bypass the existing release gates.
  • Confirmed prior finding P1 is fixed: docs/NATIVE-RELEASE.md now documents all supported branches, main readiness checks, preservation of later production fixes, and the version-resolving Release OTA path.
  • Exact-head CI is green, including unit, native-export, typecheck, format, eslint, ds-lint, human-authors, bot-approval, and ci-success. Local Jest dependencies were absent, so the focused guard cases were reproduced with Node and Bash instead.

Security review by moonshotai/kimi-k3: 0 finding(s), marked with the model name. It reads the diff only and answers only security, privacy and money, so treat its findings as advice.

Third opinion by claude-opus: 0 finding(s), marked with the model name. It answers only product truth, missing tests and the cross-repo contract, so treat its findings as advice.

Exact head: 2ff4dd2b1a82 · Context: repo · Took 8m

@jjramirezn
jjramirezn marked this pull request as ready for review September 9, 2026 19:44

@chip-peanut-bot chip-peanut-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Chip review — no blocking findings — this is not an approval

No actionable defects found. The widened release-branch guards are consistent across all three workflows, and the previously raised runbook drift is fixed at this head.

Checked clean

  • Verified the detached worktree head and merge base exactly match the supplied SHAs; the diff is limited to the three release workflows, their runbook, and branch-guard tests.
  • Reproduced all 24 branch-guard cases directly: dev, main, and release/android-kyc are accepted, while four unrelated refs are rejected in each workflow.
  • Checked release version resolution, the production-release concurrency mutex, reusable-workflow secret inheritance, Production environment placement, and repository write-permission boundaries; the branch widening does not bypass the existing release gates.
  • Confirmed prior finding P1 is fixed: docs/NATIVE-RELEASE.md now documents all supported branches, main readiness checks, preservation of later production fixes, and the version-resolving Release OTA path.
  • Exact-head CI is green, including unit, native-export, typecheck, format, eslint, ds-lint, human-authors, bot-approval, and ci-success.

Security review by moonshotai/kimi-k3: 0 finding(s), marked with the model name. It reads the diff only and answers only security, privacy and money, so treat its findings as advice.

Third opinion by claude-opus: 0 finding(s), marked with the model name. It answers only product truth, missing tests and the cross-repo contract, so treat its findings as advice.

Exact head: 2ff4dd2b1a82 · Context: repo · Took 6m

@jjramirezn
jjramirezn merged commit d9fa794 into dev Sep 10, 2026
28 checks passed

This branch was successfully deployed

1 active deployment
Preview — 2ff4dd2b Deployed Sep 9, 2026 by vercel[bot]
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