Skip to content

feat: add device manifests and MLS rejoin support - #58

Merged
chgaowei merged 2 commits into
masterfrom
agent/awiki-im-sdk
Aug 16, 2026
Merged

feat: add device manifests and MLS rejoin support#58
chgaowei merged 2 commits into
masterfrom
agent/awiki-im-sdk

Conversation

@chgaowei

Copy link
Copy Markdown
Collaborator

Summary

  • allow a removed MLS device to replace its inactive local group when an owner-controlled re-add delivers a fresh KeyPackage and Welcome
  • add TypeScript Device Manifest parsing, validation, DID document build/update/remove helpers, and public API exports
  • add RFC 9421 origin-proof generation and verification with strict sig1 covered-component validation
  • add shared-vector and regression coverage for all new behavior

Compatibility and risk

  • DID documents without a deviceManifest remain valid and return null from manifest lookup
  • existing active MLS bindings do not use the replace-old-group path
  • no existing public API is removed
  • the main security-sensitive paths validate DID key ownership and relationships, reject private key material, and pin the origin-proof label and covered components

Verification

  • cargo fmt --all --check
  • cargo test --test group_e2ee_v2_operations: 12 passed
  • npm ci
  • npm run typecheck
  • npm run build: ESM, CJS, and DTS passed
  • npm test: 10 files, 92 tests passed
  • eslint on the four new TypeScript source/test files: passed

Existing lint debt

The full TypeScript lint command still reports existing formatting and require-await findings in pre-existing tracked files. This PR formats the four newly added files without reformatting unrelated code.

@chgaowei
chgaowei merged commit 48ed00d into master Aug 16, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant