kenaz 0.3.21 → 0.3.23
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.
- package/core/.claude/commands/Ansuz.md +2 -0
- package/core/.claude/hooks/__tests__/peer-session-fill.test.js +37 -0
- package/core/.claude/hooks/_ansuz-conversation.js +32 -1
- package/core/.claude/hooks/_user-scope.js +1 -1
- package/core/.claude/hooks/core-resolve.js +1 -1
- package/core/.claude/hooks/peer-optin.test.js +74 -0
- package/core/.claude/hooks/peer-session-fill.js +38 -0
- package/core/.claude/hooks/turn-context.js +5 -4
- package/core/.claude/hooks/worktree-create.js +6 -6
- package/core/.claude/hooks/worktree-remove.js +4 -4
- package/core/.claude/settings.json +9 -0
- package/core/.collaboration/core/reconcile.js +16 -1
- package/core/.collaboration/core/task-2467-lifecycle.test.js +63 -0
- package/core/.collaboration/core/task-api.js +37 -7
- package/core/.formation/bifrost/launch.js +1 -1
- package/core/.formation/bifrost/openai/codex-hook-shim.js +21 -4
- package/core/.formation/bifrost/openai/codex-peer-pull.test.js +42 -0
- package/core/.formation/bifrost/provider-launch.js +2 -1
- package/core/.formation/tools/kenaz-stats.js +1 -1
- package/core/.formation/tools/post-complete/git-merge.js +1 -1
- package/core/.formation/tools/prompt.js +1 -1
- package/core/.kenaz/specialist/ansuz_rules.yaml +7 -51
- package/core/.kenaz/specialist/ansuz_session_handoff.schema.json +2 -6
- package/core/.rule/general/project-self-containment.yaml +2 -2
- package/core/.specialist/Amelia/README.md +1 -1
- package/core/.specialist/Amelia/rule.yaml +1 -1
- package/core/.specialist/Ansuz/RULES.md +1 -1
- package/core/.specialist/Ansuz/concepts/commitment_layer.yaml +1 -1
- package/core/.specialist/Ansuz/concepts/evolvable_guardrails.yaml +1 -1
- package/core/.specialist/Ansuz/knowledge.yaml +1 -3
- package/core/.specialist/tools/__tests__/task-2409-lessons.test.js +10 -0
- package/core/.specialist/tools/__tests__/task-2427-harvest.test.js +25 -0
- package/core/.specialist/tools/ansuz-boot-fast.js +1 -1
- package/core/.specialist/tools/failure-detector.js +4 -4
- package/core/.specialist/tools/handoff-doc.js +1 -1
- package/core/.specialist/tools/lessons.js +2 -2
- package/core/CLAUDE.md +5 -5
- package/core/KENAZ_CORE_VERSION +1 -1
- package/core/dashboard/scripts/install-kenaz-cli.js +471 -0
- package/core/dev/scripts/check-file-size.js +1 -1
- package/core/dev/scripts/ci-feedback.js +1 -1
- package/core/dev/scripts/gc-agent-worktrees.js +11 -11
- package/core/dev/scripts/kenaz-session.js +3 -3
- package/core/dev/scripts/peer-identity-e2e.js +3 -3
- package/core/dev/scripts/run-rust-tests.js +2 -2
- package/core/dev/scripts/skill-routing-replay.js +3 -3
- package/core/dev/scripts/task1961/selftest.js +2 -2
- package/core/dev/scripts/windows-hide-guard.test.js +97 -0
- package/core/plugins/kenaz/commands/Ansuz.md +2 -0
- package/core/plugins/kenaz/guidance.md +2 -0
- package/core/plugins/kenaz/hooks/core-resolve.js +1 -1
- package/core/plugins/kenaz/hooks/hooks.json +9 -0
- package/core/plugins/kenaz/hooks/kenaz-hook.js +53 -4
- package/core/plugins/kenaz/scripts/kenaz.test.js +72 -5
- package/core/plugins/kenaz/scripts/ygg.js +40 -4
- package/core/plugins/kenaz/scripts/ygg.test.js +63 -3
- package/core/plugins/kenaz-peer/hooks/register.test.ts +59 -2
- package/core/plugins/kenaz-peer/hooks/register.ts +24 -1
- package/lib/cli.js +9 -5
- package/package.json +6 -6
- package/vendor/install-kenaz-cli.js +21 -6
- package/core/.kenaz/designs/METAPLASTICITY_CONFIDENCE_DESIGN.md +0 -537
- package/core/.kenaz/designs/REFLEX_INITIATOR_DESIGN.md +0 -501
- package/core/.kenaz/designs/TASK_1385_handoff_mcp_design.md +0 -426
- package/core/.kenaz/designs/TASK_932_hippocampus_consolidation.md +0 -103
- package/core/.kenaz/designs/TASK_934_efe_signal_engine.md +0 -97
- package/core/.kenaz/designs/TASK_935_self_evolution_framework.md +0 -154
- package/core/.kenaz/designs/VISION_cognitive_architecture_roadmap.md +0 -159
- package/core/.kenaz/designs/metaplasticity_simulation_results.json +0 -696
- package/core/.kenaz/main-memory/README.md +0 -230
- package/core/.kenaz/main-memory/kenaz/cortex/001_cortex_overview.md +0 -168
- package/core/.kenaz/main-memory/kenaz/cortex/001_rag_engine_overview.md +0 -30
- package/core/.kenaz/main-memory/kenaz/memory-system/001_three_tier_architecture.md +0 -361
- package/core/.kenaz/main-memory/kenaz/pipeline/001_task_execution_flow.md +0 -117
- package/core/.kenaz/main-memory/kenaz/pipeline/001_task_granularity.md +0 -154
- package/core/.kenaz/main-memory/kenaz/pipeline/002_team_priority.md +0 -51
- package/core/.kenaz/main-memory/kenaz/pipeline/003_feature_id_system.md +0 -46
- package/core/.kenaz/main-memory/kenaz/rules/001_gen_007_self_containment.md +0 -108
- package/core/.kenaz/main-memory/kenaz/rules/001_rule_priority_system.md +0 -121
- package/core/.kenaz/main-memory/kenaz/rules/002_agt_006_pre_check.md +0 -0
- package/core/.kenaz/main-memory/kenaz/rules/003_ppl_002_task_archival.md +0 -48
- package/core/.kenaz/main-memory/kenaz/system/001_dual_track_task_system.md +0 -197
- package/core/.kenaz/main-memory/knowledge/patterns/001_json_bom_issue.md +0 -78
- package/core/.kenaz/main-memory/knowledge/patterns/001_leader_worker_pattern.md +0 -0
- package/core/.kenaz/main-memory/knowledge/patterns/002_scope_path_conflict.md +0 -115
- package/core/.kenaz/main-memory/knowledge/patterns/002_task_dependency_resolution.md +0 -223
- package/core/.kenaz/main-memory/knowledge/patterns/003_question_protocol.md +0 -242
- package/core/.kenaz/main-memory/knowledge/patterns/004_user_insight_value.md +0 -111
- package/core/.kenaz/main-memory/knowledge/patterns/005_file_lock_pattern.md +0 -274
- package/core/.kenaz/main-memory/knowledge/references/001_ppl_rules.md +0 -28
- package/core/.kenaz/main-memory/knowledge/solutions/001_json_bom_issue.md +0 -137
- package/core/.kenaz/main-memory/knowledge/solutions/001_team_invocation.md +0 -0
- package/core/.kenaz/main-memory/knowledge/solutions/002_passive_monitoring.md +0 -0
- package/core/.kenaz/main-memory/knowledge/solutions/003_windows_file_race_condition.md +0 -239
- package/core/.kenaz/main-memory/registry.json +0 -326
- package/core/.kenaz/main-memory/version.yaml +0 -58
- package/core/.kenaz/specialist/memory_guard_fired.json +0 -1
- package/core/.kenaz/specialist/memory_guard_trigger_cache.json +0 -1
- package/core/.kenaz/specialist/memory_source_priority.yaml +0 -260
- package/core/.kenaz/specialist/prompt_1775.txt +0 -317
- package/core/.kenaz/specialist/prompt_1776.txt +0 -326
- package/core/.kenaz/specialist/prompt_1791.txt +0 -320
- package/core/.kenaz/specialist/prompt_1792.txt +0 -320
- package/core/.kenaz/specialist/prompt_1795.txt +0 -281
- package/core/.kenaz/specialist/prompt_1813.txt +0 -332
- package/core/.kenaz/specialist/prompt_1814.txt +0 -401
- package/core/.kenaz/specialist/prompt_1815.txt +0 -394
- package/core/.kenaz/specialist/prompt_1816.txt +0 -437
- package/core/.kenaz/specialist/prompt_1818.txt +0 -361
- package/core/.kenaz/specialist/prompt_1819.txt +0 -421
- package/core/.kenaz/specialist/prompt_1821.txt +0 -345
- package/core/.kenaz/specialist/prompt_1822.txt +0 -313
- package/core/.kenaz/specialist/prompt_1824.txt +0 -348
- package/core/.kenaz/specialist/prompt_1826.txt +0 -388
- package/core/.kenaz/specialist/rune_efe_salience_gap.md +0 -21
- package/core/.kenaz/specialist/task1825_update.json +0 -43
- package/core/.kenaz/specialist/taskgen/consolidation_i.json +0 -38
- package/core/.kenaz/specialist/taskgen/csharp_a.json +0 -44
- package/core/.kenaz/specialist/taskgen/csharp_b.json +0 -40
- package/core/.kenaz/specialist/taskgen/embedding_e.json +0 -34
- package/core/.kenaz/specialist/taskgen/hygiene_fg.json +0 -39
- package/core/.kenaz/specialist/taskgen/pathology_h.json +0 -36
- package/core/.kenaz/specialist/taskgen/unity_noise_d.json +0 -38
- package/core/.kenaz/specialist/taskgen/visibility_c.json +0 -38
- package/core/.specialist/Ansuz/decisions/ADR-requirement-graph-layer.md +0 -390
- package/core/.specialist/Ansuz/self_model_seed.backup.json +0 -100
- package/core/.specialist/ansuz_session_handoff.json +0 -96
- package/core/dev/ALAYA_FIELD_FEEDBACK_DESIGN.md +0 -126
- package/core/dev/ANSUZ_SCAFFOLD_DIET_2026-09-20.md +0 -231
- package/core/dev/ANSUZ_STARTUP_INJECTION_REVIEW.md +0 -355
- package/core/dev/ANSUZ_WORKFLOW_MODERNIZATION.md +0 -143
- package/core/dev/CORTEX_META_GRAPH_ASSESSMENT.md +0 -99
- package/core/dev/FREYA_DOWNSTREAM_BUGS_2026-09-19.md +0 -44
- package/core/dev/GLOBAL_MEMORY_IDENTITY_CONSOLIDATION.md +0 -263
- package/core/dev/GUARD_EFFECTIVENESS_DESIGN.md +0 -180
- package/core/dev/HEALTH_GATE_VARIANCE_ASSESSMENT.md +0 -271
- package/core/dev/HOOK_DIET_2026-09-21.md +0 -126
- package/core/dev/JEV_INTEGRATION_PLAN.md +0 -189
- package/core/dev/KENAZ_AGENT_CONNECT_v1_SPEC.md +0 -139
- package/core/dev/MOBILE_DESIGN_SPEC.md +0 -569
- package/core/dev/MULTI_ANSUZ_SPEC.md +0 -136
- package/core/dev/MUNINN_RETIREMENT.md +0 -115
- package/core/dev/PHASE3_ATTRIBUTION_POPULATION_DIAGNOSIS.md +0 -211
- package/core/dev/PHASE3_P3-2B_TASKLEVEL_PROBE.md +0 -83
- package/core/dev/PHASE3_P3-2_POPULATION_DISJOINTNESS.md +0 -83
- package/core/dev/PHASE3_P3-2_REMEASURE_REPORT.md +0 -231
- package/core/dev/PREDICTION_GROUNDING_DESIGN.md +0 -376
- package/core/dev/PRODUCT_SPEC.md +0 -317
- package/core/dev/PROJECT_REGISTRY_DUPLICATE_ASSESSMENT.md +0 -86
- package/core/dev/STARTUP_TIMELINE_TASK_1995.md +0 -181
- package/core/dev/SYNAPSE_WORKER_PER_PROJECT.md +0 -881
- package/core/dev/TASK_1680_P3-3_DISPATCH_SPEC.md +0 -96
- package/core/dev/TASK_1684_CALIBRATION_IMPACT_ANALYSIS.md +0 -170
- package/core/dev/TASK_1684_FORK_A_GOODHART_DESIGN.md +0 -171
- package/core/dev/TASK_1684_P3_2_REMEASURE_VALIDATION.md +0 -262
- package/core/dev/TASK_1903_SIGNAL_AUC_MEASUREMENT.md +0 -207
- package/core/dev/TASK_1904_BRANCH_INTEGRITY_AUDIT.md +0 -146
- package/core/dev/ansuz-eval/README.md +0 -38
- package/core/dev/ansuz-eval/build-fixtures.js +0 -87
- package/core/dev/ansuz-eval/grade.js +0 -96
- package/core/dev/ansuz-eval/grader.test.js +0 -117
- package/core/dev/ansuz-eval/tasks.md +0 -32
- package/core/dev/archive/ansuz/BOOT_FULL.md +0 -141
- package/core/dev/archive/ansuz/agents/ansuz-boot.md +0 -176
- package/core/dev/archive/ansuz/designs/alaya-passive-surfacing.md +0 -84
- package/core/dev/archive/ansuz/designs/cc_memory_indexing.md +0 -307
- package/core/dev/archive/ansuz/designs/check_guard.md +0 -322
- package/core/dev/archive/ansuz/designs/consequence_loop.md +0 -227
- package/core/dev/archive/ansuz/designs/mcp_kuzudb_lock_architecture.md +0 -312
- package/core/dev/archive/ansuz/designs/phase0_git_enrichment.md +0 -278
- package/core/dev/archive/ansuz/designs/refactor_mcp_tools_synapse.md +0 -490
- package/core/dev/archive/ansuz/designs/semantic_markdown_extraction.md +0 -167
- package/core/dev/archive/ansuz/designs/task_1372_prompt_injects_into.md +0 -193
- package/core/dev/archive/ansuz/designs/thought_stack.md +0 -286
- package/core/dev/archive/ansuz/investigations/reachability_unified_api_2026-04-11.md +0 -330
- package/core/dev/archive/ansuz/investigations/synapse_orphans_indexing_bug_2026-04-11.md +0 -352
- package/core/dev/archive/ansuz/investigations/synapse_orphans_reindex_verification_2026-04-11.md +0 -48
- package/core/dev/archive/ansuz/investigations/synapse_orphans_verification_2026-04-11.md +0 -170
- package/core/dev/archive/ansuz/legacy/kernel.yaml +0 -399
- package/core/dev/archive/ansuz/legacy/phases/phase_0.yaml +0 -418
- package/core/dev/archive/ansuz/legacy/phases/phase_1.yaml +0 -376
- package/core/dev/archive/ansuz/legacy/phases/phase_10.yaml +0 -35
- package/core/dev/archive/ansuz/legacy/phases/phase_11.yaml +0 -582
- package/core/dev/archive/ansuz/legacy/phases/phase_2.yaml +0 -94
- package/core/dev/archive/ansuz/legacy/phases/phase_3.yaml +0 -274
- package/core/dev/archive/ansuz/legacy/phases/phase_4.yaml +0 -67
- package/core/dev/archive/ansuz/legacy/phases/phase_5.yaml +0 -32
- package/core/dev/archive/ansuz/legacy/phases/phase_6.yaml +0 -91
- package/core/dev/archive/ansuz/legacy/phases/phase_7.yaml +0 -58
- package/core/dev/archive/ansuz/legacy/phases/phase_8.yaml +0 -146
- package/core/dev/archive/ansuz/legacy/phases/phase_9.yaml +0 -424
- package/core/dev/archive/ansuz/specs/INDEX_bifrost_hook_parity.yaml +0 -92
- package/core/dev/archive/ansuz/specs/active-inference-formation.yaml +0 -453
- package/core/dev/archive/ansuz/specs/brief_TASK_1228_userpromptsubmit.yaml +0 -191
- package/core/dev/archive/ansuz/specs/brief_TASK_1229_pretooluse_posttooluse.yaml +0 -250
- package/core/dev/archive/ansuz/specs/brief_TASK_1230_sessionstart_stop.yaml +0 -301
- package/core/dev/archive/ansuz/specs/brief_TASK_1231_verification.yaml +0 -272
- package/core/dev/archive/skills/feature_agent/SKILL.md +0 -289
- package/core/dev/design/PHASE4_DESIGN.md +0 -559
- package/core/dev/design/dashboard_docs_integration_PLAN.md +0 -388
- package/core/dev/design/matrix_format_ABBREVIATIONS.md +0 -655
- package/core/dev/design/matrix_format_DESIGN_SPEC.md +0 -601
- package/core/dev/design/matrix_format_DISCUSSION_SUMMARY.md +0 -484
- package/core/dev/design/matrix_format_EXAMPLE_memory.matrix +0 -13
- package/core/dev/design/matrix_format_EXAMPLE_project_status.matrix +0 -9
- package/core/dev/design/matrix_format_EXAMPLE_tasks.matrix +0 -14
- package/core/dev/design/matrix_format_SYNTAX_BNF.md +0 -754
- package/core/dev/design/matrix_format_TOKEN_COMPARISON.md +0 -484
- package/core/dev/design/matrix_v2_COGNITIVE_DESIGN.md +0 -503
- package/core/dev/design/matrix_v2_DISCUSSION_SUMMARY.md +0 -414
- package/core/dev/design/matrix_v2_EXAMPLE.matrix +0 -67
- package/core/dev/designs/EXPANDABLE_CARD_DESIGN_SPEC.md +0 -509
- package/core/dev/jev-eval/ACTIVE_CORRECTION.md +0 -52
- package/core/dev/jev-eval/ANNOTATION_GUIDE.md +0 -68
- package/core/dev/jev-eval/BASELINE_COMPARISON.md +0 -45
- package/core/dev/jev-eval/CONTEXT_REVIEW.md +0 -31
- package/core/dev/jev-eval/EVALUATION_STATUS.md +0 -39
- package/core/dev/jev-eval/HISTORICAL_CORPUS.md +0 -33
- package/core/dev/jev-eval/PACKAGING_VERIFICATION.md +0 -42
- package/core/dev/jev-eval/README.md +0 -101
- package/core/dev/jev-eval/THALAMUS_RANKING.md +0 -58
- package/core/dev/jev-eval/VALIDATION_PROGRESS.md +0 -54
- package/core/dev/jev-eval/cli.mjs +0 -50
- package/core/dev/jev-eval/context.mjs +0 -183
- package/core/dev/jev-eval/corpus.mjs +0 -186
- package/core/dev/jev-eval/fixtures/conversation-review.seed.jsonl +0 -6
- package/core/dev/jev-eval/fixtures/synthetic.jsonl +0 -11
- package/core/dev/jev-eval/metrics.mjs +0 -67
- package/core/dev/jev-eval/muninn-baseline.mjs +0 -119
- package/core/dev/jev-eval/providers.mjs +0 -95
- package/core/dev/jev-eval/reports/annotation-pilot-2026-09-20.json +0 -32
- package/core/dev/jev-eval/reports/context-review-2026-09-20.json +0 -48
- package/core/dev/jev-eval/reports/conversation-review.pending.json +0 -151
- package/core/dev/jev-eval/reports/history-corpus-2026-09-20.json +0 -52
- package/core/dev/jev-eval/reports/length-probe-2026-09-20.json +0 -133
- package/core/dev/jev-eval/reports/live-smoke-2026-09-20.json +0 -616
- package/core/dev/jev-eval/reports/muninn-baseline-2026-09-20.json +0 -52
- package/core/dev/jev-eval/reports/resilience-2026-09-20.json +0 -520
- package/core/dev/jev-eval/reports/rules-baseline.json +0 -197
- package/core/dev/jev-eval/reports/synthetic-review.pending.json +0 -357
- package/core/dev/jev-eval/resilience.mjs +0 -71
- package/core/dev/jev-eval/review.mjs +0 -78
- package/core/dev/jev-eval/schema.mjs +0 -87
- package/core/dev/jev-eval/test/context.test.mjs +0 -95
- package/core/dev/jev-eval/test/corpus.test.mjs +0 -102
- package/core/dev/jev-eval/test/eval.test.mjs +0 -146
- package/core/dev/jev-eval/test/muninn-baseline.test.mjs +0 -71
- package/core/dev/jev-eval/test/resilience.test.mjs +0 -72
- package/core/dev/jev-eval/test/review.test.mjs +0 -61
- package/core/dev/pipeline/PHASE3_PLANNING_SUMMARY.md +0 -338
- package/core/dev/pipeline/PROGRESS.md +0 -113
- package/core/dev/pipeline/PROGRESS_template.md +0 -860
- package/core/dev/pipeline/QA_REPORT_F008.md +0 -431
- package/core/dev/pipeline/QA_REPORT_LOCAL_CLAUDE_DIAGNOSIS.md +0 -583
- package/core/dev/pipeline/README.md +0 -210
- package/core/dev/pipeline/WORKFLOW_GUIDE.md +0 -824
- package/core/dev/pipeline/archived/TASK_015_tauri_init.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_016_tauri_commands.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_017_rust_pty.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_018_tauri_bundle.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_019_release_workflow.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_020_update_ui.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_021_update_notification_ui.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_022_remove_node_pty.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_023_api_routes_migration.yaml +0 -86
- package/core/dev/pipeline/archived/TASK_024_feature_id_system.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_025_executable_acceptance.yaml +0 -66
- package/core/dev/pipeline/archived/TASK_026_spec_versioning.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_027_drift_detection.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_028_tauri_pty_manager.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_029_tauri_pty_commands.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_030_frontend_session_adapter.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_031_terminal_tauri_events.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_041_scheduler_data_models.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_042_path_lock_manager.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_043_process_manager.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_044_git_integration.yaml +0 -85
- package/core/dev/pipeline/archived/TASK_045_task_queue_manager.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_046_scheduler_dispatcher.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_047_tauri_scheduler_commands.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_048_realtime_status_push.yaml +0 -92
- package/core/dev/pipeline/archived/TASK_049_frontend_scheduler_integration.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_050_error_recovery.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_051_optimization_proposals_backend.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_052_optimization_proposals_ui.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_053_optimization_proposals_diff_view.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_054_multi_project_scheduler_state.yaml +0 -76
- package/core/dev/pipeline/archived/TASK_055_scheduler_api_project_scope.yaml +0 -64
- package/core/dev/pipeline/archived/TASK_056_frontend_scheduler_project_scope.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_057_scheduler_module_structure.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_058_scheduler_models_extract.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_059_scheduler_core_extract.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_060_scheduler_commands_extract.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_061_scheduler_specialized_commands.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_062_process_manager_module_structure.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_063_process_manager_core_extract.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_064_recovery_module_structure.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_065_recovery_core_extract.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_066_self_enhancement_scheduler_models.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_067_agents_section_quick_actions.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_067_self_enhancement_scheduler_core.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_068_agent_workflow_rule_enhancement.yaml +0 -46
- package/core/dev/pipeline/archived/TASK_068_self_enhancement_tauri_commands.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_069_agent_wizard_responsive.yaml +0 -46
- package/core/dev/pipeline/archived/TASK_069_self_enhancement_ui.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_070_preview_panel_redesign.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_070_self_enhancement_integration.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_071_preview_panel_qa.yaml +0 -98
- package/core/dev/pipeline/archived/TASK_071_single_agent_config.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_072_preview_modal_esc_fix.yaml +0 -71
- package/core/dev/pipeline/archived/TASK_072_product_review_module.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_073_agents_page_component_refactor.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_073_rename_single_agent.yaml +0 -64
- package/core/dev/pipeline/archived/TASK_074_preview_mode_ui_diagnosis.yaml +0 -71
- package/core/dev/pipeline/archived/TASK_074_single_agent_ui_toggle.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_075_agents_page_component_refactor.yaml +0 -69
- package/core/dev/pipeline/archived/TASK_075_single_agent_integration_test.yaml +0 -75
- package/core/dev/pipeline/archived/TASK_076_preview_mode_ui_diagnosis.yaml +0 -70
- package/core/dev/pipeline/archived/TASK_076_single_agent_continuous_mode.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_077_failure_directory_structure.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_077_single_agent_typescript_types.yaml +0 -59
- package/core/dev/pipeline/archived/TASK_078_fail_001_agent_no_output.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_078_single_agent_ui_simplify.yaml +0 -74
- package/core/dev/pipeline/archived/TASK_079_dashboard_rwd_responsive.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_079_fail_002_json_bom.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_080_fail_003_queue_pollution.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_080_http_server_module.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_081_failure_logging_tools.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_081_http_api_routes.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_082_frontend_api_adapter.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_082_integrate_failure_to_workflow.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_083_cleanup_nextjs_api.yaml +0 -48
- package/core/dev/pipeline/archived/TASK_083_task_queue_cleanup.yaml +0 -67
- package/core/dev/pipeline/archived/TASK_084_rust_dead_code_cleanup.yaml +0 -66
- package/core/dev/pipeline/archived/TASK_084_scheduler_sync_logic_fix.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_085_http_api_web_mode_fixes.yaml +0 -46
- package/core/dev/pipeline/archived/TASK_085_memory_consolidation_0204_0205.yaml +0 -98
- package/core/dev/pipeline/archived/TASK_086_collapsible_preview_panel.yaml +0 -161
- package/core/dev/pipeline/archived/TASK_086_web_mode_feature_parity.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_087_manual_memory_archival.yaml +0 -163
- package/core/dev/pipeline/archived/TASK_087_mobile_http_control.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_088_fail_003_to_ppl_002_rule.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_088_mobile_http_qa.yaml +0 -121
- package/core/dev/pipeline/archived/TASK_089_agent_collaboration_topic.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_089_web_mode_monitor_fix.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_090_cli_detection_fix.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_090_ui_ux_lessons_topic.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_091_expandable_card_design.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_091_move_agent_section_components.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_092_expandable_card_component.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_092_refactor_agent_create_wizard.yaml +0 -84
- package/core/dev/pipeline/archived/TASK_093_taskcard_detail_integration.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_093_update_barrel_exports_test.yaml +0 -84
- package/core/dev/pipeline/archived/TASK_094_ai_agent_generation_enhancement.yaml +0 -115
- package/core/dev/pipeline/archived/TASK_094_proposalcard_detail_integration.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_095_preview_fixes.yaml +0 -129
- package/core/dev/pipeline/archived/TASK_095_single_agent_task_selector.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_096_agents_page_ux_improvements.yaml +0 -163
- package/core/dev/pipeline/archived/TASK_096_single_agent_status_sync.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_097_local_claude_error_logging.yaml +0 -59
- package/core/dev/pipeline/archived/TASK_097_single_agent_monitor_events.yaml +0 -59
- package/core/dev/pipeline/archived/TASK_098_product_manager_team_phase2.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_098_single_agent_refactor_test.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_099_backend_team_creation.yaml +0 -258
- package/core/dev/pipeline/archived/TASK_100_frontend_team_creation.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_101_orchestrator_system.yaml +0 -403
- package/core/dev/pipeline/archived/TASK_102_designer_sre_teams.yaml +0 -90
- package/core/dev/pipeline/archived/TASK_103_integration_testing.yaml +0 -86
- package/core/dev/pipeline/archived/TASK_128_integration_testing.yaml +0 -83
- package/core/dev/pipeline/archived/TASK_134_cortex_v2_phase3_file_watcher.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_134_team_http_api.yaml +0 -96
- package/core/dev/pipeline/archived/TASK_135_cortex_v2_phase3_git_monitor.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_136_cortex_v2_phase3_change_analyzer.yaml +0 -69
- package/core/dev/pipeline/archived/TASK_137_cortex_v2_phase3_cache_invalidator.yaml +0 -67
- package/core/dev/pipeline/archived/TASK_137_team_orchestrator_integration.yaml +0 -93
- package/core/dev/pipeline/archived/TASK_138_cortex_v2_phase3_distributed_cache.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_138_matrix_folder_structure.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_139_cortex_v2_phase3_cache_prewarming.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_146_unified_documentation.yaml +0 -141
- package/core/dev/pipeline/archived/TASK_147_pipeline_execution_rules.yaml +0 -76
- package/core/dev/pipeline/archived/TASK_148_update_claude_md.yaml +0 -77
- package/core/dev/pipeline/archived/TASK_149_fix_nextjs_mdx_serialization.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_149_update_team_docs.yaml +0 -77
- package/core/dev/pipeline/archived/TASK_150_pipeline_workflow_guide.yaml +0 -82
- package/core/dev/pipeline/archived/TASK_164_fix_smart_context_switch.yaml +0 -49
- package/core/dev/pipeline/archived/TASK_165_ctags_symbol_index.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_166_symbol_search_mcp_tool.yaml +0 -48
- package/core/dev/pipeline/archived/TASK_167_llm_module_summary.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_168_map_reduce_context.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_169_v2_integration_testing.yaml +0 -52
- package/core/dev/pipeline/backups/archive_2026-02-04T22-07-22/TASK_QUEUE_backup.json +0 -95
- package/core/dev/pipeline/docs/multi-agent-coordination.md +0 -446
- package/core/dev/pipeline/docs/overview.md +0 -406
- package/core/dev/pipeline/docs/task-management.md +0 -412
- package/core/dev/pipeline/docs/workflows.md +0 -32
- package/core/dev/pipeline/orchestrator/schemas/task_queue_schema.json +0 -58
- package/core/dev/pipeline/orchestrator/schemas/task_schema.json +0 -139
- package/core/dev/pipeline/plans/PLAN_task_cli_refactor.md +0 -281
- package/core/dev/pipeline/test_results/TASK_TEST_PARALLEL_002_result.txt +0 -27
- package/core/dev/plans/ANSUZ_SLIM_PLAN.md +0 -68
- package/core/dev/plans/CLI_FIRST_INSTALL_FLOW.md +0 -120
- package/core/dev/plans/FORMATION_RETIREMENT_PLAN.md +0 -313
- package/core/dev/plans/KUZU_REPLACEMENT_PLAN.md +0 -126
- package/core/dev/scripts/CRASH_DIAGNOSIS.md +0 -47
- package/core/dev/scripts/README.md +0 -142
- package/core/dev/scripts/RUN_ONCE.bat +0 -40
- package/core/dev/scripts/START_DEV_AGENT.bat +0 -63
- package/core/dev/scripts/START_MULTI_AGENT.bat +0 -80
- package/core/dev/scripts/dev_agent_scheduler.ps1 +0 -536
- package/core/dev/scripts/init_git.ps1 +0 -396
- package/core/dev/scripts/init_git.sh +0 -337
- package/core/dev/scripts/init_project.ps1 +0 -851
- package/core/dev/scripts/init_project.sh +0 -477
- package/core/dev/scripts/multi_agent_scheduler.ps1 +0 -2021
- package/core/dev/scripts/multi_agent_scheduler.sh +0 -1344
- package/core/dev/scripts/run_once.sh +0 -47
- package/core/dev/scripts/setup_rag.ps1 +0 -304
- package/core/dev/scripts/setup_rag.sh +0 -230
- package/core/dev/scripts/start_dev_agent.sh +0 -137
- package/core/dev/scripts/start_multi_agent.sh +0 -41
- package/core/dev/scripts/sync_task_queue.ps1 +0 -505
- package/core/dev/scripts/sync_task_queue.sh +0 -392
- package/core/dev/specs/agent-connect/PROTOCOL.md +0 -177
- package/core/dev/specs/agent-connect/SDK_GUIDE.md +0 -915
- package/core/dev/specs/agent-connect/examples/minimal-site/README.md +0 -137
- package/core/dev/specs/agent-connect/examples/minimal-site/package.json +0 -12
- package/core/dev/specs/agent-connect/examples/minimal-site/public/index.html +0 -116
- package/core/dev/specs/agent-connect/examples/minimal-site/public/install-redirect.js +0 -73
- package/core/dev/specs/agent-connect/examples/minimal-site/server.js +0 -516
- package/core/dev/specs/agent-connect/examples/minimal-site/test/smoke.test.mjs +0 -263
- package/core/dev/specs/agent-connect/history/DEFECT_REPORT_kenaz-agent-hub_2026-09-09_v0.4-empty-prompt-no-first-turn.md +0 -77
- package/core/dev/specs/agent-connect/history/DEFECT_REPORT_kenaz-agent-hub_2026-09-09_v0.4-prompt-mojibake.md +0 -90
- package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-07.md +0 -61
- package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-08_relay-v1-conformance.md +0 -76
- package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-09_v0.4-session-channel.md +0 -87
- package/core/dev/specs/agent-connect/history/FLOWPIX_REPLY_agent-hub_2026-09-08_relay-v1-answers.md +0 -68
- package/core/dev/specs/agent-connect/history/FLOWPIX_bridge_CONTRACT.md +0 -642
- package/core/dev/specs/agent-connect/history/FLOWPIX_spikes_relay_spike_relay.mjs +0 -244
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-07.md +0 -77
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_direction-change-v0.3.md +0 -44
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-answers-ack.md +0 -37
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-conformance.md +0 -56
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_annotations-install-coldstart.md +0 -44
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_empty-prompt-first-turn.md +0 -56
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_prompt-mojibake-fixed.md +0 -48
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_session-channel.md +0 -57
- package/core/dev/specs/agent-connect/history/PROTOCOL_v0.3_snapshot.md +0 -379
- package/core/dev/specs/agent-connect/history/README.md +0 -47
- package/core/dev/specs/peer/CODEX_INTERACTIVE_PUSH.md +0 -65
- package/core/dev/specs/peer/CODEX_MANAGED_DAEMON.md +0 -54
- package/core/dev/specs/peer/CODEX_PEER_PULL_SPIKE.md +0 -54
- package/core/dev/specs/peer/MODS_SPIKE.md +0 -133
- package/core/dev/specs/peer/PER_PROJECT_ADDRESSING.md +0 -143
- package/core/dev/specs/peer/SWARM_PROTOCOLS.md +0 -256
- package/core/dev/specs/peer/codex-hook-shim-peer.test.js +0 -113
- package/core/dev/specs/peer/codex-push-launcher.test.js +0 -142
- package/core/dev/specs/peer/setup-codex-hooks.test.js +0 -60
- package/core/dev/specs/peer-ansuz/DELIVERY_SPIKE.md +0 -397
- package/core/dev/specs/peer-ansuz/DESIGN.md +0 -109
- package/core/dev/specs/peer-ansuz/spike/claude_poke.js +0 -129
- package/core/dev/specs/peer-ansuz/spike/claude_session_start_hook.js +0 -37
- package/core/dev/specs/peer-ansuz/spike/claude_settings_hook.json +0 -14
- package/core/dev/specs/peer-ansuz/spike/codex_appserver_client.js +0 -105
- package/core/dev/specs/peer-ansuz/spike/codex_appserver_query.js +0 -29
- package/core/dev/specs/peer-ansuz/spike/extract_timeline.js +0 -26
- package/core/dev/specs/synapse/SYMBOL_IDENTITY.md +0 -305
- package/core/dev/spikes/A4-cypher-varlen.md +0 -176
- package/core/dev/spikes/bloat-rounds.sh +0 -25
- package/core/dev/spikes/mods/clean-claude.js +0 -9
- package/core/dev/spikes/mods/drive-probe.js +0 -29
- package/core/dev/spikes/mods/e2e-peer.js +0 -71
- package/core/dev/spikes/mods/evidence/e2e-peer-control.json +0 -17
- package/core/dev/spikes/mods/evidence/e2e-peer-mod.json +0 -17
- package/core/dev/spikes/mods/evidence/probe-006a6e65-d807-4bc1-b648-fd7d1edfe0b4.jsonl +0 -4
- package/core/dev/spikes/mods/evidence/probe-cebdf1f7-f9c4-47a8-83cd-7c0786177404.jsonl +0 -12
- package/core/dev/spikes/mods/evidence/probe-eb21147d-10ce-4c32-93ed-37ca37d88d5a.jsonl +0 -11
- package/core/dev/spikes/mods/evidence/stream-cebdf1f7.jsonl +0 -18
- package/core/dev/spikes/mods/kenaz-mod-probe/.claude-plugin/plugin.json +0 -1
- package/core/dev/spikes/mods/kenaz-mod-probe/hooks/hooks.json +0 -1
- package/core/dev/spikes/mods/kenaz-mod-probe/hooks/register.ts +0 -65
- package/core/dev/spikes/mods/kenaz-mod-probe/tsconfig.json +0 -3
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
# Reachability Unified API — Consumer Audit & Design Proposal
|
|
2
|
-
|
|
3
|
-
**Task**: TASK_1183
|
|
4
|
-
**Date**: 2026-04-11
|
|
5
|
-
**Analyst**: unit agent (backend specialist)
|
|
6
|
-
**Depends on**: TASK_1181 (Phase 1: INVOKES_COMMAND + ROUTES_TO guards in orphans_impl)
|
|
7
|
-
**Scope**: `dashboard/src-tauri/src/infrastructure/http_server/routes/mcp_tools/synapse.rs`,
|
|
8
|
-
`dashboard/src-tauri/src/features/synapse/`
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Consumer audit
|
|
13
|
-
|
|
14
|
-
### Methodology
|
|
15
|
-
|
|
16
|
-
Each consumer was read from source to extract: (a) which edge types it queries, (b) whether it uses NOT EXISTS / EXISTS / count / BFS / adjacency-list over those edges, (c) what confidence threshold it applies (if any), and (d) what semantic claim it is making about reachability.
|
|
17
|
-
|
|
18
|
-
### Consumer inventory
|
|
19
|
-
|
|
20
|
-
**C1 — `orphans_impl` / `orphan_cypher_query()`**
|
|
21
|
-
File: `mcp_tools/synapse.rs:5182–5192`
|
|
22
|
-
Purpose: Identify function/method symbols with no inbound reachability path.
|
|
23
|
-
Query (post-TASK_1181 Phase 1):
|
|
24
|
-
```cypher
|
|
25
|
-
MATCH (s:Symbol)
|
|
26
|
-
WHERE s.kind IN ['function', 'method']
|
|
27
|
-
AND NOT EXISTS { MATCH (:Symbol)-[:CALLS]->(s) }
|
|
28
|
-
AND NOT EXISTS { MATCH (:File)-[:EXPORTS]->(s) }
|
|
29
|
-
AND NOT EXISTS { MATCH (:Symbol)-[:INVOKES_COMMAND]->(s) }
|
|
30
|
-
AND NOT EXISTS { MATCH (:Symbol)-[:ROUTES_TO]->(s) }
|
|
31
|
-
RETURN s.id, …
|
|
32
|
-
```
|
|
33
|
-
Post-filter: excludes `STEP_IN_PROCESS` entry-point IDs (loaded separately).
|
|
34
|
-
Confidence filter: **none** (all CALLS edges regardless of confidence).
|
|
35
|
-
Semantic claim: "No caller, not exported, not a Tauri command target, not an HTTP route handler."
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
**C2 — `synapse_context` (symbol mode, callers)**
|
|
40
|
-
File: `features/synapse/context.rs:138–161`
|
|
41
|
-
Purpose: Show explicit callers of a symbol for blast-radius analysis.
|
|
42
|
-
Query:
|
|
43
|
-
```cypher
|
|
44
|
-
MATCH (caller:Symbol)-[:CALLS]->(target:Symbol)
|
|
45
|
-
WHERE target.name = '<name>'
|
|
46
|
-
RETURN caller.name, caller.kind, caller.file_path, …
|
|
47
|
-
```
|
|
48
|
-
Depth > 1 uses `CALLS*1..N`.
|
|
49
|
-
Also augments with `LINKS_TO` (document domain — separate query appended to callers list).
|
|
50
|
-
Confidence filter: **none**.
|
|
51
|
-
Semantic claim: "Symbols that explicitly CALL this symbol." Does NOT check EXPORTS, INVOKES_COMMAND, or ROUTES_TO.
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
**C3 — `community_detector` (code pass)**
|
|
56
|
-
File: `features/synapse/community_detector.rs:79`
|
|
57
|
-
Purpose: Partition symbols into communities for coupling analysis.
|
|
58
|
-
Query:
|
|
59
|
-
```cypher
|
|
60
|
-
MATCH (a:Symbol)-[:CALLS]->(b:Symbol) RETURN a.id, b.id
|
|
61
|
-
```
|
|
62
|
-
Separate LINKS_TO pass for note/document communities.
|
|
63
|
-
Confidence filter: **none**.
|
|
64
|
-
Semantic claim: "Structural connectivity for Louvain partitioning." Reachability is not the goal — all CALLS edges participate equally. Orphaned symbols (no CALLS in or out) simply never appear in the adjacency list and receive no community assignment.
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
**C4 — `process_detector` (entry point detection)**
|
|
69
|
-
File: `features/synapse/process_detector.rs:163`
|
|
70
|
-
Purpose: Find execution entry points (in_degree=0 among CALLS participants) and trace BFS chains.
|
|
71
|
-
Query:
|
|
72
|
-
```cypher
|
|
73
|
-
MATCH (caller:Symbol)-[r:CALLS]->(callee:Symbol)
|
|
74
|
-
WHERE r.confidence IS NULL OR r.confidence >= 0.5
|
|
75
|
-
RETURN caller.id, callee.id
|
|
76
|
-
```
|
|
77
|
-
Entry points: symbols with `in_degree = 0` in the CALLS subgraph above.
|
|
78
|
-
Confidence filter: **≥ 0.5 (or NULL for legacy edges)** — the only consumer that applies a confidence threshold.
|
|
79
|
-
Semantic claim: "Symbol is a root of an execution chain (no higher-level CALLS caller)." Does NOT check EXPORTS, INVOKES_COMMAND, or ROUTES_TO for entry-point classification.
|
|
80
|
-
**Drift note**: A Tauri handler has `CALLS in_degree = 0`, so process_detector treats it as an entry point. orphans_impl correctly excludes it via INVOKES_COMMAND. These two consumers agree on "no CALLS inbound" but disagree on whether the symbol is "orphaned" — a latent semantic mismatch.
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
**C5 — `search.rs` graph_boost / `compute_in_degrees`**
|
|
85
|
-
File: `features/synapse/scanner.rs:2836`, `search.rs:974`
|
|
86
|
-
Purpose: Rank search results by symbol popularity.
|
|
87
|
-
Query (populate `symbol_embeddings.in_degree`):
|
|
88
|
-
```cypher
|
|
89
|
-
MATCH (caller:Symbol)-[:CALLS]->(callee:Symbol)
|
|
90
|
-
RETURN callee.id, count(caller) AS in_deg
|
|
91
|
-
```
|
|
92
|
-
Used as: `(1.0 + in_degree).ln() / (1.0 + max_in_degree).ln()`
|
|
93
|
-
Confidence filter: **none**.
|
|
94
|
-
Semantic claim: "Popularity = raw CALLS in-degree." Does NOT account for EXPORTS, INVOKES_COMMAND, or ROUTES_TO. A Tauri handler with heavy frontend usage has `in_degree = 0` → zero graph_boost.
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
**C6 — Guardian health score `orphan_ratio` (15% weight)**
|
|
99
|
-
File: `mcp_tools/synapse.rs:5640–5658`
|
|
100
|
-
Purpose: Compute codebase health metric — fraction of orphaned functions/methods.
|
|
101
|
-
Query:
|
|
102
|
-
```cypher
|
|
103
|
-
MATCH (s:Symbol)
|
|
104
|
-
WHERE s.kind IN ['function', 'method']
|
|
105
|
-
AND NOT EXISTS { MATCH (:Symbol)-[:CALLS]->(s) }
|
|
106
|
-
AND NOT EXISTS { MATCH (:File)-[:EXPORTS]->(s) }
|
|
107
|
-
RETURN count(s)
|
|
108
|
-
```
|
|
109
|
-
Confidence filter: **none**.
|
|
110
|
-
Semantic claim: "Symbol has no inbound CALLS and no EXPORTS." **Frozen at the pre-Phase-1 definition** — does NOT include INVOKES_COMMAND or ROUTES_TO. This means every Tauri handler and HTTP route handler is counted as orphaned in the health score, even though orphans_impl correctly excludes them since TASK_1181.
|
|
111
|
-
**This drift is LIVE in production.**
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
**C7 — EFE `orphan_ratio` approximation**
|
|
116
|
-
File: `features/synapse/efe.rs:549–555`
|
|
117
|
-
Purpose: Curiosity-driven exploration priority (EFE = Expected Free Energy).
|
|
118
|
-
Mechanism: Not a graph query. Approximated via prediction_map — symbols absent from Curiosity prediction data get a neutral orphan signal (`ORPHAN_WEIGHT` constant). No edge-type queries at all.
|
|
119
|
-
Semantic claim: "Symbol has no curiosity prediction data." Completely decoupled from graph reachability. Included for completeness but not a drift site for the reachability unification problem.
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
|
|
123
|
-
**C8 — `attention.rs` pain-path BFS**
|
|
124
|
-
File: `features/synapse/attention.rs:554–562`
|
|
125
|
-
Purpose: Compute BFS depth from each symbol along CALLS edges (used in pain-path scoring).
|
|
126
|
-
Query:
|
|
127
|
-
```cypher
|
|
128
|
-
MATCH (a:Symbol)-[:CALLS]->(b:Symbol) RETURN a.id, b.id
|
|
129
|
-
```
|
|
130
|
-
Confidence filter: **none**.
|
|
131
|
-
Semantic claim: "How deep is this symbol's call chain?" Reachability from the symbol's perspective (forward BFS). Not checking orphan status — not a drift site.
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
### Drift matrix
|
|
136
|
-
|
|
137
|
-
Rows = consumers. Columns = edge types relevant to reachability. Cells:
|
|
138
|
-
`Q` = queries this edge, `–` = does not query, `F(≥0.5)` = queries with confidence filter.
|
|
139
|
-
|
|
140
|
-
| Consumer | CALLS (inbound) | EXPORTS | INVOKES_COMMAND | ROUTES_TO | LINKS_TO | Conf. filter | Semantic claim |
|
|
141
|
-
|----------|----------------|---------|-----------------|-----------|----------|--------------|----------------|
|
|
142
|
-
| C1 orphans_impl | Q (NOT EXISTS) | Q (NOT EXISTS) | Q (NOT EXISTS) | Q (NOT EXISTS) | – | none | "unreachable symbol" |
|
|
143
|
-
| C2 synapse_context callers | Q (count/list) | – | – | – | Q (doc only) | none | "explicit CALLS callers" |
|
|
144
|
-
| C3 community_detector | Q (all edges) | – | – | – | Q (separate) | none | "graph connectivity" |
|
|
145
|
-
| C4 process_detector | Q (in_degree=0 → entry) | – | – | – | – | ≥0.5 or NULL | "execution entry point" |
|
|
146
|
-
| C5 search graph_boost | Q (in_degree count) | – | – | – | – | none | "symbol popularity" |
|
|
147
|
-
| C6 guardian health orphan_ratio | Q (NOT EXISTS) | Q (NOT EXISTS) | – | – | – | none | "unreachable symbol" **← STALE** |
|
|
148
|
-
| C7 EFE orphan_ratio | – (approx) | – | – | – | – | N/A | "missing curiosity data" |
|
|
149
|
-
| C8 attention BFS | Q (forward depth) | – | – | – | – | none | "call chain depth" |
|
|
150
|
-
|
|
151
|
-
### Key drift sites
|
|
152
|
-
|
|
153
|
-
**Drift Site 1 (CRITICAL — already live)**: C6 vs C1
|
|
154
|
-
Guardian health orphan_ratio uses `CALLS + EXPORTS` while orphans_impl (post-TASK_1181) uses `CALLS + EXPORTS + INVOKES_COMMAND + ROUTES_TO`. A Tauri `#[tauri::command]` handler appears as orphaned in the health score but not in the orphans tool. This causes the health score's `orphan_count` to be inflated vs what the user observes in the orphans tool.
|
|
155
|
-
|
|
156
|
-
**Drift Site 2 (LATENT)**: C4 vs C1
|
|
157
|
-
process_detector treats a Tauri handler as an entry point (CALLS in_degree = 0, participates in CALLS graph only if it calls something). orphans_impl treats it as reachable (via INVOKES_COMMAND). If a Tauri handler calls other functions, it appears in both as an entry point in one context and as "reachable" in the other — consistent for now. But if Phase 2 adds more IPC edge types, process_detector's entry-point definition will silently diverge.
|
|
158
|
-
|
|
159
|
-
**Drift Site 3 (MODERATE)**: C5 vs C1
|
|
160
|
-
search graph_boost uses only CALLS in_degree. A Tauri handler with `in_degree=0` (no CALLS inbound) gets zero graph_boost. This means frontend-heavy handlers are ranked poorly in search despite being highly "reached" from the TS layer. This will worsen as INVOKES_COMMAND edges populate.
|
|
161
|
-
|
|
162
|
-
**Drift Site 4 (INFORMATIONAL)**: C2 vs C1
|
|
163
|
-
synapse_context reports "0 callers" for symbols with EXPORTS but no CALLS. The user may see a symbol that is not orphaned (has EXPORTS) but appears to have no callers in context. Not technically a bug — context answers a different question ("who explicitly calls me?") — but the UX is confusing without a note.
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## Proposal A: Rust helper `is_reachable`
|
|
168
|
-
|
|
169
|
-
### Design
|
|
170
|
-
|
|
171
|
-
New file: `dashboard/src-tauri/src/features/synapse/reachability.rs`
|
|
172
|
-
|
|
173
|
-
```rust
|
|
174
|
-
/// Canonical reachability check for a single symbol.
|
|
175
|
-
/// All consumers that need to determine "is this symbol reachable?" should call this.
|
|
176
|
-
pub enum ReachabilityMode {
|
|
177
|
-
/// Strict: only explicit CALLS inbound (legacy pre-Phase-1 behavior).
|
|
178
|
-
Strict,
|
|
179
|
-
/// Standard: CALLS + EXPORTS + INVOKES_COMMAND + ROUTES_TO (post-Phase-1).
|
|
180
|
-
Standard,
|
|
181
|
-
/// Loose: Standard + LINKS_TO (useful for mixed code+doc consumers).
|
|
182
|
-
Loose,
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
/// Returns true if the symbol has at least one inbound reachability edge
|
|
186
|
-
/// matching the requested mode.
|
|
187
|
-
pub fn is_reachable(
|
|
188
|
-
conn: &kuzu::Connection,
|
|
189
|
-
symbol_id: &str,
|
|
190
|
-
mode: ReachabilityMode,
|
|
191
|
-
) -> Result<bool, String> { … }
|
|
192
|
-
|
|
193
|
-
/// Returns the Cypher NOT EXISTS predicate fragment for bulk queries.
|
|
194
|
-
/// Use this when checking many symbols in a single MATCH, to avoid N+1 queries.
|
|
195
|
-
pub fn unreachable_predicate(mode: ReachabilityMode) -> &'static str { … }
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
`unreachable_predicate(ReachabilityMode::Standard)` would return the same predicate string that `orphan_cypher_query()` currently builds inline:
|
|
199
|
-
```
|
|
200
|
-
AND NOT EXISTS { MATCH (:Symbol)-[:CALLS]->(s) }
|
|
201
|
-
AND NOT EXISTS { MATCH (:File)-[:EXPORTS]->(s) }
|
|
202
|
-
AND NOT EXISTS { MATCH (:Symbol)-[:INVOKES_COMMAND]->(s) }
|
|
203
|
-
AND NOT EXISTS { MATCH (:Symbol)-[:ROUTES_TO]->(s) }
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
### Migration plan for each consumer
|
|
207
|
-
|
|
208
|
-
| Consumer | Change | Mode to use |
|
|
209
|
-
|----------|--------|-------------|
|
|
210
|
-
| C1 orphans_impl | Replace inline Cypher predicate with `unreachable_predicate(Standard)` | Standard |
|
|
211
|
-
| C6 guardian health | Replace inline Cypher predicate with `unreachable_predicate(Standard)` — **fixes Drift Site 1** | Standard |
|
|
212
|
-
| C5 search graph_boost | Optionally augment `compute_in_degrees` with reachability-aware pseudo-degree: add 1 for INVOKES_COMMAND edges | Standard (augmented) |
|
|
213
|
-
| C4 process_detector | No change needed — entry-point detection remains CALLS-only by design. Document explicitly. | Strict (documented) |
|
|
214
|
-
| C2 synapse_context | No change needed — callers list is intentionally CALLS-only for blast-radius semantics | Strict (documented) |
|
|
215
|
-
| C3 community_detector | No change needed — community partitioning is graph-topology, not reachability | N/A |
|
|
216
|
-
|
|
217
|
-
### Tradeoff
|
|
218
|
-
|
|
219
|
-
- **Pro**: Zero index-time cost. Changes are purely query-time.
|
|
220
|
-
- **Pro**: Mode enum makes intent explicit and grep-able.
|
|
221
|
-
- **Pro**: `unreachable_predicate()` is a pure function — easy to test.
|
|
222
|
-
- **Pro**: Does not require a schema change. Existing Cypher queries remain valid.
|
|
223
|
-
- **Con**: Consumers must be updated one by one to call the helper. Non-Rust consumers (if any) cannot share it.
|
|
224
|
-
- **Con**: If a new edge type is added (e.g., Phase 3 LINKED_FROM), all callers of `unreachable_predicate(Standard)` need a recompile — but at least they share one definition.
|
|
225
|
-
- **Con**: `is_reachable()` for a single symbol still requires a round-trip to KuzuDB. For bulk queries, `unreachable_predicate()` is more efficient (single MATCH).
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
## Proposal B: Virtual `REACHABLE_BY` edge
|
|
230
|
-
|
|
231
|
-
### Design
|
|
232
|
-
|
|
233
|
-
At index time (Phase 3 completion hook), compute and insert a virtual `REACHABLE_BY` edge from every "reachable source" to the target symbol. A symbol `s` gets `REACHABLE_BY` edges from every `CALLS`, `EXPORTS`, `INVOKES_COMMAND`, and `ROUTES_TO` source, unified into one edge type.
|
|
234
|
-
|
|
235
|
-
All consumers then query:
|
|
236
|
-
```cypher
|
|
237
|
-
NOT EXISTS { MATCH (:Symbol|:File)-[:REACHABLE_BY]->(s) }
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
The `REACHABLE_BY` edge carries a `reason` property (`"CALLS"`, `"EXPORTS"`, `"INVOKES_COMMAND"`, `"ROUTES_TO"`) to allow downstream filtering.
|
|
241
|
-
|
|
242
|
-
### Schema change required
|
|
243
|
-
|
|
244
|
-
```
|
|
245
|
-
CREATE REL TABLE REACHABLE_BY (FROM Symbol TO Symbol, reason STRING, source_id STRING)
|
|
246
|
-
CREATE REL TABLE REACHABLE_BY (FROM File TO Symbol, reason STRING, source_id STRING)
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
KuzuDB requires separate `FROM … TO …` declarations per source node type. This may require two table declarations or a union node type.
|
|
250
|
-
|
|
251
|
-
### Migration plan
|
|
252
|
-
|
|
253
|
-
A post-Phase-3 hook runs:
|
|
254
|
-
```cypher
|
|
255
|
-
MATCH (caller:Symbol)-[:CALLS]->(s:Symbol) CREATE (caller)-[:REACHABLE_BY {reason:'CALLS'}]->(s);
|
|
256
|
-
MATCH (f:File)-[:EXPORTS]->(s:Symbol) CREATE (f)-[:REACHABLE_BY {reason:'EXPORTS'}]->(s);
|
|
257
|
-
MATCH (ts:Symbol)-[:INVOKES_COMMAND]->(s:Symbol) CREATE (ts)-[:REACHABLE_BY {reason:'INVOKES_COMMAND'}]->(s);
|
|
258
|
-
MATCH (r:Symbol)-[:ROUTES_TO]->(s:Symbol) CREATE (r)-[:REACHABLE_BY {reason:'ROUTES_TO'}]->(s);
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
All consumers replace their inline predicates with:
|
|
262
|
-
```cypher
|
|
263
|
-
NOT EXISTS { MATCH ()-[:REACHABLE_BY]->(s) }
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
### Tradeoff
|
|
267
|
-
|
|
268
|
-
- **Pro**: Single-token query. All consumers are identical — zero per-consumer migration after schema adoption.
|
|
269
|
-
- **Pro**: Adding a new reachability edge type (e.g., Phase 3 LINKED_FROM) only requires updating the hook, not recompiling consumer code.
|
|
270
|
-
- **Pro**: `REACHABLE_BY` edges can carry metadata (`reason`, `confidence`) surfaced in diagnostics.
|
|
271
|
-
- **Con**: **Index-time cost**: every index run must re-derive and re-insert REACHABLE_BY edges. For large codebases this adds a post-Phase-3 pass of O(E) where E = total CALLS + EXPORTS + INVOKES_COMMAND + ROUTES_TO edges.
|
|
272
|
-
- **Con**: **Schema coupling**: adding the new table to KuzuDB requires a schema migration (schema version bump, potential incompatibility with existing `.synapse/` databases). This is a destructive change for users with existing indexes.
|
|
273
|
-
- **Con**: **Derived data duplication**: REACHABLE_BY edges carry no new information — they are a materialized view of existing edges. Any query that could update source edges (incremental indexing) must also invalidate/update REACHABLE_BY edges. The invalidation logic is non-trivial: when a CALLS edge is removed, the corresponding REACHABLE_BY edge must also be removed.
|
|
274
|
-
- **Con**: **KuzuDB multi-type FROM constraint**: KuzuDB requires `FROM <NodeType>` to be a single type per REL TABLE declaration. Since REACHABLE_BY sources include both `Symbol` (for CALLS, INVOKES_COMMAND, ROUTES_TO) and `File` (for EXPORTS), two separate REL TABLE declarations are needed or a schema workaround (e.g., a `ReachSource` union node). This adds schema complexity.
|
|
275
|
-
- **Con**: Consumers that intentionally need CALLS-only semantics (C4 process_detector, C2 synapse_context) cannot use `REACHABLE_BY` directly and must still query edge-specific tables — meaning both systems must coexist.
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
## Tradeoff comparison
|
|
280
|
-
|
|
281
|
-
| Dimension | Proposal A (Rust helper) | Proposal B (Virtual edge) |
|
|
282
|
-
|-----------|--------------------------|---------------------------|
|
|
283
|
-
| Implementation cost | Low — 1 new file, 2 consumer fixes (C1, C6) | High — schema migration, post-index hook, incremental invalidation |
|
|
284
|
-
| Runtime performance | Same as today (no extra index pass) | Adds O(E) post-Phase-3 pass; queries simplified to single NOT EXISTS |
|
|
285
|
-
| Consistency guarantee | Strong at compile time (shared function) | Strong at index time (materialized) |
|
|
286
|
-
| Flexibility for new edge types | Requires recompile of `reachability.rs` + `unreachable_predicate()` | Only hook update needed |
|
|
287
|
-
| Schema stability | Zero schema changes | Breaking schema change (new REL TABLE + migration) |
|
|
288
|
-
| Incremental index correctness | No new requirements | Must invalidate REACHABLE_BY on every source-edge mutation (complex) |
|
|
289
|
-
| CALLS-only consumers (C2, C4) | Remain CALLS-only by explicit choice — documented | Must bypass REACHABLE_BY, dual-query needed |
|
|
290
|
-
| Urgency (Drift Site 1 fix) | Can fix C6 guardian health in 1 PR | Requires full schema migration first |
|
|
291
|
-
| KuzuDB multi-source FROM constraint | N/A | Needs workaround (2 REL TABLE declarations) |
|
|
292
|
-
|
|
293
|
-
---
|
|
294
|
-
|
|
295
|
-
## Recommendation
|
|
296
|
-
|
|
297
|
-
**Adopt Proposal A (Rust helper), with a phased rollout.**
|
|
298
|
-
|
|
299
|
-
### Rationale
|
|
300
|
-
|
|
301
|
-
1. **Drift Site 1 (guardian health orphan_ratio) is already live** and causes user-visible inconsistency. Proposal A allows a targeted 2-line fix to C6 without any schema migration or index downtime.
|
|
302
|
-
|
|
303
|
-
2. **Proposal B's incremental invalidation complexity is unjustified** at current scale. The REACHABLE_BY edges are a derived view that must be kept consistent with four independent source edge types under incremental indexing. The invalidation logic would need to hook into CALLS deletion, EXPORTS deletion, INVOKES_COMMAND deletion, and ROUTES_TO deletion — adding maintenance surface area larger than the problem it solves.
|
|
304
|
-
|
|
305
|
-
3. **The KuzuDB multi-source FROM constraint** makes Proposal B fragile. The current schema already separates `File → Symbol` (EXPORTS) from `Symbol → Symbol` (CALLS, INVOKES_COMMAND, ROUTES_TO). Unifying them into one REACHABLE_BY edge type requires either a schema hack or two separate tables, defeating the "single-token query" advantage.
|
|
306
|
-
|
|
307
|
-
4. **CALLS-only consumers are intentional.** C2 (synapse_context) and C4 (process_detector) use CALLS-only semantics by design — they answer "who explicitly calls this?" and "what are execution roots?", respectively. Proposal B cannot serve them, so the two systems must coexist anyway. Proposal A's mode enum documents this explicitly.
|
|
308
|
-
|
|
309
|
-
5. **Future edge types** (Phase 3: LINKED_FROM for markdown identifier references) can be added to `ReachabilityMode::Standard` in a single place in Proposal A. The compile-time visibility of the change is a feature — it surfaces every consumer that needs updating.
|
|
310
|
-
|
|
311
|
-
### Recommended implementation task
|
|
312
|
-
|
|
313
|
-
**TASK_NNNN — Implement `reachability.rs` and fix guardian health orphan_ratio drift**
|
|
314
|
-
|
|
315
|
-
Scope:
|
|
316
|
-
1. Create `dashboard/src-tauri/src/features/synapse/reachability.rs` with:
|
|
317
|
-
- `ReachabilityMode` enum (`Strict`, `Standard`, `Loose`)
|
|
318
|
-
- `unreachable_predicate(mode) -> &'static str` — returns the Cypher NOT EXISTS fragment
|
|
319
|
-
- `is_reachable_bulk(conn, symbol_ids, mode) -> HashMap<String, bool>` — efficient bulk check
|
|
320
|
-
2. Refactor `orphan_cypher_query()` to call `unreachable_predicate(ReachabilityMode::Standard)`
|
|
321
|
-
3. Fix guardian health orphan_ratio query (synapse.rs:5641–5645) to use `unreachable_predicate(ReachabilityMode::Standard)` — **this is the Drift Site 1 fix**
|
|
322
|
-
4. Add `in_degree` augmentation for INVOKES_COMMAND edges in `compute_in_degrees` (scanner.rs:2836) — optional, lower priority
|
|
323
|
-
5. Document in `process_detector.rs` and `context.rs` that they intentionally use CALLS-only semantics
|
|
324
|
-
|
|
325
|
-
Priority: P1 (Drift Site 1 causes incorrect health scores in production).
|
|
326
|
-
Complexity: small (< 100 LOC, no schema changes).
|
|
327
|
-
|
|
328
|
-
---
|
|
329
|
-
|
|
330
|
-
status: design_complete_implementation_task_proposed
|