Ecosystem metrics

Commits
778
down 3.1%
Releases
8
down 11.1%
Contributors
51
down 1.9%
Merges
43
up 95.5%

Repository Explorer

6510 commits in all time May 28, 2026 14:40 – Aug 26, 2026 14:40 UTC
cce go-algorand
Merge 020bb7e5611dd108c98e8ba13b2d680a489ba27a into 24d50e98193888014f2e318358c83b576df8d65e
Git Commit 65648f43 Branch pull/6715/merge Document 3/82 ++ 3 --
cce go-algorand
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.
Git Commit 020bb7e5 Branch pull/6715/head Document 3/82 ++ 3 --
sofinico gGov
Merge 5543cf45985da14bb399da9f264da200a487c165 into d5e740c4f38df55c0230b3571fa18401b65695ef
Git Commit f501e6f8 Branch pull/55/merge Document 300/808,085 ++ 149,363 --
tasosbit gGov
Merge pull request #117 from algorandfoundation/feat/registry-mbr-estimate
feat: registry funding panel sizing worst-case MBR for both registries
Git Commit 5543cf45 Branch develop Document 20/1,772 ++ 29 --
tasosbit gGov
Merge d0a6b0da8c7842d3feabb401e3eb1e1ea798334c into bfca4c02c69cbb33a230db0997a9a9ddaa1b82cd
Git Commit aba2c1b4 Branch pull/117/merge Document 20/1,772 ++ 29 --
tasosbit gGov
chore: remove extra space from error
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Git Commit d0a6b0da Branch feat/registry-mbr-estimate Document 1/1 ++ 1 --
ipaleka frontend
Added asset ID next to unit in the Dust Sweep widget
Git Commit da7a51b8 Branch v1_0_0 Document 4/132 ++ 2 --
ipaleka widgets
Added asset ID next to unit in Dust Sweep widget
Git Commit b163b866 Branch main Document 2/63 ++ 2 --
tasosbit gGov
Merge 87581a83687781c6f183e521afedabad5c04ce3d into bfca4c02c69cbb33a230db0997a9a9ddaa1b82cd
Git Commit 30f02f06 Branch pull/117/merge Document 20/1,772 ++ 29 --
tasosbit gGov
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.
Git Commit 87581a83 Branch feat/registry-mbr-estimate Document 4/114 ++ 44 --
tasosbit gGov
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.
Git Commit 9e23d133 Branch feat/registry-mbr-estimate Document 4/121 ++ 15 --
cusma go-algorand
Merge 8c8f1ea50c04f8dee8546aeb8c23be71bb25688c into 24d50e98193888014f2e318358c83b576df8d65e
Git Commit eb5644a5 Branch pull/6714/merge Document 1/4 ++ 3 --
cusma go-algorand
fix: avoid unexpected balance drift due to rewards
Git Commit 8c8f1ea5 Branch test/e2e-pq Document 1/4 ++ 3 --
Merge 6f07c68e03ed7e2380dc76dc0b634048e550fad6 into 24d50e98193888014f2e318358c83b576df8d65e
Git Commit 2424675a Branch pull/6689/merge Document 2/3 ++ 3 --
Merge 134f6b50caa904c055ddfbf9448a87ffff806db7 into 24d50e98193888014f2e318358c83b576df8d65e
Git Commit 72ca2817 Branch pull/6688/merge Document 2/3 ++ 3 --
cce go-algorand
Merge 4fb7d5a74e855225413c33831502e171122cbad8 into 24d50e98193888014f2e318358c83b576df8d65e
Git Commit f5b81962 Branch pull/6659/merge Document 13/2,549 ++ 168 --
Merge 991c77b886ea0c88c469cf8c56e44f7ac117a008 into 24d50e98193888014f2e318358c83b576df8d65e
Git Commit a81cf0d4 Branch pull/6687/merge Document 2/12 ++ 12 --
algorandskiy go-algorand
Merge 767bbbddb884bae419b292186e1af0174be9ab54 into 24d50e98193888014f2e318358c83b576df8d65e
Git Commit df9c01db Branch pull/6501/merge Document 19/1,195 ++ 268 --
Merge ff0ba94c54b81c22147f383d9a2a7e639478dd02 into b0a3e71a91adfd1dfb97b5060d054618c2a147aa
Git Commit a9022e10 Branch pull/66/merge Document 10/1,152 ++ 1,265 --
chore(deps): Update all non-major dependencies
Git Commit ff0ba94c Branch renovate/all-non-major-dependencies Document 10/1,152 ++ 1,265 --
Argimirodelpozo puya-ts
Merge 3fc8344663a3fe880dde451a760e3785fec12788 into ae80f590e98c6faa0c81cd54c38512119e466b06
Git Commit dc496b8d Branch pull/404/merge Document 300/207,134 ++ 355 --