Ecosystem metrics

New Repos
1,871
New
Commits
296
down 15.7%
Releases
9
up 0.0%
Contributors
37
down 22.9%
Merges
10
up 0.0%

Repository Explorer

3432 commits in all time May 23, 2026 21:32 – Aug 21, 2026 21:32 UTC
github-actions[bot] wallet
cicd deploy 1.2026.08.21-main [skip ci]
Git Commit bd1639df Branch master Document 1/1 ++ 1 --
LoafPickleWW wen-tools
feat: implement Stablecoin Studio, Minting Suite, and Brale utility modules
Git Commit 181bc641 Branch main Document 5/812 ++ 1 --
tasosbit gGov
perf: pipeline: stage 3 computes concurrently, ingests serially
Stage 3 ran one source at a time, so three multi-minute Indexer window
scans summed instead of overlapping. Splitting it by what each half is
allowed to do lets the reads overlap while the writes stay ordered:

- compute (ledger precheck, window scan, replay, manifest assembly) now
  runs concurrently across sources
- ingest stays strictly serial across sources AND instances. uploadAqFile
  derives box names from account ids the frac *registry* allocates as it
  goes, and that counter is registry-wide, so two instances ingesting at
  once would predict the same ids and all but the first would fail with an
  invalid box reference - the same reason the SDK refuses to parallelize
  the batches within one upload.

Compute returns its per-source outcomes rather than pushing onto the run
context, so the report still reads the same on every run (pMap answers in
input order).

Also, on the same path:
- per-instance ledger prechecks fan out; a multi-instance source (reti runs
  one per validator) spent a serial round trip per instance before any scan
- plugins are built once per run and shared by stages 1 and 3; reti was
  resolving every validator's pools twice
- the manifest genesis hash is read once per run, not once per instance
- stage/phase timings behind the debug flag, so this is measurable at all
Git Commit 33038ca8 Branch chore/pipeline-parallelization Document 1/262 ++ 109 --
tasosbit gGov
perf: collapse the account page's pooled reads to one
The account page paid a fan-out on two axes and a waterfall between
them: one committee-snapshot read per instance, then - once those
landed and syncedIds could be derived - one AQ read per committee.
On VotingPowerByCommittee, which passes every gGov committee, that is
~33 queries in two phases for a 3-pool account.

Fold both axes into the read that already spans instances:

- FracAccountCommitteeAq gains totalVotes, taken field-wise off the
  committees box getAccountCommitteeAq already reads to resolve
  committeeNumId - so it costs no extra box read and no extra
  reference. Field-wise rather than cloning because escrowsVotes sits
  between the two fields and grows with the escrow count, the same
  reasoning getCommitteeStanding documents.
- logAccountInstanceAQ takes committeeIds[] and logs one row per
  (instance, committee) pair, instance-major. Every row already echoes
  its committeeId, so callers group rather than index-align. It also
  gains the deleted-app probe its sibling logInstanceCommittees has -
  free, since the app is referenced by the inner call anyway, and today
  one deleted instance takes down the whole page.

References now split per-instance and per-pair, so the page size is a
function of the committee count:

    refs(I, C) = 1 + I*(2 + 3C) <= 128

C=1 gives 25, reproducing the old AQ_PAGE_SIZE exactly. C=42 fits no
instance at all, hence aqMaxCommitteesPerCall = 41 alongside
aqRefBudget. getAccountInstanceAQs sizes the two axes against each
other rather than paging instances serially - committee chunks are
independent and run in parallel. Given the caller's instance count it
solves for instances first; without it, for committees, which keeps the
single-committee callers at exactly the one round-trip they cost today.

Frontend: usePooledCommitteeAqs collapses to a single useQuery, the
syncedIds pre-filter disappears (it only existed to avoid the
per-committee cost), and poolVotes reads entry.totalVotes.
useFracInstanceCommittees becomes usePoolSyncedCommittees - a plain
useQuery for PoolDetail's account-independent "Voting since" row, the
one caller no account-scoped reader can serve.

Measured on localnet at 30 committees x 2 pools: 32 algod calls in two
phases -> 3 (one account read plus two parallel AQ chunks), 130ms ->
24ms. Instance approval program 6,427 -> 6,453 / 8,192 bytes.

BREAKING: getAccountCommitteeAq's return type changes, and with it its
ARC-4 selector, which the registry inner-calls by selector; and
logAccountInstanceAQ's own signature. Registry and every live instance
must be upgraded together. No deployed registry today - neither
.env.testnet nor .env.mainnet carries VITE_FRAC_REGISTRY_APP_ID.
Git Commit 7cdb4602 Branch chore/pipeline-parallelization Document 22/8,093 ++ 5,793 --
Merge c409aa1a99a13bf45312429674f6468edce9e02d into b4ca42f9d605dbb9136f99ac09d5f365fc684a68
Git Commit 2277b6c6 Branch pull/1112/merge Document 1/3 ++ 3 --
mitre88 js-algorand-sdk
Merge 115a4339700aac92ced229b717798f998dd0210e into b4ca42f9d605dbb9136f99ac09d5f365fc684a68
Git Commit 6d495db0 Branch pull/1130/merge Document 2/85 ++ 0 --
Merge b4b51f91f1c758958ea88d4e0ffdab54c1f65488 into c91d55b8c1a3b364b3cf61c52972ca549682377f
Git Commit 1407c8cb Branch undefined Document 47/2,332 ++ 414 --
iglosiggio go-algorand-sdk
fix: Wrong code on PQAccountTransactionSigner#Equals
Git Commit b4b51f91 Branch pqsig-support Document 1/1 ++ 1 --
iglosiggio go-algorand-sdk
chore: Rename Falcon1024AccountTransactionSigner to PQAccountTransactionSigner
Git Commit f2579343 Branch pqsig-support Document 2/9 ++ 9 --
Controls pre-registration DRAFT (team-designed, numbers-blind) - not in force
Six-seat zuss (8/9 seats), written under the blindness clause of
PREREG_v41-release-replicate.md 3a(3): methodology only, no session
values. Majority locks Option (a) - crop-shape is NOT part of the
synthetic-control hypothesis, because a synthetic crop null cannot
calibrate or gate the Falcon crop/SHAPE path (non-transfer); the interim
raw-line ruling becomes permanent under it. The minority Option (b) draft
(matched synthetic null family + planted-shape positive control with a
numeric fire condition) is kept in full with the founder decision
criterion, because the split is real. Takes force only as a dated
pre-registration after the release-replicate decision, in the ruled order.

Security Impact: document only, explicitly not in force; no rule changes
until adopted.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Git Commit f03ea3ef Branch feat/vendor-falcon-det1024 Document 1/329 ++ 0 --
tasosbit gGov
Merge 7f355aef318a89104c3731bd448e0d6c1dac9dcd into a19f754c3e6c33c5face09f7b8ef7779295a29e2
Git Commit 66aeb0f8 Branch undefined Document 33/48,752 ++ 6,589 --
Merge 395851bcff8e07d8472dcc8f00e85cb468b06d69 into c74ce198f0e0fc7e29734275cbff04efc023b1de
Git Commit fe55f3d8 Branch undefined Document 2/35 ++ 35 --
falcon-ct: interim controls ruling (synthetic controls judged raw-only) + pre-register the release replicate
Implements the dated interim ruling from the six-seat review of the v4.1
validation session: synthetic controls (control-flat, control-leaky) are
judged on the raw |t| >= 4.5 line ONLY via the new judge_raw_only — the
crop diagnostic does not run for them (crop_empirical_p = None), because a
synthetic loop and the real signing operation do not share a crop null and
judging one against the other is a mismatched reference. Observed live in
the quarantined session: the flat control read "Shape" at raw t = 2.99
against the null-ss bank and flipped controls to NOT OK. The regression
test pins exactly that shape: a flat series whose crop would fire against
a tight real-op bank must still Pass, the leaky control must still Fail on
the raw line, short samples stay INCONCLUSIVE. Whether a crop-shape
control validation returns later — with its own synthetic reference family
AND a synthetic-shape positive control with a numeric fire condition — is
left to its own pre-registration, per the apex ruling that left (a)-vs-(b)
genuinely open. READING_GUIDE documents the ruling in the artifact itself.

Also: PREREG_v41-release-replicate.md — the release-harness replicate
pre-registered BEFORE it can even be built (App Control still blocks fresh
release exes; founder decision pending). One reading (null_raw_t_sd, the
committed bands, registered as a low-information point-estimate call per
review F4), explicit non-readings (no v3.1 re-judgment — that needs a
matched-count 82k bank; banks frozen but unused until the controls pre-reg
and a specified §6.1 exist), and a deviation rule that makes any off-spec
run exploratory with the bands not applied — this morning's lesson,
written down.

V4_BACKLOG §A sweep: A1-A8 verified all closed by the v4/v4.1 work (A1
empty-null fail-closed with the CI session documented in judge_v2; A2
aa_verdict/aa_ok in Controls; A3 READING_GUIDE covers sign-aa; A4 sign-kk
description corrected; A5 no "flat-control null" comments remain; A6
null_reason serialized; A7 per-session null logging; A8 fold_null).

Gates: cargo fmt, clippy pedantic+nursery -D warnings clean, 24 tests
green in falcon-ct (15 lib + 9 bin).

Security Impact: measurement harness only; no crypto code. The change
NARROWS what a control verdict may be based on (raw line only) and cannot
lift any session verdict; the flat control can now block a session only
for a genuine raw-line environment failure. To re-verify: the release
replicate runs under the committed pre-registration once the harness
decision lands.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Git Commit 6df69990 Branch feat/vendor-falcon-det1024 Document 3/176 ++ 12 --
Merge 218e146754117cbafa68eecbd6ca09fe9031c33c into 4bb8bde04aa890c23cdd067bd167c1f0375a632d
Git Commit ce1d295d Branch pull/318/merge Document 35/4,739 ++ 2,177 --
Merge 0fd9f09ff3b88deb954eaa63c04f1689371612b9 into c74ce198f0e0fc7e29734275cbff04efc023b1de
Git Commit d3957732 Branch undefined Document 1/25 ++ 34 --
Merge remote-tracking branch 'origin/docs-staging' into docs/account-management-update-code-example
# Conflicts:
#	docs/sidebar.config.json
#	docs/src/content/docs/concepts/core/account.md
Git Commit 020a2d49 Branch docs-staging Document 11/1,017 ++ 753 --
Merge remote-tracking branch 'origin/docs-staging' into feat/docs-errors-debugging
# Conflicts:
#	docs/sidebar.config.json
Git Commit 04b75e13 Branch docs-staging Document 18/2,272 ++ 1,891 --
pbennett reti
fix(ui): recover pool global state the bulk read didn't carry
Moving pool state to a single accountInformation read on the registry left two
gaps where a pool the bulk request missed stayed missed.

`processPoolData` fell back on the presence of the entry, not on what it held. A
pool whose state came back partial decodes to `{}`, which is truthy, so it kept
the empty entry and returned no lastPayout - which the Status column renders as
"Payouts stopped".

`algodVer` lost its fallback entirely. It came off LocalPoolInfo, and
StakingPoolInfo now reads it only from the bulk map; the per-pool read inside the
metrics query keeps lastPayout and discards the algodVer it fetched. Any pool the
map lacks reported its node version as "--" for the rest of the session.

Both now gate on `isPoolGlobalStateComplete`. It tests lastPayout rather than the
field being displayed, because lastPayout is written when the pool is created -
stakingPool.algo.ts sets it to the creation round as the first epoch's baseline -
so every pool has one and its absence can only mean an incomplete read. Gating on
algodVer instead would have been wrong: it is only written once the node daemon
reports in, and 88 of MainNet's 283 pools legitimately have none, so keying on it
would re-read a third of all pools on every visit and still show "--".

The 1020 fixture claimed a missing lastPayout stood for "a pool that has never
paid out", which the contract does not do. It now models the case that does
occur - a pool whose daemon has never reported, so no algodVer - and the tests
around it cover the fallback firing on an incomplete entry and staying put on a
complete one.
Git Commit 8e278262 Branch dev Document 5/98 ++ 14 --
falcon-ct: implement v4.1 §2a reference banks, hardened by the five review findings
Implements the matched banks under --null-design ss: sign-aa repeats (fresh
keypair each, ungated) form the sign-kk crop bank; a null-rr bank supplies
sign-rr's crop reference and its three-state raw rule. rr design unchanged
(refs_for_rr: everything = the gate null, no raw bank, byte-identical v3
judging).

The full-team review's findings, each applied and tested:
- S1: reference banks are all-or-nothing — collect_sessions returns Result
  and a failed session propagates instead of silently truncating the bank;
  rr_raw_state returns no_reference_bank / invalid_statistic (NaN) rather
  than relabelling harness faults as fail_beyond_reference.
- S2: the gating A/A control is a conditioned draw and is excluded from the
  bank; ss requires --aa-repeats N >= 2 (enforced in check_v4_options and
  live via the CLI).
- S3: tests exercise production paths — refs_for_rr is the function the rr
  arm returns, and the tests call it; the guard truth table calls
  check_v4_options itself.
- S4: requested bank counts are serialized (aa_repeats_requested,
  rr_sessions_requested) because the rank floor 1/(N+1) makes N part of
  the rule.
- S5: both banks' raw CSVs are written (bank_raws), not only judged crops.

Gates: cargo fmt, clippy -D warnings (pedantic+nursery), 47 tests green,
all four CLI guard paths exercised against the built binary.

Security Impact: measurement harness only — no crypto code touched. What
changed: reference-bank construction and the sign-rr raw rule under the ss
design; ss sessions remain validation-only (ungated, INCONCLUSIVE,
validation_only:true) until a pre-registration lifts it. What could break:
a wrong bank would mis-calibrate future SHAPE annotations — mitigated by
all-or-nothing collection, serialized requested counts, and production-path
tests. To re-verify: the pending validation run reads only null_raw_t_sd.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Git Commit b7ea95a1 Branch feat/vendor-falcon-det1024 Document 1/488 ++ 52 --
tasosbit gGov
Merge branch 'feat/frac-pipeline-plugins' into feat/ui-pooled-voting-pools
Conflict in frac-delegation-sdk/src/registry/sdkReader.ts (imports only):
the incoming dual ESM/CJS build rewrote relative specifiers to carry .js,
while this branch added a FracInstanceCommitteeStanding type import for
getInstanceCommitteeStandings. Kept both — .js specifiers throughout,
including the new type import.
Git Commit 2071a12a Branch feat/ui-pooled-voting-detail Document 65/13,524 ++ 292 --
JBScaled algokit-utils-py
Merge pull request #326 from algorandfoundation/feat/docs-transactions
Docs: Add Transaction concepts page and examples
Git Commit 1fd84473 Branch docs-staging Document 8/721 ++ 655 --
gabrielkuettel devportal
Merge pull request #644 from algorandfoundation/fix/pq-feedback
docs: address post-quantum feedback
Git Commit 372aacf0 Branch main Document 3/7 ++ 7 --