Ecosystem metrics
- Commits
- 778
- down 3.1%
- Releases
- 8
- down 11.1%
- Contributors
- 51
- down 1.9%
- Merges
- 43
- up 95.5%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
6510 commits in all time
May 28, 2026 14:40 – Aug 26, 2026 14:40 UTC
Merge 020bb7e5611dd108c98e8ba13b2d680a489ba27a into 24d50e98193888014f2e318358c83b576df8d65e
65648f43
pull/6715/merge
3/82 ++ 3 --
ledger: unblock the catchpoint hash reader when the trie writer stops
BuildMerkleTrie runs a reader that pages pending hashes into a buffered channel and a writer that drains it into the merkle trie. The writer stops on any per-chunk error, most reachably the duplicate-hash rejection a catchpoint provider can trigger by repeating a balance record. Nothing told the reader, whose send was unconditional, so it parked forever on a full queue and wg.Wait never returned: BuildMerkleTrie hung instead of returning the error it had already produced, leaking both goroutines and the snapshot transaction, and leaving the node wedged in catchup until restarted. Derive a worker context, cancel it from a defer in the writer so every exit path signals, and make the reader's send select on it. The reader reports no error of its own when it unwinds that way, so the writer's error is what reaches the caller. Also names the queue depth, which the regression test needs in order to stage enough chunks to fill the queue.
020bb7e5
pull/6715/head
3/82 ++ 3 --
fix: make `resolved` mean every input arrived, not every balance
The previous commit gated the top-up on balances and stopped there. The re-review found the gap that leaves, and it is worse than the one it replaced: a balance that fails to arrive pushes the requirement *up* (the child looks empty), but a roster or pool standing that fails to arrive pushes it *down* — the rows are dropped and `[].every()` still reports resolved. So a frac registry whose `fetchCommitteePools` errored read as "fully covered" at a requirement nothing had priced, and the provisional notice told the operator the number was an over-estimate in exactly the case where it was not. `resolved` now covers every input each estimate was built from — periods, committees, delegations, both rosters, `mbrTopUp`, the frac key length, every counted committee's pools, and the balances. The reads keep their `data` possibly-undefined for that reason: an empty roster and an unread one are indistinguishable once defaulted. `isError` likewise spans every query rather than the balances alone, and only picks the wording — the gate is `resolved`, which is false for an absent input however it came to be absent. The callout no longer claims a direction, since one flag now covers both. Two more from the same review: - `countsTowardMbr` used `nowSeconds <= votingEnd`, counting a period as fundable for one second after the contracts stop admitting votes (`Global.latestTimestamp < votingEnd`, ggovPeriod.algo.ts:408 and fracDelegationInstance.algo.ts:962). Now strict, with the check script pinning the boundary rather than the off-by-one. - `poolSignature` keyed only on instance ids, so a staker count that moved between refetches left the memo — and the figure — on the previous count. It now carries every field `poolRowsOf` keeps.
87581a83
feat/registry-mbr-estimate
4/114 ++ 44 --
fix: gate the registry top-up on balances that actually resolved
The estimator already computed a `resolved` flag on every row and every estimate — "so `required` is final rather than provisional" — and nothing read it. Three review findings on #117 are three ways of falling through that gap: - the top-up button stayed armed while the panel loaded, and an unread registry balance falls back to zero spendable, so it offered to send the whole requirement; - an *errored* balance read is not a pending one, so `isLoading` went false with the entry simply missing from `byAppId` — the same zero, permanently; - the frac vote-record key length was absent from the composite loading state, and without it the pool list is empty, which makes the frac registry read as fully covered at a requirement of zero. Wire the flag through instead of patching each symptom. `useAppAccountInfos` now reports `isError` alongside `isLoading`, following the convention fracQueries.ts already sets for reads whose empty result cannot carry the difference. `RegistryMbr` gains `resolved` — the registry's own balance plus every child's, with the frac key length folded in because its absence is invisible to `[].every()`. The panel shows the figures either way, since an unread balance can only push a requirement up, but replaces the coverage callout with a provisional notice and will not offer to fund it. New `Balances incomplete` story covers the state the panel previously could not express.
9e23d133
feat/registry-mbr-estimate
4/121 ++ 15 --
Merge 8c8f1ea50c04f8dee8546aeb8c23be71bb25688c into 24d50e98193888014f2e318358c83b576df8d65e
eb5644a5
pull/6714/merge
1/4 ++ 3 --
fix: avoid unexpected balance drift due to rewards
8c8f1ea5
test/e2e-pq
1/4 ++ 3 --
Merge 6f07c68e03ed7e2380dc76dc0b634048e550fad6 into 24d50e98193888014f2e318358c83b576df8d65e
2424675a
pull/6689/merge
2/3 ++ 3 --
Merge 134f6b50caa904c055ddfbf9448a87ffff806db7 into 24d50e98193888014f2e318358c83b576df8d65e
72ca2817
pull/6688/merge
2/3 ++ 3 --
Merge 4fb7d5a74e855225413c33831502e171122cbad8 into 24d50e98193888014f2e318358c83b576df8d65e
f5b81962
pull/6659/merge
13/2,549 ++ 168 --
Merge 991c77b886ea0c88c469cf8c56e44f7ac117a008 into 24d50e98193888014f2e318358c83b576df8d65e
a81cf0d4
pull/6687/merge
2/12 ++ 12 --
Merge 767bbbddb884bae419b292186e1af0174be9ab54 into 24d50e98193888014f2e318358c83b576df8d65e
df9c01db
pull/6501/merge
19/1,195 ++ 268 --
Merge ff0ba94c54b81c22147f383d9a2a7e639478dd02 into b0a3e71a91adfd1dfb97b5060d054618c2a147aa
a9022e10
pull/66/merge
10/1,152 ++ 1,265 --
chore(deps): Update all non-major dependencies
ff0ba94c
renovate/all-non-major-dependencies
10/1,152 ++ 1,265 --
Merge 3fc8344663a3fe880dde451a760e3785fec12788 into ae80f590e98c6faa0c81cd54c38512119e466b06
dc496b8d
pull/404/merge
300/207,134 ++ 355 --