Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
faf6d12
feat: permissionless multi-asset — create, mint, send, receive custom…
TaprootFreak Jun 3, 2026
0c6472b
feat: permissionless multi-asset — create, mint, send, receive custom…
TaprootFreak Jun 3, 2026
974cd5d
test(jobs): prevent pg pool exhaustion in jobs_stream SSE tests under…
TaprootFreak Jun 4, 2026
8be44b5
docs: reframe trust model as run-your-own-node (Bitcoin full-node mod…
TaprootFreak Jun 4, 2026
2da35ba
docs(roadmap): set decentralization as the current focus (#202)
TaprootFreak Jun 4, 2026
543c1bf
fix(cors): allow Idempotency-Key request header so browsers can call …
TaprootFreak Jun 4, 2026
9d174d2
feat(jobs): expose ash/ocr hex on awaiting_signature JobStatus result…
TaprootFreak Jun 4, 2026
b288a6a
feat(api): add normalized bitcoin_network enum to /api/info (#193)
TaprootFreak Jun 4, 2026
e2745fd
feat(state): self-heal persisted proofs on circuit-digest change (#204)
TaprootFreak Jun 4, 2026
24a3863
Merge pull request #200 from zk-coins/staging
TaprootFreak Jun 4, 2026
242ca77
ci: simplify test gating to a 2-tier model (drop db/prover subsets) (…
TaprootFreak Jun 4, 2026
e6a82ec
docs: scrub internal infrastructure references from the public repo (…
TaprootFreak Jun 4, 2026
63ce38f
Merge pull request #207 from zk-coins/staging
TaprootFreak Jun 4, 2026
a01b241
fix(db): reset proof-dependent state to genesis (DEV + PRD prover rec…
TaprootFreak Jun 5, 2026
6918f82
fix(prover): detect systemic prove failures — /health/ready signal + …
TaprootFreak Jun 5, 2026
fdcfe22
Promote: staging -> develop (#210)
TaprootFreak Jun 5, 2026
55fad8b
docs: Plonky3 migration plan + Phase-0 GO (carrier-table direction) (…
TaprootFreak Jun 6, 2026
d94ccbf
feat(plonky3): Phase 0 recursion feasibility spike — gate is GO (carr…
TaprootFreak Jun 6, 2026
1f135b4
feat(plonky3): carrier-table IVC (Path 1+5) + full migration audit + …
TaprootFreak Jun 6, 2026
d2247ba
chore: remove design/research markdowns from the node repo (#216)
TaprootFreak Jun 7, 2026
9d342c2
chore: remove Plonky3 migration content from staging (#217)
TaprootFreak Jun 7, 2026
12fa65c
feat(api): GET /api/history/{id} — per-transaction detail endpoint (T…
TaprootFreak Jun 7, 2026
519a700
chore: move benchmark output to research (#219)
TaprootFreak Jun 7, 2026
23845d3
Promote: staging -> develop (#215)
TaprootFreak Jun 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# cargo-nextest configuration.
#
# Discovered from the workspace root (the directory holding the
# top-level `[workspace]` `Cargo.toml`), so it applies to both
# `cargo nextest run` (local runs) and `cargo llvm-cov nextest` (the
# CI `Tests + Coverage Gate` job) — both drive the suite through
# nextest and honour this file. It carries NO coverage semantics of
# its own, so the 100% line/function gate is unaffected.

[test-groups]
# Concurrency cap for the heaviest Postgres-touching test module.
#
# Every test in `router::tests::jobs_endpoint_tests` runs
# `crate::test_db::setup_pool()`, which CREATEs a fresh per-test schema
# and replays the full migration suite (16 DDL files: tables, triggers,
# views) into it. Postgres serialises concurrent DDL on shared system
# catalogs, so when the post-#181 `--test-threads 8` default lets eight
# of these migration replays run at once against the single shared
# `postgres:17` container, each `setup_pool()` stretches from <1 s to
# tens of seconds. The SSE `jobs_stream_*` tests additionally hold their
# pool across deliberate `sleep`/`timeout` windows, so under that
# contention their `JobStore`/`setup_pool` connection acquisition can
# exceed the pool's 60 s `acquire_timeout` and surface as
# `create: PoolTimedOut`.
#
# This was invisible at the `--test-threads 1` default. Capping the
# group keeps the `Tests + Coverage Gate` (the single `ci:full` job,
# `--test-threads 8`) safe: the `jobs_endpoint_tests` are interleaved
# across ~440 tests there, but the cap still guarantees no more than
# two migration replays race at once regardless of how the scheduler
# packs the run. The cap originally surfaced under the now-removed
# "DB Subset Tests" job, which selected `test(/^router::tests::jobs_/)`
# alongside `db::tests` / `job_store::tests` etc. so the
# migration-replaying tests clustered and the contention tipped over;
# the cap is retained because it is the general guard for this group
# in the full gate, not specific to that subset.
#
# Capping this group at 2 concurrent threads keeps useful parallelism
# while bounding simultaneous migration replays so connection
# acquisition stays well under the 60 s timeout. It touches no test
# pool, so the deliberately-narrow error-path pools (`dead_pool`'s
# `max_connections(1)` / 50 ms `acquire_timeout`) keep exercising their
# `PoolTimedOut` arms verbatim.
jobs-endpoint = { max-threads = 2 }

[[profile.default.overrides]]
filter = 'test(/^router::tests::jobs_endpoint_tests::/)'
test-group = 'jobs-endpoint'
24 changes: 17 additions & 7 deletions .github/workflows/auto-release-pr-staging.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
permissions:
contents: read
pull-requests: write
issues: write # required by `gh label create`

concurrency:
group: auto-release-pr-staging
Expand Down Expand Up @@ -48,12 +49,6 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COMMIT_COUNT: ${{ steps.check-diff.outputs.commit_count }}
run: |
# Promote PRs intentionally do NOT apply the `ci:full` label.
# The heavy M3 Ultra test + coverage gate stays reserved for
# the develop → main Release PR (auto-release-pr.yaml), which
# remains the authoritative pre-PRD gate. Promote PRs run the
# slim `Lint & Build` job + Analyze / CodeQL, mirroring what
# every ready feature PR sees.
printf '%s\n' \
"## Automatic Promote PR" \
"" \
Expand All @@ -64,14 +59,29 @@ jobs:
"- [ ] Merge to promote staging to develop (deploys to DEV)" \
> /tmp/pr-body.md

# `ci:full` opts the PR into the heavy M3 Ultra test +
# coverage gate (see ci.yaml). Promotions to `develop` deploy
# to DEV, so we want every promotion validated against the
# full gate (DB + prover + 100% coverage) rather than only
# the develop → main Release PR — apply the label on creation
# rather than relying on a human to remember the click.
# Mirrors auto-release-pr.yaml (develop → main).
gh label create ci:full \
--color FFA500 \
--description "Run heavy M3 Ultra test + coverage jobs on this PR" \
2>/dev/null || true

# Created as DRAFT so the operator's `gh pr ready` is the
# explicit gate that fires a `ready_for_review` event and
# triggers ci.yaml — PRs opened via GITHUB_TOKEN would
# otherwise hit GitHub's anti-recursion policy and skip
# downstream workflows entirely.
# downstream workflows entirely. The `ci:full` label is still
# applied at creation so the heavy gate runs as soon as the
# PR is marked ready.
gh pr create \
--draft \
--base develop \
--head staging \
--title "Promote: staging -> develop" \
--label ci:full \
--body-file /tmp/pr-body.md
Loading
Loading