Skip to content

Release: develop -> main - #152

Merged
TaprootFreak merged 6 commits into
mainfrom
develop
Jun 1, 2026
Merged

Release: develop -> main#152
TaprootFreak merged 6 commits into
mainfrom
develop

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Automatic Release PR

Commits: 4 new commit(s)

  • Review all changes
  • Verify CI passes
  • Merge when ready for production

fix(network): per-stage username domain from server /api/info
Resolves the GitHub anti-recursion policy that silently swallowed
ci.yaml for any PR opened by GITHUB_TOKEN. By creating the PR as
DRAFT, the operator's explicit `gh pr ready` toggle fires the
`ready_for_review` event — that one IS allowed to trigger
downstream workflows, so the full Lint & Build / Unit Tests / E2E
suite runs against the actual PR HEAD before merge.

Same fix in both workflows:
  - auto-release-pr-staging.yaml (staging → develop)
  - auto-release-pr.yaml         (develop → main)

Operator UX: same as before, just one extra click. `gh pr ready 150`
or the UI button promotes the PR + runs CI in a single step.
After the second wave of unit tests landed (Home routing,
Receive, Settings, WalletScreen rest-of-branches, Onboarding
create path), the global aggregate jumped from ~78 % to ~90 %
on lines. Raise the gate to lock in that improvement:

  lines      75 → 88
  statements 75 → 88
  functions  75 → 90
  branches   60 → 78

src/lib/** and src/stores/** stay at strict 100 % per-glob
aggregate (unchanged).

Depends on #106 (receive), #107 (settings), #109 (wallet-screen-
rest), #110 (onboarding-create) — without those test additions
the global aggregate is ~78 % and CI fails on the new
thresholds. Merge those first, then this.
* Merge pull request #98 from zk-coins/fix/cross-network-username-domain

fix(network): per-stage username domain from server /api/info

* ci(auto-release-pr): create both Promote+Release PRs as draft (#151)

Resolves the GitHub anti-recursion policy that silently swallowed
ci.yaml for any PR opened by GITHUB_TOKEN. By creating the PR as
DRAFT, the operator's explicit `gh pr ready` toggle fires the
`ready_for_review` event — that one IS allowed to trigger
downstream workflows, so the full Lint & Build / Unit Tests / E2E
suite runs against the actual PR HEAD before merge.

Same fix in both workflows:
  - auto-release-pr-staging.yaml (staging → develop)
  - auto-release-pr.yaml         (develop → main)

Operator UX: same as before, just one extra click. `gh pr ready 150`
or the UI button promotes the PR + runs CI in a single step.

* build(vitest): raise global coverage thresholds after UI wave 2 (#111)

After the second wave of unit tests landed (Home routing,
Receive, Settings, WalletScreen rest-of-branches, Onboarding
create path), the global aggregate jumped from ~78 % to ~90 %
on lines. Raise the gate to lock in that improvement:

  lines      75 → 88
  statements 75 → 88
  functions  75 → 90
  branches   60 → 78

src/lib/** and src/stores/** stay at strict 100 % per-glob
aggregate (unchanged).

Depends on #106 (receive), #107 (settings), #109 (wallet-screen-
rest), #110 (onboarding-create) — without those test additions
the global aggregate is ~78 % and CI fails on the new
thresholds. Merge those first, then this.

---------

Co-authored-by: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com>
@TaprootFreak
TaprootFreak marked this pull request as ready for review June 1, 2026 22:03
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor Author

[OK] Button-Inventory-Audit — all clear

Checked 72 testid(s) in src/ against 70 reference(s) in e2e/. Nothing to do.

… PR (#153)

* fix(e2e): read username_domain from /api/info instead of hardcoding @zkcoins.app

PR #98 made `username_domain` server-reported per stage — dev.zkcoins.app
now serves `dev.zkcoins.app` as the domain, so addresses render as
`xxx@dev.zkcoins.app` on DEV. The e2e helpers had `@zkcoins.app`
hardcoded into the wallet-chip regex and the copy-button locator,
turning the post-#98 frontend rollout into an E2E-globalSetup failure
on every Release PR.

Fix: lazy-load `username_domain` from /api/info once per test session
(cached, no fallback to a hardcoded domain — fail loud if /api/info is
unreachable so a misconfigured CI surface doesn't silently match the
wrong stage). All consumers — globalSetup's address-chip wait, the
copy-button locator, doc comments — now derive the suffix at runtime.

Validation:
  - `npx prettier --check e2e/` clean
  - `npx tsc --noEmit` clean

* fix(e2e): use dynamic zkAddressRegex in specs 02/03/04 too

Subagent fix only touched the helpers; three specs had the chip-
locator inlined as `text=/[0-9a-f]{8}@zkcoins\\.app/` and so still
hard-coded the PRD suffix. Hook them onto the same
`getUsernameDomain()` + `zkAddressRegex()` pair as the helpers.

* fix(e2e): also remove hardcoded chip regex in 08-receive.spec.ts
… PR (#153) (#154)

* fix(e2e): read username_domain from /api/info instead of hardcoding @zkcoins.app

PR #98 made `username_domain` server-reported per stage — dev.zkcoins.app
now serves `dev.zkcoins.app` as the domain, so addresses render as
`xxx@dev.zkcoins.app` on DEV. The e2e helpers had `@zkcoins.app`
hardcoded into the wallet-chip regex and the copy-button locator,
turning the post-#98 frontend rollout into an E2E-globalSetup failure
on every Release PR.

Fix: lazy-load `username_domain` from /api/info once per test session
(cached, no fallback to a hardcoded domain — fail loud if /api/info is
unreachable so a misconfigured CI surface doesn't silently match the
wrong stage). All consumers — globalSetup's address-chip wait, the
copy-button locator, doc comments — now derive the suffix at runtime.

Validation:
  - `npx prettier --check e2e/` clean
  - `npx tsc --noEmit` clean

* fix(e2e): use dynamic zkAddressRegex in specs 02/03/04 too

Subagent fix only touched the helpers; three specs had the chip-
locator inlined as `text=/[0-9a-f]{8}@zkcoins\\.app/` and so still
hard-coded the PRD suffix. Hook them onto the same
`getUsernameDomain()` + `zkAddressRegex()` pair as the helpers.

* fix(e2e): also remove hardcoded chip regex in 08-receive.spec.ts

Co-authored-by: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com>
@TaprootFreak
TaprootFreak merged commit e413be0 into main Jun 1, 2026
20 checks passed
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