gabriel / musehub public
feat BREAKING dev
AI Agent gabriel · 126 days ago · May 8, 2026 · Diff

feat: proposal detail redesign — state icons, snapshot anchors, manifest layout

All 7 proposal states now have colored icons matching the list page. Eyebrow redesigned: state+author+time on one row, title, then manifest kv grid (branch, type, strategy, from snapshot, to snapshot). Type and strategy render as prl-kv chips consistent with the list page. Snapshot anchors (from_snapshot_id, to_snapshot_id) capture branch HEAD commit IDs at proposal creation time — stored in DB via migration 0049, returned in ProposalResponse, displayed as clickable commit links.

sha256:22811f8b84e827a9b833159103a31532a1e3a74a823478b23de47bf549b6afc7 sha
+52 ~21 −2 symbols
sha256:3194db228f03a318c0e1b60826b7215e5e59fc55d67437c1de6fa516c21b4cf4 snapshot
+52
symbols added
~21
symbols modified
−2
symbols removed
0
dead code introduced
Semantic Changes 75 symbols
+ branch_labels variable variable branch_labels L16–16
+ depends_on variable variable depends_on L17–17
+ down_revision variable variable down_revision L15–15
+ downgrade function function downgrade L31–33
+ annotations import import annotations L9–9
+ op import import op L12–12
+ sa import import sa L11–11
+ revision variable variable revision L14–14
+ upgrade function function upgrade L20–28
+ _COMMIT_A variable variable _COMMIT_A L67–67
+ _COMMIT_B variable variable _COMMIT_B L68–68
+ _create_repo function async_function _create_repo L41–48
+ _push_branch function async_function _push_branch L51–64
+ AsyncClient import import AsyncClient L28–28
+ AsyncSession import import AsyncSession L29–29
+ MusehubBranch import import MusehubBranch L31–31
+ MusehubProposal import import MusehubProposal L31–31
+ StrDict import import StrDict L33–33
+ annotations import import annotations L25–25
+ compute_branch_id import import compute_branch_id L32–32
+ pytest import import pytest L27–27
+ select import import select L34–34
+ test_existing_proposal_with_null_anchors_returns_ok function async_function test_existing_proposal_with_null_anchors_returns_ok L175–206
+ test_from_snapshot_null_when_from_branch_empty function async_function test_from_snapshot_null_when_from_branch_empty L101–118
+ test_snapshot_anchors_frozen_at_creation_time function async_function test_snapshot_anchors_frozen_at_creation_time L214–249
+ test_snapshot_anchors_stored_when_both_branches_have_heads function async_function test_snapshot_anchors_stored_when_both_branches_have_heads L76–93
+ test_snapshot_fields_always_present_in_response function async_function test_snapshot_fields_always_present_in_response L151–167
+ test_to_snapshot_null_when_to_branch_empty function async_function test_to_snapshot_null_when_to_branch_empty L126–143
~ musehub/db/musehub_models.py .py 1 symbol modified
~ musehub/models/musehub.py .py 1 symbol modified
~ musehub/templates/musehub/pages/proposal_detail.html .html 1 symbol added, 1 symbol removed, 6 symbols modified
aside@548 section aside@548 L548–716
+ aside@603 section aside@603 L603–777
~ src/scss/components/_proposal-detail.scss .scss 23 symbols added, 1 symbol removed, 11 symbols modified
prd-state-badge--closed rule .prd-state-badge--closed L65–65
+ prd-anchor-empty rule .prd-anchor-empty L161–166
+ prd-anchor-hash rule .prd-anchor-hash L148–159
+ prd-anchor-hash:hover rule .prd-anchor-hash:hover L158–158
+ prd-eyebrow rule .prd-eyebrow L72–78
+ prd-eyebrow-badge rule .prd-eyebrow-badge L97–109
+ prd-eyebrow-badge--blocked rule .prd-eyebrow-badge--blocked L108–108
+ prd-eyebrow-badge--draft rule .prd-eyebrow-badge--draft L107–107
+ prd-eyebrow-left rule .prd-eyebrow-left L80–85
+ prd-eyebrow-right rule .prd-eyebrow-right L87–93
+ prd-manifest rule .prd-manifest L113–118
+ prd-manifest-anchor rule .prd-manifest-anchor L142–146
+ prd-manifest-key rule .prd-manifest-key L127–136
+ prd-manifest-kvrow rule .prd-manifest-kvrow L120–125
+ prd-manifest-val rule .prd-manifest-val L138–140
+ prd-meta-time rule .prd-meta-time L95–95
+ prd-sig-sigil rule .prd-sig-sigil L299–306
+ prd-state-badge--abandoned rule .prd-state-badge--abandoned L69–69
+ prd-state-badge--approved rule .prd-state-badge--approved L65–65
+ prd-state-badge--drafting rule .prd-state-badge--drafting L68–68
+ prd-state-badge--in_review rule .prd-state-badge--in_review L66–66
+ prd-state-badge--settling rule .prd-state-badge--settling L67–67
+ proposal-tl-sigil rule .proposal-tl-sigil L1138–1145
+ img rule img L1078–1078
← 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:22811f8b84e827a9b833159103a31532a1e3a74a823478b23de47bf549b6afc7 --body "your comment"