gabriel / musehub public
feat BREAKING dev
AI Agent gabriel · 170 days ago · Apr 9, 2026 · Diff

feat: Muse-native release card — live VCS graph data, not a form field

Replace the meaningless 'fix on dev / unreleased' placeholder with a real per-commit release context block:

- Each commit anchor shown as a clickable short-hash chip linking to the commit detail page - Commit message (first line, truncated at 72 chars) shown in quotes - Author + date meta row per commit - If the commit is in a tagged release: a green version chip linking to the release page - If the commit is pending: a muted branch badge ('dev') - 'next release: vX.Y.Z (proposed)' row when commits are unreleased, derived automatically from the latest release semver in the VCS graph - Header status chip: 'landed' (green) / 'partial' (blue) / 'unreleased' (muted)

Service changes (get_issue_release_context): - Returns anchor_commits list: {short, full, message, author, date, branch, landed_in: [{tag, release_id, channel}]} - Returns next_tag (proposed bump of latest semver), latest_release_tag - Returns all_landed / any_landed / pending_count booleans

SCSS: new .isd-rel-commit, .isd-rel-hash, .isd-rel-ver, .isd-rel-msg, .isd-rel-meta, .isd-rel-next, .isd-rel-status-chip classes

Tests: 4 new SSR tests covering no-commits, hash shown, landed tag, next proposed tag

sha256:5f48637dbb8571813014b13c5a0a25cc5fd946ee75417a32223ddbf72e2df4ae sha
+12 ~4 symbols
sha256:9b40caa4a07f0a5e3abca0934be0af83af7d0071850eca5fb025781c5acc3150 snapshot
+12
symbols added
~4
symbols modified
0
dead code introduced
Semantic Changes 16 symbols
~ tests/test_musehub_ui_issue_detail_ssr.py .py 12 symbols added, 3 symbols modified
+ _COMMIT_ID_A variable variable _COMMIT_ID_A L390–390
+ _COMMIT_ID_B variable variable _COMMIT_ID_B L391–391
+ _make_commit function async_function _make_commit L394–416
+ _make_release function async_function _make_release L419–442
+ MusehubCommit import import MusehubCommit L35–35
+ MusehubRelease import import MusehubRelease L35–35
+ datetime import import datetime L33–33
+ timezone import import timezone L33–33
+ test_release_card_no_commits_shows_placeholder function async_function test_release_card_no_commits_shows_placeholder L446–458
+ test_release_card_shows_commit_hash_when_anchored function async_function test_release_card_shows_commit_hash_when_anchored L462–479
+ test_release_card_shows_landed_tag_when_in_release function async_function test_release_card_shows_landed_tag_when_in_release L483–506
+ test_release_card_shows_next_tag_when_pending function async_function test_release_card_shows_next_tag_when_pending L510–538
← 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:5f48637dbb8571813014b13c5a0a25cc5fd946ee75417a32223ddbf72e2df4ae --body "your comment"