gabriel / musehub public
feat BREAKING task/merge-strategy-integrity #1 / 1
AI Agent gabriel · 126 days ago · May 9, 2026 · Diff

feat: merge_strategy integrity — never NULL, always shown

- Migration 0050 backfills existing NULL rows to state_overlay - Template always renders strategy row (removed state_overlay hide condition) - Template handles None via 'or state_overlay' fallback - TDD: 13 tests covering service create/update, migration, and template

sha256:ba978d94a953bd21aebe03f40f224345962f630fcab076117849fda56fb05f38 sha
+38 ~6 −1 symbols
sha256:9ea26818ff4ef8e2c28adc621838be41eaf5cd2dd041fd343234fd9c122d15b7 snapshot
+38
symbols added
~6
symbols modified
−1
symbol removed
0
dead code introduced
Semantic Changes 45 symbols
+ branch_labels variable variable branch_labels L17–17
+ depends_on variable variable depends_on L18–18
+ down_revision variable variable down_revision L16–16
+ downgrade function function downgrade L30–31
+ annotations import import annotations L10–10
+ op import import op L13–13
+ sa import import sa L12–12
+ revision variable variable revision L15–15
+ upgrade function function upgrade L21–27
+ TestCreateProposalMergeStrategyDefault class class TestCreateProposalMergeStrategyDefault L29–79
+ test_create_cherry_pick_strategy_stored method async_method test_create_cherry_pick_strategy_stored L65–79
+ test_create_defaults_to_state_overlay method async_method test_create_defaults_to_state_overlay L32–45
+ test_create_explicit_strategy_stored method async_method test_create_explicit_strategy_stored L48–62
+ TestMigration0050Backfill class class TestMigration0050Backfill L145–174
+ test_migration_file_exists method method test_migration_file_exists L147–149
+ test_migration_has_correct_revision method method test_migration_has_correct_revision L151–155
+ test_migration_importable method method test_migration_importable L165–174
+ test_migration_upgrades_null_rows method method test_migration_upgrades_null_rows L157–163
+ TestStrategyAlwaysShown class class TestStrategyAlwaysShown L182–210
+ _template_source method method _template_source L184–186
+ test_none_strategy_falls_back_to_state_overlay_label method method test_none_strategy_falls_back_to_state_overlay_label L200–210
+ test_strategy_row_not_hidden_for_state_overlay method method test_strategy_row_not_hidden_for_state_overlay L188–192
+ test_strategy_row_shown_when_strategy_present method method test_strategy_row_shown_when_strategy_present L194–198
+ TestUpdateProposalMergeStrategyIntegrity class class TestUpdateProposalMergeStrategyIntegrity L87–137
+ test_update_none_strategy_preserves_existing method async_method test_update_none_strategy_preserves_existing L104–115
+ test_update_strategy_changes_value method async_method test_update_strategy_changes_value L90–101
+ test_update_strategy_never_writes_null method async_method test_update_strategy_never_writes_null L118–137
+ AsyncSession import import AsyncSession L20–20
+ MergeStrategy import import MergeStrategy L22–22
+ annotations import import annotations L10–10
+ datetime import import datetime L12–12
+ importlib import import importlib L13–13
+ pathlib import import pathlib L14–14
+ pytest import import pytest L18–18
+ sa import import sa L19–19
+ sys import import sys L15–15
+ types import import types L16–16
~ musehub/templates/musehub/pages/proposal_detail.html .html 1 symbol added, 1 symbol removed, 6 symbols modified
aside@619 section aside@619 L619–793
+ aside@618 section aside@618 L618–792
← Older Oldest on task/merge-strategy-integrity
All commits
Newer → Latest on task/merge-strategy-integrity

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:ba978d94a953bd21aebe03f40f224345962f630fcab076117849fda56fb05f38 --body "your comment"