Skip to content

docs: metadata schema evolution protocol#175

Merged
FSM1 merged 5 commits into
mainfrom
docs/metadata-schema-evolution-protocol
Feb 21, 2026
Merged

docs: metadata schema evolution protocol#175
FSM1 merged 5 commits into
mainfrom
docs/metadata-schema-evolution-protocol

Conversation

@FSM1

@FSM1 FSM1 commented Feb 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds 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 summary
  • Adds docs/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 matrix
  • Adds learnings entry cross-referencing both docs

No code changes — documentation only.

Test plan

  • Verify both docs render correctly on GitHub
  • Verify MEMORY.md references both docs for future sessions
  • Confirm no source code was modified

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added comprehensive metadata schema reference documentation covering all metadata types, encryption schemes, and storage locations.
    • Introduced formal metadata evolution protocol specifying versioning guidelines, change classifications, and cross-platform validation requirements.

FSM1 and others added 5 commits February 21, 2026 02:46
- 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
@coderabbitai

coderabbitai Bot commented Feb 21, 2026

Copy link
Copy Markdown

Walkthrough

This 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

Cohort / File(s) Summary
Planning & Learning
.learnings/2026-02-21-metadata-schema-evolution-protocol.md, .planning/STATE.md, .planning/quick/019-metadata-schema-evolution-protocol/019-PLAN.md, .planning/quick/019-metadata-schema-evolution-protocol/019-SUMMARY.md
Captures lessons learned from metadata schema work, updates project state tracking, and documents the metadata documentation task plan and completion summary.
Reference Documentation
docs/METADATA_SCHEMAS.md, docs/METADATA_EVOLUTION_PROTOCOL.md
Introduces two comprehensive reference documents: METADATA\_SCHEMAS.md detailing all 10 metadata object types with field definitions, encryption schemes, and version histories; METADATA\_EVOLUTION\_PROTOCOL.md defining versioning rules, breaking vs. additive change classifications, cross-platform validation requirements, and recovery tool compatibility guidelines.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • docs: milestone 2 & 3 planning #101 — Addresses metadata schema evolution and introduces TypeScript types for FolderMetadata v2, directly aligning with the schema definitions and versioning rules documented in this PR's evolution protocol.
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main change: adding formal metadata schema evolution protocol documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/metadata-schema-evolution-protocol

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread docs/METADATA_SCHEMAS.md
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 FSM1 merged commit 8d220a2 into main Feb 21, 2026
15 checks passed
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>
@FSM1 FSM1 deleted the docs/metadata-schema-evolution-protocol branch February 21, 2026 06:17
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