Skip to content

chore(deps): patch upgrade assert_cmd/blake3/tantivy/tokio#25

Merged
juice094 merged 22 commits into
mainfrom
chore/deps-patch-upgrade
May 12, 2026
Merged

chore(deps): patch upgrade assert_cmd/blake3/tantivy/tokio#25
juice094 merged 22 commits into
mainfrom
chore/deps-patch-upgrade

Conversation

@juice094
Copy link
Copy Markdown
Owner

安全 patch 升级,无 breaking changes 风险。验证:cargo test --all-targets 全绿 (448 passed)。

juice094 added 22 commits May 11, 2026 20:46
- Extend RegistryClient with save_relation, query_relations, delete_relations, list_vault_notes
- Add WorkflowClient trait (list_workflows, get_workflow, run_workflow, get_execution)
- Add VaultClient trait (list_vault_notes, read_vault_note, get_backlinks, build_vault_graph)
- Implement all traits on AppContext (registry.rs, workflow/mod.rs, vault/mod.rs)
- Enable AppContext Clone via Arc<Mutex<EnvVersionCache>> for spawn_blocking safety
- Refactor relations.rs, workflow.rs, vault.rs to use trait calls exclusively
- Eliminate all production-code inline crate:: calls in mcp/tools/ relations|workflow|vault
…inate loop-level I/O

- index_repo: accept Config by parameter instead of loading internally
- daemon.rs: load Config once before indexing loop
- run_index_with_progress: hoist Config::load() out of repo loop
- Extract prepare_repos() pure helper for path resolution / auto-registration
- Result: ~20 fewer inline crate:: calls, eliminated repeated disk I/O in hot loop
…xing

- Extract index_repo_core() with explicit writer/schema parameters
- index_repo() retains legacy behavior (creates standalone writer)
- Add index_repo_with_writer() for batch callers
- daemon.rs: init writer once before loop, commit once after loop
- Eliminates N-1 redundant Tantivy init/get_writer/commit cycles
- Add  rustdoc to 7 core modules:
  i18n, knowledge_engine, workflow, registry, storage, daemon, embedding
- Clarify  rationale in i18n/mod.rs
- Create ADR-004: MCP Tool Layer Trait Decoupling
- Create ADR-005: AppContext Clone for Async Context Propagation
- Update ADR index with ADR-003/004/005
- CONTRIBUTING.md: update health metrics to v0.15.0 / 427 tests / AGPL-3.0+
- SECURITY.md: update supported version to 0.15.x
- Create CODE_OF_CONDUCT.md (Contributor Covenant v2.0)
- Create SUPPORT.md (docs, issues, discussions, commercial support)
- Create .github/PULL_REQUEST_TEMPLATE.md with checklist
- Create .github/ISSUE_TEMPLATE/bug_report.md
- Create .github/ISSUE_TEMPLATE/feature_request.md
- Create .github/ISSUE_TEMPLATE/config.yml (disable blank issues)
- 修复 SCHEMA_DDL 缺失 repo_index_state 表(测试基础设施)
- 将 registry/test_helpers 可见性调整为 pub(跨模块测试共享)
- index.rs: 覆盖 prepare_repos (4 场景) + save_repo_index_state (1 场景)
- index_state.rs: 覆盖 get_repo_index_state (Missing/Fresh/Stale/Unknown)
  与 IndexState 行为方法 (is_fresh, changed_files_count)
- 全部 22 项新增测试本地通过,Clippy 零警告,fmt 已检查
GitHub Actions 将在 2026-09-16 移除 Node.js 20 支持。
actions/checkout@v6 基于 Node.js 24,消除 CI deprecation 警告。

- ci.yml: 6 处 checkout@v4 → v6
- release.yml: 1 处 checkout@v4 → v6
## 变更

- vault/indexer.rs: 提取  / ,
  解除对全局  的测试耦合
- 新增 4 项隔离测试(临时 Tantivy 索引,避免 writer 锁冲突):
  - : 空 notes 时清除旧 vault docs
  - : 从文件系统读取内容并索引
  - : 单条新增
  - : 单条更新(delete + add)
- search.rs: uid=197609(22414) gid=197609 groups=197609 field 从  → (精确匹配)
  - 修复生产缺陷: 分词导致  对含连字符/空格的 ID
    无法匹配,实际不生效
  - Schema mismatch 时  会自动重建索引

## 验证

-
running 425 tests
test arxiv::tests::test_parse_arxiv_atom_invalid_xml ... ok
test arxiv::tests::test_parse_arxiv_atom_missing_title ... ok
test arxiv::tests::test_parse_arxiv_atom_no_authors ... ok
test arxiv::tests::test_parse_arxiv_atom_success ... ok
test asyncgit::tests::test_async_notification_variants ... ok
test asyncgit::tests::test_async_repo_status_clone ... ok
test asyncgit::tests::test_async_single_job_new ... ok
test asyncgit::tests::test_repo_status_notification_clone ... ok
test asyncgit::tests::test_sync_progress_notification_clone ... ok
test backup::tests::test_backup_filename_contains_timestamp ... ok
test backup::tests::test_backup_filename_format ... ok
test backup::tests::test_clean_old_backups_removes_oldest ... ok
test backup::tests::test_export_sqlite_creates_file ... ok
test config::tests::test_config_custom_values ... ok
test config::tests::test_config_default ... ok
test config::tests::test_config_empty_uses_defaults ... ok
test config::tests::test_config_serialize_roundtrip ... ok
test daemon::tests::test_daemon_new ... ok
test dependency_graph::tests::test_parse_cargo_toml_deps ... ok
test dependency_graph::tests::test_parse_cmake_add_subdirectory_local ... ok
test dependency_graph::tests::test_parse_cmake_fetchcontent_declare ... ok
test dependency_graph::tests::test_parse_cmake_find_package ... ok
test dependency_graph::tests::test_parse_cmake_target_link_libraries ... ok
test dependency_graph::tests::test_parse_go_mod_deps ... ok
test dependency_graph::tests::test_parse_package_json_deps ... ok
test dependency_graph::tests::test_parse_pyproject_toml_deps ... ok
test dependency_graph::tests::test_parse_requirements_txt_deps ... ok
test digest::tests::test_generate_daily_digest_empty ... ok
test digest::tests::test_generate_daily_digest_with_repos ... ok
test digest::tests::test_generate_daily_digest_with_unhealthy_repo ... ok
test discovery_engine::tests::test_discover_dependencies_cargo ... ok
test discovery_engine::tests::test_discover_dependencies_no_manifest ... ok
test discovery_engine::tests::test_normalize_dep_name ... ok
test health::tests::test_compute_workspace_hash_changes_with_content ... ok
test health::tests::test_compute_workspace_hash_empty_dir ... ok
test health::tests::test_compute_workspace_hash_ignores_dirs ... ok
test health::tests::test_fmt_version_bun ... ok
test health::tests::test_fmt_version_cargo ... ok
test health::tests::test_fmt_version_cmake ... ok
test health::tests::test_fmt_version_docker ... ok
test health::tests::test_fmt_version_go ... ok
test health::tests::test_fmt_version_java ... ok
test health::tests::test_fmt_version_python ... ok
test health::tests::test_fmt_version_rustc ... ok
test health::tests::test_fmt_version_single_word ... ok
test health::tests::test_fmt_version_unknown ... ok
test i18n::en::tests::test_build ... ok
test i18n::tests::test_en_build ... ok
test i18n::tests::test_format_template_basic ... ok
test i18n::tests::test_format_template_extra_args_ignored ... ok
test i18n::tests::test_format_template_multiple ... ok
test i18n::tests::test_format_template_no_placeholder ... ok
test i18n::tests::test_from_language_en ... ok
test i18n::tests::test_log_strings_loaded_repos ... ok
test i18n::tests::test_log_strings_status_fmt ... ok
test i18n::tests::test_zh_build ... ok
test i18n::zh_cn::tests::test_build ... ok
test knowledge_engine::index::tests::test_prepare_repos_empty_path_returns_all ... ok
test knowledge_engine::index::tests::test_prepare_repos_matching_path_returns_one ... ok
test knowledge_engine::index::tests::test_prepare_repos_nonexistent_path_errors ... ok
test knowledge_engine::index::tests::test_prepare_repos_unregistered_existing_path_auto_registers ... ok
test knowledge_engine::index::tests::test_save_and_get_repo_index_state ... ok
test knowledge_engine::index_state::tests::test_get_repo_index_state_fresh ... ok
test knowledge_engine::index_state::tests::test_get_repo_index_state_missing ... ok
test knowledge_engine::index_state::tests::test_get_repo_index_state_stale ... ok
test knowledge_engine::index_state::tests::test_get_repo_index_state_unknown_not_git ... ok
test knowledge_engine::index_state::tests::test_index_state_is_fresh_and_changed_count ... ok
test knowledge_engine::index_state::tests::test_index_state_variants_serialize ... ok
test knowledge_engine::readme::tests::test_build_llm_prompt_contains_json_instruction ... ok
test knowledge_engine::readme::tests::test_extract_module_structure_for_devbase ... ok
test knowledge_engine::readme::tests::test_extract_module_structure_non_rust ... ok
test knowledge_engine::readme::tests::test_extract_readme_summary_basic ... ok
test knowledge_engine::readme::tests::test_extract_readme_summary_truncates_at_sentence ... ok
test knowledge_engine::readme::tests::test_extract_readme_summary_with_badges ... ok
test knowledge_engine::readme::tests::test_fallback_summary_cargo_toml ... ok
test knowledge_engine::readme::tests::test_module_info_clone ... ok
test knowledge_engine::readme::tests::test_parse_llm_json_markdown_fenced ... ok
test knowledge_engine::readme::tests::test_parse_llm_json_valid ... ok
test knowledge_engine::readme::tests::test_real_gitui_repo ... ignored, integration test on real gitui repo
test knowledge_engine::readme::tests::test_real_syncthing_repo ... ignored, integration test on real syncthing repo
test knowledge_engine::readme::tests::test_try_llm_summary_disabled_returns_none ... ok
test mcp::tests::test_destructive_gate_disabled_by_default ... ok
test mcp::tests::test_destructive_gate_enabled ... ok
test mcp::tests::test_format_mcp_message ... ok
test mcp::tests::test_initialize ... ok
test mcp::tests::test_nl_filter_repos_empty_query_returns_empty ... ok
test mcp::tests::test_nl_filter_repos_fallback_finds_by_language ... ok
test mcp::tests::test_nl_filter_repos_tantivy_finds_devbase ... ok
test mcp::tests::test_parse_tool_tiers ... ok
test mcp::tests::test_parse_tool_tiers_empty ... ok
test mcp::tests::test_stdio_content_length_format ... ok
test mcp::tests::test_tools_call_devkit_arxiv_fetch ... ok
test mcp::tests::test_tools_call_devkit_health ... ok
test mcp::tests::test_tools_call_devkit_project_context ... ok
test mcp::tests::test_tools_call_devkit_query ... ok
test mcp::tests::test_tools_call_devkit_skill_discover ... ok
test mcp::tests::test_tools_call_devkit_skill_list ... ok
test mcp::tests::test_tools_call_devkit_skill_run ... ignored, requires knowledge-report skill installed and may run external Python process
test mcp::tests::test_tools_call_devkit_skill_search ... ok
test mcp::tests::test_tools_call_unknown_tool ... ok
test mcp::tests::test_tools_list ... ok
test mcp::tests::test_unknown_method ... ok
test mcp::tools::context::tests::test_collect_hot_files_basic ... ok
test mcp::tools::context::tests::test_collect_hot_files_empty_repo ... ok
test mcp::tools::context::tests::test_collect_hot_files_no_git ... ok
test mcp::tools::context::tests::test_collect_recent_commits_basic ... ok
test mcp::tools::context::tests::test_collect_recent_commits_empty_repo ... ok
test mcp::tools::context::tests::test_collect_recent_commits_limit ... ok
test mcp::tools::context::tests::test_name ... ok
test mcp::tools::context::tests::test_schema_is_object ... ok
test mcp::tools::known_limit::tests::test_name ... ok
test mcp::tools::known_limit::tests::test_schema_is_object ... ok
test mcp::tools::oplog::tests::test_name ... ok
test mcp::tools::oplog::tests::test_schema_is_object ... ok
test mcp::tools::query::tests::test_name ... ok
test mcp::tools::query::tests::test_schema_is_object ... ok
test mcp::tools::relations::tests::test_relation_query_bidirectional ... ok
test mcp::tools::relations::tests::test_relation_store_and_query_roundtrip ... ok
test mcp::tools::relations::tests::test_relation_store_missing_required_fields ... ok
test mcp::tools::repo::tests::test_extract_tag_from_query ... ok
test mcp::tools::repo::tests::test_parse_github_repo_https ... ok
test mcp::tools::repo::tests::test_parse_github_repo_invalid ... ok
test mcp::tools::repo::tests::test_parse_github_repo_ssh ... ok
test mcp::tools::repo::tests::test_parse_stars_condition ... ok
test mcp::tools::search::tests::test_parse_f32_array ... ok
test mcp::tools::skill::tests::test_name ... ok
test mcp::tools::skill::tests::test_schema_is_object ... ok
test mcp::tools::tests::test_tool_modules_compile ... ok
test mcp::tools::vault::tests::test_resolve_vault_path_absolute_blocked ... ok
test mcp::tools::vault::tests::test_resolve_vault_path_dotdot_within_bounds ... ok
test mcp::tools::vault::tests::test_resolve_vault_path_empty ... ok
test mcp::tools::vault::tests::test_resolve_vault_path_nested ... ok
test mcp::tools::vault::tests::test_resolve_vault_path_normal ... ok
test mcp::tools::vault::tests::test_resolve_vault_path_performance ... ok
test mcp::tools::vault::tests::test_resolve_vault_path_traversal_blocked ... ok
test mcp::tools::vault::tests::test_resolve_vault_path_with_dot ... ok
test mcp::tools::vault::tests::test_vault_daily_appends_to_existing ... ok
test mcp::tools::vault::tests::test_vault_daily_creates_file ... ok
test mcp::tools::vault::tests::test_vault_graph_basic ... ok
test mcp::tools::vault::tests::test_vault_graph_filtered_by_repo ... ok
test mcp::tools::workflow::tests::test_workflow_list_empty_registry ... ok
test mcp::tools::workflow::tests::test_workflow_run_not_found ... ok
test mcp::tools::workflow::tests::test_workflow_status_invalid_id ... ok
test oplog_analytics::tests::test_generate_report_empty_db ... ok
test oplog_analytics::tests::test_generate_report_with_data ... ok
test query::tests::test_eval_behind_match ... ok
test query::tests::test_eval_behind_no_match ... ok
test query::tests::test_eval_keyword_match ... ok
test query::tests::test_eval_keyword_no_match ... ok
test query::tests::test_eval_note_match ... ok
test query::tests::test_eval_note_no_match ... ok
test query::tests::test_eval_stale_never_synced ... ok
test query::tests::test_eval_tag_match ... ok
test query::tests::test_eval_tag_no_match ... ok
test query::tests::test_parse_cmp_expr_empty ... ok
test query::tests::test_parse_cmp_expr_eq_implicit ... ok
test query::tests::test_parse_cmp_expr_gt ... ok
test query::tests::test_parse_query_behind ... ok
test query::tests::test_parse_query_keyword ... ok
test query::tests::test_parse_query_lang ... ok
test query::tests::test_parse_query_multiple ... ok
test query::tests::test_parse_query_note ... ok
test query::tests::test_parse_query_stale ... ok
test query::tests::test_parse_query_tag ... ok
test registry::code_symbols::tests::test_query_code_symbols_by_file ... ok
test registry::code_symbols::tests::test_query_code_symbols_by_name ... ok
test registry::code_symbols::tests::test_query_code_symbols_by_symbol_type ... ok
test registry::code_symbols::tests::test_query_code_symbols_limit ... ok
test registry::code_symbols::tests::test_query_code_symbols_no_filter ... ok
test registry::dead_code::tests::test_query_dead_code_basic ... ok
test registry::dead_code::tests::test_query_dead_code_excludes_called ... ok
test registry::dead_code::tests::test_query_dead_code_excludes_main ... ok
test registry::dead_code::tests::test_query_dead_code_excludes_pub_when_not_include_pub ... ok
test registry::dead_code::tests::test_query_dead_code_excludes_test_attribute ... ok
test registry::dead_code::tests::test_query_dead_code_excludes_test_prefix ... ok
test registry::dead_code::tests::test_query_dead_code_excludes_tests_rs ... ok
test registry::knowledge::tests::test_cross_repo_search_symbols ... ok
test registry::knowledge::tests::test_find_papers_by_venue ... ok
test registry::knowledge::tests::test_find_related_symbols ... ok
test registry::knowledge::tests::test_module_crud ... ok
test registry::knowledge::tests::test_paper_roundtrip ... ok
test registry::knowledge::tests::test_save_embeddings ... ok
test registry::knowledge::tests::test_save_summary_smoke ... ok
test registry::knowledge::tests::test_semantic_search_symbols ... ok
test registry::knowledge::tests::test_symbol_read_tracking ... ok
test registry::knowledge_meta::tests::test_knowledge_meta_crud ... ok
test registry::known_limits::tests::test_known_limit_crud ... ok
test registry::known_limits::tests::test_list_known_limits_by_category ... ok
test registry::links::tests::test_get_linked_repos ... ok
test registry::links::tests::test_get_linked_repos_empty ... ok
test registry::links::tests::test_get_linked_repos_full ... ok
test registry::links::tests::test_get_linked_vault_notes ... ok
test registry::links::tests::test_get_linked_vaults ... ok
test registry::migrate::tests::test_db_path_format ... ok
test registry::migrate::tests::test_workspace_dir_format ... ok
test registry::repo::tests::test_list_repos_empty ... ok
test registry::repo::tests::test_list_repos_need_index ... ok
test registry::repo::tests::test_list_repos_stale_health ... ok
test registry::repo::tests::test_list_workspaces_by_tier ... ok
test registry::repo::tests::test_save_and_list_repo ... ok
test registry::repo::tests::test_save_repo_updates_existing ... ok
test registry::repo::tests::test_save_repo_with_remotes ... ok
test registry::repo::tests::test_save_repo_with_stars ... ok
test registry::repo::tests::test_save_repo_with_tags ... ok
test registry::repo::tests::test_update_repo_language ... ok
test registry::repo::tests::test_update_repo_last_synced_at ... ok
test registry::repo::tests::test_update_repo_tier ... ok
test registry::repo::tests::test_update_repo_workspace_type ... ok
test registry::repos_toml::tests::test_apply_overrides ... ok
test registry::repos_toml::tests::test_parse_repos_toml ... ok
test registry::test_helpers::tests::test_in_memory_schema_version ... ok
test registry::test_helpers::tests::test_knowledge_meta_table_exists ... ok
test registry::test_helpers::tests::test_known_limits_table_exists ... ok
test registry::test_helpers::tests::test_workflow_executions_table_exists ... ok
test registry::tests::test_dead_code_excludes_pub_variants_and_main ... ok
test registry::tests::test_dead_code_include_pub ... ok
test registry::tests::test_oplog_event_type_roundtrip ... ok
test registry::tests::test_oplog_migration_compat ... ok
test registry::tests::test_oplog_save_and_list ... ok
test registry::tests::test_primary_remote_fallback_to_first ... ok
test registry::tests::test_primary_remote_none ... ok
test registry::tests::test_primary_remote_prefers_origin ... ok
test registry::tests::test_stars_cache_miss ... ok
test registry::tests::test_stars_cache_roundtrip ... ok
test registry::tests::test_stars_cache_update ... ok
test registry::vault::tests::test_delete_vault_note ... ok
test registry::vault::tests::test_list_vault_notes_empty ... ok
test registry::vault::tests::test_save_and_list_vault_note ... ok
test scan::tests::test_detect_language_cpp ... ok
test scan::tests::test_detect_language_go ... ok
test scan::tests::test_detect_language_node ... ok
test scan::tests::test_detect_language_none ... ok
test scan::tests::test_detect_language_python_pyproject ... ok
test scan::tests::test_detect_language_python_requirements ... ok
test scan::tests::test_detect_language_rust ... ok
test scan::tests::test_discover_repos_devbase_ignore ... ok
test scan::tests::test_discover_repos_excludes_paths ... ok
test scan::tests::test_discover_repos_excludes_patterns ... ok
test scan::tests::test_discover_repos_finds_non_git_workspaces ... ok
test scan::tests::test_inspect_non_git_workspace_generic ... ok
test scan::tests::test_inspect_non_git_workspace_openclaw ... ok
test scan::tests::test_is_excluded_path_sync_context ... ok
test scan::tests::test_is_nested_submodule_false ... ok
test scan::tests::test_is_nested_submodule_true ... ok
test scan::tests::test_normal_tags ... ok
test scan::tests::test_parse_github_owner_repo_https ... ok
test scan::tests::test_parse_github_owner_repo_invalid ... ok
test scan::tests::test_parse_github_owner_repo_non_github ... ok
test scan::tests::test_parse_github_owner_repo_ssh ... ok
test scan::tests::test_zip_snapshot_tags_main ... ok
test scan::tests::test_zip_snapshot_tags_master ... ok
test search::hybrid::tests::test_hybrid_search_fallback_to_keyword ... ok
test search::hybrid::tests::test_keyword_search_basic ... ok
test search::hybrid::tests::test_rrf_merge_empty_lists ... ok
test search::hybrid::tests::test_rrf_merge_single_list_passthrough ... ok
test search::hybrid::tests::test_rrf_merge_two_lists ... ok
test search::symbol_index::tests::test_add_and_search_symbol ... ok
test search::symbol_index::tests::test_delete_repo_symbols ... ok
test search::symbol_index::tests::test_search_signature_match ... ok
test search::tests::test_add_and_search_repo ... ok
test search::tests::test_add_vault_doc ... ok
test search::tests::test_build_schema ... ok
test search::tests::test_delete_repo_doc ... ok
test search::tests::test_index_is_empty ... ok
test search::tests::test_list_indexed_repo_ids ... ok
test search::tests::test_search_repos ... ok
test search::tests::test_search_vault ... ok
test search::tests::test_sync_index_to_db_removes_orphans ... ok
test semantic_index::git_diff::tests::test_current_head_hash_after_commit ... ok
test semantic_index::git_diff::tests::test_current_head_hash_empty_repo ... ok
test semantic_index::git_diff::tests::test_diff_since_deleted_file ... ok
test semantic_index::git_diff::tests::test_diff_since_no_changes ... ok
test semantic_index::git_diff::tests::test_diff_since_none_first_index ... ok
test semantic_index::git_diff::tests::test_diff_since_with_last_hash ... ok
test semantic_index::git_diff::tests::test_diff_since_workdir_modification ... ok
test semantic_index::git_diff::tests::test_diff_since_workdir_untracked ... ok
test semantic_index::symbol::tests::test_extract_rust_attributes ... ok
test semantic_index::tests::test_extract_go_const ... ok
test semantic_index::tests::test_extract_go_function ... ok
test semantic_index::tests::test_extract_go_method ... ok
test semantic_index::tests::test_extract_go_struct_and_interface ... ok
test semantic_index::tests::test_extract_js_function ... ok
test semantic_index::tests::test_extract_multiple_rust ... ok
test semantic_index::tests::test_extract_python_class ... ok
test semantic_index::tests::test_extract_python_function ... ok
test semantic_index::tests::test_extract_python_multiple ... ok
test semantic_index::tests::test_extract_rust_function ... ok
test semantic_index::tests::test_extract_rust_struct ... ok
test semantic_index::tests::test_extract_ts_class_and_interface ... ok
test semantic_index::tests::test_extract_ts_enum ... ok
test semantic_index::tests::test_index_repo_full ... ok
test semantic_index::tests::test_save_calls ... ok
test semantic_index::tests::test_save_symbols ... ok
test skill_runtime::clarity_sync::tests::test_conflict_resolution_skips_older_devbase_skill ... ok
test skill_runtime::clarity_sync::tests::test_conflict_resolution_updates_when_devbase_newer ... ok
test skill_runtime::clarity_sync::tests::test_sync_skills_to_clarity ... ok
test skill_runtime::dependency::tests::test_detect_cycle_direct ... ok
test skill_runtime::dependency::tests::test_detect_cycle_none ... ok
test skill_runtime::dependency::tests::test_resolve_cycle_fails ... ok
test skill_runtime::dependency::tests::test_resolve_topological_order ... ok
test skill_runtime::dependency::tests::test_validate_dependencies_all_satisfied ... ok
test skill_runtime::dependency::tests::test_validate_dependencies_missing ... ok
test skill_runtime::discover::tests::test_generate_entry_script_node ... ok
test skill_runtime::discover::tests::test_generate_entry_script_python ... ok
test skill_runtime::discover::tests::test_generate_entry_script_rust ... ok
test skill_runtime::discover::tests::test_generate_skill_md_structure ... ok
test skill_runtime::executor::tests::test_hard_veto_guard_empty_registry ... ok
test skill_runtime::executor::tests::test_hard_veto_guard_with_unresolved_vetoes ... ok
test skill_runtime::executor::tests::test_resolve_interpreter_binary ... ok
test skill_runtime::executor::tests::test_resolve_interpreter_powershell ... ok
test skill_runtime::executor::tests::test_resolve_interpreter_python ... ok
test skill_runtime::executor::tests::test_resolve_interpreter_shell ... ok
test skill_runtime::executor::tests::test_run_skill_not_found ... ok
test skill_runtime::executor::tests::test_run_skill_success ... ok
test skill_runtime::publish::tests::test_get_default_remote_fallback ... ok
test skill_runtime::publish::tests::test_get_default_remote_origin ... ok
test skill_runtime::publish::tests::test_push_tag_no_remote ... ok
test skill_runtime::publish::tests::test_push_tag_success_to_bare_remote ... ok
test skill_runtime::registry::tests::test_execution_tracking ... ok
test skill_runtime::registry::tests::test_install_and_get_skill ... ok
test skill_runtime::registry::tests::test_list_skills_by_type ... ok
test skill_runtime::registry::tests::test_search_skills_text ... ok
test skill_runtime::registry::tests::test_uninstall_skill ... ok
test skill_runtime::scoring::tests::test_calculate_scores ... ok
test skill_runtime::scoring::tests::test_recalculate_all ... ok
test skill_runtime::scoring::tests::test_recommend_skills ... ok
test skill_sync::tests::test_convert_to_skill ... ok
test skill_sync::tests::test_extract_description_long ... ok
test skill_sync::tests::test_extract_description_short ... ok
test skill_sync::tests::test_extract_description_skips_heading ... ok
test storage::tests::test_app_context_with_temp_storage ... ok
test storage::tests::test_repair_tantivy_consistency_detects_orphan ... ok
test sync::orchestrator::tests::test_sync_orchestrator_new ... ok
test sync::policy::tests::test_classify_sync_error ... ok
test sync::policy::tests::test_recommend_sync_action ... ok
test sync::policy::tests::test_sync_policy_capabilities ... ok
test sync::policy::tests::test_sync_policy_from_tags ... ok
test sync::tasks::tests::test_map_action_known ... ok
test sync::tasks::tests::test_map_action_unknown ... ok
test sync::tasks::tests::test_write_syncdone_marker ... ok
test sync::tests::test_assess_safety_blocked_dirty ... ok
test sync::tests::test_assess_safety_blocked_diverged_conservative ... ok
test sync::tests::test_assess_safety_diverged_rebase_allowed ... ok
test sync::tests::test_assess_safety_no_upstream ... ok
test sync::tests::test_assess_safety_safe_ff ... ok
test sync::tests::test_assess_safety_up_to_date ... ok
test sync::tests::test_collect_tasks_default_mode_excludes_untagged ... ok
test sync::tests::test_collect_tasks_default_mode_includes_known_tags ... ok
test sync::tests::test_collect_tasks_explicit_filter_includes_untagged ... ok
test sync::tests::test_map_action ... ok
test sync::tests::test_perform_merge_fast_forward ... ok
test sync::tests::test_perform_merge_up_to_date ... ok
test sync::tests::test_sync_repo_skip_no_syncdone ... ok
test sync::tests::test_write_syncdone_marker ... ok
test tui::event::tests::test_tui_action_variants ... ok
test tui::layout::tests::test_layout_centered ... ok
test tui::layout::tests::test_layout_compact ... ok
test tui::layout::tests::test_layout_inner ... ok
test tui::layout::tests::test_layout_standard ... ok
test tui::layout::tests::test_layout_wide ... ok
test tui::render::detail::tests::test_overview_status_desc ... ok
test tui::render::detail::tests::test_overview_status_icon ... ok
test tui::render::detail::tests::test_sync_policy_color ... ok
test tui::render::help::tests::test_help_section_empty ... ok
test tui::render::help::tests::test_help_section_with_bindings ... ok
test tui::render::list::tests::test_repo_status_fg ... ok
test tui::render::list::tests::test_repo_status_icon ... ok
test tui::render::logs::tests::test_format_log_line_plain ... ok
test tui::render::logs::tests::test_format_log_line_with_timestamp ... ok
test tui::render::popups::tests::test_search_results_title_empty ... ok
test tui::render::popups::tests::test_search_results_title_with_results ... ok
test tui::render::tests::test_read_repo_summary_found ... ok
test tui::render::tests::test_read_repo_summary_missing ... ok
test tui::render::tests::test_read_syncdone_info_missing ... ok
test tui::render::tests::test_read_syncdone_info_valid ... ok
test tui::state::tests::test_run_nlp_selected_skill_empty_results ... ok
test tui::tests::test_detail_tab_label ... ok
test tui::tests::test_main_view_toggle ... ok
test tui::tests::test_search_mode_label ... ok
test tui::tests::test_sort_mode_toggle ... ok
test tui::theme::tests::test_styles_from_dark_theme ... ok
test tui::theme::tests::test_theme_dark_colors ... ok
test tui::theme::tests::test_theme_default_is_dark ... ok
test tui::theme::tests::test_theme_light_colors ... ok
test vault::backlinks::tests::test_backlink_index_basic ... ok
test vault::fs_io::tests::test_read_note_body_with_frontmatter ... ok
test vault::fs_io::tests::test_read_note_body_without_frontmatter ... ok
test vault::fs_io::tests::test_read_note_content ... ok
test vault::fs_io::tests::test_read_note_content_missing ... ok
test vault::indexer::tests::test_index_vault_note_core_add ... ok
test vault::indexer::tests::test_index_vault_note_core_update ... ok
test vault::indexer::tests::test_reindex_vault_core_empty ... ok
test vault::indexer::tests::test_reindex_vault_core_with_notes ... ok
test vault::scanner::tests::test_scan_vault_basic ... ok
test vault::scanner::tests::test_scan_vault_empty_dir ... ok
test vault::scanner::tests::test_scan_vault_missing_dir ... ok
test watch::tests::test_folder_scheduler_degrades_to_scan ... ok
test watch::tests::test_folder_scheduler_first_run ... ok
test watch::tests::test_folder_scheduler_incremental_no_change ... ok
test watch::tests::test_watch_aggregator_dedup ... ok
test workflow::executor::tests::test_condition_step_false ... ok
test workflow::executor::tests::test_condition_step_true ... ok
test workflow::executor::tests::test_loop_body_continue ... ok
test workflow::executor::tests::test_loop_body_fallback ... ok
test workflow::executor::tests::test_loop_empty_collection ... ok
test workflow::executor::tests::test_loop_failure ... ok
test workflow::executor::tests::test_loop_multi_iteration ... ok
test workflow::executor::tests::test_loop_single_iteration ... ok
test workflow::executor::tests::test_parallel_step ... ok
test workflow::executor::tests::test_subworkflow_step ... ok
test workflow::parser::tests::test_parse_basic_workflow ... ok
test workflow::parser::tests::test_parse_invalid_id ... ok
test workflow::scheduler::tests::test_linear_schedule ... ok
test workflow::scheduler::tests::test_parallel_schedule ... ok
test workflow::scheduler::tests::test_transitive_deps ... ok
test workflow::scheduler::tests::test_transitive_deps_leaf ... ok
test workflow::state::tests::test_create_and_update_execution ... ok
test workflow::state::tests::test_end_to_end_workflow_lifecycle ... ok
test workflow::state::tests::test_save_and_get_workflow ... ok
test workflow::validator::tests::test_cycle_detected ... ok
test workflow::validator::tests::test_loop_body_duplicate_global_id ... ok
test workflow::validator::tests::test_loop_body_missing_dep ... ok
test workflow::validator::tests::test_loop_body_valid ... ok
test workflow::validator::tests::test_missing_dep ... ok
test workflow::validator::tests::test_valid_dag ... ok

test result: ok. 422 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 10.73s

running 7 tests
test commands::limit::tests::test_run_limit_delete_not_found ... ok
test commands::limit::tests::test_run_limit_seed_and_list_json ... ok
test commands::simple::tests::test_run_vault_list_empty ... ok
test commands::skill::tests::test_run_skill_list_empty ... ok
test commands::skill::tests::test_run_skill_uninstall_not_found ... ok
test commands::workflow::tests::test_run_workflow_delete_not_found ... ok
test commands::workflow::tests::test_run_workflow_list_empty ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s

running 11 tests
test test_backup_export ... ok
test test_health_empty_registry ... ok
test test_limit_add_and_list ... ok
test test_limit_list_empty ... ok
test test_registry_backups_empty ... ok
test test_scan_git_repo ... ok
test test_skill_discover ... ok
test test_skill_list_empty ... ok
test test_sync_skips_unmanaged_repo ... ok
test test_tag_enables_sync ... ok
test test_version ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.48s

Testing save_repo
Success

Testing list_repos_500
Success

Testing get_health
Success

Testing format_mcp_message
Success

Testing index_repo_full/scale/small
Success
Testing index_repo_full/scale/medium
Success
Testing index_repo_full/scale/full
Success

Testing cosine_similarity/dim/128
Success
Testing cosine_similarity/dim/512
Success
Testing cosine_similarity/dim/768
Success

Testing extract_symbols/lang/rust
Success
Testing extract_symbols/lang/python
Success
Testing extract_symbols/lang/go
Success

Testing parse_cmake_lists/complex
Success

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s 440 passed / 0 failed
-  零警告
-  通过
覆盖 5 个数据库操作函数:
- save_symbols: 批量替换旧数据
- save_symbols_incremental: 增量追加
- delete_symbols_for_files: 按文件删除 symbols + calls
- save_calls: 批量替换旧 calls
- save_calls_incremental: 增量追加 calls

使用 WorkspaceRegistry::init_in_memory() 提供隔离测试环境,
通过 SQL COUNT 查询验证数据库状态。
- test_discover_dependencies_package_json: 覆盖 npm 依赖发现路径
- test_discover_dependencies_go_mod: 覆盖 Go module 依赖发现路径
- test_discover_similar_projects: 覆盖 repo_summaries 关键词 Jaccard 相似度计算
- assert_cmd 2.2.1 → 2.2.2
- blake3 1.8.4 → 1.8.5
- tantivy 0.26.0 → 0.26.1
- tokio 1.52.1 → 1.52.3

验证: cargo test --all-targets 全绿 (448 passed)
@juice094 juice094 merged commit c75e1c3 into main May 12, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant