Ecosystem metrics
- New Repos
- 22
- New
- Commits
- 825
- down 21.9%
- Releases
- 4
- down 50.0%
- Contributors
- 43
- down 21.8%
- Merges
- 34
- down 19.0%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
6900 commits in all time
Jun 03, 2026 21:28 – Sep 01, 2026 21:28 UTC
2.1: planner hook so substring(note,1,N) = $x can use one prefix index
The indexer's note search is
substring(decode(txn->'txn'->>'note','base64') from 1 for N) = $3
with N a per-request literal (7 in ~84% of cases, 3 and 6 next, tail up
to 34). PostgreSQL only matches an index when the indexed expression is a
direct operand of the operator, so no support function or opclass can
help here and the query never used an index for any N but the one baked
into an expression index.
note_prefix.c installs a planner_hook that rewrites such clauses against
any existing substring(x,1,K) btree expression index on the table:
N > K -> P = substring(B,1,K), original kept as recheck filter
N = K -> P = B (substr(), FROM 0 FOR K+1, reversed operands)
N < K -> P = B if len(B) < N, else B <= P < successor(B)
(no upper bound when B is all 0xFF)
For N <= K the derived form is an exact three-valued equivalent and
replaces the clause, which keeps the row estimates honest. Works for
literals and for bound parameters in custom plans; generic plans get the
N >= K derivation only. Derived clauses are built from the query's own
expression so outer-join nulling rels are preserved. Runtime switch:
SET pg_algorand.prefix_rewrite = off. Needs the library preloaded
(shared_preload_libraries or session_preload_libraries); does nothing
otherwise.
Also adds the regression suite the Makefile already referenced (basic
function tests plus 30 plan/equivalence cases for the rewrite), the
2.0->2.1 upgrade script, and README docs for the index and the
CREATE STATISTICS object the planner needs alongside a partial index.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BAkGJyPG5VRajhBwFRPiQ2
538fae65
main
11/1,445 ++ 7 --
Merge 4fb7d5a74e855225413c33831502e171122cbad8 into 42f70fe22bf79c104ddc289fd1a33168009803cf
3af3c7a5
pull/6659/merge
13/2,549 ++ 168 --
Merge 51b6a318e5c3bcd487c921d110e27a46d323f2e7 into 42f70fe22bf79c104ddc289fd1a33168009803cf
8ab1e3b1
pull/6722/merge
9/57 ++ 22 --
fix TestLedgerReloadTxTailHistoryAccess
51b6a318
pull/6722/head
2/15 ++ 11 --
Merge fd34d8c486cc6fca0dedc597e4e3f597265e7d0f into 654c02dfc0f747e35ef9c9028c9d0eca66017df7
9013cc68
pull/22/merge
4/573 ++ 0 --
feat(plugins): iomarkets — real-world goods over x402 on Algorand
Adds a plugin for buying mobile airtime and data top-ups in 150+ countries, paid per order in USDC on Algorand via x402. Everything an agent can currently buy over x402 is another API response. This delivers a physical-world good to a phone number, which makes the merchant's promises checkable rather than trusted: payment settles on chain before anything is bought, a failed delivery refunds on chain automatically, every terminal order carries an ed25519-signed receipt naming both transactions, and the delivery ledger is public — including `stranded`, the count of payers who were charged, received nothing, and could not be refunded. `topup_ledger` and `verify_topup_receipt` exist so an agent can check that before trusting it. The plugin holds no wallet. `buy_topup` returns the x402 payment challenge — exact amount, asset, payTo, facilitator — for the host's own signer to settle, so no key is ever custodied by the plugin. It is the only tool marked `mutatesState`, because it is the step that precedes spending and should be approval-gated; the other seven are queries. Mainnet only: there is no testnet storefront, and serving one network's catalogue to another network's agent would be worse than refusing. No new dependencies — fetch and zod only. Not added to `defaultPlugins()`: a merchant that spends real money should be opt-in. Notes for reviewers, both pre-existing on main and unrelated to this change: `bunx turbo run build typecheck test` fails in @initlabs/vibekit-tui only because tmux is absent from the environment, and `verify:packed` fails because packed-consumer asserts `defaultPlugins().length !== 4` while the preset now returns five (web was added). @initlabs/vibekit itself is green: build, typecheck, and 475 tests including the 11 added here.
fd34d8c4
pull/22/head
4/573 ++ 0 --
Merge 5122a00bf8808f1b63b607c1bca36cfa2392e349 into 42f70fe22bf79c104ddc289fd1a33168009803cf
9012a2d5
pull/6707/merge
17/2,342 ++ 60 --
Merge 767bbbddb884bae419b292186e1af0174be9ab54 into 42f70fe22bf79c104ddc289fd1a33168009803cf
b92c8eac
pull/6501/merge
19/1,195 ++ 268 --
Merge cca73f35eb630362f5820c3f2b3cf167201e22b4 into 42f70fe22bf79c104ddc289fd1a33168009803cf
d37d54c1
pull/6725/merge
3/54 ++ 67 --
rpcs: make TestRedirectOnFullCapacity deterministic
cca73f35
pull/6725/head
1/48 ++ 63 --
catchup: handle blockAlreadyInLedger in fetchRound same way as fetchAndWrite
6fb431ca
pull/6725/head
1/6 ++ 0 --
Merge bb566a01c0faaf07ae659f9ed7d495d5c3986801 into 42f70fe22bf79c104ddc289fd1a33168009803cf
4b75921e
pull/6707/merge
17/2,329 ++ 60 --
Merge 3f81c21fcaf9ba384d0995e26a626488e72bed2e into f83e46c9513beeb52415168fc9ea344dea8a089d
e6ff134b
pull/473/merge
1/55 ++ 31 --
chore(deps-dev): bump browserslist in /assets/arc-0059
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.23.0 to 4.28.8. - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](https://github.com/browserslist/browserslist/compare/4.23.0...4.28.8) --- updated-dependencies: - dependency-name: browserslist dependency-version: 4.28.8 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
3f81c21f
dependabot/npm_and_yarn/assets/arc-0059/browserslist-4.28.8
1/55 ++ 31 --
Merge 0e111e4778d6b3ee28f9e795dcc3f50dc071a5db into b0a3e71a91adfd1dfb97b5060d054618c2a147aa
44e57489
pull/66/merge
10/1,219 ++ 1,300 --
chore(deps): Update all non-major dependencies
0e111e47
renovate/all-non-major-dependencies
10/1,219 ++ 1,300 --
Notes added by 'git notes add'
e8c53210
notes/semantic-release-v1.3.1
1/1 ++ 0 --
Merge df9ee3ada9614b768b93365d24613ae4201cdd04 into 42f70fe22bf79c104ddc289fd1a33168009803cf
338c63e7
pull/6724/merge
2/207 ++ 17 --
agreement: delete old outer.Children entries in-place
df9ee3ad
pull/6724/head
2/207 ++ 17 --