Ecosystem metrics
- New Repos
- 15
- New
- Commits
- 602
- down 10.8%
- Releases
- 3
- up 50.0%
- Contributors
- 46
- down 13.2%
- Merges
- 28
- up 211.1%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
7752 commits in all time
Jul 03, 2026 10:31 – Oct 01, 2026 10:31 UTC
Merge e0177e744bf2988e4225bc7f7c3066d1ce68aa4c into e84c12083a1e073fadc295ffe133d68bed796204
7507063c
pull/41/merge
16/800 ++ 167 --
feat(oid4vc): address credential status by holder did:key or status entry
Revoke and reactivate take exactly one addressing form. Alongside the
issuance session's `sessionId` or `credoIssuanceSessionId`, which still act
on every credential the session issued, a request can name:
- `holderDidKey`: every credential issued to that wallet did:key,
optionally narrowed by `credentialConfigurationId`.
- `uri` + `idx`: the one credential whose `status.status_list` claim
carries that pair.
Two forms at once, half of `uri` + `idx`, or a configuration filter without
`holderDidKey` return 400 before any bit changes. So does an empty or `null`
filter, since ignoring it would widen the revocation. A `null` addressing
field reads as absent, as the session-only API did.
`GET /credential/issuer/sessions` gains a `?holderDidKey=` filter.
Two Vault KV indexes back the new forms, one key per record so concurrent
writers do not contend: `sessions/issuance/by-holder/<multibase>/<sessionId>`,
written at offer creation, and `status-lists/entries/<listId>/<idx>`, written
at allocation before the session append. Each status entry records its
`credentialConfigurationId`.
A request resolves to the sessions it touches and a rule picking their
entries. setSessionStatus applies the rule to the session's current entries
inside the session CAS, so a credential issued while a holder revocation is
in flight is included. The chosen entries are stored in the durable
`statusChange` intent: a resumed operation replays them, and a request
covering a different set while one is pending returns 409. `revokedAt` /
`revokedReason` are set only when one revocation covers every entry on the
session. A holder spanning several sessions is processed session by session,
not atomically; re-sending the request finishes a partial failure.
revokeBySessionId / reactivateBySessionId are removed; revoke({ sessionId })
runs the same whole-session path. Table-driven tests send request bodies
through the ValidationPipe from main.ts into the real service, covering
each form and the bodies that must fail with 400 or 404.
Fresh installs only: entries allocated before this change carry no
`credentialConfigurationId`, and a narrowed holder request does not match
them.
e0177e74
feat/revoke-by-did-key
16/800 ++ 167 --
Replace Cypress with Playwright-only testing and add PR checks
- Remove Cypress (specs, configs, deps, runner scripts, CI workflow) - Port all Cypress specs to Playwright; add specs for app load/public pages, wallet lock/unlock (wrong password), ARC76 validation, export with wrong password, theme/language/settings - Fix stale selectors in the multisig and Shamir specs - Add E2E Tests workflow (build + locales + Playwright) on PRs; run unit tests on PRs; update CircleCI - Add mandatory testing policy to CLAUDE.md and copilot instructions Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2909289e
test/playwright-only
44/511 ++ 2,082 --
Hide zero-balance assets by default in asset list and selectors
Closes #176 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2a30cb7d
pull/177/head
17/151 ++ 18 --
Merge 1e86c9f421a1255f4b25a4688d2ae2ebd27c588c into 18ba96fa53bb73542e7ded06a36fe1b7e3ff6ce0
5a495e8c
pull/6723/merge
20/1,110 ++ 99 --
logic: make allow an execution-settings family opcode
efb9173c
safer-logicsigs
4/41 ++ 13 --
logic: replace allow with allow_all, allow_types, and allow_fields
1e86c9f4
safer-logicsigs
18/862 ++ 344 --
logic: require explicit LogicSig allowances
9cf072d0
safer-logicsigs
12/476 ++ 12 --
Merge d60b10a1aa2630d0309c9535356d797339289d4b into 18ba96fa53bb73542e7ded06a36fe1b7e3ff6ce0
dcc38b2d
pull/6742/merge
2/23 ++ 21 --
Merge 86035fab92e9254b36c1622a18a293022df7c63a into 18ba96fa53bb73542e7ded06a36fe1b7e3ff6ce0
ca46f80f
pull/6746/merge
2/23 ++ 21 --
Merge 89d41a93a30acecdac038adf842653d3f5ef7fb7 into 18ba96fa53bb73542e7ded06a36fe1b7e3ff6ce0
110f234e
pull/6567/merge
16/1,647 ++ 22 --
Merge 8a1c921a41a4eeb5defc24fe5fcccedeef2ada7b into 18ba96fa53bb73542e7ded06a36fe1b7e3ff6ce0
8d484f74
pull/6723/merge
12/512 ++ 19 --
Merge b141c6941c10c6ba7afe41d9106d3fa83db0883f into 18ba96fa53bb73542e7ded06a36fe1b7e3ff6ce0
7f8e87f8
pull/6718/merge
3/256 ++ 16 --
Merge 767bbbddb884bae419b292186e1af0174be9ab54 into 18ba96fa53bb73542e7ded06a36fe1b7e3ff6ce0
550cd749
pull/6501/merge
19/1,195 ++ 268 --
Merge 01ad2e0a03d0f6935a732397654025462e08b597 into 18ba96fa53bb73542e7ded06a36fe1b7e3ff6ce0
426bfcc1
pull/6730/merge
1/3 ++ 3 --
Merge 4f4ae0e98b7d1f6b007cf9db21e7df3a475f9c4f into 19f185792c39326bebc173b2a100c2c247423be3
f1617d2f
pull/15/merge
4/322 ++ 12 --