feat
BREAKING
intel/type
task/intel-type-ui
#1 / 1
feat(intel/type): Type Health dashboard — Phase 1 complete
- Migration 0013: add return_annotation VARCHAR(256) nullable to musehub_intel_type - ORM: MusehubIntelType.return_annotation mapped column - TypeProvider: batch-upsert fix — single SQL call per chunk of 1000 (was N calls for N symbols) - Route: intel_type_page at /{owner}/{repo}/intel/type with tier/kind/top filters - Template: intel_type.html — SVG coverage ring (spectral gradient), 4 stat chips, ranked symbol table - SCSS: pages/_type.scss (structural) + components/_type.scss (visual, spectral theme) - Dashboard: type health card always visible; shows coverage_pct + worst-3 preview - Tests: 30-test suite (TDD, unit, integration, E2E, stress, state integrity, performance, security) - 69/69 tests passing (intel_fidelity + phase2 + type)
sha256:3b295f958659f1cfe1781ecfbdbf7d51860c25afe696a6b1591f39921ffecf40
sha
+69
~4
symbols
sha256:edd59648a9fd6736bfaef5bedd98863124ffa740ca0c0a4de6ee214618af7faa
snapshot
+69
symbols added
~4
symbols modified
0
dead code introduced
Semantic Changes
73 symbols
+
test_T01_return_annotation_column_exists_on_model
method
method test_T01_return_annotation_column_exists_on_model L106–111
+
test_T02_return_annotation_is_nullable
method
method test_T02_return_annotation_is_nullable L113–116
+
test_T03_return_annotation_stored_and_retrieved
method
async_method test_T03_return_annotation_stored_and_retrieved L119–135
+
test_T15_coverage_fraction_rendered_as_pct
method
async_method test_T15_coverage_fraction_rendered_as_pct L346–353
+
test_T17_return_annotation_in_html
method
async_method test_T17_return_annotation_in_html L365–371
+
test_T18_any_badge_rendered_for_any_polluted_symbol
method
async_method test_T18_any_badge_rendered_for_any_polluted_symbol L374–381
+
test_T19_dashboard_card_links_to_type_page
method
async_method test_T19_dashboard_card_links_to_type_page L384–390
+
test_T23_route_responds_under_200ms_for_10k_symbols
method
async_method test_T23_route_responds_under_200ms_for_10k_symbols L492–529
+
test_T25_batch_upsert_500_symbols_under_500ms
method
async_method test_T25_batch_upsert_500_symbols_under_500ms L547–576
+
test_T04_type_provider_issues_one_sql_per_chunk
method
async_method test_T04_type_provider_issues_one_sql_per_chunk L145–193
+
test_T05_upsert_500_symbols_under_500ms
method
async_method test_T05_upsert_500_symbols_under_500ms L196–226
+
test_T06_returns_200_with_empty_repo
method
async_method test_T06_returns_200_with_empty_repo L236–243
+
test_T08_summary_stats_match_db_counts
method
async_method test_T08_summary_stats_match_db_counts L254–264
+
test_T13_default_sort_score_ascending
method
async_method test_T13_default_sort_score_ascending L309–319
+
test_T26_xss_in_address_is_escaped
method
async_method test_T26_xss_in_address_is_escaped L586–602
+
test_T27_xss_in_return_annotation_is_escaped
method
async_method test_T27_xss_in_return_annotation_is_escaped L605–618
+
test_T28_unknown_tier_param_treated_as_all
method
async_method test_T28_unknown_tier_param_treated_as_all L621–626
+
test_T29_non_integer_top_param_returns_422
method
async_method test_T29_non_integer_top_param_returns_422 L629–634
+
test_T30_private_repo_returns_403_or_404_unauthenticated
method
async_method test_T30_private_repo_returns_403_or_404_unauthenticated L637–642
+
test_T20_push_twice_produces_one_row_per_symbol
method
async_method test_T20_push_twice_produces_one_row_per_symbol L400–426
+
test_T21_second_push_overwrites_type_score
method
async_method test_T21_second_push_overwrites_type_score L429–460
+
test_T22_repo_delete_cascades_type_rows
method
async_method test_T22_repo_delete_cascades_type_rows L463–482
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:3b295f958659f1cfe1781ecfbdbf7d51860c25afe696a6b1591f39921ffecf40 --body "your comment"
No comments yet. Be the first to start the discussion.