Promote: staging -> develop - #169
Merged
Merged
Conversation
…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).
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
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
marked this pull request as ready for review
June 2, 2026 00:44
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automatic Promote PR
Commits: 1 new commit(s)