kenaz 0.3.22 → 0.3.24
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/hooks/_user-scope.js +1 -1
- package/core/.claude/hooks/core-resolve.js +1 -1
- package/core/.claude/hooks/worktree-create.js +11 -29
- package/core/.claude/hooks/worktree-remove.js +12 -38
- 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/tools/dispatch-detail/worktree-subagent-mode.md +6 -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/.formation/tools/utils.js +5 -5
- package/core/.formation/tools/worktree-reclaim.js +73 -2
- package/core/.formation/tools/worktree-reclaim.test.js +113 -0
- 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 +6 -2
- 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 +56 -30
- 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 +13 -12
- package/core/dev/scripts/kenaz-session.js +3 -3
- package/core/dev/scripts/peer-identity-e2e.js +6 -4
- 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 +112 -0
- package/core/plugins/kenaz/guidance.md +1 -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 +58 -4
- package/core/plugins/kenaz/hooks/worktree-guard.js +121 -0
- package/core/plugins/kenaz/hooks/worktree-guard.test.js +75 -0
- package/core/plugins/kenaz/scripts/kenaz.test.js +72 -5
- package/core/plugins/kenaz-peer/hooks/register.test.ts +14 -2
- package/core/plugins/kenaz-peer/hooks/register.ts +6 -1
- package/lib/cli.js +9 -5
- package/package.json +6 -6
- package/vendor/install-kenaz-cli.js +56 -30
- 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,60 +0,0 @@
|
|
|
1
|
-
# TASK_046: Scheduler Dispatcher
|
|
2
|
-
# Schema: dev/schemas/TASK.schema.json
|
|
3
|
-
|
|
4
|
-
id: "TASK_046"
|
|
5
|
-
title: "調度器核心邏輯"
|
|
6
|
-
description: |
|
|
7
|
-
實作 Multi-Agent Scheduler 的核心調度邏輯。
|
|
8
|
-
|
|
9
|
-
核心功能:
|
|
10
|
-
1. 主調度循環(tokio loop)
|
|
11
|
-
2. 任務分配演算法
|
|
12
|
-
3. Smart Agent Type 判斷
|
|
13
|
-
4. Agent 生命週期管理
|
|
14
|
-
|
|
15
|
-
priority: "P0"
|
|
16
|
-
status: "pending"
|
|
17
|
-
agent_type: "backend"
|
|
18
|
-
source: "Multi-Agent Scheduler 重構"
|
|
19
|
-
feature_ids:
|
|
20
|
-
- "F-SCHEDULER"
|
|
21
|
-
|
|
22
|
-
dependencies:
|
|
23
|
-
- "TASK_042"
|
|
24
|
-
- "TASK_043"
|
|
25
|
-
- "TASK_044"
|
|
26
|
-
- "TASK_045"
|
|
27
|
-
|
|
28
|
-
scope_paths:
|
|
29
|
-
- "dashboard/src-tauri/src/cmd_modules/"
|
|
30
|
-
|
|
31
|
-
requirements:
|
|
32
|
-
- "建立 scheduler.rs 模組"
|
|
33
|
-
- "實作 Scheduler struct 管理全局狀態"
|
|
34
|
-
- "實作 start() -> Result<(), Error> 啟動調度循環"
|
|
35
|
-
- "實作 stop() 優雅停止(終止所有 Agent)"
|
|
36
|
-
- "實作 get_agent_type(task) -> AgentType 智慧分派"
|
|
37
|
-
- "實作 dispatch_task(task) -> Result<AgentId, Error>"
|
|
38
|
-
- "調度循環:檢查任務、分配 Agent、監控完成"
|
|
39
|
-
- "支援 max_agents 並行限制"
|
|
40
|
-
|
|
41
|
-
acceptance_criteria:
|
|
42
|
-
- "可同時運行多個 Agent(不超過 max_agents)"
|
|
43
|
-
- "無衝突任務正確並行執行"
|
|
44
|
-
- "衝突任務正確排隊等待"
|
|
45
|
-
- "Agent 完成/失敗後正確清理資源"
|
|
46
|
-
- "Scheduler 停止時所有 Agent 被終止"
|
|
47
|
-
- "單元測試覆蓋調度邏輯"
|
|
48
|
-
|
|
49
|
-
technical_notes:
|
|
50
|
-
- "使用 tokio::spawn 運行調度循環"
|
|
51
|
-
- "使用 tokio::select! 處理多個非同步事件"
|
|
52
|
-
- "Smart Agent Type:根據任務標題/路徑推斷 Agent 類型"
|
|
53
|
-
- "Agent 類型對應表在 get_skill_path() 中定義"
|
|
54
|
-
|
|
55
|
-
estimated_hours: 8
|
|
56
|
-
complexity: "complex"
|
|
57
|
-
|
|
58
|
-
metadata:
|
|
59
|
-
created_at: "2026-02-03T16:00:00+08:00"
|
|
60
|
-
created_by: "Product Manager Agent"
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# TASK_047: Tauri Scheduler Commands
|
|
2
|
-
# Schema: dev/schemas/TASK.schema.json
|
|
3
|
-
|
|
4
|
-
id: "TASK_047"
|
|
5
|
-
title: "Tauri Scheduler API 接口"
|
|
6
|
-
description: |
|
|
7
|
-
實作 Tauri Commands,讓前端可以控制 Scheduler。
|
|
8
|
-
|
|
9
|
-
API 接口:
|
|
10
|
-
1. start_scheduler(config) - 啟動調度器
|
|
11
|
-
2. stop_scheduler() - 停止調度器
|
|
12
|
-
3. get_scheduler_status() - 獲取當前狀態
|
|
13
|
-
4. manual_unlock(path) - 手動解除路徑鎖定
|
|
14
|
-
|
|
15
|
-
priority: "P1"
|
|
16
|
-
status: "pending"
|
|
17
|
-
agent_type: "backend"
|
|
18
|
-
source: "Multi-Agent Scheduler 重構"
|
|
19
|
-
feature_ids:
|
|
20
|
-
- "F-SCHEDULER"
|
|
21
|
-
|
|
22
|
-
dependencies:
|
|
23
|
-
- "TASK_046"
|
|
24
|
-
|
|
25
|
-
scope_paths:
|
|
26
|
-
- "dashboard/src-tauri/src/cmd_modules/"
|
|
27
|
-
- "dashboard/src-tauri/src/lib.rs"
|
|
28
|
-
|
|
29
|
-
requirements:
|
|
30
|
-
- "實作 #[tauri::command] start_scheduler(config: SchedulerConfig)"
|
|
31
|
-
- "實作 #[tauri::command] stop_scheduler()"
|
|
32
|
-
- "實作 #[tauri::command] get_scheduler_status() -> SchedulerState"
|
|
33
|
-
- "實作 #[tauri::command] manual_unlock(path: String)"
|
|
34
|
-
- "在 lib.rs 註冊新 commands"
|
|
35
|
-
- "返回詳細錯誤信息給前端"
|
|
36
|
-
- "支援配置:max_agents, poll_interval, task_timeout"
|
|
37
|
-
|
|
38
|
-
acceptance_criteria:
|
|
39
|
-
- "前端可成功調用所有 API"
|
|
40
|
-
- "start_scheduler 返回成功/失敗狀態"
|
|
41
|
-
- "get_scheduler_status 返回所有 Agent 和任務狀態"
|
|
42
|
-
- "manual_unlock 可解除卡住的鎖"
|
|
43
|
-
- "錯誤時返回清晰的錯誤訊息"
|
|
44
|
-
|
|
45
|
-
technical_notes:
|
|
46
|
-
- "使用 tauri::State 共享 Scheduler 實例"
|
|
47
|
-
- "使用 tokio::sync::RwLock<Option<Scheduler>> 管理狀態"
|
|
48
|
-
- "確保線程安全:多個前端調用不會導致競爭"
|
|
49
|
-
|
|
50
|
-
estimated_hours: 4
|
|
51
|
-
complexity: "medium"
|
|
52
|
-
|
|
53
|
-
metadata:
|
|
54
|
-
created_at: "2026-02-03T16:00:00+08:00"
|
|
55
|
-
created_by: "Product Manager Agent"
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# TASK_048: Realtime Status Push
|
|
2
|
-
# Schema: dev/schemas/TASK.schema.json
|
|
3
|
-
|
|
4
|
-
id: "TASK_048"
|
|
5
|
-
title: "實時狀態推送機制"
|
|
6
|
-
description: |
|
|
7
|
-
使用 Tauri Events 將 Scheduler 狀態實時推送到前端。
|
|
8
|
-
|
|
9
|
-
核心功能:
|
|
10
|
-
1. Agent 狀態變更推送
|
|
11
|
-
2. 任務狀態變更推送
|
|
12
|
-
3. Agent stdout/stderr 串流
|
|
13
|
-
4. Heartbeat 機制
|
|
14
|
-
|
|
15
|
-
priority: "P1"
|
|
16
|
-
status: "completed"
|
|
17
|
-
agent_type: "backend"
|
|
18
|
-
source: "Multi-Agent Scheduler 重構"
|
|
19
|
-
feature_ids:
|
|
20
|
-
- "F-SCHEDULER"
|
|
21
|
-
|
|
22
|
-
dependencies:
|
|
23
|
-
- "TASK_046"
|
|
24
|
-
- "TASK_047"
|
|
25
|
-
|
|
26
|
-
scope_paths:
|
|
27
|
-
- "dashboard/src-tauri/src/cmd_modules/"
|
|
28
|
-
- "dashboard/src/lib/"
|
|
29
|
-
|
|
30
|
-
requirements:
|
|
31
|
-
- "使用 Window::emit() 發送事件到前端"
|
|
32
|
-
- "定義事件類型:scheduler:agent-update, scheduler:task-update, scheduler:log"
|
|
33
|
-
- "Agent 啟動/完成/失敗時發送狀態更新"
|
|
34
|
-
- "實作 Agent 輸出的逐行推送"
|
|
35
|
-
- "實作 Heartbeat:定期發送 scheduler:heartbeat"
|
|
36
|
-
- "前端 TypeScript 類型定義"
|
|
37
|
-
|
|
38
|
-
acceptance_criteria:
|
|
39
|
-
- "前端可接收所有 Scheduler 事件"
|
|
40
|
-
- "Agent 狀態變更立即反映在 Dashboard"
|
|
41
|
-
- "Agent 輸出可實時顯示(類似 Terminal)"
|
|
42
|
-
- "Heartbeat 每 5 秒發送一次"
|
|
43
|
-
- "前端 TypeScript 類型與 Rust 結構一致"
|
|
44
|
-
|
|
45
|
-
technical_notes:
|
|
46
|
-
- "事件 payload 使用 serde_json::to_string"
|
|
47
|
-
- "輸出串流使用 tokio::io::BufReader::lines()"
|
|
48
|
-
- "考慮輸出頻率限制避免前端過載"
|
|
49
|
-
- "前端使用 listen() 監聽事件"
|
|
50
|
-
|
|
51
|
-
estimated_hours: 5
|
|
52
|
-
complexity: "medium"
|
|
53
|
-
|
|
54
|
-
related_tasks:
|
|
55
|
-
- "TASK_049"
|
|
56
|
-
|
|
57
|
-
metadata:
|
|
58
|
-
created_at: "2026-02-03T16:00:00+08:00"
|
|
59
|
-
created_by: "Product Manager Agent"
|
|
60
|
-
completed_at: "2026-02-03T17:30:00+08:00"
|
|
61
|
-
completed_by: "Dev Agent (Backend Engineer Mode)"
|
|
62
|
-
|
|
63
|
-
implementation_summary: |
|
|
64
|
-
## 實現摘要
|
|
65
|
-
|
|
66
|
-
### Rust Backend (scheduler_events.rs)
|
|
67
|
-
- 定義 5 種事件類型:agent-update, task-update, log, heartbeat, state
|
|
68
|
-
- AgentUpdatePayload: 追蹤 agent 啟動、狀態變更、完成、失敗、終止
|
|
69
|
-
- TaskUpdatePayload: 追蹤任務狀態變化
|
|
70
|
-
- LogPayload: 支援 stdout/stderr 串流(含行號)
|
|
71
|
-
- HeartbeatPayload: 定期健康檢查
|
|
72
|
-
- SchedulerEventEmitter: 事件發送器封裝
|
|
73
|
-
|
|
74
|
-
### Scheduler 整合
|
|
75
|
-
- start_scheduler command 接收 AppHandle 設置 emitter
|
|
76
|
-
- dispatch_task 發送 agent_started + task_status_change
|
|
77
|
-
- handle_agent_completion 發送 completed/failed
|
|
78
|
-
- terminate_agent 發送 terminated
|
|
79
|
-
|
|
80
|
-
### 前端 TypeScript
|
|
81
|
-
- types/scheduler-events.ts: 完整類型定義
|
|
82
|
-
- lib/tauri-commands.ts: Scheduler commands wrapper
|
|
83
|
-
- hooks/use-scheduler-events.ts: React hook 監聽事件
|
|
84
|
-
|
|
85
|
-
### 新增 Tauri Commands
|
|
86
|
-
- emit_scheduler_heartbeat: 手動發送心跳
|
|
87
|
-
- get_scheduler_emitter: 檢查 emitter 狀態
|
|
88
|
-
|
|
89
|
-
test_results: |
|
|
90
|
-
- Rust 編譯通過(cargo check)
|
|
91
|
-
- 單元測試定義完整
|
|
92
|
-
- TypeScript 類型與 Rust 一致
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# TASK_049: Frontend Scheduler Integration
|
|
2
|
-
# Schema: dev/schemas/TASK.schema.json
|
|
3
|
-
|
|
4
|
-
id: "TASK_049"
|
|
5
|
-
title: "前端 Scheduler 整合"
|
|
6
|
-
description: |
|
|
7
|
-
修改 Dashboard 前端,整合新的 Rust Scheduler API。
|
|
8
|
-
|
|
9
|
-
核心修改:
|
|
10
|
-
1. 移除對 PowerShell 腳本的依賴
|
|
11
|
-
2. 使用 Tauri Commands 控制 Scheduler
|
|
12
|
-
3. 監聽 Tauri Events 更新 UI
|
|
13
|
-
4. 更新 Agent 狀態顯示
|
|
14
|
-
|
|
15
|
-
priority: "P1"
|
|
16
|
-
status: "pending"
|
|
17
|
-
agent_type: "frontend"
|
|
18
|
-
source: "Multi-Agent Scheduler 重構"
|
|
19
|
-
feature_ids:
|
|
20
|
-
- "F-SCHEDULER"
|
|
21
|
-
|
|
22
|
-
dependencies:
|
|
23
|
-
- "TASK_047"
|
|
24
|
-
- "TASK_048"
|
|
25
|
-
|
|
26
|
-
scope_paths:
|
|
27
|
-
- "dashboard/src/lib/"
|
|
28
|
-
- "dashboard/src/components/"
|
|
29
|
-
- "dashboard/src/hooks/"
|
|
30
|
-
|
|
31
|
-
requirements:
|
|
32
|
-
- "更新 tauri-commands.ts:新增 Scheduler API"
|
|
33
|
-
- "建立 useScheduler hook 管理 Scheduler 狀態"
|
|
34
|
-
- "建立 useSchedulerEvents hook 監聽事件"
|
|
35
|
-
- "更新 QuickActionsPanel:使用新 API"
|
|
36
|
-
- "更新 AgentStatusCard:顯示 Agent 實時狀態"
|
|
37
|
-
- "移除對 execute_script('multi_agent') 的調用"
|
|
38
|
-
- "TypeScript 類型與 Rust 結構同步"
|
|
39
|
-
|
|
40
|
-
acceptance_criteria:
|
|
41
|
-
- "Dashboard 可成功啟動/停止 Scheduler"
|
|
42
|
-
- "Agent 狀態實時更新"
|
|
43
|
-
- "不再依賴 PowerShell 腳本"
|
|
44
|
-
- "Tauri 模式和 Web 模式正確區分"
|
|
45
|
-
- "TypeScript 編譯無錯誤"
|
|
46
|
-
|
|
47
|
-
technical_notes:
|
|
48
|
-
- "使用 @tauri-apps/api/event 的 listen()"
|
|
49
|
-
- "在 useEffect 中設置事件監聽"
|
|
50
|
-
- "組件卸載時 unlisten()"
|
|
51
|
-
- "Web 模式下顯示「需要桌面版」提示"
|
|
52
|
-
|
|
53
|
-
estimated_hours: 6
|
|
54
|
-
complexity: "medium"
|
|
55
|
-
|
|
56
|
-
metadata:
|
|
57
|
-
created_at: "2026-02-03T16:00:00+08:00"
|
|
58
|
-
created_by: "Product Manager Agent"
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# TASK_050: Error Recovery & Cleanup
|
|
2
|
-
# Schema: dev/schemas/TASK.schema.json
|
|
3
|
-
|
|
4
|
-
id: "TASK_050"
|
|
5
|
-
title: "錯誤恢復與清理機制"
|
|
6
|
-
description: |
|
|
7
|
-
實作 Scheduler 的錯誤處理和恢復機制。
|
|
8
|
-
|
|
9
|
-
核心功能:
|
|
10
|
-
1. Panic 安全:單個 Agent 崩潰不影響 Scheduler
|
|
11
|
-
2. 殘留鎖清理:啟動時清除過時鎖
|
|
12
|
-
3. 任務狀態恢復:in_progress 任務重置為 pending
|
|
13
|
-
4. 優雅關閉:確保資源正確釋放
|
|
14
|
-
|
|
15
|
-
priority: "P1"
|
|
16
|
-
status: "pending"
|
|
17
|
-
agent_type: "backend"
|
|
18
|
-
source: "Multi-Agent Scheduler 重構"
|
|
19
|
-
feature_ids:
|
|
20
|
-
- "F-SCHEDULER"
|
|
21
|
-
|
|
22
|
-
dependencies:
|
|
23
|
-
- "TASK_046"
|
|
24
|
-
|
|
25
|
-
scope_paths:
|
|
26
|
-
- "dashboard/src-tauri/src/cmd_modules/"
|
|
27
|
-
|
|
28
|
-
requirements:
|
|
29
|
-
- "所有 I/O 操作使用 Result<T, E>"
|
|
30
|
-
- "Agent 進程 panic 時捕獲並記錄"
|
|
31
|
-
- "實作 clear_stale_state() 啟動時清理"
|
|
32
|
-
- "實作 check_state_consistency() 一致性驗證"
|
|
33
|
-
- "實作 recover_interrupted_tasks() 任務恢復"
|
|
34
|
-
- "Scheduler 異常退出時記錄狀態"
|
|
35
|
-
- "支援 resume_branch 機制恢復進度"
|
|
36
|
-
|
|
37
|
-
acceptance_criteria:
|
|
38
|
-
- "單個 Agent 崩潰不會導致 Scheduler 退出"
|
|
39
|
-
- "Scheduler 重啟後可恢復正常運行"
|
|
40
|
-
- "過時鎖在啟動時被自動清除"
|
|
41
|
-
- "in_progress 任務被重置為 pending"
|
|
42
|
-
- "有 Git 進度的任務保留 resume_branch"
|
|
43
|
-
- "日誌記錄所有錯誤和恢復操作"
|
|
44
|
-
|
|
45
|
-
technical_notes:
|
|
46
|
-
- "使用 tokio::spawn 隔離 Agent 運行"
|
|
47
|
-
- "使用 std::panic::catch_unwind 捕獲 panic"
|
|
48
|
-
- "鎖過期時間:30 分鐘無活動視為過時"
|
|
49
|
-
- "參考 PowerShell 版本的 Clear-StaleState"
|
|
50
|
-
|
|
51
|
-
estimated_hours: 5
|
|
52
|
-
complexity: "complex"
|
|
53
|
-
|
|
54
|
-
metadata:
|
|
55
|
-
created_at: "2026-02-03T16:00:00+08:00"
|
|
56
|
-
created_by: "Product Manager Agent"
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# TASK_051: 優化提案區後端數據模型與 API
|
|
2
|
-
# Schema: dev/schemas/TASK.schema.json
|
|
3
|
-
|
|
4
|
-
id: "TASK_051"
|
|
5
|
-
title: "優化提案區後端數據模型與 API"
|
|
6
|
-
description: |
|
|
7
|
-
為 F-003 優化提案區功能實作後端數據結構和 Tauri API。
|
|
8
|
-
|
|
9
|
-
優化提案區是 AI 自我增強建議的管理介面,讓用戶可以審核、接受或忽略 AI 提出的優化建議。
|
|
10
|
-
需要實作提案數據模型、儲存機制和 Tauri Commands。
|
|
11
|
-
|
|
12
|
-
priority: "P1"
|
|
13
|
-
status: "pending"
|
|
14
|
-
agent_type: "backend"
|
|
15
|
-
source: "F-003"
|
|
16
|
-
feature_ids:
|
|
17
|
-
- "F-003"
|
|
18
|
-
|
|
19
|
-
dependencies: []
|
|
20
|
-
|
|
21
|
-
scope_paths:
|
|
22
|
-
- "dashboard/src-tauri/src/cmd_modules/"
|
|
23
|
-
- "dev/pipeline/"
|
|
24
|
-
|
|
25
|
-
requirements:
|
|
26
|
-
- "定義 OptimizationProposal 數據結構 (id, title, description, diff, status, created_at)"
|
|
27
|
-
- "實作提案狀態枚舉:pending, accepted, ignored"
|
|
28
|
-
- "實作提案儲存:讀取/寫入 dev/pipeline/OPTIMIZATION_PROPOSALS.json"
|
|
29
|
-
- "實作 Tauri Commands:get_proposals, accept_proposal, ignore_proposal"
|
|
30
|
-
- "接受提案後自動建立對應的開發任務"
|
|
31
|
-
|
|
32
|
-
acceptance_criteria:
|
|
33
|
-
- "OptimizationProposal struct 包含所有必要欄位"
|
|
34
|
-
- "可以正確讀取和寫入 OPTIMIZATION_PROPOSALS.json"
|
|
35
|
-
- "accept_proposal 會將提案轉為 TASK_QUEUE 中的任務"
|
|
36
|
-
- "ignore_proposal 會將提案狀態標記為 ignored"
|
|
37
|
-
- "所有 Tauri Commands 有正確的錯誤處理"
|
|
38
|
-
|
|
39
|
-
technical_notes:
|
|
40
|
-
- "參考現有的 task.rs 模組結構"
|
|
41
|
-
- "使用 serde 進行 JSON 序列化/反序列化"
|
|
42
|
-
- "提案轉任務時需要自動生成任務 ID"
|
|
43
|
-
|
|
44
|
-
estimated_hours: 4
|
|
45
|
-
complexity: "medium"
|
|
46
|
-
|
|
47
|
-
related_tasks:
|
|
48
|
-
- "TASK_052"
|
|
49
|
-
- "TASK_053"
|
|
50
|
-
|
|
51
|
-
metadata:
|
|
52
|
-
created_at: "2026-02-03T19:00:00+08:00"
|
|
53
|
-
created_by: "Product Manager Agent"
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# TASK_052: 優化提案區 UI 組件實作
|
|
2
|
-
# Schema: dev/schemas/TASK.schema.json
|
|
3
|
-
|
|
4
|
-
id: "TASK_052"
|
|
5
|
-
title: "優化提案區 UI 組件實作"
|
|
6
|
-
description: |
|
|
7
|
-
為 F-003 優化提案區功能實作前端 UI 組件。
|
|
8
|
-
|
|
9
|
-
在 Dashboard 右側面板顯示 AI 自我增強建議列表,
|
|
10
|
-
包括燈泡圖示提示、提案卡片、Accept/Ignore 按鈕等 UI 元素。
|
|
11
|
-
|
|
12
|
-
priority: "P1"
|
|
13
|
-
status: "pending"
|
|
14
|
-
agent_type: "frontend"
|
|
15
|
-
source: "F-003"
|
|
16
|
-
feature_ids:
|
|
17
|
-
- "F-003"
|
|
18
|
-
|
|
19
|
-
dependencies:
|
|
20
|
-
- "TASK_051"
|
|
21
|
-
|
|
22
|
-
scope_paths:
|
|
23
|
-
- "dashboard/src/components/"
|
|
24
|
-
- "dashboard/src/hooks/"
|
|
25
|
-
- "dashboard/src/lib/"
|
|
26
|
-
|
|
27
|
-
requirements:
|
|
28
|
-
- "建立 OptimizationProposalsPanel 組件作為右側面板"
|
|
29
|
-
- "實作提案卡片 UI (ProposalCard):標題、描述、操作按鈕"
|
|
30
|
-
- "燈泡圖示顯示有多少待審核提案"
|
|
31
|
-
- "Accept 按鈕點擊後呼叫 accept_proposal API"
|
|
32
|
-
- "Ignore 按鈕點擊後呼叫 ignore_proposal API"
|
|
33
|
-
- "提案列表支援空狀態顯示"
|
|
34
|
-
- "RWD 響應式設計:桌面版右側欄,手機版可收合面板"
|
|
35
|
-
|
|
36
|
-
acceptance_criteria:
|
|
37
|
-
- "OptimizationProposalsPanel 正確顯示在 Dashboard 右側"
|
|
38
|
-
- "提案卡片顯示標題、描述和操作按鈕"
|
|
39
|
-
- "Accept/Ignore 操作可正常呼叫後端 API"
|
|
40
|
-
- "操作成功後列表自動更新"
|
|
41
|
-
- "無提案時顯示友善的空狀態訊息"
|
|
42
|
-
- "手機版可收合/展開提案面板"
|
|
43
|
-
|
|
44
|
-
technical_notes:
|
|
45
|
-
- "使用 shadcn/ui 組件庫"
|
|
46
|
-
- "使用 React Query 管理 API 狀態"
|
|
47
|
-
- "使用 Tauri events 監聽提案變更"
|
|
48
|
-
|
|
49
|
-
estimated_hours: 6
|
|
50
|
-
complexity: "medium"
|
|
51
|
-
|
|
52
|
-
related_tasks:
|
|
53
|
-
- "TASK_051"
|
|
54
|
-
- "TASK_053"
|
|
55
|
-
|
|
56
|
-
metadata:
|
|
57
|
-
created_at: "2026-02-03T19:00:00+08:00"
|
|
58
|
-
created_by: "Product Manager Agent"
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# TASK_053: 優化提案 Diff View 代碼對比功能
|
|
2
|
-
# Schema: dev/schemas/TASK.schema.json
|
|
3
|
-
|
|
4
|
-
id: "TASK_053"
|
|
5
|
-
title: "優化提案 Diff View 代碼對比功能"
|
|
6
|
-
description: |
|
|
7
|
-
為 F-003 優化提案區增加代碼對比 (Diff View) 功能。
|
|
8
|
-
|
|
9
|
-
讓用戶可以展開查看優化建議的具體代碼變更,
|
|
10
|
-
以並排或行內方式顯示修改前後的差異。
|
|
11
|
-
|
|
12
|
-
priority: "P1"
|
|
13
|
-
status: "pending"
|
|
14
|
-
agent_type: "frontend"
|
|
15
|
-
source: "F-003"
|
|
16
|
-
feature_ids:
|
|
17
|
-
- "F-003"
|
|
18
|
-
|
|
19
|
-
dependencies:
|
|
20
|
-
- "TASK_052"
|
|
21
|
-
|
|
22
|
-
scope_paths:
|
|
23
|
-
- "dashboard/src/components/"
|
|
24
|
-
- "dashboard/package.json"
|
|
25
|
-
|
|
26
|
-
requirements:
|
|
27
|
-
- "整合 react-diff-viewer 或類似的 diff 顯示庫"
|
|
28
|
-
- "提案卡片可展開顯示 Diff View"
|
|
29
|
-
- "支援並排 (split) 和行內 (unified) 兩種顯示模式"
|
|
30
|
-
- "Diff View 支援語法高亮"
|
|
31
|
-
- "大型 diff 支援折疊/展開"
|
|
32
|
-
|
|
33
|
-
acceptance_criteria:
|
|
34
|
-
- "點擊提案卡片可展開/收合 Diff View"
|
|
35
|
-
- "Diff View 正確顯示修改前後的代碼差異"
|
|
36
|
-
- "可切換並排和行內顯示模式"
|
|
37
|
-
- "代碼有正確的語法高亮"
|
|
38
|
-
- "長 diff 不會造成效能問題"
|
|
39
|
-
|
|
40
|
-
technical_notes:
|
|
41
|
-
- "考慮使用 react-diff-viewer-continued(react-diff-viewer 的維護版本)"
|
|
42
|
-
- "語法高亮可使用 prism-react-renderer"
|
|
43
|
-
- "確保與現有 shadcn/ui 樣式一致"
|
|
44
|
-
|
|
45
|
-
estimated_hours: 4
|
|
46
|
-
complexity: "medium"
|
|
47
|
-
|
|
48
|
-
related_tasks:
|
|
49
|
-
- "TASK_051"
|
|
50
|
-
- "TASK_052"
|
|
51
|
-
|
|
52
|
-
metadata:
|
|
53
|
-
created_at: "2026-02-03T19:00:00+08:00"
|
|
54
|
-
created_by: "Product Manager Agent"
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# TASK_054: 多專案 Scheduler 狀態重構
|
|
2
|
-
# Schema: dev/schemas/TASK.schema.json
|
|
3
|
-
|
|
4
|
-
id: "TASK_054"
|
|
5
|
-
title: "多專案 Scheduler 狀態重構(Rust Backend)"
|
|
6
|
-
description: |
|
|
7
|
-
重構 SchedulerAppState 以支援多專案同時運行 Agent。
|
|
8
|
-
|
|
9
|
-
**當前問題**:
|
|
10
|
-
- SchedulerAppState 使用 `Option<Scheduler>` 存儲單一 Scheduler
|
|
11
|
-
- 整個應用只能有一個 Scheduler 實例
|
|
12
|
-
- 切換專案後需要先停止再重啟
|
|
13
|
-
|
|
14
|
-
**目標狀態**:
|
|
15
|
-
- 使用 `HashMap<String, Scheduler>` 存儲多個 Scheduler(key = project_path)
|
|
16
|
-
- 每個專案可以獨立 start/stop 自己的 Scheduler
|
|
17
|
-
- 專案 A 運行 Agent 時,專案 B 也可以同時運行
|
|
18
|
-
|
|
19
|
-
priority: "P1"
|
|
20
|
-
status: "completed"
|
|
21
|
-
agent_type: "backend"
|
|
22
|
-
source: "F-006"
|
|
23
|
-
feature_ids:
|
|
24
|
-
- "F-006"
|
|
25
|
-
|
|
26
|
-
dependencies: []
|
|
27
|
-
|
|
28
|
-
scope_paths:
|
|
29
|
-
- "dashboard/src-tauri/src/cmd_modules/scheduler.rs"
|
|
30
|
-
- "dashboard/src-tauri/src/lib.rs"
|
|
31
|
-
|
|
32
|
-
requirements:
|
|
33
|
-
- "修改 SchedulerAppState 結構,將 `inner: Arc<RwLock<Option<Scheduler>>>` 改為 `schedulers: Arc<RwLock<HashMap<String, Scheduler>>>`"
|
|
34
|
-
- "移除 `project_root: PathBuf` 字段(每個 Scheduler 自帶 project_root)"
|
|
35
|
-
- "新增 `get_scheduler(&self, project_path: &str)` 方法"
|
|
36
|
-
- "新增 `insert_scheduler(&self, project_path: String, scheduler: Scheduler)` 方法"
|
|
37
|
-
- "新增 `remove_scheduler(&self, project_path: &str)` 方法"
|
|
38
|
-
- "新增 `list_projects(&self)` 方法返回所有運行中的專案路徑"
|
|
39
|
-
- "更新 lib.rs 的初始化邏輯,使用空 HashMap 初始化"
|
|
40
|
-
|
|
41
|
-
acceptance_criteria:
|
|
42
|
-
- "SchedulerAppState 使用 HashMap 存儲多個 Scheduler"
|
|
43
|
-
- "可以同時存在多個 Scheduler 實例(不同 project_path)"
|
|
44
|
-
- "單元測試驗證多專案操作"
|
|
45
|
-
- "Rust 編譯無錯誤"
|
|
46
|
-
|
|
47
|
-
technical_notes:
|
|
48
|
-
- "使用 PathBuf 正規化後的字串作為 HashMap key"
|
|
49
|
-
- "Windows 路徑需要統一轉換(大小寫、斜線方向)"
|
|
50
|
-
- "考慮使用 canonicalize() 確保路徑唯一性"
|
|
51
|
-
|
|
52
|
-
estimated_hours: 3
|
|
53
|
-
complexity: "medium"
|
|
54
|
-
|
|
55
|
-
related_tasks:
|
|
56
|
-
- "TASK_055"
|
|
57
|
-
- "TASK_056"
|
|
58
|
-
|
|
59
|
-
completion_details:
|
|
60
|
-
completed_at: "2026-02-03T19:30:00+08:00"
|
|
61
|
-
completed_by: "Dev Agent (Backend Engineer)"
|
|
62
|
-
changes_made:
|
|
63
|
-
- "重構 SchedulerAppState 使用 HashMap<String, Scheduler>"
|
|
64
|
-
- "新增 normalize_project_path() 方法處理 Windows 路徑"
|
|
65
|
-
- "新增 get_schedulers(), get_schedulers_mut(), insert_scheduler(), remove_scheduler(), list_projects(), has_scheduler(), scheduler_count() 方法"
|
|
66
|
-
- "更新所有 14 個 Tauri commands 支援 project_path 參數"
|
|
67
|
-
- "新增 list_scheduler_projects 和 stop_all_schedulers 命令"
|
|
68
|
-
- "更新 lib.rs 使用 SchedulerAppState::new() 初始化"
|
|
69
|
-
- "新增 12 個單元測試驗證多專案操作"
|
|
70
|
-
files_modified:
|
|
71
|
-
- "dashboard/src-tauri/src/cmd_modules/scheduler.rs"
|
|
72
|
-
- "dashboard/src-tauri/src/lib.rs"
|
|
73
|
-
|
|
74
|
-
metadata:
|
|
75
|
-
created_at: "2026-02-03T18:45:00+08:00"
|
|
76
|
-
created_by: "Product Manager Agent"
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# TASK_055: Scheduler API 專案作用域更新
|
|
2
|
-
# Schema: dev/schemas/TASK.schema.json
|
|
3
|
-
|
|
4
|
-
id: "TASK_055"
|
|
5
|
-
title: "Scheduler API 專案作用域更新(Tauri Commands)"
|
|
6
|
-
description: |
|
|
7
|
-
更新所有 Scheduler 相關的 Tauri Commands,使其接受 project_path 參數,
|
|
8
|
-
實現每個專案獨立的 Scheduler 控制。
|
|
9
|
-
|
|
10
|
-
**需要更新的 Commands**:
|
|
11
|
-
- start_scheduler: 啟動指定專案的 Scheduler
|
|
12
|
-
- stop_scheduler: 停止指定專案的 Scheduler
|
|
13
|
-
- get_scheduler_status: 獲取指定專案的 Scheduler 狀態
|
|
14
|
-
- manual_unlock: 解鎖指定專案的路徑
|
|
15
|
-
- terminate_agent: 終止指定專案的 Agent
|
|
16
|
-
- dispatch_task: 在指定專案分派任務
|
|
17
|
-
|
|
18
|
-
**新增 Command**:
|
|
19
|
-
- list_running_schedulers: 列出所有運行中的 Scheduler
|
|
20
|
-
|
|
21
|
-
priority: "P1"
|
|
22
|
-
status: "pending"
|
|
23
|
-
agent_type: "backend"
|
|
24
|
-
source: "F-006"
|
|
25
|
-
feature_ids:
|
|
26
|
-
- "F-006"
|
|
27
|
-
|
|
28
|
-
dependencies:
|
|
29
|
-
- "TASK_054"
|
|
30
|
-
|
|
31
|
-
scope_paths:
|
|
32
|
-
- "dashboard/src-tauri/src/cmd_modules/scheduler.rs"
|
|
33
|
-
|
|
34
|
-
requirements:
|
|
35
|
-
- "所有 scheduler commands 新增 `project_path: String` 必填參數"
|
|
36
|
-
- "start_scheduler 使用傳入的 project_path 建立 Scheduler"
|
|
37
|
-
- "stop_scheduler 停止並移除對應 project_path 的 Scheduler"
|
|
38
|
-
- "get_scheduler_status 返回指定專案的狀態,若不存在返回 is_running=false"
|
|
39
|
-
- "新增 list_running_schedulers command 返回所有運行中的專案列表"
|
|
40
|
-
- "錯誤處理:當 project_path 對應的 Scheduler 不存在時返回清晰錯誤訊息"
|
|
41
|
-
|
|
42
|
-
acceptance_criteria:
|
|
43
|
-
- "所有 scheduler commands 接受 project_path 參數"
|
|
44
|
-
- "可以同時啟動兩個不同專案的 Scheduler"
|
|
45
|
-
- "停止專案 A 的 Scheduler 不影響專案 B"
|
|
46
|
-
- "get_scheduler_status 正確返回指定專案的狀態"
|
|
47
|
-
- "list_running_schedulers 返回所有運行中的專案路徑"
|
|
48
|
-
- "Rust 編譯無錯誤"
|
|
49
|
-
|
|
50
|
-
technical_notes:
|
|
51
|
-
- "project_path 應在命令內部 canonicalize 確保一致性"
|
|
52
|
-
- "考慮路徑不存在時的錯誤處理"
|
|
53
|
-
- "Tauri 2.x 前端傳 camelCase (projectPath),Rust 接收 snake_case (project_path)"
|
|
54
|
-
|
|
55
|
-
estimated_hours: 4
|
|
56
|
-
complexity: "medium"
|
|
57
|
-
|
|
58
|
-
related_tasks:
|
|
59
|
-
- "TASK_054"
|
|
60
|
-
- "TASK_056"
|
|
61
|
-
|
|
62
|
-
metadata:
|
|
63
|
-
created_at: "2026-02-03T18:45:00+08:00"
|
|
64
|
-
created_by: "Product Manager Agent"
|