Repository navigation
agentdid: add encrypted custody, purpose-bound signing and v1 identity documents - #2090
Open
santoshkumarradha wants to merge 9 commits into
Open
santoshkumarradha wants to merge 9 commits into
santoshkumarradha wants to merge 9 commits into
Conversation
santoshkumarradha
marked this pull request as ready for review
October 31, 2026 06:36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2084.
New conversations retain Ed25519 signing and independent X25519 encryption keys in a v1 identity document. Private keys are encrypted under the profile cell key; custody uses URL-safe encoding. Purpose-bound signatures verify using only the public DID, and sealed messages require the recipient's companion key. Commands and
agents.liststill expose only the public DID.Public-only identities migrate on their next metadata write without changing the DID. Their discarded signing key remains explicitly unavailable, while they gain encryption custody. Unknown document versions survive metadata writes byte-for-byte. Copies and branches mint fresh identities.
User-flow QA caught and fixed metadata writes when restoring unchanged approval/effort dials, and unintended sync eligibility when custody creates a fresh profile. Restoring saved dials applies them without rewriting the folder. Custody follows the vault's existing first-use solo policy and preserves the policy of existing profiles. Shared-chat fixtures now explicitly establish their paired profile; simulated pairing ends solo mode as the production pairing path does.
Targets
app/v3, where prerequisite #2027 merged; that implementation is absent fromdev. Rotation and custody rewrapping after profile-cell-key rotation remain outside this change.Validation of the implementation at
697d5a17a(application code unchanged by the subsequent CI cleanup):Final-commit binary QA, race checks, repository rerun, and independent base probes.
CI follow-up: removed the one-off Compare existing failures on the untouched base job from PR acceptance. That diagnostic ran only the base revision and reported its known failures as a failed PR check. Its historical logs remain linked above as evidence. The built-binary user-flow tests, sync/privacy regressions, race checks, repeated sealed-history tests, and broad repository gates remain enabled and unchanged. No candidate tests are skipped or marked as allowed failures. Fresh checks are running after this workflow-only change.