feat: migrate [user] out of config.toml into identity.toml
- _load_config silently drops any [user] section found in legacy files - _dump_toml never writes a [user] section; identity lives in identity.toml - set_config_value("user.*") raises ValueError with redirect to muse auth - get_config_value("user.*") reads from identity.toml for the active hub - 14 new TDD tests in test_user_identity_migration.py covering all paths - test_cmd_config_hardening.py refactored: theater removed, user.* blocking verified end-to-end, all 229 assertions pass
sha256:edd86f327550c520c67de40c103860214cbc7a7c596d29e1b6f2c4e990405241
sha
+67
~77
−19
symbols
sha256:0b06c10252021e2c497132ca59ae724cdc7dc3ffa29ccda7ec28a01ebab18c75
snapshot
+67
symbols added
~77
symbols modified
−19
symbols removed
0
dead code introduced
Semantic Changes
163 symbols
+
test_commit_uses_identity_handle_not_config
method
method test_commit_uses_identity_handle_not_config L288–311
+
test_dump_toml_never_emits_user_section
method
method test_dump_toml_never_emits_user_section L85–94
+
test_dump_toml_without_user_key_is_unchanged
method
method test_dump_toml_without_user_key_is_unchanged L96–103
+
test_writing_config_does_not_persist_user_section
method
method test_writing_config_does_not_persist_user_section L105–122
+
test_get_user_handle_returns_identity_value
method
method test_get_user_handle_returns_identity_value L227–241
+
test_get_user_type_ignores_stale_config_value
method
method test_get_user_type_ignores_stale_config_value L205–225
+
test_get_user_type_none_when_no_identity
method
method test_get_user_type_none_when_no_identity L243–255
+
test_get_user_type_returns_identity_value
method
method test_get_user_type_returns_identity_value L188–203
+
test_cli_set_user_type_json_error_mentions_auth
method
method test_cli_set_user_type_json_error_mentions_auth L157–169
−
test_20_sequential_sets_no_state_corruption
method
method test_20_sequential_sets_no_state_corruption L1537–1544
−
test_8_concurrent_set_to_isolated_repos
method
method test_8_concurrent_set_to_isolated_repos L765–799
+
test_user_section_dropped_from_old_config
method
method test_user_section_dropped_from_old_config L768–776
+
test_hub_before_domain_in_section_order
method
method test_hub_before_domain_in_section_order L263–272
+
test_set_json_get_json_consistent_domain
method
method test_set_json_get_json_consistent_domain L830–839
+
test_set_user_namespace_blocked_end_to_end
method
method test_set_user_namespace_blocked_end_to_end L783–788
+
test_get_user_namespace_exits_nonzero
method
method test_get_user_namespace_exits_nonzero L549–552
+
test_read_json_schema_no_user_section
method
method test_read_json_schema_no_user_section L450–459
+
test_set_success_stderr_message_domain
method
method test_set_success_stderr_message_domain L569–574
+
test_set_user_namespace_error_mentions_auth
method
method test_set_user_namespace_error_mentions_auth L588–592
+
test_user_handle_blocked_error_mentions_auth
method
method test_user_handle_blocked_error_mentions_auth L1467–1471
+
test_user_namespace_not_stored_on_block
method
method test_user_namespace_not_stored_on_block L1606–1611
+
test_20_sequential_domain_sets_no_state_corruption
method
method test_20_sequential_domain_sets_no_state_corruption L1669–1676
+
test_user_set_always_raises_not_written
method
method test_user_set_always_raises_not_written L1678–1686
+
test_user_namespace_raises_value_error
method
method test_user_namespace_raises_value_error L372–377
+
test_8_concurrent_set_domain_to_isolated_repos
method
method test_8_concurrent_set_domain_to_isolated_repos L846–880
+
test_8_concurrent_user_set_all_blocked
method
method test_8_concurrent_user_set_all_blocked L882–917
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:edd86f327550c520c67de40c103860214cbc7a7c596d29e1b6f2c4e990405241 --body "your comment"
No comments yet. Be the first to start the discussion.