docs: metadata schema evolution protocol#175
Merged
Merged
Conversation
- Document all 10 metadata objects with field tables, encryption details, storage locations, and source file cross-references - Cover FolderMetadata v2, FolderChild, FolderEntry, FilePointer, FileMetadata v1, VersionEntry, EncryptedVaultKeys, DeviceRegistry, DeviceEntry, and wire format - Include encryption hierarchy, cross-implementation parity matrix, IPNS key derivation summary, and version history per schema Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Entire-Checkpoint: dfd95a3736bf
- Define formal rules for additive vs breaking metadata changes - Include dual-platform checklist (TypeScript + Rust) for every schema change - Document version field convention and version bump decision criteria - Add backward compatibility test patterns and cross-platform round-trip testing - Cover recovery tool compatibility matrix and dangerous gray areas Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Entire-Checkpoint: 7507d6e5e4c9
Tasks completed: 3/3 - Create METADATA_SCHEMAS.md (all 10 metadata objects) - Create METADATA_EVOLUTION_PROTOCOL.md (formal evolution rules) - Update Claude memory with documentation references SUMMARY: .planning/quick/019-metadata-schema-evolution-protocol/019-SUMMARY.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Entire-Checkpoint: 74ee8c0674c8
Quick task completed: documented all 10 metadata schemas and created formal evolution protocol with dual-platform checklist. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Entire-Checkpoint: 969f55a217fb
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Entire-Checkpoint: e672595ddac3
WalkthroughThis PR introduces formal documentation for CipherBox metadata schema evolution, creating comprehensive reference guides for 10 metadata types and establishing a protocol for managing schema changes across TypeScript and Rust implementations. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/METADATA_SCHEMAS.md`:
- Around line 339-340: Update the documentation descriptions for
DeviceEntry.publicKey and deviceId to reference secp256k1 instead of Ed25519:
change the deviceId description to "SHA-256 hash of device's secp256k1 public
key (64 hex chars)" and change the publicKey description to "Device's secp256k1
public key, uncompressed (130 hex chars)"; ensure the two lines describing
`deviceId` and `publicKey` in METADATA_SCHEMAS.md mention the secp256k1 key type
to match the validator that enforces 130 hex chars for publicKey.
1 task
FSM1
added a commit
that referenced
this pull request
Feb 21, 2026
Validator checks for 130 hex chars (secp256k1) but device keys are Ed25519 (64 hex chars). Found via CodeRabbit review on PR #175. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Entire-Checkpoint: ff17c1fa1c2e
1 task
FSM1
added a commit
that referenced
this pull request
Feb 21, 2026
Validator checks for 130 hex chars (secp256k1) but device keys are Ed25519 (64 hex chars). Found via CodeRabbit review on PR #175. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Entire-Checkpoint: ff17c1fa1c2e
FSM1
added a commit
that referenced
this pull request
Feb 21, 2026
Validator checks for 130 hex chars (secp256k1) but device keys are Ed25519 (64 hex chars). Found via CodeRabbit review on PR #175. Entire-Checkpoint: ff17c1fa1c2e Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2 tasks
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.
Summary
docs/METADATA_SCHEMAS.md— complete reference for all 10 encrypted metadata objects (FolderMetadata, FileMetadata, DeviceRegistry, VersionEntry, etc.) with field tables, encryption hierarchy, cross-implementation parity matrix, and IPNS key derivation summarydocs/METADATA_EVOLUTION_PROTOCOL.md— formal rules for evolving metadata schemas: additive vs breaking change classification, dual-platform (TypeScript + Rust) checklist, version bump conventions, testing requirements, and recovery tool compatibility matrixNo code changes — documentation only.
Test plan
🤖 Generated with Claude Code
Summary by CodeRabbit