gabriel / muse public
feat patch #215 feat/215-branch-json-created-by-fallback #1 / 2
2 days ago · Sep 17, 2026 · Diff

feat(#215): branch --json created_by falls back to tip author

Resolve tip authorship via first nonempty stripped agent_id then author, sanitized with sanitize_provenance. Seven-tier tests + living docs for 215b DONE.

sha256:af2f3a795b53a8fd456184e87d6bbd9f90697c4589c8a0f6afe51dbe3a925faf sha
+33 ~22 −8 symbols
sha256:6d0ced84b95f0ecd680df318ccd9a26886bc26f30f6e18042762b6bcd920dc21 snapshot
+33
symbols added
~22
symbols modified
−8
symbols removed
0
dead code introduced
Semantic Changes 63 symbols
~ docs/MUSE-OVERSEER-HANDOVER.md .md 11 symbols added, 8 symbols removed, 7 symbols modified
ARCHIVED SESSION — kit seed template section ARCHIVED SESSION — kit seed template L63–69
NEXT SESSION — #215b Auto build (PRIMARY) section NEXT SESSION — #215b Auto build (PRIMARY) L10–63
Paste-ready prompt — 215b section Paste-ready prompt — 215b L35–63
code variable variable code L37–59
THE ONE NEXT STEP — Model: Auto section THE ONE NEXT STEP — Model: Auto L23–35
table section table L27–34
What just landed section What just landed L16–23
table section table L18–22
+ ARCHIVED SESSION — #215b Auto build section ARCHIVED SESSION — #215b Auto build L68–74
+ Build verification — 215b round 1 section Build verification — 215b round 1 L87–109
+ Honest summary section Honest summary L105–109
+ table section table L93–104
+ NEXT SESSION — #216a Thinking freeze (PRIMARY) section NEXT SESSION — #216a Thinking freeze (PRIMARY) L10–68
+ Paste-ready prompt — 216a section Paste-ready prompt — 216a L36–68
+ code variable variable code L38–64
+ THE ONE NEXT STEP — Model: Thinking section THE ONE NEXT STEP — Model: Thinking L24–36
+ table section table L28–35
+ What just landed section What just landed L16–24
+ table section table L18–23
~ table
~ table
~ muse/cli/commands/branch.py .py 3 symbols added, 6 symbols modified
+ _created_by_from_record function function _created_by_from_record L144–174
+ CommitRecord import import CommitRecord L77–77
+ sanitize_provenance import import sanitize_provenance L82–82
~ run
~ tests/test_branch_json_schema.py .py 8 symbols added, 1 symbol modified
+ TestCreatedByAuthorFallback215 class class TestCreatedByAuthorFallback215 L211–353
+ test_tier2_integration_human_commit_non_null_created_by method method test_tier2_integration_human_commit_non_null_created_by L218–232
+ test_tier3_e2e_human_then_agent_tip method method test_tier3_e2e_human_then_agent_tip L234–261
+ test_tier4_stress_200_branches_have_created_by_key method method test_tier4_stress_200_branches_have_created_by_key L263–278
+ test_tier5_data_integrity_stable_then_tip_change method method test_tier5_data_integrity_stable_then_tip_change L280–315
+ test_tier6_performance_200_branch_list_under_5s method method test_tier6_performance_200_branch_list_under_5s L317–329
+ test_tier7_security_esc_stripped_no_env_leak method method test_tier7_security_esc_stripped_no_env_leak L331–353
+ time import import time L31–31
~ tests/test_cmd_branch.py .py 11 symbols added
+ TestCreatedByFromRecord class class TestCreatedByFromRecord L1021–1097
+ _rec method method _rec L1025–1038
+ test_F1_none_record method method test_F1_none_record L1040–1043
+ test_F2_both_empty method method test_F2_both_empty L1045–1048
+ test_F3_author_only method method test_F3_author_only L1050–1053
+ test_F4_agent_wins_when_both_set method method test_F4_agent_wins_when_both_set L1055–1063
+ test_F5_esc_in_agent_stripped method method test_F5_esc_in_agent_stripped L1083–1091
+ test_F5_esc_only_agent_yields_null_when_empty_after_sanitize method method test_F5_esc_only_agent_yields_null_when_empty_after_sanitize L1093–1097
+ test_agent_only method method test_agent_only L1065–1068
+ test_whitespace_agent_falls_through_to_author method method test_whitespace_agent_falls_through_to_author L1075–1081
+ test_whitespace_only_author_is_absent method method test_whitespace_only_author_is_absent L1070–1073

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