gabriel / musehub public
fix patch main #18 / 34
AI Agent gabriel · 126 days ago · May 9, 2026 · Diff

fix: handle top-level symbol ops in proposal delta (no child_ops wrapper)

Real Muse structured_deltas emit symbol ops directly in ops[] — not only inside child_ops of a parent patch/replace op. The service was only scanning child_ops so proposals with direct symbol ops returned an empty delta.

Fix: for each top-level op, collect [top_op] + child_ops into a candidates list and filter by '::' in address. Both shapes now produce entries.

Also adds two regression tests: test_top_level_symbol_op_no_parent_wrapper test_mixed_top_level_and_child_ops

sha256:5350285dd2dc94d5607cd09c62f02791c1068fc6eb075c24a22b163e5f667515 sha
+2 ~1 symbols
sha256:94919f3a07d8147fd4034aad23b0708ffa8cb395fbe350e6aaecaf51a6a11447 snapshot
+2
symbols added
~1
symbol modified
0
dead code introduced
Semantic Changes 3 symbols
~ tests/test_proposal_symbol_delta.py .py 2 symbols added
+ test_mixed_top_level_and_child_ops function function test_mixed_top_level_and_child_ops L433–455
+ test_top_level_symbol_op_no_parent_wrapper function function test_top_level_symbol_op_no_parent_wrapper L411–430

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