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
{{ message }}
Repository navigation
id: long-term — group encryption and authorization (BeeKEM / p2panda-encryption) #1070
Group key agreement so a world's documents and envelopes can be encrypted for its current members only. Candidates: keyhive's BeeKEM (pre-alpha — revisit when stable) or p2panda-encryption. Borrow ideas; do not depend on pre-stable crates without review.
Long-term idea, filed so it is tracked and prioritized rather than lost. Not on the path to Phase 12.
Coordination (2026-10-26 reprioritization, per Drew): every id roadmap item now has its own GitHub issue, and priority encodes the order: (1) the path to Phase 12 — now + priority/high; (2) Phase 12 itself — next; (3) Phase 13 and long-term ideas — priority/low. The dashboard mirrors this list (org Project "Developing Today" #4, Area id-train; Grist Program roadmap, Area id). If this item turns out to be blocked, wrong, or superseded, park or close it with a note rather than letting it stall the queue — dropping an issue is always allowed; silently stalling is not.
Acceptance criteria
A candidate evaluation is recorded on this issue (keyhive BeeKEM vs p2panda-encryption), including each candidate's stability status at evaluation time.
No pre-stable crate is adopted as a dependency without an explicit review note here.
A decision is recorded: adopt (with the first implementation issue filed), defer (with a revisit trigger), or drop (with reason).
Related: Source: pkgs/id/TODO.md (long-term) · related provenance/trust work: F12.17 #1069
Notes: Long-term, priority/low, explicitly not on the path to Phase 12. BeeKEM is pre-alpha per the TODO — the evaluation's job is mostly to set the revisit trigger so this doesn't get re-litigated from scratch.
Risks: Depending on a pre-alpha KEM would put world encryption on a moving foundation; the guardrail in the body (borrow ideas, don't depend without review) is the controlling rule.
Suggested approach: Timebox the evaluation; the deliverable is the decision record, not a prototype.
Labels were already normalized by the filer (kind, source/human, status/needs-triage, priority, effort, app/id all present); this pass appended the acceptance criteria above and adds meta/enriched.
🤖 Agent note · filed
Agent: fleet monitor
Session / ID: repo-fleet-monitor run 2026-10-26 22:19 CDT
Found via: monitor reconciliation (intake enrichment, protocol §5)
Task: Intake review — verified still live (filed this evening as part of Drew's roadmap/validation batch; no merged PR or commit resolves it), appended acceptance criteria, posted this review.
Expectation: done when the acceptance criteria above are met (effort class as labelled by the filer).
Candidate evaluation (recorded 2026-10-28, per acceptance criteria)
p2panda-encryption — ADOPTED (already, in Phase 4).
At current main (35726e8e), pkgs/id/src/encryption/mod.rs opens: "Group encryption on the DataScheme of p2panda-encryption (Phase 4, P4.1 to P4.6 and P4.8 to P4.13)" — per-device/group sessions, epoch rotation on create/update/add/remove/recovery, history modes, welcomes. The group-encryption half of this issue's TODO item is built and shipped on this candidate.
Stability status: upstream is pre-1.0 — latest release 0.7.1, and upstream states its APIs are "not yet considered stable for production use… Stability guarantees will improve with the release of v1.0.0."
How the pre-stable risk was handled (the review note criterion 2 asks for): the crate is vendored (pkgs/id/Cargo.toml:72: p2panda-encryption = { path = "vendor/p2panda-encryption", … }, vendored copy is exactly 0.7.1) and the sibling p2panda crates are pinned to a fixed git rev (da80c05b…). Adoption is therefore pinned and auditable in-tree, not a floating pre-stable dependency.
keyhive / BeeKEM — DEFER (do not adopt).
Stability status at evaluation time: still pre-alpha. The keyhive workspace is at version 0.1.0 across packages, self-described as "pre-alpha… not audited — not suitable for production use", with an unstable API (inkandswitch/keyhive). Automerge's July 2026 update still describes Keyhive as a work-in-progress access-control layer. Nothing since the TODO entry ("pre-alpha — revisit when stable") has changed that status.
Revisit trigger: keyhive publishes a stable release (≥1.0, or an explicitly production-ready, audited release) — re-evaluate then, primarily for the authorization half (keyhive-style signed, attenuable, revocable grants, TODO.md:253), which p2panda-encryption does not cover and which remains open.
Decision
Adopt: p2panda-encryption — already implemented in Phase 4 (no new implementation issue needed; it exists and is the shipped scheme). Vendoring + rev pinning is the recorded pre-stable review mechanism.
Defer: BeeKEM/keyhive — with the revisit trigger above.
Out of scope of this decision and still open in pkgs/id/TODO.md:251-253: whether past content is re-keyed on removal, encryption at rest for world stores/outbox, and keyhive-style authorization grants. Those are separate roadmap items, not part of the candidate choice.
Closing this issue as completed: its acceptance criteria (evaluation recorded with stability status, no unreviewed pre-stable adoption, decision recorded) are now met. If Drew wants the BeeKEM revisit tracked as its own open item when the trigger fires, this note is the record to file it from.
Activity
developing-today commentedon Oct 27, 2026
CODE-214
dezren39 commentedon Oct 27, 2026
Intake review
Related: Source:
pkgs/id/TODO.md(long-term) · related provenance/trust work: F12.17 #1069Notes: Long-term, priority/low, explicitly not on the path to Phase 12. BeeKEM is pre-alpha per the TODO — the evaluation's job is mostly to set the revisit trigger so this doesn't get re-litigated from scratch.
Risks: Depending on a pre-alpha KEM would put world encryption on a moving foundation; the guardrail in the body (borrow ideas, don't depend without review) is the controlling rule.
Suggested approach: Timebox the evaluation; the deliverable is the decision record, not a prototype.
Labels were already normalized by the filer (kind, source/human, status/needs-triage, priority, effort, app/id all present); this pass appended the acceptance criteria above and adds
meta/enriched.🤖 Agent note · filed
dezren39 commentedon Oct 28, 2026
🤖 Agent note · picked up
dezren39 commentedon Oct 28, 2026
🤖 Agent note · done
pkgs/id/src/encryption/mod.rs,pkgs/id/Cargo.toml:72,pkgs/id/TODO.md:250-253Candidate evaluation (recorded 2026-10-28, per acceptance criteria)
p2panda-encryption — ADOPTED (already, in Phase 4).
35726e8e),pkgs/id/src/encryption/mod.rsopens: "Group encryption on theDataSchemeofp2panda-encryption(Phase 4, P4.1 to P4.6 and P4.8 to P4.13)" — per-device/group sessions, epoch rotation on create/update/add/remove/recovery, history modes, welcomes. The group-encryption half of this issue's TODO item is built and shipped on this candidate.pkgs/id/Cargo.toml:72:p2panda-encryption = { path = "vendor/p2panda-encryption", … }, vendored copy is exactly 0.7.1) and the sibling p2panda crates are pinned to a fixed git rev (da80c05b…). Adoption is therefore pinned and auditable in-tree, not a floating pre-stable dependency.keyhive / BeeKEM — DEFER (do not adopt).
Decision
pkgs/id/TODO.md:251-253: whether past content is re-keyed on removal, encryption at rest for world stores/outbox, and keyhive-style authorization grants. Those are separate roadmap items, not part of the candidate choice.Closing this issue as completed: its acceptance criteria (evaluation recorded with stability status, no unreviewed pre-stable adoption, decision recorded) are now met. If Drew wants the BeeKEM revisit tracked as its own open item when the trigger fires, this note is the record to file it from.