roam-code 13.7.1__tar.gz → 13.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {roam_code-13.7.1 → roam_code-13.8.0}/PKG-INFO +5 -5
- {roam_code-13.7.1 → roam_code-13.8.0}/README.md +4 -4
- {roam_code-13.7.1 → roam_code-13.8.0}/pyproject.toml +1 -1
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/detectors.py +23 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/cli.py +9 -0
- roam_code-13.8.0/src/roam/commands/cmd_cycle_break.py +277 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_dead.py +39 -6
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_doc_staleness.py +228 -101
- roam_code-13.8.0/src/roam/commands/cmd_profile_import.py +153 -0
- roam_code-13.8.0/src/roam/commands/cmd_surface_gaps.py +193 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_verify.py +320 -23
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_verify_imports.py +76 -7
- roam_code-13.8.0/src/roam/commands/cmd_vue_emits.py +299 -0
- roam_code-13.8.0/src/roam/commands/dead_public_surface.py +267 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/competitor_site_data.py +1 -1
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/cycles.py +33 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/mcp-server-card.json +1 -1
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/mcp_server.py +6 -5
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/modes/policy.py +11 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/formatter.py +7 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/metric_definitions.py +1 -1
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/runtime/lock_modes.py +1 -0
- roam_code-13.8.0/src/roam/runtime/profile_ingest.py +243 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/world_model/__init__.py +14 -22
- roam_code-13.8.0/src/roam/world_model/restore_loss.py +269 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam_code.egg-info/PKG-INFO +5 -5
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam_code.egg-info/SOURCES.txt +13 -0
- roam_code-13.8.0/tests/test_cycle_break.py +75 -0
- roam_code-13.8.0/tests/test_dead_public_surface.py +91 -0
- roam_code-13.8.0/tests/test_doc_staleness.py +150 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_math.py +42 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_server_card_hash.py +1 -1
- roam_code-13.8.0/tests/test_profile_import.py +86 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_realworld_feedback.py +2 -1
- roam_code-13.8.0/tests/test_restore_loss.py +173 -0
- roam_code-13.8.0/tests/test_surface_gaps.py +98 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify.py +237 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_imports.py +50 -1
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_mode.py +19 -5
- roam_code-13.8.0/tests/test_vue_emits.py +68 -0
- roam_code-13.7.1/tests/test_doc_staleness.py +0 -70
- {roam_code-13.7.1 → roam_code-13.8.0}/LICENSE +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/setup.cfg +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/__main__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/_glob_match.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/_signature_utils.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/agent_opt.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/agents_md/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/agents_md/generator.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/analysis/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/analysis/effects.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/analysis/taint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/api.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/ask/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/ask/classifier.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/ask/recipes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/ask/runner.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/ask/workflow.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/atomic_io.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/attest/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/attest/cga.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/attest/emit_vsa.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/attest/vsa.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/bridges/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/bridges/base.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/bridges/bridge_config.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/bridges/bridge_django.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/bridges/bridge_protobuf.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/bridges/bridge_rest_api.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/bridges/bridge_salesforce.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/bridges/bridge_template.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/bridges/registry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/capability.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/_shared.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/clones_cross_layer.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/clones_rename_invariant.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/fixes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/js_idioms.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/parallel_hierarchy.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/python_idioms.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/registry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/smells.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/tasks.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/type_switch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/catalog/versions.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/command_advice.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/command_graph.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/_command_utils.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/_yaml_loader.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/actor_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/audit_trail_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/batch_search_core.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/boundary_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/changed_files.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_adrs.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_adversarial.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_affected.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_affected_tests.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_agent_context.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_agent_export.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_agent_opt.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_agent_plan.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_agent_score.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_agents_md.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_ai_ratio.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_ai_readiness.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_alerts.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_annotate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_api.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_api_changes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_api_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_architecture_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_article_12_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_ask.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_at.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_attest.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_audit.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_audit_trail_conformance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_audit_trail_export.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_audit_trail_verify.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_auth_gaps.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_batch_search.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_bench.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_bisect.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_boundary.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_breaking.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_brief.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_budget.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_bus_factor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_capabilities.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_capsule.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_causal_graph.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_cga.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_changelog.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_check_rules.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_ci_setup.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_clean.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_clones.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_closure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_clusters.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_codeowners.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_commands.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_compare.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_compatibility.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_compile.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_compile_cache.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_compile_stats.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_compiler_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_compiler_health.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_complete.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_complexity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_config.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_congestion.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_constitution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_context.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_conventions.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_coupling.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_coverage_gaps.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_critique.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_cut.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_cycles.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_dark_matter.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_dashboard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_db_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_debt.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_delete_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_deps.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_describe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_dev_profile.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_diagnose.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_dict_consistency.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_disambiguate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_dispatch_trace.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_docs_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_docs_index.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_doctor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_dogfood.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_dogfood_aggregate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_duplicates.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_effects.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_endpoints.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_entry_points.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_envelope_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_eval_retrieve.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_evidence_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_evidence_doctor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_evidence_oscal.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_exit_codes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_explain_command.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_fan.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_file.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_findings.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_fingerprint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_fitness.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_flag_dead.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_fleet.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_fn_coupling.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_forecast.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_graph_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_graph_export.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_graph_stats.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_grep.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_guard_clean.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_guard_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_guard_doctor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_guard_history.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_guard_init.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_guard_pr.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_guard_rules.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_health.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_help_search.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_history_grep.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_hooks.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_hotspots.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_hover.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_idempotency.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_impact.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_index.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_index_bundle.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_index_stats.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_ingest_trace.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_init.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_intent.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_intent_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_invariants.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_laws.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_layers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_lease.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_llm_smells.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_lsp.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_magic_numbers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_map.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_math.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_mcp.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_mcp_setup.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_mcp_status.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_memory.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_metrics.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_metrics_push.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_migration_plan.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_migration_safety.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_minimap.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_missing_index.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_mode.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_module.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_mutate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_n1.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_next.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_observability_opt.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_oracle.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_orchestrate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_orphan_imports.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_orphan_routes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_over_fetch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_owner.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_partition.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_path_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_patterns.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_permit.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_plan.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_plan_refactor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_plugins.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_postmortem.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_pr_analyze.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_pr_bundle.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_pr_comment_render.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_pr_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_pr_prep.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_pr_replay.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_pr_risk.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_pre_commit.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_preflight.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_proof_bundle.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_py_modern.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_py_types.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_pytest_fixtures.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_recipes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_recommend.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_refs_text.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_relate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_repair_siblings.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_replay.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_report.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_reset.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_retrieve.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_risk.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_rules.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_rules_validate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_runs.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_safe_delete.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_safe_zones.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_sbom.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_schema.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_search.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_search_semantic.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_secrets.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_semantic_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_service_report.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_sibling_patch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_side_effects.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_simulate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_simulate_departure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_sketch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_skill_generate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_smells.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_spectral.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_split.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_stale_refs.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_stats.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_suggest_refactoring.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_suggest_reviewers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_supply_chain.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_suppress.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_surface.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_symbol.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_syntax_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_taint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_telemetry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_test_gaps.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_test_hermeticity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_test_impact.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_test_pyramid.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_test_scaffold.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_testmap.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_timeline.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_tour.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_trace.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_trends.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_triage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_tx_boundaries.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_understand.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_uses.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_verdict.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_verification_contract.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_version.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_vibe_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_visualize.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_vuln_map.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_vuln_reach.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_vulns.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_watch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_weather.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_why.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_why_fail.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_why_slow.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_workflow.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_ws.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/cmd_xlang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/codeowners_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/context_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/conventions_helper.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/conventions_primitives.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/finding_suppress.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/gate_presets.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/git_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/graph_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/grep_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/metrics_history.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/next_steps.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/pr_analyze/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/pr_analyze/audit_trail.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/pr_analyze/cache.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/pr_analyze/rules.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/resolve.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/smells_suppress.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/stale_index.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/stale_refs_anchors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/stale_refs_hints.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/commands/suppression.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/config.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/constitution/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/constitution/loader.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/coverage_reports.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/critique/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/critique/aggregator.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/critique/checks.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/db/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/db/connection.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/db/edge_kinds.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/db/findings.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/db/fs_detect.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/db/queries.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/db/schema.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/eval/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/eval/harness.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/_vocabulary.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/actor_trust.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/approval.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/artifact.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/banner.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/change_evidence.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/collector.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/completeness_compat.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/config_hashes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/config_hashes_producer.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/consumer_fixtures/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/consumer_fixtures/consumer_assured.json +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/consumer_fixtures/consumer_minimal.json +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/consumer_fixtures/consumer_stale.json +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/control_mapping_vocab.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/env_refs.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/feedback.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/github_reviews.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/link.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/mcp_receipt.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/mcp_receipt_schema.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/oscal.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/policy.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/profiles.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/provenance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/refs.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/evidence/subject.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/exit_codes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/fleet/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/fleet/adapters.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/fleet/manifest.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/git_utils.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/github_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/anomaly.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/builder.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/clone_detect.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/clusters.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/dark_matter.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/fingerprint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/layers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/pagerank.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/partition.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/pathfinding.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/propagation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/simulate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/spectral.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/spectral_forecast.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/stats.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/graph/versioning.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/guard_enums.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/guard_errors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/guard_log.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/guard_rules.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/_containing_symbol.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/complexity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/complexity_extract.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/discovery.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/django_post.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/file_roles.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/git_stats.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/gitignore.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/incremental.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/indexer.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/laravel_post.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/manifest.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/parser.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/pytest_fixtures.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/registry_dispatch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/relations.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/symbols.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/index/test_conventions.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/knowledge/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/knowledge/knowledge_claim.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/apex_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/aura_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/base.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/c_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/csharp_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/dart_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/extractor_schema.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/extractors/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/extractors/kotlin.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/foxpro_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/generic_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/go_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/hcl_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/java_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/javascript_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/kotlin_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/php_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/python_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/query_engine.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/registry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/ruby_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/rust_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/scala_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/sfxml_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/sql_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/swift_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/typescript_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/visualforce_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/languages/yaml_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/laws/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/laws/checker.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/laws/miner.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/laws/serializer.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/leases/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/leases/store.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/mcp_extras/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/mcp_extras/adversarial_compress.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/mcp_extras/completions.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/mcp_extras/concurrency.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/mcp_extras/preflight.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/mcp_extras/progress.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/mcp_extras/sampling.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/mcp_extras/session.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/mcp_extras/watcher.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/memory/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/memory/store.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/modes/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/observability.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/observability_opt.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/_severity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/confidence.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/errors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/file_role_hints.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/framework_filter.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/mermaid.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/project_shape.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/risk.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/schema_registry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/source_context.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/output/structured_unknowns.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/permits/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/permits/store.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/plan/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/plan/calibration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/plan/compiler.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/plan/envelope_introspect.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/plan/import_audit.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/plan/plan_cache.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/plugins/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/plugins/registry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/policy/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/policy/graph_clauses.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/policy/suppression_v2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/pr_bundle_primitives.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/proof_bundle.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/proof_bundle_render.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/quality/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/quality/ai_rot.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/quality/cycles.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/quality/god_components.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/quality/health_band.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/quality/public_symbols.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/refactor/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/refactor/codegen.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/refactor/transforms.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/resilience.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/retrieve/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/retrieve/learned_ranker.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/retrieve/pipeline.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/retrieve/rerank.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/retrieve/seeds.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/retrieve/semantic.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/rules/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/rules/ast_match.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/rules/builtin.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/rules/dataflow.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/rules/engine.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/runs/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/runs/helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/runs/ledger.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/runs/signing.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/runtime/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/runtime/daemon.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/runtime/graph_backend.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/runtime/hotspots.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/runtime/lockmgr.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/runtime/trace_ingest.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/search/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/search/framework_packs.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/search/index_embeddings.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/search/onnx_embeddings.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/search/tfidf.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/aibom_extension.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/redact.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/sbom_reachability.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_classifier.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_engine.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/api_error_leak.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/java_deserialization.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/java_fileupload_path_traversal.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/java_sqli.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/js_insecure_jwt_decode.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/js_localstorage_secrets.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/js_prototype_pollution.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/js_ssrf.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/js_xss.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/php_command_injection.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/php_laravel_open_redirect.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/php_laravel_sqli.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/php_laravel_xss.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/php_path_traversal.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/python_basic.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/python_deserialization.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/python_path_traversal.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/python_socketio_remote_source.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/python_sqli.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/python_ssti.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/python_urllib_open_redirect.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules/vue_v_html.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/taint_rules_lint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/vuln_reach.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/security/vuln_store.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/sibling_patch/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/sibling_patch/repair_scorer.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/sibling_patch/replay_gate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/surface_counts.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/telemetry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/templates/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/templates/audit_report/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/templates/audit_report/control-mapping.yaml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/templates/ci/Jenkinsfile +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/templates/ci/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/templates/ci/agent-review.yml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/templates/ci/azure-pipelines.yml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/templates/ci/bitbucket-pipelines.yml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/templates/ci/gitlab-ci.yml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/templates/ci/roam-sarif-with-codeql.yml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/templates/ci/slsa-src-l3.yml +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/testing/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/testing/ci_xdist.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/verdict.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/verification_contract.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/workspace/__init__.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/workspace/aggregator.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/workspace/api_scanner.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/workspace/config.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/workspace/db.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/world_model/causal_graph.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/world_model/idempotency.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/world_model/side_effects.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam/world_model/tx_boundaries.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam_code.egg-info/dependency_links.txt +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam_code.egg-info/entry_points.txt +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam_code.egg-info/requires.txt +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/src/roam_code.egg-info/top_level.txt +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_actor_refs_provenance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_actor_trust.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_adrs.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_adrs_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_adversarial.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_adversarial_pattern2_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_adversarial_runner.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_affected.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_agent_export.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_agent_mode.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_agent_modes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_agent_opt.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_agent_plan_context.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_agent_score.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_agents_md.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ai_ratio.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ai_readiness.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ai_rot_reconciliation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_alerts_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_algo_nested_lookup_dataflow.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_algo_scoped_and_wired.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_alias_deprecation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_always_on_budget_cap.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_annotations.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_anomaly.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_api_changes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_api_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_approvals_provenance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_architecture_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ask.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_atomic_io_consolidation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_atomic_writes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_attest.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_attest_vsa.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_audit_symlink_containment.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_audit_trail_aggregate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_audit_trail_conformance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_audit_trail_sequence.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_audit_trail_verify.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_auth_gaps.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_auth_gaps_helper_indirection.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_authority_refs_provenance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_authority_refs_source.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_authority_run_ledger_corroboration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_auto_count_script.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_b6_adversarial_compress.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_b8_spectral_forecast.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_backend_fixes_round2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_backend_fixes_round3.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_bare_callers_loop8.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_basic.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_batch_mcp.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_batch_search_core.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_batch_search_paths.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_bench_compile.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_bench_ground_truth.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_bisect.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_blame_cache.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_bridge_django.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_bridges.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_bridges_extended.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_brief.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_budget.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_budget_coverage_survey.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_budget_flag.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_budget_phase2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_bus_factor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_bus_factor_excludes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_calibration_route_fallback.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_calibration_warning_once.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_caller_metric_definition.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_canonical_constant_citations.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_canonical_demo_fixture.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_capability_decoration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_capability_registry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_capsule.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_catalog_registry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_catalog_shared.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_causal_graph.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cga.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cga_dirty_hash_binding.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cga_edge_digest_sort_stability.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cga_fail_closed.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_changed_files_none_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_changelog_phantoms.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_check_rules.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ci_auto_xdist.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ci_gate_eval.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ci_sarif_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ci_setup.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_classifier_diagnostics_lockstep.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cli_cache_atomic.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cli_contract.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cli_deprecated_commands_schema.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cli_responses_write.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_clones.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_closure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cloud_sync_detection.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_affected_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_affected_tests_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_affected_tests_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_agent_context.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_at.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_auth_gaps_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_boundary.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_budget_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_bus_factor_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_check_rules_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_clones_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_closure_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_compatibility.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_compile.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_compiler_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_compiler_health.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_complexity_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_context_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_critique_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_dark_matter_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_db_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_dead_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_delete_check_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_diagnose_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_dispatch_trace.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_dogfood_aggregate_frontmatter.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_duplicates_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_envelope_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_fan_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_findings.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_fitness_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_flag_dead_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_flag_dead_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_guard_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_guard_unresolved.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_health_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_hotspots_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_hotspots_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_hover_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_idempotency_exception_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_impact_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_impact_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_init_no_self_advisory.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_invariants_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_laws_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_llm_smells_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_magic_numbers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_magic_numbers_treesitter.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_mcp_fast_startup.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_mcp_status_cold_start.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_metrics_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_missing_index_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_n1_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_orphan_imports_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_orphan_routes_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_over_fetch_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_partition_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_permit_persist.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_permit_persist_redteam.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_plan_refactor_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_plan_refactor_unresolved.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_plan_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_pr_bundle_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_preflight_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_pytest_fixtures_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_relate_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_safe_delete_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_safe_zones_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_smells_only_pushdown.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_smells_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_smells_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_stats.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_symbol_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_telemetry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_test_hermeticity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_test_impact_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_test_scaffold_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_testmap_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_timeline.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_trace_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_understand_tour_graph_errors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_verify_imports_sarif.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_visualize_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_why_fail_exception_scope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cmd_why_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_codeowners.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_command_advice.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_command_graph.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_command_help_template.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_command_utils.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_commands_architecture.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_commands_doc_synced.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_commands_exploration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_commands_health.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_commands_refactoring.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_commands_workflow.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compare_cli.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compat_sweep.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_competitor_site_data.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_bare_filename_resolve.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_bug_site_slice.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_cache.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_config_forbidden_paths.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_consumers_callers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_declared_entry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_describe_module.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_describe_what_for.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_entity_grounding.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_env_vars_probe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_file_history.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_freeform_size_cap.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_grep_option_injection.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_grep_private_root.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_import_audit_no_exec.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_index_staleness.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_injection_advice.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_inproc_lock.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_intent_probes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_known_findings.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_l10_batch_dedupe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_likely_files_rerank.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_owner_pathspec.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_parallel_impl_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_path_extraction.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_probe_families_w11_w12_w13.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_repo_structure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_safe_argv.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_search_semantic_dashdash.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_self_contained.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_session_meta.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_stats_by_mode.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_structural_subtype_order.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_symbol_rank_source_first.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_synth_target_extraction.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_top_n_vs_structural_precedence.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_trace_leading_dash.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w101_w106_probes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w132_w141.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w142_w146.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w147_w150.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w151_w154.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w155_w158.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w160_w161.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w28_compare.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w35_user_probes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w36_more_probes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w39_tier1.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w40_polish.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w43_w45_polish.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w468_persist_secret_skip.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w46_w55_polish.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w57_canonicalize_and_symcache.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compile_w70_cache_safety.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compiler_guard_bridge.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_complete_prefix.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_complexity_extract.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compound_recipe_registry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_compound_registry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_comprehensive.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_confidence_triples.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_config.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_config_state_uniform_vocabulary.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_congestion.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_constitution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_context_propagation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_conventions_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_conventions_consolidation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_corpus_routing_lock.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_count_drift_hook.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_count_drift_no_overlap.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_coverage_gaps_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_coverage_ingestion.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_critique.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cut.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_cycles.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dark_matter.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dark_matter_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dart.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dashboard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dashboard_unique_signals.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dataflow_dead.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_db_tuning.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_db_user_version.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dead_aging.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dead_code_intra_module_regression.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dead_mcp_seeding.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dead_vue_consumers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_decorator_registry_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_defer_loading.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_demo_fixtures.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_demo_gif_asset.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_deps_importer_list_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_describe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_describe_stack_leak.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_destructive_tools_derived.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_detail_flag.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_detail_flag_hints.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_detail_flag_regressions.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_detail_semantics.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_detector_file_scope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_detector_precision.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_detector_registry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_deterministic_output.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dev_profile.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dev_profile_exception_handling.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_diff_empty_state.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_difficulty_scoring.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dispatch_trace_counterfactual.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_doc_consistency.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_doc_hygiene_ci_gate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_doc_link_anchors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_doc_no_phantom_cli.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_docker_assets.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_docs_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_docs_index.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_docs_site_quality.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_doctor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_doctor_breadcrumb.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_doctor_ci_workflow_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_doctor_hints_in_errors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_doctor_refresh_install.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_doctor_stale_signal_advisory.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dogfood.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dogfood_aggregate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dogfood_dedup_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_dogfood_dedup_check_e2e.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_drift_by_team.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_duplicates.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_duplicates_bounded.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_effects.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_effects_propagation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_eight_questions_audit.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_empty_state_framing.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_endpoints.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_entry_points_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_env_refs_helper.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_envelope_diff_baseline.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_envelope_introspect.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_envelope_meta_roam_version.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_envelope_section_budget.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_envelope_size_budget.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_eval_retrieve.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_banner.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_collector.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_consumer_fixtures.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_diff_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_doctor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_feedback.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_limitations.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_oscal.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_oscal_ar.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_packet_size.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_policy.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_pr_replay.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_profiles.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_provenance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_redaction_snapshots.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_schema_migration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_stale_producer.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_evidence_v0.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_exclude_patterns.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_exit_codes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_extension_constant_consolidation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_extension_versioning.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_extract_mode_usage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_extract_regen_signal.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_extract_typed.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_extractor_grammar_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_extractor_smoke.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_fallback_contracts.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_fan_test_prod_split.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_fetch_handle_chunked.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_file_roles.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_find_project_root_worktree.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_find_symbol_tier_stamp.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_finding_suppress.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_audit_trail_conformance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_audit_trail_verify.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_auth_gaps.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_bus_factor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_canonical_detectors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_clones.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_complexity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_conventions.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_critique.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_dark_matter.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_dead.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_detector_count_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_doctor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_duplicates.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_fan.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_fingerprint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_health.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_hotspots.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_laws.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_missing_index.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_n1.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_orphan_imports.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_over_fetch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_pr_risk.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_registry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_smells.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_taint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_vibe_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_findings_vulns.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_fingerprint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_first_error_message_preserved.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_fixes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_flag_dead.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_fleet.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_fn_coupling.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_forecast.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_formatter_agent_contract.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_formatter_preserved_list_fields.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_formatters.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_foxpro.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_framework_detection.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_framework_pack_language_gating.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_freeform_history_literal_pathspec.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_fts5_docstring.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_fts5_incremental.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_gate_presets.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_git_cochange_literal_pathspec.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_git_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_git_stats_skip.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_git_utils.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_github_reviews_parser.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_glob_match.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_global_ci_mode.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_god_components_kind_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_graph_layers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_graph_versioning.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_grep_extended.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_grep_integration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_grep_performance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_grep_xlang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_guard_clean.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_guard_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_guard_doctor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_guard_errors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_guard_history.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_guard_init.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_guard_log.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_guard_pr_and_github_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_guard_rules.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_guard_rules_cli.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_health_baseline.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_health_betweenness_percentiles.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_health_gate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_hooks.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_hooks_claude_setup.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_hostile_markdown_inputs.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_hotspots.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_hover.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_idempotency.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_idiom_precision.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ignore_findings_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_impact_bounded.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_index.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_index_bundle.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_index_import_verification.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_index_light_mode.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_index_parser.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_index_step_manifest.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_init_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_init_no_unsolicited_writes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_install_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_intent.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_invariants.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_iri_migration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_is_excluded_path_none_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_is_test_path.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_js_idioms.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_json_contracts.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_json_error_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_json_usage_path_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_kotlin_swift_extractors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_l1_rate_floor.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_language_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_languages.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_laravel_dead_idioms.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_laravel_fp_fixes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_law4_anchor_counts.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_law4_anchoring.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_law4_lint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_law4_residual.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_law4_stragglers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_laws_mining.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_leak_gate_exemplars.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_lease_system.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ledger_signing.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_library_api.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_llm_smells.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_load_suppressions_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_load_yaml_with_warnings.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_loop_e2e.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_loop_performance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_loud_fallback_no_new_silent_except.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_main_module_entrypoint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_manifest.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_math_fp_fixes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_math_tips.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_W303_wrappers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_W304_wrappers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_W305_wrappers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_W306_wrappers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_architecture_wrappers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_batch_search_complete_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_cold_start_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_compat_profile.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_contract_enforcement.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_decision_receipt.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_error_envelope_status.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_exploration_wrappers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_extras.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_guard_wrappers_dispatch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_handle_off.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_health_wrappers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_json_parse_defense.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_outputschema_wave_b1.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_outputschema_wave_b2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_outputschema_wave_b3.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_outputschema_wave_b4.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_outputschema_wave_b5.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_outputschema_wave_b5b.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_param_aliases.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_param_aliases_input_path.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_param_names.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_pattern1_variant_b.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_receipt_emitter.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_receipt_json_schema.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_receipt_schema_in_wheel.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_refactoring_wrappers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_retrieve_leading_dash.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_server.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_setup.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_setup_write.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_tool_metadata_completeness.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_tool_side_effect_metadata.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_tool_side_effects.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_tool_telemetry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_tool_versioning.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mcp_wrapper_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_memory_substrate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mermaid.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_metric_definition_sidecars.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_metrics_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_metrics_push.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_migration_plan.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_migration_safety.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_minimap.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_missing_index.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_missing_index_unconditional.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_missing_index_unconditional_first.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mode_bootstrap_allowlist.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mode_classification_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mode_enforcement_dispatch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mutate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_mutate_apply.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_n1.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_n1_fixes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_naming_convention_sampling.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_next_router.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_next_steps.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_no_internal_language.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_non_idempotent_tools_derived.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_non_read_only_tools_derived.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_observability_opt.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_observability_opt_harvester_reuse.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_onboard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_optional_imports_guarded.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_oracle.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_oracle_batch_resilience.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_orchestrate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_orphan_imports_filters.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_orphan_routes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_oss_bench_harness.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_over_fetch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_over_fetch_three_state.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_owner_batched_in.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_owner_path_not_found.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_package_data_wheel_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pagerank_scipy_core.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pagerank_truncation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_parallel_analyzers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_parallel_impl_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_parallel_probe_dispatch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_partition.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_path_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_path_coverage_classify.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pattern1_envelope_shape.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pattern2_silent_success_disclosure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pattern3c_reconciliation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pattern_1_variant_d_resolver_audit.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_patterns_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_per_finding_suppressions_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_performance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_personalized_pagerank.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_phase0_commands.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_plan.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_plan_artifact_selector.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_plugin_discovery.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_plugin_dogfood_rails.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_plugin_substrate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_policy_decisions_provenance.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_policy_graph_clauses.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_analyze.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_analyze_cache.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_analyze_diff_failure_propagation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_analyze_edge_cases.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_analyze_helpers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_analyze_v2_signals.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_bundle.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_bundle_causal_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_bundle_nonexistent_symbol.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_bundle_r28_integration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_comment_render.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_comment_script.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_prep_pattern2_guard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_replay.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_replay_github_reviews.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pr_risk_author.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_preflight_fitness_sibling_names.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_prepush_gate_wired.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_probe_persist_batch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_procedure_registry_lint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_producer_collector_contracts.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_progress.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_progressive_disclosure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_proof_bundle.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_properties.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_public_allowlist.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_pytest_fixtures.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_python_extractor_docstring_safety.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_python_extractor_v2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_python_idioms_e2e.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_python_pivot.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_quality_dashboard.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_readme_surface_consistency.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_refactoring_intelligence.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_registered_tool_side_effects.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_registry_dispatch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_regression_fp_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_relate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_relations.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_rename_edge_recovery.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_repair_siblings_lens.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_replay.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_repo_root_helper.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_report.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_reset_clean.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_resilience.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_resolution_disclosure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_resolve.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_resolve_file_symbols_substrate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_resolver_import_target_preference.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_response_volume_handles.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_retrieve.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_retrieve_cross_repo.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_retrieve_seeds.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_risk.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_roam_diff_schema_validation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_roam_full_coupling.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ruby.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_rule_profiles.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_rules.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_rules_ast_match.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_rules_community_pack.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_rules_dataflow.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_rules_engine_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_rules_symbol_requirements.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_rules_validate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_runs_auto_log.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_runs_end_with_bundle.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_runs_ledger.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_runtime.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_runtime_score.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_salesforce.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sarif_consumer_list.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sarif_consumers_schema.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sarif_disclosure_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sarif_enrichment.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sarif_flag.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sarif_runtime_notifications.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sarif_runtime_overrides_followup.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sarif_runtime_overrides_helper.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sarif_suppressions_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sarif_tag_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sbom.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sbom_fp_categories.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_scala.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_schema_versioning.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_search_enrichment_loop3.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_search_explain.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_secret_scan_hook.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_secrets.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_secrets_v2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_security_redact.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_semantic_diff.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_semantic_onnx.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_semantic_search.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_service_report.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sibling_patch_network.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_side_effects.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_side_effects_typescript.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_signature_utils.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_simulate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_simulate_departure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_situation_compounds.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sketch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_skill_generate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_smells.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_smells_confidence_mapping_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_smells_detector_count_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_smoke.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sna_metrics.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_snake_case_function_lint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_source_context.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_spectral.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_spectral_bounded.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_split_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sql.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_sql_like_escape_discipline.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_staged_rollout_readiness.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_stale_db_dir_error.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_stale_refs.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_stale_refs_corruption.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_stale_refs_dogfood_fixes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_state_family_aliases.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_strip_list_payloads_preserves_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_structured_unknown_filter.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_suggest_refactoring.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_suggest_reviewers.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_supply_chain.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_suppression_adversarial.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_suppression_append_only.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_suppression_v2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_suppressions_unified_schema.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_surface_consistency.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_surface_counts.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_surface_counts_wheel_layout.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_surface_top_level_keys.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_synergy_agents_md_mode.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_synergy_next_mode.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_synergy_pr_bundle_mode.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_synergy_runs_mode.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_syntax_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_taint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_taint_analysis.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_taint_classifier.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_taint_intraprocedural.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_taint_java_deserialization.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_taint_java_sqli.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_taint_owasp_top10.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_taint_php_laravel.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_taint_rule_hygiene.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_taint_ssti.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_task_optional_tools_derived.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_task_required_tools_derived.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_test_conventions.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_test_detection_consolidation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_test_gaps.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_test_scaffold.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_testmap.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tool_metadata_completeness.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tool_metadata_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tool_metadata_flags.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tool_metadata_side_effect_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tool_metadata_side_effects.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tool_metadata_side_effects_complete.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tool_metadata_side_effects_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tool_side_effect_metadata.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tool_side_effect_metadata_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tool_side_effect_metadata_declared.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_top_flag_consistency.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_top_n_vs_structural_arbiter.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tour_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_trace_bounded.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_trends.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_trends_cohort.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_triage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_tx_boundaries.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_understand_health_band_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_user_version_discipline.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_uses_call_line_loop5.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_uses_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v1215_passes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v1216_passes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v1216_passes_41_50.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v1216_passes_51_60.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v1217_passes_61_80.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v1218_passes_81_90.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v1219_passes_91_100.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v1220_passes_101_110.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v1221_query_timeout.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v1221_untested_commands.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v12_2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v2_edge_cases.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v2_integration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v6_features.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v71_features.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v7_features.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_v82_features.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_validate_plan.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verification_contract_and_verdict.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_baseline.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_changed_lines.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_claims.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_command_examples.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_command_mirrors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_deep.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_dir_target.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_dogfood_fps.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_dup_precision.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_noqa.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_planted_recall.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_reindexes_stale_targets.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_secrets_gate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_self_dogfood_lock.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_verify_suppressions.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_version_stamps.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_vibe_check.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_vibe_check_framework_hooks.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_visualize.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_vocabulary_drift_w198.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_vue_sfc_imports.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_vue_vitest_detection.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_vuln.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_vuln_store_ingest.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_vulns_cmd.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1005_followup_b_adversarial_severity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1005_followup_c_severity_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1005_followup_d_severity_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1005_followup_f_api_changes_severity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1005_followup_g_severity_shortcode_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1005_followup_h_api_drift_severity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1005_followup_j_laws_confidence_vocab.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1005_smells_severity_5tier.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1005_smells_severity_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1030_followup_a_alerts_budget_load_status.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1030_followup_b_health_load_status.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1030_followup_c_check_rules_load_status.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1030_followup_d_fitness_load_status.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1030_followup_f_rules_load_status.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1030_load_status.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1038_extract_typed_integration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1057_math_unknown_detectors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1060_sarif_runtime_notifications_extension.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1068_search_unknown_kind.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1069_endpoints_unknown_framework.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1070_test_scaffold_unknown_framework.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1074_workflow_explain_unknown.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1075_endpoints_unknown_method.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1079_oracle_unknown.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1083_followup_2_cli_difflib.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1083_followup_3_multi_value.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1083_followup_adopters.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1083_to_summary_payload.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1084_denominator_clamp.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1085_fingerprint_cap.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1086_cmd_cut_cap.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1088_overall_risk_case_insensitive.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1100_schema_violation_partial_success.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1101_list_counts_symmetric.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1102_preserved_truncations_symmetric.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1111_click_argument_name_lint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1121_click_argument_file_lint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1121_click_argument_input_path_lint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1121_click_argument_pattern_lint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1121_click_argument_target_lint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1136_click_option_input_path_dest_lint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1142_followup_b_cap_disclosure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1142_followup_cap_disclosure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1142_limit_top_aliases.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1253_hash_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1254_evidence_stale_consumer.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1255_config_hashes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1261_vsa_stale_consumer.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1262_evidence_doctor_stale_banner.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1266_completeness_compat.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1272_unresolved_exit_convention.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1279_producer_integration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w12_dimension_real_names.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1310_tier_discard_preflight_plan.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w1311_describe_understand_minimap_resolver.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w201_prefetched_injection_boundary.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w211_refs_extensions.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w251_ci_env_detection.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w350_doctor_replay_permits_authority.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w350_drive_by_oscal_authority.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w365_followup_2_capability_invariants.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w365_followup_capability_side_effect.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w365_tool_metadata_annotations_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w420_no_runtime_count_headline.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w420_surface_count_plugin_invariant.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w421_regex_toggle.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w43_deps_multi.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w444_mcp_tool_names_no_dedupe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w452_python_taint_indexer_gap.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w462_landing_page_tool_count_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w484_templates_ci_reachable.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w489_a_followup_cga_qualified_only.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w489_a_taint_qualified_only_lint.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w512_edge_kinds_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w543_edge_kind_canonical.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w543_followup_c_migration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w543_followup_migration.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w547_severity_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w588_fragile_path_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w589_release_lease_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w590_lease_policy_no_project_root.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w591_permit_policy_no_project_root.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w592_gc_expired_leases_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w593_permits_silent_fails.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w595_read_permit_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w596_read_run_meta_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w597_daemon_read_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w598_pr_analyze_cache_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w599_trace_ingest_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w600_config_hashes_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w601_signing_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w602_metrics_push_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w603_open_db_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w604_findings_readers_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w605_index_embeddings_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w606_framework_packs_warnings_out.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_a_cmd_search_semantic_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_aa_cmd_pr_analyze_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ab_cmd_pr_risk_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ac_cmd_pr_prep_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ad_cmd_attest_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ae_cmd_pr_bundle_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_af_cmd_cga_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ag_cmd_for_refactor_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ah_cmd_pr_replay_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ai_cmd_audit_trail_verify_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_aj_for_security_review_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ak_cmd_supply_chain_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_al_cmd_audit_trail_conformance_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_am_cmd_sbom_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_an_cmd_postmortem_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ao_for_bug_fix_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ap_cmd_audit_trail_export_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_aq_cmd_vulns_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ar_for_new_feature_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_as_cmd_runs_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_at_cmd_evidence_doctor_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_au_cmd_vuln_reach_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_av_cmd_dogfood_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_aw_cmd_preflight_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ax_cmd_evidence_diff_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ay_cmd_taint_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_az_cmd_minimap_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_b_cmd_retrieve_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ba_cmd_health_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bb_cmd_impact_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bc_cmd_understand_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bd_cmd_capsule_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_be_cmd_doctor_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bf_cmd_context_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bg_cmd_debt_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bh_cmd_diagnose_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bi_cmd_retrieve_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bj_cmd_complexity_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bk_cmd_dark_matter_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bl_cmd_critique_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bm_cmd_duplicates_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bn_cmd_smells_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bo_cmd_search_semantic_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bp_cmd_diff_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bq_cmd_clones_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_br_cmd_search_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bs_cmd_vibe_check_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bt_cmd_attest_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bu_cmd_pr_risk_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bv_cmd_grep_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bw_cmd_pr_bundle_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bx_cmd_dead_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_by_cmd_pr_analyze_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_bz_cmd_cga_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_c_cmd_findings_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ca_cmd_pr_replay_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cb_cmd_n1_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cc_cmd_pr_prep_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cd_cmd_supply_chain_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ce_cmd_over_fetch_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cf_cmd_evidence_doctor_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cg_cmd_sbom_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ch_cmd_vulns_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ci_cmd_missing_index_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cj_cmd_taint_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ck_cmd_evidence_diff_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cl_cmd_vuln_reach_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cm_cmd_auth_gaps_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cn_cmd_audit_trail_verify_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_co_cmd_audit_trail_conformance_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cp_cmd_hotspots_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cq_cmd_bus_factor_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cr_cmd_audit_trail_export_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cr_cmd_orphan_imports_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ct_cmd_runs_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cu_cmd_invariants_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cv_cmd_postmortem_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cw_cmd_conventions_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cx_cmd_alerts_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cy_cmd_fan_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_cz_cmd_dark_matter_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_d_cmd_dogfood_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_da_cmd_relate_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_db_cmd_deps_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dc_cmd_clones_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dd_cmd_duplicates_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_de_cmd_uses_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_df_cmd_smells_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dg_cmd_describe_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dh_cmd_fingerprint_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_di_cmd_metrics_push_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dj_cmd_fan_score_classify_extension.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dk_cmd_capsule_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dl_cmd_dead_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dm_cmd_audit_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dn_cmd_diagnose_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_do_cmd_graph_export_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dp_cmd_dashboard_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dq_cmd_n1_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dr_cmd_postmortem_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ds_cmd_orchestrate_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dt_cmd_over_fetch_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_du_cmd_partition_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dv_cmd_pr_replay_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dw_cmd_doctor_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dx_cmd_missing_index_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dy_cmd_agent_plan_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_dz_cmd_taint_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_e_cmd_search_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ea_cmd_audit_trail_verify_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_eb_cmd_fleet_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ec_cmd_preflight_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ed_cmd_auth_gaps_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ee_cmd_audit_trail_conformance_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ef_cmd_simulate_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_eg_cmd_mutate_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_eh_cmd_bus_factor_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ei_cmd_cut_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ej_cmd_critique_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ek_cmd_adversarial_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_el_cmd_pr_analyze_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_em_cmd_closure_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_en_cmd_hotspots_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_eo_cmd_pr_prep_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_ep_cmd_for_refactor_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_eq_cmd_trace_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_es_cmd_grep_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_f_cmd_complete_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_g_cmd_grep_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_h_cmd_history_grep_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_i_cmd_refs_text_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_j_cmd_delete_check_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_k_cmd_describe_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_l_cmd_minimap_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_m_cmd_health_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_n_cmd_doctor_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_o_cmd_dashboard_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_p_cmd_audit_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_q_cmd_pr_risk_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_r_cmd_preflight_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_s_cmd_diagnose_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_t_cmd_impact_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_u_cmd_uses_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_v_cmd_deps_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_w_cmd_relate_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_x_cmd_fan_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_y_cmd_critique_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w607_z_cmd_diff_warnings_out_envelope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w639_detector_smoke.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w641_followup_a_impact_risk_level.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w641_followup_b_critique_risk_level.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w641_followup_c_pr_bundle_risk_level.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w641_followup_d_attest_risk_level.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w641_followup_e_diff_risk_level.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w641_followup_f_collector_canonical_risk.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w641_followup_g_dark_matter_risk_level.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w641_followup_h_migration_plan_risk_level.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w641_followup_i_exporter_risk_vocab.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w641_pr_risk_risk_level_emit.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w661_algo_detector_smoke.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w662_bare_except_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w664_package_data_init_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w668_as_file_pattern_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w675_example_smells_suppress.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w676_followup_example_files.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w680_world_model_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w681_taint_engine_positive_smoke.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w693_suppression_cross_loader.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w703_comment_syntax_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w711_mcp_card_error_branches.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w712_mcp_list_tools_smoke.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w725_comment_density_foxpro_scss.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w738_suppression_wire_format.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w759_preflight_lowercase.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w761_critique_severity_vocab.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w761_invariants_bus_factor_complexity_lowercase.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w761_vulns_secrets_severity_vocab.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w762_severity_upper_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w792_well_known_card_mirrors.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w801_endpoints_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w802_dead_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w803_n1_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_a_cmd_owner_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_aaa_cmd_mode_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_aaaa_cmd_delete_check_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_aaaaa_cmd_boundary_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_b_cmd_minimap_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_bb_cmd_clusters_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_bbb_cmd_memory_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_bbbb_cmd_simulate_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_bbbbb_cmd_pr_bundle_validate_identity_skip.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_bcluster_debt_alerts_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_c_cmd_oracle_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_cc_cmd_spectral_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ccc_cmd_attest_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_cccc_cmd_clones_below_threshold_collapse.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ccccc_cmd_why_slow_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_consolidate_cross_artifact_drift_table.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_d_cmd_workflow_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_dd_cmd_history_grep_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ddd_cmd_constitution_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_dddd_cmd_orchestrate_target_resolution.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ddddd_cmd_evidence_doctor_q17_asymmetry.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_diff_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_e_cmd_path_coverage_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ee_cmd_simulate_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_eee_cmd_agent_score_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_eeee_cmd_diff_resolution_disclosure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_eeeee_cmd_verify_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_empty_state_pattern_2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_f_cmd_for_bug_fix_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_fan_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_fff_cmd_cga_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ffff_cmd_smells_below_threshold_collapse.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_fffff_cmd_pr_replay_verify_identity_skip.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_fingerprint_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_followup_pattern_2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_g_cmd_pr_prep_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_gg_cmd_mutate_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ggg_cmd_for_new_feature_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_gggg_cmd_capsule_snapshot_state.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ggggg_cmd_attest_signing_surface_producer_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_h_cmd_explain_command_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_hh_cmd_test_impact_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_hhh_cmd_capsule_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_hhhh_cmd_critique_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_hhhhh_cmd_syntax_check_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_i_cmd_describe_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ii_cmd_relate_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_iii_cmd_evidence_diff_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_iiii_cmd_fingerprint_snapshot_state.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_iiiii_cmd_postmortem_verifier_identity_skip.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_j_cmd_understand_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_jj_cmd_hover_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_jjj_cmd_tour_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_jjjj_cmd_pr_diff_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_jjjjj_cmd_suggest_reviewers_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_k_cmd_module_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_kk_cmd_for_refactor_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_kkk_diagnose_issue_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_kkkk_cmd_taint_cross_lang_scoring.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_kkkkk_cga_vsa_sibling_consistency.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_l_cmd_preflight_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ll_cmd_for_security_review_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_lll_cmd_evidence_doctor_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_llll_cmd_runs_replay_lineage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_lllll_cmd_attest_verify_identity_skip.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_m_cmd_diagnose_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_mm_cmd_pr_analyze_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_mmm_cmd_pr_replay_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_mmmm_cmd_workspace_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_mmmmm_cmd_coupling_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_n_cmd_file_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_nn_cmd_pr_bundle_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_nnn_cmd_evidence_oscal_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_nnnn_cmd_vuln_reach_cross_lang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_nnnnn_compound_cross_subcommand_identity_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_o_cmd_why_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_oo_cmd_dogfood_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ooo_prepare_change_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_oooo_cmd_attest_disclosure.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ooooo_pr_bundle_slsa_l3_three_artifact_identity_coherence.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_p_cmd_impact_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_pp_cmd_dashboard_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_pppp_cmd_cga_attestation_lineage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ppppp_pr_bundle_cosign_four_artifact_identity_coherence.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_pr_analyze_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_q_cmd_deps_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_qq_cmd_visualize_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_qqq_review_change_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_qqqq_cmd_supply_chain_cross_eco.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_qqqqq_compound_recipe_shape_axis_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_r_cmd_adversarial_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_rr_cmd_audit_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_rrr_cmd_postmortem_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_rrrr_cmd_test_gaps_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_rrrrr_pr_bundle_rekor_five_artifact_identity_coherence.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_s_cmd_fan_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_sss_cmd_triage_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ssss_cmd_affected_tests_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_sssss_pr_bundle_fulcio_six_artifact_identity_coherence.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_t_cmd_uses_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_tt_cmd_brief_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ttt_cmd_ai_readiness_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_tttt_cmd_pr_bundle_q18_coverage_axis.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ttttt_octet_trimmed_iserror_axis_sweep.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_u_cmd_orchestrate_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_uu_cmd_replay_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_uuu_cmd_grep_reachability_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_uuuu_cmd_audit_trail_verify_identity_skip.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_uuuuu_error_storm_coalescer_trim_variant_sweep.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_v_cmd_trace_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_vv_cmd_next_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_vvv_explore_compound_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_vvvv_cmd_affected_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_w_cmd_refs_text_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_ww_cmd_runs_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_www_cmd_dark_matter_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_wwww_vsa_verifier_identity_skip.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_x_cmd_layers_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_xx_cmd_lease_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_xxx_cmd_refs_text_reachability_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_xxxx_cmd_adversarial_shared_helper_silent_safe.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_y_cmd_partition_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_yy_cmd_intent_check_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_yyy_cmd_n1_post_mod_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_yyyy_cmd_pr_replay_q17_harvester_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_z_cmd_delete_check_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_zzz_cmd_duplicates_post_mod_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w805_zzzz_cmd_evidence_diff_cross_repo_identity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w806_complexity_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w807_missing_index_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w808_clones_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w809_over_fetch_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w811_bus_factor_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w812_orphan_imports_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w815_auth_gaps_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w816_hotspots_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w820_smells_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w821_duplicates_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w823_vulns_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w824_invariants_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w825_taint_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w827_audit_trail_conformance_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w828_pr_risk_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w829_audit_trail_verify_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w830_audit_trail_verify_gate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w831_critique_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w833_health_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w835_doctor_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w837_coverage_gaps_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w837_forecast_empty_corpus.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w844_card_hash_auto_rotate.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w852_type_switch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w853_speculative_generality.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w855_rename_invariant_clones.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w856_cross_layer_clones.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w857_parallel_hierarchy.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w870_detector_version_stamp_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w898_followup_b_laws_checker.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w898_followup_is_test_path_clone_sweep.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w898_is_test_path_delegation.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w907_cycle_hedge_audit.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w910_alerts_threshold_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w911_confidence_tier_parity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w912_detector_metadata_coverage.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w918_alerts_silent_fallback.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w933_typeddict_boundary_audit.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w937_no_mojibake_em_dashes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w954_core_tools_capability_drift.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w962_w963_w964_alerts_pattern2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w985_followup_head_unchanged_info_log.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w985_incremental_skip_info_log.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w985_shallow_history_info_log.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w987_smells_pattern2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w989_pr_risk_pattern2.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w994_w995_suppress_yaml.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w_json_mode_no_stdout_warnings.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w_mcp_injection_marker_egress.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w_mcp_mode_enforcement.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w_mcp_receipt_hmac_link.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w_mcp_redact_egress.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w_mcp_security_pipeline_e2e.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_w_mcp_shadow_mode.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_watch.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_why.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_why_slow.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_workspace.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_world_model_classifier_fidelity.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ws_resolve_fixes.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_ws_resolve_unmatched.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_x_lang_scope.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_xlang.py +0 -0
- {roam_code-13.7.1 → roam_code-13.8.0}/tests/test_yaml_hcl.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: roam-code
|
|
3
|
-
Version: 13.
|
|
3
|
+
Version: 13.8.0
|
|
4
4
|
Summary: Local codebase intelligence for AI coding agents: structural repo map, change-safety gates, MCP security receipts, and tamper-evident ChangeEvidence packets. 100% local, zero API keys, zero network egress.
|
|
5
5
|
Author: Cranot
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -80,7 +80,7 @@ Dynamic: license-file
|
|
|
80
80
|
<sub>Credential-free · 100% local by default (opt-in `metrics-push` is the only outbound surface) · tamper-evident `ChangeEvidence` packets · Apache 2.0 · runs entirely on your machine</sub>
|
|
81
81
|
|
|
82
82
|
<!-- BEGIN auto-count:readme-headline-counts -->
|
|
83
|
-
<sub>
|
|
83
|
+
<sub>272 commands · 243 MCP tools (16 in the default `core` preset) · 28 languages</sub>
|
|
84
84
|
<!-- END auto-count:readme-headline-counts -->
|
|
85
85
|
|
|
86
86
|

|
|
@@ -445,7 +445,7 @@ Full release notes in [CHANGELOG.md](CHANGELOG.md).
|
|
|
445
445
|
## Core commands
|
|
446
446
|
|
|
447
447
|
<!-- BEGIN auto-count:readme-canonical-mention -->
|
|
448
|
-
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining ~
|
|
448
|
+
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining ~267 commands are detail surface for specialised workflows (taint, fleet, cga, oracle, eval, …) — they're called by agents on demand, not memorised. This is intentional design; under the hood the canonical surface is **272 commands (265 canonical + 7 aliases) organised into 7 categories** (aliases for muscle memory: `math` → `algo`, `churn` → `weather`, `digest` / `snapshot` / `trend` → `trends`, `onboard` → `understand`, `refs` → `uses`), but you don't need to know that to start.
|
|
449
449
|
<!-- END auto-count:readme-canonical-mention -->
|
|
450
450
|
|
|
451
451
|
| Verb | What it does |
|
|
@@ -460,7 +460,7 @@ The full surface spans **7 categories** — Getting Started, Daily Workflow, Cod
|
|
|
460
460
|
|
|
461
461
|
<details>
|
|
462
462
|
<!-- BEGIN auto-count:readme-cli-command-list-summary -->
|
|
463
|
-
<summary><strong>Full command reference — canonical command list (all
|
|
463
|
+
<summary><strong>Full command reference — canonical command list (all 265)</strong></summary>
|
|
464
464
|
<!-- END auto-count:readme-cli-command-list-summary -->
|
|
465
465
|
|
|
466
466
|
The complete, always-current list with flags and examples lives in the [Command Reference](https://roam-code.com/docs/command-reference).
|
|
@@ -664,7 +664,7 @@ See [Using Roam via MCP](https://roam-code.com/docs/mcp-usage) for the first-run
|
|
|
664
664
|
| `roam_diff` | Show the blast radius of your edits BEFORE you commit. Run after Edit/Write tools to see affected symbols, files, tests, plus coupling and fitness warnings. Use when user asks 'what did my change break?', 'safe to commit?'. Replaces ad-hoc `git diff --stat` inspection with graph-aware impact data. For PR-level risk verdict, use roam_pr_risk. |
|
|
665
665
|
| `roam_disambiguate` | List every symbol matching a name with file/line/kind/signature/PageRank — pick the right overload. |
|
|
666
666
|
| `roam_doc_intent` | Link documentation to code: find drift, dead refs, undocumented symbols. |
|
|
667
|
-
| `roam_doc_staleness` |
|
|
667
|
+
| `roam_doc_staleness` | Run a semantic docstring-drift audit: flag documented parameters, returns, or raises that no longer match code. Pass ``include_prose_drift`` to include optional blame-only summary drift. Different from ``roam_docs_coverage`` (missing docs ranked by PageRank) and ``roam_stale_refs`` (dangling doc links) -- this audits concrete claims in existing docs. |
|
|
668
668
|
| `roam_docs_coverage` | Doc coverage + stale-doc drift with PageRank-ranked missing docs. |
|
|
669
669
|
| `roam_doctor` | Setup diagnostics: Python version, tree-sitter, git, index existence, freshness, SQLite. |
|
|
670
670
|
| `roam_dogfood` | One-shot full-stack run: audit + pr-analyze + audit-trail + conformance. |
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<sub>Credential-free · 100% local by default (opt-in `metrics-push` is the only outbound surface) · tamper-evident `ChangeEvidence` packets · Apache 2.0 · runs entirely on your machine</sub>
|
|
14
14
|
|
|
15
15
|
<!-- BEGIN auto-count:readme-headline-counts -->
|
|
16
|
-
<sub>
|
|
16
|
+
<sub>272 commands · 243 MCP tools (16 in the default `core` preset) · 28 languages</sub>
|
|
17
17
|
<!-- END auto-count:readme-headline-counts -->
|
|
18
18
|
|
|
19
19
|

|
|
@@ -378,7 +378,7 @@ Full release notes in [CHANGELOG.md](CHANGELOG.md).
|
|
|
378
378
|
## Core commands
|
|
379
379
|
|
|
380
380
|
<!-- BEGIN auto-count:readme-canonical-mention -->
|
|
381
|
-
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining ~
|
|
381
|
+
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining ~267 commands are detail surface for specialised workflows (taint, fleet, cga, oracle, eval, …) — they're called by agents on demand, not memorised. This is intentional design; under the hood the canonical surface is **272 commands (265 canonical + 7 aliases) organised into 7 categories** (aliases for muscle memory: `math` → `algo`, `churn` → `weather`, `digest` / `snapshot` / `trend` → `trends`, `onboard` → `understand`, `refs` → `uses`), but you don't need to know that to start.
|
|
382
382
|
<!-- END auto-count:readme-canonical-mention -->
|
|
383
383
|
|
|
384
384
|
| Verb | What it does |
|
|
@@ -393,7 +393,7 @@ The full surface spans **7 categories** — Getting Started, Daily Workflow, Cod
|
|
|
393
393
|
|
|
394
394
|
<details>
|
|
395
395
|
<!-- BEGIN auto-count:readme-cli-command-list-summary -->
|
|
396
|
-
<summary><strong>Full command reference — canonical command list (all
|
|
396
|
+
<summary><strong>Full command reference — canonical command list (all 265)</strong></summary>
|
|
397
397
|
<!-- END auto-count:readme-cli-command-list-summary -->
|
|
398
398
|
|
|
399
399
|
The complete, always-current list with flags and examples lives in the [Command Reference](https://roam-code.com/docs/command-reference).
|
|
@@ -597,7 +597,7 @@ See [Using Roam via MCP](https://roam-code.com/docs/mcp-usage) for the first-run
|
|
|
597
597
|
| `roam_diff` | Show the blast radius of your edits BEFORE you commit. Run after Edit/Write tools to see affected symbols, files, tests, plus coupling and fitness warnings. Use when user asks 'what did my change break?', 'safe to commit?'. Replaces ad-hoc `git diff --stat` inspection with graph-aware impact data. For PR-level risk verdict, use roam_pr_risk. |
|
|
598
598
|
| `roam_disambiguate` | List every symbol matching a name with file/line/kind/signature/PageRank — pick the right overload. |
|
|
599
599
|
| `roam_doc_intent` | Link documentation to code: find drift, dead refs, undocumented symbols. |
|
|
600
|
-
| `roam_doc_staleness` |
|
|
600
|
+
| `roam_doc_staleness` | Run a semantic docstring-drift audit: flag documented parameters, returns, or raises that no longer match code. Pass ``include_prose_drift`` to include optional blame-only summary drift. Different from ``roam_docs_coverage`` (missing docs ranked by PageRank) and ``roam_stale_refs`` (dangling doc links) -- this audits concrete claims in existing docs. |
|
|
601
601
|
| `roam_docs_coverage` | Doc coverage + stale-doc drift with PageRank-ranked missing docs. |
|
|
602
602
|
| `roam_doctor` | Setup diagnostics: Python version, tree-sitter, git, index existence, freshness, SQLite. |
|
|
603
603
|
| `roam_dogfood` | One-shot full-stack run: audit + pr-analyze + audit-trail + conformance. |
|
|
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
|
|
|
8
8
|
|
|
9
9
|
[project]
|
|
10
10
|
name = "roam-code"
|
|
11
|
-
version = "13.
|
|
11
|
+
version = "13.8.0"
|
|
12
12
|
description = "Local codebase intelligence for AI coding agents: structural repo map, change-safety gates, MCP security receipts, and tamper-evident ChangeEvidence packets. 100% local, zero API keys, zero network egress."
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
requires-python = ">=3.10"
|
|
@@ -1730,6 +1730,27 @@ _IO_WRAPPER_NAMES = {
|
|
|
1730
1730
|
"for_each_repo",
|
|
1731
1731
|
}
|
|
1732
1732
|
|
|
1733
|
+
# Batch writes are the anti-N+1 shape. Keep them out of the loop-I/O
|
|
1734
|
+
# detector even when they appear lexically inside a loop body.
|
|
1735
|
+
_IO_BATCH_CALLS = {
|
|
1736
|
+
"executemany",
|
|
1737
|
+
"executebatch",
|
|
1738
|
+
"executescript",
|
|
1739
|
+
"bulkcreate",
|
|
1740
|
+
"bulkinsert",
|
|
1741
|
+
"bulkupdate",
|
|
1742
|
+
"insertmany",
|
|
1743
|
+
"copyfrom",
|
|
1744
|
+
"addall",
|
|
1745
|
+
"writerows",
|
|
1746
|
+
}
|
|
1747
|
+
|
|
1748
|
+
|
|
1749
|
+
def _is_batch_io_call(call: str) -> bool:
|
|
1750
|
+
"""Return True for batched writes that should not trip N+1 I/O."""
|
|
1751
|
+
return _call_leaf(call).lower().replace("_", "") in _IO_BATCH_CALLS
|
|
1752
|
+
|
|
1753
|
+
|
|
1733
1754
|
# D body-level signals that the loop iterates CHUNKS, not
|
|
1734
1755
|
# individual items. When any of these patterns appear in the function body,
|
|
1735
1756
|
# the inner I/O calls operate on a batch (WHERE IN (...) form), not per-item,
|
|
@@ -2230,6 +2251,8 @@ def _io_classify_call(
|
|
|
2230
2251
|
though the leaf matches a cache identifier; user feedback called
|
|
2231
2252
|
out the Promise<T> vs T distinction explicitly.
|
|
2232
2253
|
"""
|
|
2254
|
+
if _is_batch_io_call(c):
|
|
2255
|
+
return None, None
|
|
2233
2256
|
# D2: if call name matches cache allowlist BUT is awaited in the body,
|
|
2234
2257
|
# the await says it really IS asynchronous I/O — escalate to medium.
|
|
2235
2258
|
memory_result = _classify_known_in_memory_call(c, snippet)
|
|
@@ -164,6 +164,7 @@ _COMMANDS = {
|
|
|
164
164
|
"clusters": ("roam.commands.cmd_clusters", "clusters"),
|
|
165
165
|
"layers": ("roam.commands.cmd_layers", "layers"),
|
|
166
166
|
"cycles": ("roam.commands.cmd_cycles", "cycles"),
|
|
167
|
+
"cycle-break": ("roam.commands.cmd_cycle_break", "cycle_break"),
|
|
167
168
|
"weather": ("roam.commands.cmd_weather", "weather"),
|
|
168
169
|
"churn": ("roam.commands.cmd_weather", "weather"),
|
|
169
170
|
"dead": ("roam.commands.cmd_dead", "dead"),
|
|
@@ -329,6 +330,7 @@ _COMMANDS = {
|
|
|
329
330
|
"vuln-map": ("roam.commands.cmd_vuln_map", "vuln_map_cmd"),
|
|
330
331
|
"vuln-reach": ("roam.commands.cmd_vuln_reach", "vuln_reach"),
|
|
331
332
|
"ingest-trace": ("roam.commands.cmd_ingest_trace", "ingest_trace_cmd"),
|
|
333
|
+
"profile-import": ("roam.commands.cmd_profile_import", "profile_import"),
|
|
332
334
|
"hotspots": ("roam.commands.cmd_hotspots", "hotspots"),
|
|
333
335
|
"why-slow": ("roam.commands.cmd_why_slow", "why_slow"),
|
|
334
336
|
"schema": ("roam.commands.cmd_schema", "schema_cmd"),
|
|
@@ -395,6 +397,7 @@ _COMMANDS = {
|
|
|
395
397
|
"smells": ("roam.commands.cmd_smells", "smells"),
|
|
396
398
|
"mcp-setup": ("roam.commands.cmd_mcp_setup", "mcp_setup"),
|
|
397
399
|
"verify-imports": ("roam.commands.cmd_verify_imports", "verify_imports_cmd"),
|
|
400
|
+
"vue-emits": ("roam.commands.cmd_vue_emits", "vue_emits"),
|
|
398
401
|
"vulns": ("roam.commands.cmd_vulns", "vulns"),
|
|
399
402
|
"metrics": ("roam.commands.cmd_metrics", "metrics"),
|
|
400
403
|
"congestion": ("roam.commands.cmd_congestion", "congestion"),
|
|
@@ -420,6 +423,7 @@ _COMMANDS = {
|
|
|
420
423
|
"delete-check": ("roam.commands.cmd_delete_check", "delete_check_cmd"),
|
|
421
424
|
"history-grep": ("roam.commands.cmd_history_grep", "history_grep_cmd"),
|
|
422
425
|
"surface": ("roam.commands.cmd_surface", "surface"),
|
|
426
|
+
"surface-gaps": ("roam.commands.cmd_surface_gaps", "surface_gaps"),
|
|
423
427
|
"commands": ("roam.commands.cmd_commands", "commands_cmd"),
|
|
424
428
|
"explain-command": ("roam.commands.cmd_explain_command", "explain_command"),
|
|
425
429
|
"db-check": ("roam.commands.cmd_db_check", "db_check"),
|
|
@@ -484,6 +488,7 @@ _CATEGORIES = {
|
|
|
484
488
|
"stats",
|
|
485
489
|
"telemetry",
|
|
486
490
|
"surface",
|
|
491
|
+
"surface-gaps",
|
|
487
492
|
"commands",
|
|
488
493
|
"explain-command",
|
|
489
494
|
"db-check",
|
|
@@ -611,10 +616,12 @@ _CATEGORIES = {
|
|
|
611
616
|
"forecast",
|
|
612
617
|
"bisect",
|
|
613
618
|
"ingest-trace",
|
|
619
|
+
"profile-import",
|
|
614
620
|
"hotspots",
|
|
615
621
|
"why-slow",
|
|
616
622
|
"eval-retrieve",
|
|
617
623
|
"boundary",
|
|
624
|
+
"vue-emits",
|
|
618
625
|
],
|
|
619
626
|
"Architecture": [
|
|
620
627
|
"map",
|
|
@@ -625,6 +632,7 @@ _CATEGORIES = {
|
|
|
625
632
|
"layers",
|
|
626
633
|
"clusters",
|
|
627
634
|
"cycles",
|
|
635
|
+
"cycle-break",
|
|
628
636
|
"spectral",
|
|
629
637
|
"coupling",
|
|
630
638
|
"dark-matter",
|
|
@@ -1163,6 +1171,7 @@ _MODE_ALWAYS_ALLOWED: frozenset[str] = frozenset(
|
|
|
1163
1171
|
"help-search",
|
|
1164
1172
|
"help-all",
|
|
1165
1173
|
"surface",
|
|
1174
|
+
"surface-gaps",
|
|
1166
1175
|
"doctor",
|
|
1167
1176
|
"exit-codes",
|
|
1168
1177
|
"version",
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"""Recommend the smallest resolved extraction that breaks each file cycle.
|
|
2
|
+
|
|
3
|
+
Output formats: text (default), ``--json``. SARIF is deliberately NOT
|
|
4
|
+
emitted because cycle-break's deliverable is a refactoring recommendation
|
|
5
|
+
(the minimum extraction edge-set that severs each import cycle) — not a set
|
|
6
|
+
of per-location rule violations, which is the unit SARIF encodes.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import sqlite3
|
|
12
|
+
|
|
13
|
+
import click
|
|
14
|
+
import networkx as nx
|
|
15
|
+
|
|
16
|
+
from roam.capability import roam_capability
|
|
17
|
+
from roam.commands.resolve import empty_corpus_state, ensure_index
|
|
18
|
+
from roam.db.connection import find_project_root, open_db
|
|
19
|
+
from roam.graph.builder import build_file_graph
|
|
20
|
+
from roam.graph.cycles import find_cycles, find_minimum_cycle_break_edge_sets
|
|
21
|
+
from roam.index.relations import _extract_imported_names, _read_source_text
|
|
22
|
+
from roam.output.formatter import json_envelope, to_json
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _path(graph: nx.DiGraph, file_id: int) -> str:
|
|
26
|
+
return str(graph.nodes[file_id].get("path", file_id))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _imported_names(
|
|
30
|
+
source_path: str,
|
|
31
|
+
project_root: str,
|
|
32
|
+
cache: dict[str, set[str] | None],
|
|
33
|
+
) -> set[str] | None:
|
|
34
|
+
if source_path not in cache:
|
|
35
|
+
source = _read_source_text(source_path, project_root)
|
|
36
|
+
cache[source_path] = _extract_imported_names(source) if source is not None else None
|
|
37
|
+
return cache[source_path]
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _crossing_symbols(
|
|
41
|
+
conn: sqlite3.Connection,
|
|
42
|
+
source_file_id: int,
|
|
43
|
+
target_file_id: int,
|
|
44
|
+
imported_names: set[str] | None,
|
|
45
|
+
cache: dict[tuple[int, int], list[dict]],
|
|
46
|
+
) -> list[dict]:
|
|
47
|
+
if imported_names is None:
|
|
48
|
+
return []
|
|
49
|
+
cache_key = (source_file_id, target_file_id)
|
|
50
|
+
if cache_key in cache:
|
|
51
|
+
return cache[cache_key]
|
|
52
|
+
rows = conn.execute(
|
|
53
|
+
"SELECT DISTINCT target.id, target.name, target.kind, edge.kind "
|
|
54
|
+
"FROM edges edge "
|
|
55
|
+
"JOIN symbols source ON source.id = edge.source_id "
|
|
56
|
+
"JOIN symbols target ON target.id = edge.target_id "
|
|
57
|
+
"WHERE source.file_id = ? AND target.file_id = ? "
|
|
58
|
+
"ORDER BY target.name, target.kind, target.id, edge.kind",
|
|
59
|
+
(source_file_id, target_file_id),
|
|
60
|
+
).fetchall()
|
|
61
|
+
|
|
62
|
+
symbols: dict[int, dict] = {}
|
|
63
|
+
for symbol_id, name, kind, edge_kind in rows:
|
|
64
|
+
if name not in imported_names:
|
|
65
|
+
continue
|
|
66
|
+
symbol = symbols.setdefault(
|
|
67
|
+
symbol_id,
|
|
68
|
+
{"id": symbol_id, "name": name, "kind": kind, "relationship_kinds": []},
|
|
69
|
+
)
|
|
70
|
+
if edge_kind not in symbol["relationship_kinds"]:
|
|
71
|
+
symbol["relationship_kinds"].append(edge_kind)
|
|
72
|
+
resolved = list(symbols.values())
|
|
73
|
+
names = [symbol["name"] for symbol in resolved]
|
|
74
|
+
cache[cache_key] = resolved if len(names) == len(set(names)) else []
|
|
75
|
+
return cache[cache_key]
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def _ordered_members(graph: nx.DiGraph, members: list[int], removed: list[tuple[int, int]]) -> list[int]:
|
|
79
|
+
candidate = graph.subgraph(members).copy()
|
|
80
|
+
candidate.remove_edges_from(removed)
|
|
81
|
+
return list(nx.lexicographical_topological_sort(candidate, key=lambda file_id: _path(graph, file_id)))
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def _candidate_details(
|
|
85
|
+
conn: sqlite3.Connection,
|
|
86
|
+
graph: nx.DiGraph,
|
|
87
|
+
members: list[int],
|
|
88
|
+
removed: list[tuple[int, int]],
|
|
89
|
+
project_root: str,
|
|
90
|
+
imported_names_cache: dict[str, set[str] | None],
|
|
91
|
+
crossing_symbols_cache: dict[tuple[int, int], list[dict]],
|
|
92
|
+
) -> tuple[tuple, list[int], list[dict], bool]:
|
|
93
|
+
ordered = _ordered_members(graph, members, removed)
|
|
94
|
+
edges = []
|
|
95
|
+
for source, target in removed:
|
|
96
|
+
source_path = _path(graph, source)
|
|
97
|
+
edges.append(
|
|
98
|
+
{
|
|
99
|
+
"source": {"id": source, "file": source_path},
|
|
100
|
+
"target": {"id": target, "file": _path(graph, target)},
|
|
101
|
+
"symbols": _crossing_symbols(
|
|
102
|
+
conn,
|
|
103
|
+
source,
|
|
104
|
+
target,
|
|
105
|
+
_imported_names(source_path, project_root, imported_names_cache),
|
|
106
|
+
crossing_symbols_cache,
|
|
107
|
+
),
|
|
108
|
+
}
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
resolved = all(edge["symbols"] for edge in edges)
|
|
112
|
+
symbol_count = sum(len(edge["symbols"]) for edge in edges)
|
|
113
|
+
ordered_paths = tuple(_path(graph, file_id) for file_id in ordered)
|
|
114
|
+
edge_paths = tuple((edge["source"]["file"], edge["target"]["file"]) for edge in edges)
|
|
115
|
+
rank = (not resolved, symbol_count if resolved else 0, ordered_paths, edge_paths)
|
|
116
|
+
return rank, ordered, edges, resolved
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def _recommendation(edge: dict, cycle_path: str) -> str:
|
|
120
|
+
names = [symbol["name"] for symbol in edge["symbols"]]
|
|
121
|
+
rendered = ", ".join(f"`{name}`" for name in names)
|
|
122
|
+
noun = "symbol" if len(names) == 1 else "symbols"
|
|
123
|
+
source = edge["source"]["file"]
|
|
124
|
+
target = edge["target"]["file"]
|
|
125
|
+
return (
|
|
126
|
+
f"Extract {noun} {rendered} from `{target}` into a new leaf module imported by both "
|
|
127
|
+
f"`{source}` and `{target}` to break `{cycle_path}`."
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def _analyze_cycle(
|
|
132
|
+
conn: sqlite3.Connection,
|
|
133
|
+
graph: nx.DiGraph,
|
|
134
|
+
members: list[int],
|
|
135
|
+
project_root: str,
|
|
136
|
+
imported_names_cache: dict[str, set[str] | None],
|
|
137
|
+
crossing_symbols_cache: dict[tuple[int, int], list[dict]],
|
|
138
|
+
) -> dict:
|
|
139
|
+
candidates = find_minimum_cycle_break_edge_sets(graph, members)
|
|
140
|
+
if not candidates:
|
|
141
|
+
ordered = sorted(members, key=lambda file_id: _path(graph, file_id))
|
|
142
|
+
return {
|
|
143
|
+
"members": [{"id": file_id, "file": _path(graph, file_id)} for file_id in ordered],
|
|
144
|
+
"closing_edges": [],
|
|
145
|
+
"recommendations": [],
|
|
146
|
+
"recommendation_state": "minimum_break_not_computed",
|
|
147
|
+
"recommendation_reason": "exact search is limited to SCCs with at most 14 internal edges",
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
_rank, ordered, edges, resolved = min(
|
|
151
|
+
(
|
|
152
|
+
_candidate_details(
|
|
153
|
+
conn,
|
|
154
|
+
graph,
|
|
155
|
+
members,
|
|
156
|
+
removed,
|
|
157
|
+
project_root,
|
|
158
|
+
imported_names_cache,
|
|
159
|
+
crossing_symbols_cache,
|
|
160
|
+
)
|
|
161
|
+
for removed in candidates
|
|
162
|
+
),
|
|
163
|
+
key=lambda item: item[0],
|
|
164
|
+
)
|
|
165
|
+
ordered_paths = [_path(graph, file_id) for file_id in ordered]
|
|
166
|
+
cycle_path = " → ".join([*ordered_paths, ordered_paths[0]])
|
|
167
|
+
recommendations = []
|
|
168
|
+
if resolved:
|
|
169
|
+
for edge in edges:
|
|
170
|
+
edge["recommendation"] = _recommendation(edge, cycle_path)
|
|
171
|
+
recommendations.append(edge["recommendation"])
|
|
172
|
+
|
|
173
|
+
return {
|
|
174
|
+
"members": [{"id": file_id, "file": _path(graph, file_id)} for file_id in ordered],
|
|
175
|
+
"closing_edges": edges,
|
|
176
|
+
"recommendations": recommendations,
|
|
177
|
+
"recommendation_state": "resolved" if resolved else "unresolved_crossing_symbols",
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
@roam_capability(
|
|
182
|
+
name="cycle-break",
|
|
183
|
+
category="architecture",
|
|
184
|
+
summary="Recommend the minimum resolved extraction that breaks each file cycle",
|
|
185
|
+
maturity="stable",
|
|
186
|
+
mcp_expose=False,
|
|
187
|
+
side_effect=False,
|
|
188
|
+
task_required=False,
|
|
189
|
+
destructive=False,
|
|
190
|
+
stale_sensitive=True,
|
|
191
|
+
ai_safe=True,
|
|
192
|
+
requires_index=True,
|
|
193
|
+
)
|
|
194
|
+
@click.command(name="cycle-break")
|
|
195
|
+
@click.option("--json", "json_output", is_flag=True, help="Output in JSON format.")
|
|
196
|
+
@click.pass_context
|
|
197
|
+
def cycle_break(ctx, json_output):
|
|
198
|
+
"""Recommend minimal symbol extractions that break file dependency cycles."""
|
|
199
|
+
json_mode = json_output or (ctx.obj.get("json") if ctx.obj else False)
|
|
200
|
+
token_budget = ctx.obj.get("budget", 0) if ctx.obj else 0
|
|
201
|
+
ensure_index()
|
|
202
|
+
|
|
203
|
+
with open_db(readonly=True) as conn:
|
|
204
|
+
empty = empty_corpus_state(conn)
|
|
205
|
+
if empty is not None:
|
|
206
|
+
if json_mode:
|
|
207
|
+
click.echo(
|
|
208
|
+
to_json(
|
|
209
|
+
json_envelope(
|
|
210
|
+
"cycle-break",
|
|
211
|
+
summary={"verdict": "no dependency graph to analyze", "cycle_count": 0, **empty},
|
|
212
|
+
cycles=[],
|
|
213
|
+
budget=token_budget,
|
|
214
|
+
)
|
|
215
|
+
)
|
|
216
|
+
)
|
|
217
|
+
return
|
|
218
|
+
|
|
219
|
+
graph = build_file_graph(conn)
|
|
220
|
+
raw_cycles = find_cycles(graph)
|
|
221
|
+
project_root = str(find_project_root())
|
|
222
|
+
imported_names_cache: dict[str, set[str] | None] = {}
|
|
223
|
+
crossing_symbols_cache: dict[tuple[int, int], list[dict]] = {}
|
|
224
|
+
findings = [
|
|
225
|
+
_analyze_cycle(
|
|
226
|
+
conn,
|
|
227
|
+
graph,
|
|
228
|
+
members,
|
|
229
|
+
project_root,
|
|
230
|
+
imported_names_cache,
|
|
231
|
+
crossing_symbols_cache,
|
|
232
|
+
)
|
|
233
|
+
for members in raw_cycles
|
|
234
|
+
]
|
|
235
|
+
recommendation_count = sum(len(finding["recommendations"]) for finding in findings)
|
|
236
|
+
cycle_noun = "cycle" if len(findings) == 1 else "cycles"
|
|
237
|
+
recommendation_noun = "recommendation" if recommendation_count == 1 else "recommendations"
|
|
238
|
+
verdict = (
|
|
239
|
+
f"{len(findings)} file dependency {cycle_noun}; "
|
|
240
|
+
f"{recommendation_count} minimal extraction {recommendation_noun}"
|
|
241
|
+
if findings
|
|
242
|
+
else "No file dependency cycles"
|
|
243
|
+
)
|
|
244
|
+
|
|
245
|
+
if json_mode:
|
|
246
|
+
click.echo(
|
|
247
|
+
to_json(
|
|
248
|
+
json_envelope(
|
|
249
|
+
"cycle-break",
|
|
250
|
+
summary={
|
|
251
|
+
"verdict": verdict,
|
|
252
|
+
"cycle_count": len(findings),
|
|
253
|
+
"recommendation_count": recommendation_count,
|
|
254
|
+
"cycle_count_definition": (
|
|
255
|
+
"strongly-connected components (Tarjan SCC) of the indexed file dependency graph"
|
|
256
|
+
),
|
|
257
|
+
},
|
|
258
|
+
cycles=findings,
|
|
259
|
+
budget=token_budget,
|
|
260
|
+
)
|
|
261
|
+
)
|
|
262
|
+
)
|
|
263
|
+
return
|
|
264
|
+
|
|
265
|
+
if not findings:
|
|
266
|
+
return
|
|
267
|
+
click.echo(f"VERDICT: {verdict}")
|
|
268
|
+
for index, finding in enumerate(findings, 1):
|
|
269
|
+
members = [member["file"] for member in finding["members"]]
|
|
270
|
+
click.echo(f"\n cycle {index}: {' → '.join([*members, members[0]])}")
|
|
271
|
+
for edge in finding["closing_edges"]:
|
|
272
|
+
click.echo(f" closing edge: {edge['source']['file']} → {edge['target']['file']}")
|
|
273
|
+
names = ", ".join(symbol["name"] for symbol in edge["symbols"])
|
|
274
|
+
if names:
|
|
275
|
+
click.echo(f" symbols: {names}")
|
|
276
|
+
for recommendation in finding["recommendations"]:
|
|
277
|
+
click.echo(f" recommendation: {recommendation}")
|
|
@@ -57,7 +57,7 @@ from roam.rules.dataflow import collect_dataflow_findings
|
|
|
57
57
|
# older dead-export classifier shape (e.g. before scaffolding was
|
|
58
58
|
# recognised). Bump per the rules in roam.catalog.versions when the
|
|
59
59
|
# classifier or action verdict mapping changes meaningfully.
|
|
60
|
-
DEAD_DETECTOR_VERSION: str = "1.
|
|
60
|
+
DEAD_DETECTOR_VERSION: str = "1.1.0"
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
def _dead_finding_id(symbol_id: int, file_path: str, kind: str) -> str:
|
|
@@ -480,7 +480,7 @@ def _scaffolding_signals(docstring: str | None) -> dict | None:
|
|
|
480
480
|
}
|
|
481
481
|
|
|
482
482
|
|
|
483
|
-
def _dead_action(r, file_imported, tested=False):
|
|
483
|
+
def _dead_action(r, file_imported, tested=False, external_facing=False):
|
|
484
484
|
"""Compute actionable verdict and confidence % for a dead symbol.
|
|
485
485
|
|
|
486
486
|
Uses tiered confidence scoring (inspired by Vulture and Meta's dead
|
|
@@ -536,6 +536,12 @@ def _dead_action(r, file_imported, tested=False):
|
|
|
536
536
|
if tested:
|
|
537
537
|
return "REVIEW", 70
|
|
538
538
|
|
|
539
|
+
# Explicit package surfaces have legitimate consumers outside the
|
|
540
|
+
# indexed repository. Internal call-graph silence alone cannot make
|
|
541
|
+
# these symbols safe to delete.
|
|
542
|
+
if external_facing:
|
|
543
|
+
return "REVIEW", 70
|
|
544
|
+
|
|
539
545
|
# CLI command functions — loaded dynamically via LazyGroup/importlib
|
|
540
546
|
if base.startswith("cmd_") and kind == "function":
|
|
541
547
|
return "INTENTIONAL", 20
|
|
@@ -1052,6 +1058,12 @@ def _dead_reason(r, consumer_meta, file_import_meta, sibling_meta):
|
|
|
1052
1058
|
fmeta = file_import_meta.get(r["file_id"], {})
|
|
1053
1059
|
smeta = sibling_meta.get(r["file_id"], {})
|
|
1054
1060
|
test_consumers = cmeta.get("test_consumers", 0)
|
|
1061
|
+
public_surface_reason = cmeta.get("public_surface_reason")
|
|
1062
|
+
if public_surface_reason:
|
|
1063
|
+
test_clause = f"; used by {test_consumers} test consumer(s)" if test_consumers else ""
|
|
1064
|
+
return (
|
|
1065
|
+
f"external-facing public surface ({public_surface_reason}); no internal production consumers{test_clause}"
|
|
1066
|
+
)
|
|
1055
1067
|
if test_consumers:
|
|
1056
1068
|
return f"no production consumers; used by {test_consumers} test consumer(s)"
|
|
1057
1069
|
|
|
@@ -1164,6 +1176,10 @@ def _analyze_dead(conn):
|
|
|
1164
1176
|
return [], [], set(), {}, {}, {}
|
|
1165
1177
|
|
|
1166
1178
|
consumer_meta = _dead_consumer_meta(conn, [r["id"] for r in rows])
|
|
1179
|
+
from roam.commands.dead_public_surface import public_surface_reasons
|
|
1180
|
+
|
|
1181
|
+
for symbol_id, reason in public_surface_reasons(rows, find_project_root()).items():
|
|
1182
|
+
consumer_meta[symbol_id]["public_surface_reason"] = reason
|
|
1167
1183
|
rows = [r for r in rows if consumer_meta.get(r["id"], {}).get("production_consumers", 0) == 0]
|
|
1168
1184
|
if not rows:
|
|
1169
1185
|
return [], [], set(), consumer_meta, {}, {}
|
|
@@ -2439,6 +2455,7 @@ def dead(
|
|
|
2439
2455
|
r,
|
|
2440
2456
|
r["file_id"] in imported_files,
|
|
2441
2457
|
consumer_meta.get(r["id"], {}).get("test_consumers", 0) > 0,
|
|
2458
|
+
bool(consumer_meta.get(r["id"], {}).get("public_surface_reason")),
|
|
2442
2459
|
),
|
|
2443
2460
|
)
|
|
2444
2461
|
for r in all_items
|
|
@@ -2632,6 +2649,7 @@ def dead(
|
|
|
2632
2649
|
r,
|
|
2633
2650
|
r["file_id"] in imported_files,
|
|
2634
2651
|
consumer_meta.get(r["id"], {}).get("test_consumers", 0) > 0,
|
|
2652
|
+
bool(consumer_meta.get(r["id"], {}).get("public_surface_reason")),
|
|
2635
2653
|
)[0]
|
|
2636
2654
|
for r in items
|
|
2637
2655
|
]
|
|
@@ -2658,7 +2676,7 @@ def dead(
|
|
|
2658
2676
|
fmeta = file_import_meta.get(r["file_id"], {})
|
|
2659
2677
|
smeta = sibling_meta.get(r["file_id"], {})
|
|
2660
2678
|
tested = cmeta.get("test_consumers", 0) > 0
|
|
2661
|
-
action, confidence = _dead_action(r, file_imported, tested)
|
|
2679
|
+
action, confidence = _dead_action(r, file_imported, tested, bool(cmeta.get("public_surface_reason")))
|
|
2662
2680
|
scaffolding_evidence = _scaffolding_signals(r["docstring"] if "docstring" in r.keys() else None)
|
|
2663
2681
|
d = {
|
|
2664
2682
|
"name": r["name"],
|
|
@@ -2943,7 +2961,12 @@ def dead(
|
|
|
2943
2961
|
click.echo("Top dead symbols (high confidence):")
|
|
2944
2962
|
for r in high[:5]:
|
|
2945
2963
|
tested = consumer_meta.get(r["id"], {}).get("test_consumers", 0) > 0
|
|
2946
|
-
action, confidence = _dead_action(
|
|
2964
|
+
action, confidence = _dead_action(
|
|
2965
|
+
r,
|
|
2966
|
+
True,
|
|
2967
|
+
tested,
|
|
2968
|
+
bool(consumer_meta.get(r["id"], {}).get("public_surface_reason")),
|
|
2969
|
+
)
|
|
2947
2970
|
click.echo(
|
|
2948
2971
|
f" {action} {confidence}% {r['name']} {abbrev_kind(r['kind'])} {loc(r['file_path'], r['line_start'])}"
|
|
2949
2972
|
)
|
|
@@ -3072,7 +3095,12 @@ def dead(
|
|
|
3072
3095
|
table_rows = []
|
|
3073
3096
|
for r in high:
|
|
3074
3097
|
tested = consumer_meta.get(r["id"], {}).get("test_consumers", 0) > 0
|
|
3075
|
-
action, confidence = _dead_action(
|
|
3098
|
+
action, confidence = _dead_action(
|
|
3099
|
+
r,
|
|
3100
|
+
True,
|
|
3101
|
+
tested,
|
|
3102
|
+
bool(consumer_meta.get(r["id"], {}).get("public_surface_reason")),
|
|
3103
|
+
)
|
|
3076
3104
|
row = [
|
|
3077
3105
|
f"{action} {confidence}%",
|
|
3078
3106
|
r["name"],
|
|
@@ -3125,7 +3153,12 @@ def dead(
|
|
|
3125
3153
|
table_rows = []
|
|
3126
3154
|
for r in low:
|
|
3127
3155
|
tested = consumer_meta.get(r["id"], {}).get("test_consumers", 0) > 0
|
|
3128
|
-
action, confidence = _dead_action(
|
|
3156
|
+
action, confidence = _dead_action(
|
|
3157
|
+
r,
|
|
3158
|
+
False,
|
|
3159
|
+
tested,
|
|
3160
|
+
bool(consumer_meta.get(r["id"], {}).get("public_surface_reason")),
|
|
3161
|
+
)
|
|
3129
3162
|
row = [
|
|
3130
3163
|
f"{action} {confidence}%",
|
|
3131
3164
|
r["name"],
|