gabriel / musehub public
feat BREAKING genesis dev
gabriel · 65 days ago · Apr 15, 2026 · Diff

feat(genesis): Phase 4-5 genesis-addressed IDs for all server entities

Phase 4 — service layer: replace uuid4() with compute_*_id() everywhere - musehub_auth.py: compute_identity_id(handle, public_key_b64) - musehub_repository.py: compute_repo_id(owner_identity_id, slug) - musehub_sessions.py: compute_session_id(identity_id, nonce) - musehub_issues.py: compute_issue_id / compute_comment_id - musehub_proposals.py: compute_proposal_id / compute_review_id - All routes and MCP tools updated to pass author_identity_id + domain

Phase 5 — Pydantic validators: @field_validator on all entity ID fields in musehub/models/musehub.py enforces sha256:<64 hex chars> format at the API boundary; invalid IDs raise 422 immediately on deserialization

New files: - musehub/core/genesis.py: all compute_*_id helpers - alembic/versions/0049_widen_commit_id_columns.py - alembic/versions/0050_genesis_addressed_ids.py - tests/test_genesis_ids.py: 43 TDD tests covering all six tiers - tests/test_id_canonical.py, tests/test_object_store_canonical.py

sha256:ad10f6d3966da02981bb920192ae0cce156d5e0ad0dec6f0eefe20d42f41bb4d sha
sha256:b0ba6c7074285e4a33882ca8cfc3ab439d4f415b0a963e241965e40b7c713cbd snapshot
← Older Oldest on dev
All commits
Newer → Latest on dev

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:ad10f6d3966da02981bb920192ae0cce156d5e0ad0dec6f0eefe20d42f41bb4d --body "your comment"