feat BREAKING init feat/preserve-shared-assets #1 / 1
aaronrene · 37 days ago · Jul 30, 2026 · Diff

feat(init): add --preserve-shared-assets for consumer bridge files

Stop init --migrate/--force from clobbering differing non-living footprint (MUSE-BRIDGE-WORKFLOW.md, muse-bridge-deploy.sh, etc.). Lock origin:preserved; promote only with --force --include-preserved. Freeze+BV pass; seven-tier §PSA.8.

sha256:746fa8e384400a8481919b84340b77ba601a7cf44e710490118fad6538f672a0 sha
+104 ~12 −8 symbols
sha256:fb7a0b8f45f5106585ef351bbd3363b8a4dee7c829692539e5fb970aaa8cda5f snapshot
+104
symbols added
~12
symbols modified
−8
symbols removed
0
dead code introduced
Semantic Changes 124 symbols
~ docs/PHASE-PRESERVE-SHARED-ASSETS.md .md 19 symbols added
+ Phase KIT-PRESERVE-SHARED-ASSETS — ok init --preserve-shared-assets section Phase KIT-PRESERVE-SHARED-ASSETS — ok init --preserve-shared-assets L1–193
+ Review record section Review record L181–193
+ Evidence (PSA-BV-r1) section Evidence (PSA-BV-r1) L188–193
+ table section table L190–193
+ table section table L183–187
+ code[yaml] variable variable code[yaml] L8–36
+ 0 — Simple summary section §PSA.0 — Simple summary L48–61
+ 1 — Scope section §PSA.1 — Scope L61–84
+ 2 — Shared asset definition section §PSA.2 — Shared asset definition L84–93
+ 3 — Migrate classification (additive) class section §PSA.3 — Migrate classification (additive) L93–116
+ table section table L97–106
+ 4 — Greenfield init section §PSA.4 — Greenfield init L116–127
+ 5 — Sync / footprint integrity section §PSA.5 — Sync / footprint integrity L127–135
+ 6 — CLI surface section §PSA.6 — CLI surface L135–147
+ code[text] variable variable code[text] L137–140
+ 7 — Hard stops section §PSA.7 — Hard stops L147–157
+ 8 — Seven-tier test matrix section §PSA.8 — Seven-tier test matrix L157–171
+ table section table L159–168
+ 9 — Definition of Done section §PSA.9 — Definition of Done L171–181
+ ORIGIN_PRESERVED import import ORIGIN_PRESERVED L8–8
+ PILOT import import PILOT L9–9
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ compute_lock_digest import import compute_lock_digest L8–8
+ muse_mirror_status_runner import import muse_mirror_status_runner L9–9
+ read_version_lock import import read_version_lock L8–8
+ run_cli import import run_cli L9–9
+ seed_pilot_tree import import seed_pilot_tree L9–9
+ sha256_hex import import sha256_hex L7–7
+ test_preserved_shared_lock_sha_matches_disk_and_digest function function test_preserved_shared_lock_sha_matches_disk_and_digest L12–49
+ HAND_SCRIPT variable variable HAND_SCRIPT L12–12
+ HAND_WORKFLOW variable variable HAND_WORKFLOW L13–13
+ FIXTURES import import FIXTURES L9–9
+ MUSE_BRIDGE_DEPLOY_DEST import import MUSE_BRIDGE_DEPLOY_DEST L7–7
+ MUSE_BRIDGE_WORKFLOW_DEST import import MUSE_BRIDGE_WORKFLOW_DEST L7–7
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ kit_root import import kit_root L8–8
+ muse_mirror_status_runner import import muse_mirror_status_runner L9–9
+ run_cli import import run_cli L9–9
+ test_preserve_migrate_force_footprint_ok_and_sync_retains function function test_preserve_migrate_force_footprint_ok_and_sync_retains L16–46
+ HAND_SCRIPT variable variable HAND_SCRIPT L14–14
+ HAND_WORKFLOW variable variable HAND_WORKFLOW L15–15
+ _seed_hand_bridge function function _seed_hand_bridge L18–25
+ FIXTURES import import FIXTURES L11–11
+ MUSE_BRIDGE_DEPLOY_DEST import import MUSE_BRIDGE_DEPLOY_DEST L8–8
+ MUSE_BRIDGE_WORKFLOW_DEST import import MUSE_BRIDGE_WORKFLOW_DEST L8–8
+ ORIGIN_KIT import import ORIGIN_KIT L10–10
+ ORIGIN_PRESERVED import import ORIGIN_PRESERVED L10–10
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ kit_root import import kit_root L9–9
+ muse_mirror_status_runner import import muse_mirror_status_runner L11–11
+ read_version_lock import import read_version_lock L10–10
+ run_cli import import run_cli L11–11
+ sha256_hex import import sha256_hex L7–7
+ test_migrate_force_without_preserve_overwrites_bridge function function test_migrate_force_without_preserve_overwrites_bridge L54–73
+ test_migrate_preserve_shared_keeps_bridge_bytes function function test_migrate_preserve_shared_keeps_bridge_bytes L28–51
+ MAX_PRESERVE_MIGRATE_SECONDS variable variable MAX_PRESERVE_MIGRATE_SECONDS L10–10
+ PILOT import import PILOT L8–8
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ muse_mirror_status_runner import import muse_mirror_status_runner L8–8
+ run_cli import import run_cli L8–8
+ seed_pilot_tree import import seed_pilot_tree L8–8
+ time import import time L5–5
+ test_preserve_shared_migrate_bounded function function test_preserve_shared_migrate_bounded L13–41
+ SECRET_MARKER variable variable SECRET_MARKER L16–16
+ CliContext import import CliContext L10–10
+ OutputContext import import OutputContext L13–13
+ PILOT import import PILOT L14–14
+ Path import import Path L8–8
+ annotations import import annotations L3–3
+ io import import io L5–5
+ json import import json L6–6
+ kit_root import import kit_root L11–11
+ main import import main L12–12
+ muse_mirror_status_runner import import muse_mirror_status_runner L14–14
+ redirect_stderr import import redirect_stderr L7–7
+ redirect_stdout import import redirect_stdout L7–7
+ seed_pilot_tree import import seed_pilot_tree L14–14
+ test_preserve_report_json_omits_file_contents function function test_preserve_report_json_omits_file_contents L19–57
+ ORIGIN_PRESERVED import import ORIGIN_PRESERVED L7–7
+ PILOT import import PILOT L8–8
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ muse_mirror_status_runner import import muse_mirror_status_runner L8–8
+ read_version_lock import import read_version_lock L7–7
+ run_cli import import run_cli L8–8
+ seed_pilot_tree import import seed_pilot_tree L8–8
+ test_many_differing_shared_assets_preserved function function test_many_differing_shared_assets_preserved L11–49
~ cli/commands/init.py .py 1 symbol removed, 6 symbols modified
~ cli/main.py .py 1 symbol modified
~ docs/OVERSEER-HANDOVER.md .md 7 symbols added, 7 symbols removed, 2 symbols modified
NEXT SESSION — Optional Knowtation GFG re-stamp / kit idle (PRIMARY) section NEXT SESSION — Optional Knowtation GFG re-stamp / kit idle (PRIMARY) L10–62
Paste-ready prompt — optional Knowtation GFG re-stamp section Paste-ready prompt — optional Knowtation GFG re-stamp L41–62
code[text] variable variable code[text] L43–58
THE ONE NEXT STEP — Model: Operator + Auto section THE ONE NEXT STEP — Model: Operator + Auto L29–41
table section table L31–39
What just landed / verified section What just landed / verified L21–29
table section table L23–28
+ 7b) → main section NEXT SESSION — Land KIT-PRESERVE-SHARED-ASSETS (0.7b) → main L10–59
+ 7b section Paste-ready prompt — land PSA 0.7b L38–59
+ code[text] variable variable code[text] L40–55
+ THE ONE NEXT STEP — Model: Operator + Auto section THE ONE NEXT STEP — Model: Operator + Auto L26–38
+ table section table L28–36
+ What just landed / verified section What just landed / verified L19–26
+ table section table L21–25
~ tests/unit/test_init_migrate.py .py 6 symbols added
+ test_classify_preserve_shared_unit class function test_classify_preserve_shared_unit L354–382
+ test_migrate_force_overwrites_shared_asset_without_preserve_flag function function test_migrate_force_overwrites_shared_asset_without_preserve_flag L276–290
+ test_migrate_force_preserve_shared_assets_still_keeps_shared function function test_migrate_force_preserve_shared_assets_still_keeps_shared L311–328
+ test_migrate_preserve_shared_assets_keeps_differing_shared function function test_migrate_preserve_shared_assets_keeps_differing_shared L293–308
+ test_migrate_promote_overwrites_preserved_shared function function test_migrate_promote_overwrites_preserved_shared L331–351
+ test_preserve_shared_assets_argparse_accepted function function test_preserve_shared_assets_argparse_accepted L385–389
← Older Oldest on feat/preserve-shared-assets
All commits
Newer → Latest on feat/preserve-shared-assets

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