feat(symbols): supercharge with TypedDict, -j alias, and JSON envelope
- Add _SymbolsJson TypedDict with schema_version, exit_code, duration_ms - Add -j alias for --json (within mutually-exclusive group with --count) - _emit_json: inject schema_version, exit_code, duration_ms into output - Wire start_timer() in run(); pass duration_ms to _emit_json - Expand register() docstring listing all 8 arguments - Expand run() docstring documenting all JSON envelope fields - 91 new seven-tier tests: unit (_c, _normalise_language, _file_matches, _resolve_file_filter, _lang_counts, _print_human, _emit_json), integration, e2e, stress, data integrity, security, performance
sha256:87360db06eaa3d39cbffe427a62030a69c4425b320a24187f0e9d35987553856
sha
+132
~3
symbols
sha256:17a0b383c112e3a3411cfa9d5c93752ce123f66183b3f92fb879b6e1f15bcc58
snapshot
+132
symbols added
~3
symbols modified
0
dead code introduced
Semantic Changes
135 symbols
+
test_file_filter_propagated_to_results
method
method test_file_filter_propagated_to_results L713–717
+
test_kind_filter_propagated_to_results
method
method test_kind_filter_propagated_to_results L707–711
+
test_lang_counts_total_matches_total_symbols
method
method test_lang_counts_total_matches_total_symbols L719–726
+
test_total_symbols_matches_results_length
method
method test_total_symbols_matches_results_length L667–671
+
test_count_and_json_mutually_exclusive
method
method test_count_and_json_mutually_exclusive L568–570
+
test_file_filter_no_match_shows_no_symbols
method
method test_file_filter_no_match_shows_no_symbols L542–545
+
test_invalid_commit_ref_exits_nonzero
method
method test_invalid_commit_ref_exits_nonzero L603–605
+
test_json_working_tree_false_with_commit
method
method test_json_working_tree_false_with_commit L584–589
+
test_json_working_tree_true_when_no_commit
method
method test_json_working_tree_true_when_no_commit L577–582
+
test_language_filter_case_insensitive
method
method test_language_filter_case_insensitive L552–556
+
test_language_no_match_shows_no_symbols
method
method test_language_no_match_shows_no_symbols L558–561
+
test_suffix_with_slash_anchor_matches
method
method test_suffix_with_slash_anchor_matches L200–202
+
test_multiple_files_summed_per_language
method
method test_multiple_files_summed_per_language L271–277
+
test_unknown_extension_grouped_correctly
method
method test_unknown_extension_grouped_correctly L283–286
+
test_unknown_language_returned_unchanged
method
method test_unknown_language_returned_unchanged L180–182
+
test_non_empty_map_shows_file_and_symbol
method
method test_non_empty_map_shows_file_and_symbol L301–315
+
test_ansi_in_file_filter_does_not_crash
method
method test_ansi_in_file_filter_does_not_crash L735–737
+
test_hostile_detail_survives_json_serialisation
method
method test_hostile_detail_survives_json_serialisation L754–770
+
test_sql_injection_in_file_filter_does_not_crash
method
method test_sql_injection_in_file_filter_does_not_crash L743–745
+
test_unicode_in_file_filter_does_not_crash
method
method test_unicode_in_file_filter_does_not_crash L772–774
+
test_very_long_language_does_not_crash
method
method test_very_long_language_does_not_crash L739–741
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:87360db06eaa3d39cbffe427a62030a69c4425b320a24187f0e9d35987553856 --body "your comment"
No comments yet. Be the first to start the discussion.