Skip to content

Promote: staging -> develop - #169

Merged
TaprootFreak merged 5 commits into
developfrom
staging
Jun 2, 2026
Merged

Promote: staging -> develop#169
TaprootFreak merged 5 commits into
developfrom
staging

Conversation

@github-actions

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

Copy link
Copy Markdown
Contributor

Automatic Promote PR

Commits: 1 new commit(s)

  • Review all changes
  • Verify CI passes
  • Merge to promote staging to develop (deploys to DEV)

…set gates (#167)

Two structural changes to the heavy CI lane, each preserving 100%
coverage gate strictness and the existing test set.

1. Merge `node-tests` and `coverage` into a single `test-and-coverage`
   job. The previous topology ran the same `-p node -p shared
   --all-features` test set TWICE on the same self-hosted m3-ultra
   pool (once plain, once under `cargo llvm-cov nextest`). The
   instrumented run already produces the test execution AND the
   coverage data, so the standalone `node-tests` job was pure
   duplication. After the merge:

     * Heavy gate still runs `cargo llvm-cov nextest … --fail-under-lines
       100 --fail-under-functions 100` — same strictness, same ignore
       regex, same `-E 'not binary(api_remote)'` exclusion, same
       `RUSTFLAGS=--cfg coverage_nightly`.
     * Test set is `-p node -p shared --all-features` (matching the
       former `node-tests` scope); the coverage scope stays `-p node`
       via an additional `shared/src/.*\.rs$` entry in the ignore
       regex.
     * One m3-ultra agent slot is occupied per PR instead of two,
       directly reducing the Colima / Postgres-container pressure on
       dfx01 that produced sporadic `PoolTimedOut` flakes when
       multiple PRs ran the heavy lane in parallel.

2. Add two new subset-gate jobs for faster developer iteration:

     * `db-tests` — gated by the new `ci:db` label. Runs the
       Postgres-backed test surface (db / state / job_store / audit /
       username / r2_probe / publisher / runtime / commitment / the
       jobs-API router subset / the build_network_config crate-root
       tests / the persist+load account_node tests) under plain
       `cargo nextest run` without llvm-cov instrumentation. ~15 min.
     * `prover-tests` — gated by the new `ci:prover` label. Runs the
       full account_node send / mint / receive surface (Plonky2 happy
       paths and pure-Rust error paths) so anything touching
       account-node state transitions is covered. ~25 min.

   Both subsets carry an `&& !contains(... labels.*.name, 'ci:full')`
   guard so a PR labeled with both runs only the heavy gate (the
   superset). Both run on the same `[self-hosted, m3-ultra]` pool
   with the same env block, sccache config, DOCKER_HOST step, and
   Telegram-alert step as the heavy job. They are NOT a pre-merge
   gate; `ci:full` remains the authoritative check.

Job topology now:
  lint-and-build → db-tests / prover-tests / test-and-coverage
                 (parallel, all `needs: lint-and-build`)
                 → notify-failure (needs: lint-and-build + test-and-coverage)

All filter expressions consistently `^`-anchored to the module root
to disambiguate from `<other>::tests::<same-prefix>` collisions.
…rfaces as 50k delta (#168)

`balance_from_account_blob` previously read only `Account.balance`,
which is the *settled* balance after sends. The mint and receive
paths push the credited coin into `coin_queue` without touching the
`balance` field — `Account::get_balance()` is the only call that
sums both. Reading just `balance` here made every first-mint history
row collapse to `new_balance = 0, prev_balance = 0, amount = 0`, so
the wire item reported `amount = 0` for a 50_000-sat credit.

The existing unit test masked this because its fixture set
`a.balance = 5_000` directly, a shape no production caller produces
on the mint or receive path. That test now documents that it pins
the settled-balance variant (a valid post-send shape), and a new
sibling test `history_row_to_item_balance_from_coin_queue_only`
in `account_node_tests` walks the real mint flow
(`execute_send_coins` + `receive_coin`) to pin the previously-
uncovered queue-only case end to end — including a direct assertion
on `balance_from_account_blob` itself.

E2E (api_remote::history_after_mint_records_mint_row) flagged this
against dev-api on PR #166 (Release develop->main).
@TaprootFreak TaprootFreak added the ci:full Trigger heavy CI jobs (Server + Shared Tests + Coverage Gate, ~60-90 min on M3 Ultra) label Jun 1, 2026
Mirror of zk-coins/app#151 — the GITHUB_TOKEN that opens these PRs
hits GitHub's anti-recursion policy and silently skips ci.yaml,
leaving every staging-bound and develop-bound auto-PR without a
pre-merge CI gate. Creating as DRAFT lets the operator's explicit
`gh pr ready` toggle fire the `ready_for_review` event that IS
allowed to trigger downstream workflows, so the full Lint & Build
plus (with `ci:full` already applied at creation) Node + Shared
Tests + Coverage Gate run against the actual PR HEAD before merge.

Both workflows in this repo carry the same one-line addition:
  - auto-release-pr-staging.yaml  (staging → develop)
  - auto-release-pr.yaml          (develop → main, keeps ci:full label)

Operator UX: one extra click. `gh pr ready <num>` (or the UI button)
promotes the PR + runs CI in a single step.
@TaprootFreak
TaprootFreak marked this pull request as draft June 1, 2026 23:52
…election (#172)

lnurlp_handler picks http:// for hosts containing 'localhost' and
https:// otherwise. The https arm is already pinned by
lnurlp_known_address_returns_pay_request; the http arm
(router.rs:2647) was uncovered, which broke the 100%-line coverage
gate at 3265/3266 lines = 99.97%.

New test lnurlp_localhost_host_returns_http_callback issues the same
.well-known/lnurlp/<prefix> request the existing test does, but with
Host: localhost:8080, and asserts the callback URL starts with
http://localhost:8080/. Closes the 1-line gap without changing
production code.

Surfaced as part of the dfxai runner pool smoke test on PR #169 — see
DFXServer/server commit 4347a4a for the new dfxai CI host.
@TaprootFreak
TaprootFreak marked this pull request as ready for review June 2, 2026 00:44
@TaprootFreak
TaprootFreak merged commit 818c00b into develop Jun 2, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:full Trigger heavy CI jobs (Server + Shared Tests + Coverage Gate, ~60-90 min on M3 Ultra)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant