You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello! This issue is to introduce three small, tested SEA additions I've opened as PRs from my fork (OpenCodeWEB/Gun), and to ask maintainers to approve the GitHub Actions workflow runs — the PR merge boxes are currently blocked on "1 workflow awaiting approval from a maintainer" (first-time fork contributor gate).
feat(sea): add SEA.role - signed RBAC role tokens #1426 — SEA.role: signed RBAC role tokens (grant / verify / has) issued by an admin, verifiable anywhere with only the admin public key, with expiry support. Composes with SEA.certify and the roles-node pattern. 8 tests. Suite: 43 passing / 1 pending / 0 failing.
All three follow existing SEA conventions (promise + callback styles, S.parse/S.stringify safe, no new dependencies), are fully additive, and ship with their tests in test/sea/sea.js. The bundles (sea.js) were regenerated with npm run unbuildSea so sea/ stays canonical.
Ask
Approve the workflow runs on the three PRs so CI can execute the SEA test suite (approving once clears the first-time-contributor gate).
Review when convenient — happy to adjust anything (naming, semantics, API shape).
(Also noteworthy: sea/index.js in #1424 syncs the extracted module with the bundle — the certificant membership check data.c.indexOf('*' || certificant) always evaluated to '*'; the bundle already had the fix, the extracted file was stale.)
SEA capability additions — PRs #1424, #1425, #1426 (please approve workflow runs)
Hello! This issue is to introduce three small, tested SEA additions I've opened as PRs from my fork (
OpenCodeWEB/Gun), and to ask maintainers to approve the GitHub Actions workflow runs — the PR merge boxes are currently blocked on "1 workflow awaiting approval from a maintainer" (first-time fork contributor gate).The PRs
SEA.share/SEA.unshare: zero-knowledge multi-recipient encryption. One capsule, N recipients; session key wrapped per-recipient via existing ECDH (SEA.secret). Non-recipients cannot decrypt; tamper-evident via AES-GCM. 7 tests. Suite: 42 passing / 1 pending / 0 failing.SEA.timelock: hash-chain time-locked encryption (sequential SHA-256 chain,rounds-deep) with an optional signed dead-man's switch payload, anti-DoSmaxguard on unlock. 8 tests. Suite: 43 passing / 1 pending / 0 failing.SEA.role: signed RBAC role tokens (grant/verify/has) issued by an admin, verifiable anywhere with only the admin public key, with expiry support. Composes withSEA.certifyand the roles-node pattern. 8 tests. Suite: 43 passing / 1 pending / 0 failing.All three follow existing SEA conventions (promise + callback styles,
S.parse/S.stringifysafe, no new dependencies), are fully additive, and ship with their tests intest/sea/sea.js. The bundles (sea.js) were regenerated withnpm run unbuildSeasosea/stays canonical.Ask
(Also noteworthy:
sea/index.jsin #1424 syncs the extracted module with the bundle — the certificant membership checkdata.c.indexOf('*' || certificant)always evaluated to'*'; the bundle already had the fix, the extracted file was stale.)