devsquad 4.5.0__tar.gz → 4.5.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (504) hide show
  1. {devsquad-4.5.0 → devsquad-4.5.4}/PKG-INFO +23 -12
  2. {devsquad-4.5.0 → devsquad-4.5.4}/README.md +22 -11
  3. {devsquad-4.5.0 → devsquad-4.5.4}/devsquad.egg-info/PKG-INFO +23 -12
  4. {devsquad-4.5.0 → devsquad-4.5.4}/devsquad.egg-info/SOURCES.txt +40 -0
  5. {devsquad-4.5.0 → devsquad-4.5.4}/pyproject.toml +5 -1
  6. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/api/routes/dispatch.py +16 -3
  7. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/check_doc_consistency.py +1 -1
  8. devsquad-4.5.4/scripts/check_module_activation.py +273 -0
  9. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/cli.py +91 -0
  10. devsquad-4.5.4/scripts/cli_audit.py +272 -0
  11. devsquad-4.5.4/scripts/cli_backend.py +111 -0
  12. devsquad-4.5.4/scripts/cli_doctor.py +273 -0
  13. devsquad-4.5.4/scripts/cli_metrics.py +181 -0
  14. devsquad-4.5.4/scripts/cli_modules.py +171 -0
  15. devsquad-4.5.4/scripts/collaboration/_version.py +1 -0
  16. devsquad-4.5.4/scripts/collaboration/approval_gate.py +197 -0
  17. devsquad-4.5.4/scripts/collaboration/artifact_store.py +466 -0
  18. devsquad-4.5.4/scripts/collaboration/backend_config.py +237 -0
  19. devsquad-4.5.4/scripts/collaboration/backend_paths.py +195 -0
  20. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/cli_command_classifier.py +7 -0
  21. devsquad-4.5.4/scripts/collaboration/coeffect.py +239 -0
  22. devsquad-4.5.4/scripts/collaboration/connector_framework.py +341 -0
  23. devsquad-4.5.4/scripts/collaboration/dispatch_effect.py +239 -0
  24. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_models.py +50 -0
  25. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_pre_steps.py +74 -4
  26. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatcher.py +199 -10
  27. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatcher_base.py +18 -0
  28. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatcher_config.py +8 -0
  29. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatcher_mixins.py +16 -2
  30. devsquad-4.5.4/scripts/collaboration/effect_registry.py +122 -0
  31. devsquad-4.5.4/scripts/collaboration/gitlab_connector.py +366 -0
  32. devsquad-4.5.4/scripts/collaboration/host_llm_bridge.py +454 -0
  33. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/llm_backend.py +336 -75
  34. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/models_dispatch.py +10 -0
  35. devsquad-4.5.4/scripts/collaboration/module_fiber.py +195 -0
  36. devsquad-4.5.4/scripts/collaboration/moka_backend.py +177 -0
  37. devsquad-4.5.4/scripts/collaboration/order_chain_detector.py +262 -0
  38. devsquad-4.5.4/scripts/collaboration/perf_baseline.py +393 -0
  39. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/prometheus_metrics.py +139 -0
  40. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/scratchpad.py +2 -3
  41. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/scratchpad_history_store.py +2 -3
  42. devsquad-4.5.4/scripts/collaboration/task_scale_gate.py +312 -0
  43. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/worker.py +18 -0
  44. devsquad-4.5.4/scripts/collect_baseline.py +160 -0
  45. {devsquad-4.5.0 → devsquad-4.5.4}/skills/__init__.py +1 -1
  46. devsquad-4.5.4/tests/test_approval_gate.py +398 -0
  47. devsquad-4.5.4/tests/test_artifact_effect_binding.py +129 -0
  48. devsquad-4.5.4/tests/test_artifact_store.py +306 -0
  49. devsquad-4.5.4/tests/test_backend_config.py +239 -0
  50. devsquad-4.5.4/tests/test_cli_audit.py +263 -0
  51. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_cli_command_classifier.py +6 -4
  52. devsquad-4.5.4/tests/test_cli_doctor.py +226 -0
  53. devsquad-4.5.4/tests/test_cli_metrics.py +151 -0
  54. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_dispatcher_ux_test.py +5 -1
  55. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dispatcher_mixins.py +62 -0
  56. devsquad-4.5.4/tests/test_effect_registry.py +401 -0
  57. devsquad-4.5.4/tests/test_fallback_fuse.py +214 -0
  58. devsquad-4.5.4/tests/test_gitlab_connector.py +295 -0
  59. devsquad-4.5.4/tests/test_host_bridge_unit.py +354 -0
  60. devsquad-4.5.4/tests/test_llm_backend_resolve.py +370 -0
  61. devsquad-4.5.4/tests/test_moka_backend.py +306 -0
  62. devsquad-4.5.4/tests/test_order_chain_detector.py +242 -0
  63. devsquad-4.5.4/tests/test_perf_baseline.py +341 -0
  64. devsquad-4.5.4/tests/test_perf_baseline_ci_gate.py +257 -0
  65. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_prometheus_metrics.py +158 -7
  66. devsquad-4.5.4/tests/test_task_scale_gate.py +247 -0
  67. devsquad-4.5.4/tests/test_worker_artifact_integration.py +139 -0
  68. devsquad-4.5.0/scripts/collaboration/_version.py +0 -1
  69. {devsquad-4.5.0 → devsquad-4.5.4}/LICENSE +0 -0
  70. {devsquad-4.5.0 → devsquad-4.5.4}/devsquad.egg-info/dependency_links.txt +0 -0
  71. {devsquad-4.5.0 → devsquad-4.5.4}/devsquad.egg-info/entry_points.txt +0 -0
  72. {devsquad-4.5.0 → devsquad-4.5.4}/devsquad.egg-info/requires.txt +0 -0
  73. {devsquad-4.5.0 → devsquad-4.5.4}/devsquad.egg-info/top_level.txt +0 -0
  74. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/__init__.py +0 -0
  75. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/api/__init__.py +0 -0
  76. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/api/models.py +0 -0
  77. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/api/rate_limit.py +0 -0
  78. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/api/routes/__init__.py +0 -0
  79. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/api/routes/lifecycle.py +0 -0
  80. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/api/routes/metrics.py +0 -0
  81. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/api/routes/metrics_gates.py +0 -0
  82. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/api/security.py +0 -0
  83. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/api_server.py +0 -0
  84. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/auth.py +0 -0
  85. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/benchmark_async_dispatch.py +0 -0
  86. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/benchmark_ponytail_smart.py +0 -0
  87. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/benchmark_real_llm.py +0 -0
  88. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/check_async_coverage.py +0 -0
  89. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/check_config_consistency.py +0 -0
  90. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/check_constructor_params.py +0 -0
  91. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/check_dependency_lock.py +0 -0
  92. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/check_dependency_sync.py +0 -0
  93. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/check_hidden_content.py +0 -0
  94. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/check_test_pyramid.py +0 -0
  95. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/check_test_quality.py +0 -0
  96. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/check_version_consistency.py +0 -0
  97. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/cli/__init__.py +0 -0
  98. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/cli/cli_visual.py +0 -0
  99. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/cli_dispatch.py +0 -0
  100. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/cli_lifecycle.py +0 -0
  101. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/cli_sessions.py +0 -0
  102. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/cli_utils.py +0 -0
  103. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/__init__.py +0 -0
  104. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/adaptive_role_selector.py +0 -0
  105. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/adversarial_verify.py +0 -0
  106. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/agent_briefing.py +0 -0
  107. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/agent_identity.py +0 -0
  108. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/ai_semantic_matcher.py +0 -0
  109. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/anchor_checker.py +0 -0
  110. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/anti_rationalization.py +0 -0
  111. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/async_adapter.py +0 -0
  112. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/async_coordinator.py +0 -0
  113. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/async_llm_backend.py +0 -0
  114. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/audit_logger.py +0 -0
  115. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/autonomous/__init__.py +0 -0
  116. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/autonomous/git_driver.py +0 -0
  117. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/autonomous/loop_controller.py +0 -0
  118. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/autonomous/notes_memory.py +0 -0
  119. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/autonomous/run_state.py +0 -0
  120. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/autonomous/sleep_guard.py +0 -0
  121. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/autonomous/smart_confirmation.py +0 -0
  122. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/batch_scheduler.py +0 -0
  123. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/benchmark_regression_checker.py +0 -0
  124. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/cache_interface.py +0 -0
  125. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/ccr_store.py +0 -0
  126. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/checkpoint_manager.py +0 -0
  127. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/ci_feedback_adapter.py +0 -0
  128. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/code_graph_query.py +0 -0
  129. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/code_graph_storage.py +0 -0
  130. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/code_knowledge_graph.py +0 -0
  131. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/code_map_generator.py +0 -0
  132. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/concern_pack_loader.py +0 -0
  133. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/confidence_score.py +0 -0
  134. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/config_manager.py +0 -0
  135. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/consensus.py +0 -0
  136. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/consensus_gate.py +0 -0
  137. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/constants.py +0 -0
  138. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/content_cache.py +0 -0
  139. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/content_crusher.py +0 -0
  140. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/context_compressor.py +0 -0
  141. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/coordinator.py +0 -0
  142. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dashboard_live_mode.py +0 -0
  143. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/debt_collector.py +0 -0
  144. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dependency_hallucination_checker.py +0 -0
  145. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/deployment_compliance_checker.py +0 -0
  146. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_audit.py +0 -0
  147. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_component_factory.py +1 -1
  148. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_hooks.py +0 -0
  149. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_lifecycle.py +0 -0
  150. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_performance.py +0 -0
  151. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_rbac.py +0 -0
  152. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_result_assembler.py +0 -0
  153. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_services.py +0 -0
  154. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_steps.py +0 -0
  155. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_steps_base.py +0 -0
  156. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_steps_consensus_mixin.py +0 -0
  157. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_steps_feedback_mixin.py +0 -0
  158. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_steps_mixins.py +0 -0
  159. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_steps_quality_mixin.py +0 -0
  160. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatch_steps_services_mixin.py +0 -0
  161. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatcher_async_mixin.py +0 -0
  162. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatcher_audit_mixin.py +0 -0
  163. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatcher_error_mixin.py +0 -0
  164. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatcher_factory.py +0 -0
  165. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatcher_lifecycle_mixin.py +0 -0
  166. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatcher_status_mixin.py +0 -0
  167. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dispatcher_utils_mixin.py +0 -0
  168. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dora_metrics_collector.py +0 -0
  169. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/dual_layer_context.py +0 -0
  170. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/enhanced_worker.py +0 -0
  171. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/enterprise_feature.py +0 -0
  172. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/error_budget_tracker.py +0 -0
  173. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/event_bus.py +0 -0
  174. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/execution_guard.py +0 -0
  175. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/feature_usage_tracker.py +0 -0
  176. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/feedback_control_loop.py +0 -0
  177. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/file_bundler.py +0 -0
  178. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/five_axis_consensus.py +0 -0
  179. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/gap_analyzer.py +0 -0
  180. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/input_validator.py +0 -0
  181. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/intent_workflow_mapper.py +0 -0
  182. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/judge_agent.py +0 -0
  183. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/language_parsers.py +0 -0
  184. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/learned_rule_store.py +0 -0
  185. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/lifecycle_gate.py +0 -0
  186. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/lifecycle_protocol.py +0 -0
  187. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/lifecycle_shortcut_adapter.py +0 -0
  188. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/lifecycle_shortcut_helpers.py +0 -0
  189. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/lifecycle_templates.py +0 -0
  190. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/llm_cache.py +0 -0
  191. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/llm_cache_async.py +0 -0
  192. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/llm_cache_base.py +0 -0
  193. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/llm_retry.py +0 -0
  194. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/llm_retry_async.py +0 -0
  195. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/llm_retry_base.py +0 -0
  196. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/loop_engineering/__init__.py +0 -0
  197. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/loop_engineering/discovery_probe.py +0 -0
  198. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/loop_engineering/handoff_adapter.py +0 -0
  199. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/loop_engineering/independent_evaluator.py +0 -0
  200. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/loop_engineering/kernel.py +0 -0
  201. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/loop_engineering/loop_scheduler.py +0 -0
  202. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/loop_engineering/models.py +0 -0
  203. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/loop_engineering/protocols.py +0 -0
  204. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/loop_engineering/rollback_strategy.py +0 -0
  205. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/loop_engineering/unified_memory.py +0 -0
  206. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/mce_adapter.py +0 -0
  207. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/memory_bridge.py +0 -0
  208. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/memory_claw_source.py +0 -0
  209. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/memory_forgetting.py +0 -0
  210. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/memory_index.py +0 -0
  211. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/memory_query.py +0 -0
  212. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/memory_serializer.py +0 -0
  213. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/memory_types.py +0 -0
  214. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/meta_skill_layering.py +0 -0
  215. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/micro_task_planner.py +0 -0
  216. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/models.py +0 -0
  217. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/models_base.py +0 -0
  218. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/models_lifecycle.py +0 -0
  219. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/multi_host_adapter.py +0 -0
  220. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/multi_level_cache.py +0 -0
  221. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/multi_tenant.py +0 -0
  222. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/null_providers.py +0 -0
  223. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/operation_classifier.py +0 -0
  224. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/output_slicer.py +0 -0
  225. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/output_validator.py +0 -0
  226. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/performance_fingerprint.py +0 -0
  227. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/performance_monitor.py +0 -0
  228. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/permission_guard.py +0 -0
  229. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/plugins/__init__.py +0 -0
  230. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/plugins/hot_loader.py +0 -0
  231. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/ponytail_rule_injector.py +0 -0
  232. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/prompt_assembler.py +0 -0
  233. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/prompt_assembler_base.py +0 -0
  234. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/prompt_assembler_formatting_mixin.py +0 -0
  235. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/prompt_assembler_mixins.py +0 -0
  236. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/prompt_assembler_substitution_mixin.py +0 -0
  237. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/prompt_assembler_template_mixin.py +0 -0
  238. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/prompt_assembler_validation_mixin.py +0 -0
  239. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/prompt_dials.py +0 -0
  240. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/protocols.py +0 -0
  241. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/quality_calibration_gate.py +0 -0
  242. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/quality_probe_slice.py +0 -0
  243. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/rbac_engine.py +0 -0
  244. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/redesign_auditor.py +0 -0
  245. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/redesign_checkers.py +0 -0
  246. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/redis_cache.py +0 -0
  247. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/report_formatter.py +0 -0
  248. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/requirement_tracer.py +0 -0
  249. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/retrospective.py +0 -0
  250. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/review_checkers.py +0 -0
  251. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/risk_register.py +0 -0
  252. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/role_matcher.py +0 -0
  253. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/role_skill_loader.py +0 -0
  254. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/role_specific_mock_backend.py +0 -0
  255. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/rule_collector.py +0 -0
  256. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/secret_patterns.py +0 -0
  257. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/severity_router.py +0 -0
  258. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/similar_task_recommender.py +0 -0
  259. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/skill_extractor.py +0 -0
  260. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/skill_provider_builtin.py +0 -0
  261. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/skill_provider_mcp.py +0 -0
  262. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/skill_registry.py +0 -0
  263. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/skill_storage.py +0 -0
  264. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/skillifier.py +0 -0
  265. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/standardized_role_template.py +0 -0
  266. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/task_completion_checker.py +0 -0
  267. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/tech_debt_manager.py +0 -0
  268. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/test_quality_guard.py +0 -0
  269. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/todo_drift_monitor.py +0 -0
  270. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/two_stage_review_gate.py +0 -0
  271. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/ue_test_accessibility_mixin.py +0 -0
  272. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/ue_test_framework.py +0 -0
  273. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/ue_test_framework_base.py +0 -0
  274. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/ue_test_heuristic_mixin.py +0 -0
  275. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/ue_test_journey_mixin.py +0 -0
  276. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/ue_test_mixins.py +0 -0
  277. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/ue_test_persona_mixin.py +0 -0
  278. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/unified_gate_engine.py +0 -0
  279. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/usage_tracker.py +0 -0
  280. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/user_friendly_error.py +0 -0
  281. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/verification_gate.py +0 -0
  282. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/viewpoint_registry.py +0 -0
  283. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/warmup_manager.py +0 -0
  284. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/workflow_engine.py +0 -0
  285. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/workflow_engine_base.py +0 -0
  286. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/workflow_engine_lifecycle_mixin.py +0 -0
  287. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/workflow_engine_mixins.py +0 -0
  288. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/workflow_engine_persistence_mixin.py +0 -0
  289. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/workflow_engine_state_mixin.py +0 -0
  290. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/workflow_engine_transition_mixin.py +0 -0
  291. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/collaboration/yagni_checker.py +0 -0
  292. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard/__init__.py +0 -0
  293. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard/app.py +0 -0
  294. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard/auth_views.py +0 -0
  295. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard/components.py +0 -0
  296. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard/dag_views.py +0 -0
  297. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard/dispatch_views.py +0 -0
  298. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard/i18n.py +0 -0
  299. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard/lifecycle_views.py +0 -0
  300. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard/metrics_views.py +0 -0
  301. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard/state.py +0 -0
  302. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard/v43_panels.py +0 -0
  303. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/dashboard.py +0 -0
  304. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/generate_benchmark_report.py +0 -0
  305. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/generate_quality_decision_report.py +0 -0
  306. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/history_manager.py +0 -0
  307. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/mcp_server.py +0 -0
  308. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/qa/__init__.py +0 -0
  309. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/qa/deterministic_rule_engine.py +0 -0
  310. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/qa/models.py +0 -0
  311. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/qa/taste_dials.py +0 -0
  312. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/qa/uiux_analyzer.py +0 -0
  313. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/qa/uiux_subitems.py +0 -0
  314. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/qa/visual_regression.py +0 -0
  315. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/scan_pickle_payloads.py +0 -0
  316. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/utils/__init__.py +0 -0
  317. {devsquad-4.5.0 → devsquad-4.5.4}/scripts/utils/_find_missing_hints.py +0 -0
  318. {devsquad-4.5.0 → devsquad-4.5.4}/setup.cfg +0 -0
  319. {devsquad-4.5.0 → devsquad-4.5.4}/skills/_version.py +0 -0
  320. {devsquad-4.5.0 → devsquad-4.5.4}/skills/dispatch/handler.py +0 -0
  321. {devsquad-4.5.0 → devsquad-4.5.4}/skills/intent/handler.py +0 -0
  322. {devsquad-4.5.0 → devsquad-4.5.4}/skills/prototype/handler.py +0 -0
  323. {devsquad-4.5.0 → devsquad-4.5.4}/skills/registry.py +0 -0
  324. {devsquad-4.5.0 → devsquad-4.5.4}/skills/retrospective/__init__.py +0 -0
  325. {devsquad-4.5.0 → devsquad-4.5.4}/skills/retrospective/handler.py +0 -0
  326. {devsquad-4.5.0 → devsquad-4.5.4}/skills/review/handler.py +0 -0
  327. {devsquad-4.5.0 → devsquad-4.5.4}/skills/security/handler.py +0 -0
  328. {devsquad-4.5.0 → devsquad-4.5.4}/skills/teach/handler.py +0 -0
  329. {devsquad-4.5.0 → devsquad-4.5.4}/skills/test/__init__.py +0 -0
  330. {devsquad-4.5.0 → devsquad-4.5.4}/skills/test/handler.py +0 -0
  331. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_4pt_grid.py +0 -0
  332. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_adaptive_role_selector.py +0 -0
  333. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_adversarial_verify.py +0 -0
  334. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_agent_briefing.py +0 -0
  335. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_anchor_retrospective.py +0 -0
  336. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_anti_rationalization.py +0 -0
  337. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_antipattern_bans.py +0 -0
  338. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_api_budget_status_endpoint.py +0 -0
  339. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_api_security.py +0 -0
  340. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_api_server_v362.py +0 -0
  341. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_async_coordinator.py +0 -0
  342. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_async_modules.py +0 -0
  343. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_audit_logger.py +0 -0
  344. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_auth_phase5.py +0 -0
  345. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_autonomous.py +0 -0
  346. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_benchmark_ponytail_smart.py +0 -0
  347. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_cache_interface.py +0 -0
  348. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_ccr_store.py +0 -0
  349. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_check_async_coverage.py +0 -0
  350. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_check_config_consistency.py +0 -0
  351. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_check_constructor_params.py +0 -0
  352. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_check_dependency_lock.py +0 -0
  353. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_check_hidden_content.py +0 -0
  354. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_check_test_pyramid.py +0 -0
  355. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_check_test_quality.py +0 -0
  356. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_check_version_consistency.py +0 -0
  357. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_ci_feedback_adapter.py +0 -0
  358. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_cli_deep_v362.py +0 -0
  359. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_cli_lifecycle.py +0 -0
  360. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_cli_phase5.py +0 -0
  361. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_code_knowledge_graph.py +0 -0
  362. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_claw_integration_test.py +0 -0
  363. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_context_compressor_test.py +0 -0
  364. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_core_test.py +0 -0
  365. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_dispatcher_test.py +0 -0
  366. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_e2e_test.py +0 -0
  367. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_enhanced_e2e_test.py +0 -0
  368. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_llm_cache_test.py +0 -0
  369. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_llm_retry_test.py +0 -0
  370. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_mce_adapter_test.py +0 -0
  371. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_memory_bridge_test.py +0 -0
  372. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_performance_monitor_test.py +0 -0
  373. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_permission_guard_test.py +0 -0
  374. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_prompt_optimization_test.py +0 -0
  375. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_role_mapping_test.py +0 -0
  376. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_skillifier_test.py +0 -0
  377. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_test_quality_guard.py +0 -0
  378. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_test_quality_guard_test.py +0 -0
  379. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_upstream_test.py +0 -0
  380. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_collaboration_warmup_manager_test.py +0 -0
  381. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_confidence_score.py +0 -0
  382. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_config_injection.py +0 -0
  383. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_consensus_dissent.py +0 -0
  384. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_consensus_fatigue.py +0 -0
  385. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_consensus_gate.py +0 -0
  386. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_content_cache.py +0 -0
  387. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_content_crusher.py +0 -0
  388. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_coordinator_smart_compression.py +0 -0
  389. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dag_views.py +0 -0
  390. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dashboard_live_mode.py +0 -0
  391. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dashboard_split.py +0 -0
  392. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dashboard_ui_e2e.py +0 -0
  393. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dashboard_v43_panels.py +0 -0
  394. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_data_backup.py +0 -0
  395. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_debt_collector.py +0 -0
  396. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_deep_shallow.py +0 -0
  397. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_deletion_test.py +0 -0
  398. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dependency_hallucination_checker.py +0 -0
  399. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dependency_lock.py +0 -0
  400. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_deployment_compliance_checker.py +0 -0
  401. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_deterministic_rule_engine.py +0 -0
  402. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dispatch_audit.py +0 -0
  403. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dispatch_performance.py +0 -0
  404. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dispatch_rbac.py +0 -0
  405. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dispatch_steps.py +0 -0
  406. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dispatcher_phase5_core.py +0 -0
  407. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_docker_deployment.py +0 -0
  408. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_dual_layer_context.py +0 -0
  409. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_enhanced_worker.py +0 -0
  410. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_feedback_control_loop.py +0 -0
  411. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_five_axis_consensus.py +0 -0
  412. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_flow_standalone.py +0 -0
  413. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_full_lifecycle_adapter.py +0 -0
  414. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_git_guardrails.py +0 -0
  415. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_glossary_loader.py +0 -0
  416. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_grilling_mode.py +0 -0
  417. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_handoff_redaction.py +0 -0
  418. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_history_manager_v362.py +0 -0
  419. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_input_validator_phase5.py +0 -0
  420. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_input_validator_sensitive.py +0 -0
  421. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_intent_workflow_mapper.py +0 -0
  422. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_judge_agent.py +0 -0
  423. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_learned_rule_phase4.py +0 -0
  424. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_lifecycle_protocol.py +0 -0
  425. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_llm_auto_fallback.py +0 -0
  426. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_llm_cache_protocol.py +0 -0
  427. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_loop_engineering.py +0 -0
  428. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_loop_engineering_rollback.py +0 -0
  429. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_mcp_server_v362.py +0 -0
  430. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_memory_benchmarks.py +0 -0
  431. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_meta_skill_layering.py +0 -0
  432. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_micro_task_planner.py +0 -0
  433. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_multi_host_adapter.py +0 -0
  434. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_multi_tenant.py +0 -0
  435. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_multi_tenant_isolation_e2e.py +0 -0
  436. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_no_op_test.py +0 -0
  437. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_node_type_separation.py +0 -0
  438. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_null_providers.py +0 -0
  439. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_oklch_color.py +0 -0
  440. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_operation_classifier.py +0 -0
  441. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_output_slicer.py +0 -0
  442. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_output_validator_prompt_injection.py +0 -0
  443. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_performance_benchmarks.py +0 -0
  444. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_performance_fingerprint.py +0 -0
  445. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_performance_monitor_protocol.py +0 -0
  446. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_permission_guard_human_gate.py +0 -0
  447. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_permission_guard_phase5.py +0 -0
  448. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_phase4_ghost_feature_defense.py +0 -0
  449. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_pipeline_step19_20.py +0 -0
  450. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_plan_c_unified_architecture.py +0 -0
  451. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_plugins_hot_loader.py +0 -0
  452. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_ponytail_rule_injector.py +0 -0
  453. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_production_features.py +0 -0
  454. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_prompt_dials.py +0 -0
  455. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_protocols.py +0 -0
  456. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_prototype_skill.py +0 -0
  457. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_qa_uiux_visual_regression.py +0 -0
  458. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_quick_bonus.py +0 -0
  459. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_rate_limit.py +0 -0
  460. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_rbac_engine.py +0 -0
  461. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_rbac_fail_closed.py +0 -0
  462. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_red_capable_gate.py +0 -0
  463. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_redesign_auditor.py +0 -0
  464. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_redis_cache.py +0 -0
  465. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_requirement_tracer.py +0 -0
  466. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_retry_jitter_strategies.py +0 -0
  467. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_role_skill_loader.py +0 -0
  468. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_rule_collector.py +0 -0
  469. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_rule_injection_security.py +0 -0
  470. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_secret_patterns.py +0 -0
  471. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_severity_router.py +0 -0
  472. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_similar_task_recommender.py +0 -0
  473. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_skill_registry_coverage.py +0 -0
  474. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_skill_security.py +0 -0
  475. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_sleep_guard.py +0 -0
  476. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_standardized_role_template.py +0 -0
  477. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_start_script.py +0 -0
  478. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_step_node_types.py +0 -0
  479. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_suggested_next_steps.py +0 -0
  480. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_task_completion_checker.py +0 -0
  481. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_taste_dials.py +0 -0
  482. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_tautological_seams.py +0 -0
  483. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_teach_skill.py +0 -0
  484. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_tech_debt_manager.py +0 -0
  485. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_todo_drift_monitor.py +0 -0
  486. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_token_budget_compressed_scratchpad.py +0 -0
  487. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_triage_label.py +0 -0
  488. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_two_stage_review_gate.py +0 -0
  489. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_ue_test_framework.py +0 -0
  490. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_uiux_subitems.py +0 -0
  491. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_usage_tracker_coverage.py +0 -0
  492. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_v39_e2e.py +0 -0
  493. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_v39_performance.py +0 -0
  494. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_v411_security_hardening.py +0 -0
  495. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_verification_gate.py +0 -0
  496. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_version.py +0 -0
  497. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_vertical_slice.py +0 -0
  498. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_workflow_engine.py +0 -0
  499. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_workflow_engine_base.py +0 -0
  500. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_workflow_engine_lifecycle.py +0 -0
  501. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_workflow_engine_state.py +0 -0
  502. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_workflow_engine_transition.py +0 -0
  503. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_workflow_persistence_coverage.py +0 -0
  504. {devsquad-4.5.0 → devsquad-4.5.4}/tests/test_yagni_checker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devsquad
3
- Version: 4.5.0
3
+ Version: 4.5.4
4
4
  Summary: Production-Ready Multi-Role AI Task Orchestrator
5
5
  Author-email: DevSquad Team <devsquad@example.com>
6
6
  License: MIT
@@ -96,14 +96,14 @@ Dynamic: license-file
96
96
  <p align="center">
97
97
  <strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
98
98
  <br>
99
- <em>One task → Multi-role AI collaboration → One conclusion | V4.5.0 (cross-session continuity + protocol-native skills + action-first reports) | V4.4.0 (5 enhancement modules)</em>
99
+ <em>One task → Multi-role AI collaboration → One conclusion | V4.5.4 (Module Fiber + Coeffect: 6-state FSM + topological activation + modules CLI) | V4.5.3 (Artifacts + Effect — ArtifactStore + DispatchEffect + EffectRegistry + Audit CLI) | V4.5.2 (Experience polish: MOKA + Metrics + GitLab + Doctor + BackendConfig) | V4.5.0 (cross-session continuity + protocol-native skills) | V4.4.0 (5 enhancement modules)</em>
100
100
  </p>
101
101
 
102
102
  <p align="center">
103
103
  <img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
104
104
  <img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
105
- <img alt="Tests" src="https://img.shields.io/badge/Tests-8260%2B%20passing-brightgreen" />
106
- <img alt="Version" src="https://img.shields.io/badge/V4.5.0-success" />
105
+ <img alt="Tests" src="https://img.shields.io/badge/Tests-8996%2B%20passing-brightgreen" />
106
+ <img alt="Version" src="https://img.shields.io/badge/V4.5.4-success" />
107
107
  <img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
108
108
  <img alt="Quality" src="https://img.shields.io/badge/Code%20Quality-4.3%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%86-blue" />
109
109
  <img alt="Security" src="https://img.shields.io/badge/Security-5%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%85-success" />
@@ -157,14 +157,25 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
157
157
  | 复杂系统设计(需要多视角) | **DevSquad 多角色协作** 🎯 |
158
158
  | 生产环境自动化流程 | **DevSquad + REST API + Dashboard** 🎯 |
159
159
 
160
- 📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [185+ 模块详细参考](SKILL.md)
160
+ 📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [193 模块详细参考](SKILL.md)
161
161
 
162
162
  ---
163
163
 
164
164
  <details>
165
165
  <summary>🔍 点击展开:完整功能介绍与架构详解</summary>
166
166
 
167
- ## 🚀 V4.5.0: Cross-Session Continuity + Protocol-Native Skills + Action-First Reports
167
+ ## 🚀 V4.5.2: Approval Gate + Connector Framework + Anti-Ghost E2E
168
+
169
+ **DevSquad V4.5.2** (PATCH release, SemVer compliant) introduces 2 new modules and completes 3 ROADMAP items (V451-1, V451-2, V451-7/8/9). All new modules default to safe, backward-compatible behavior — no API breaking changes. See [docs/release_notes/V4.5.2_RELEASE_NOTES.md](docs/release_notes/V4.5.2_RELEASE_NOTES.md) for full release notes.
170
+
171
+ ### V4.5.2 — 2 New Modules + 3 ROADMAP Items
172
+ - **ApprovalGate**: User-level approval mechanism for external operations. Fail-closed on callback exceptions. Auto-approve fallback when no callback configured (backward compatible).
173
+ - **ConnectorFramework**: Protocol-based interface for external system integration (GitHub first). `Connector` Protocol + `GitHubConnector` (api/cli/simulation modes). `simulation=True` enforced by default in dispatch pipeline.
174
+ - **V451-7 Dashboard browser-level E2E**: 11 AppTest cases (Streamlit AppTest replaces Playwright — avoids heavy browser deps while still being browser-level DOM simulation)
175
+ - **V451-8 REST API end-to-end user journey E2E**: 190 E2E tests covering dispatch→history→roles→quick dispatch→error handling→lifecycle→cross-entry
176
+ - **V451-9 Connector Framework anti-ghost E2E**: 12 E2E tests (AG-1 through AG-8) proving pipeline activation
177
+
178
+ ### V4.5.0 — Cross-Session Continuity + Protocol-Native Skills + Action-First Reports
168
179
 
169
180
  **DevSquad V4.5.0** (merging V4.4.3 + V4.4.4 + V4.5.0 changes) delivers 10 new features for cross-session continuity, protocol-native skill architecture, and action-first reporting. The 7-role AI team orchestrates complex engineering tasks with full audit trails and consensus mechanisms. See [docs/VISION.md](docs/VISION.md) for the project vision.
170
181
 
@@ -202,13 +213,13 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
202
213
  - 13 E2E tests xpass + anti-ghost counters
203
214
 
204
215
  ### Anti-Ghost Feature Guarantee
205
- Every new module includes `_call_counter` mechanism + E2E anti_ghost test + CI `check_module_activation.py` verification. Modules must be truly integrated into dispatch pipeline (not just instantiated), with Markdown report sections user-visible.
216
+ Every new module includes `_call_counter` mechanism + E2E anti_ghost test + CI `check_module_activation.py` verification. Modules must be truly integrated into dispatch pipeline (not just instantiated), with Markdown report sections user-visible. V4.5.2 extends this pattern from V4.4.0 (RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector) to V4.5.2 (ApprovalGate / ConnectorFramework).
206
217
 
207
218
  ### Test Pyramid Achieved
208
219
  - **Contract tests**: 5.2% (target ≥5% ✅)
209
220
  - **Integration tests**: 15.1% (target ≥15% ✅)
210
- - **Total tests**: 8260+ (CI authoritative)
211
- - **E2E coverage**: 107 e2e + 1244 integration + 13 V4.4.0 anti-ghost
221
+ - **Total tests**: 8392+ (CI authoritative)
222
+ - **E2E coverage**: 107 e2e + 1244 integration + 13 V4.4.0 anti-ghost + 12 V4.5.2 anti-ghost
212
223
 
213
224
  ### Historical Features (V4.0.0-V4.3.3)
214
225
  - **V4.3.3**: P0-P3 enhancement E2E skeletons (xfail TDD for V4.4.0)
@@ -224,7 +235,7 @@ Every new module includes `_call_counter` mechanism + E2E anti_ghost test + CI `
224
235
  - **V4.0.0 P3-1 Autonomous**: plan → dev → verify → fix 4-stage autonomous iteration
225
236
  - **V4.0.0 P3-2 Plugin Hot-Loading**: 3 loading paths + path traversal 3-layer protection + reload rollback
226
237
 
227
- 8260+ tests passing (CI authoritative).
238
+ 8996+ tests passing (CI authoritative).
228
239
 
229
240
  ---
230
241
 
@@ -724,7 +735,7 @@ python3 -m pytest tests/ -q --tb=line
724
735
  | Document | Description | Language |
725
736
  |----------|-------------|----------|
726
737
  | [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
727
- | [SKILL.md](SKILL.md) | 完整技能手册 + 185+ 模块参考 | EN/CN/JP |
738
+ | [SKILL.md](SKILL.md) | 完整技能手册 + 187+ 模块参考 | EN/CN/JP |
728
739
  | [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
729
740
  | [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
730
741
  | [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
@@ -804,6 +815,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
804
815
 
805
816
  ---
806
817
 
807
- *Last updated: 2026-08-03 | Version: V4.5.0 (cross-session continuity + protocol-native skills + action-first reports — 10 new features) | V4.4.0 (5 enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
818
+ *Last updated: 2026-08-05 | Version: V4.5.2 (Approval Gate + Connector Framework + anti-ghost E2E — 2 new modules, 3 ROADMAP items completed) | V4.5.0 (cross-session continuity + protocol-native skills + action-first reports — 10 new features) | V4.4.0 (5 enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
808
819
 
809
820
  </details>
@@ -3,14 +3,14 @@
3
3
  <p align="center">
4
4
  <strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
5
5
  <br>
6
- <em>One task → Multi-role AI collaboration → One conclusion | V4.5.0 (cross-session continuity + protocol-native skills + action-first reports) | V4.4.0 (5 enhancement modules)</em>
6
+ <em>One task → Multi-role AI collaboration → One conclusion | V4.5.4 (Module Fiber + Coeffect: 6-state FSM + topological activation + modules CLI) | V4.5.3 (Artifacts + Effect — ArtifactStore + DispatchEffect + EffectRegistry + Audit CLI) | V4.5.2 (Experience polish: MOKA + Metrics + GitLab + Doctor + BackendConfig) | V4.5.0 (cross-session continuity + protocol-native skills) | V4.4.0 (5 enhancement modules)</em>
7
7
  </p>
8
8
 
9
9
  <p align="center">
10
10
  <img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
11
11
  <img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
12
- <img alt="Tests" src="https://img.shields.io/badge/Tests-8260%2B%20passing-brightgreen" />
13
- <img alt="Version" src="https://img.shields.io/badge/V4.5.0-success" />
12
+ <img alt="Tests" src="https://img.shields.io/badge/Tests-8996%2B%20passing-brightgreen" />
13
+ <img alt="Version" src="https://img.shields.io/badge/V4.5.4-success" />
14
14
  <img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
15
15
  <img alt="Quality" src="https://img.shields.io/badge/Code%20Quality-4.3%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%86-blue" />
16
16
  <img alt="Security" src="https://img.shields.io/badge/Security-5%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%85-success" />
@@ -64,14 +64,25 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
64
64
  | 复杂系统设计(需要多视角) | **DevSquad 多角色协作** 🎯 |
65
65
  | 生产环境自动化流程 | **DevSquad + REST API + Dashboard** 🎯 |
66
66
 
67
- 📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [185+ 模块详细参考](SKILL.md)
67
+ 📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [193 模块详细参考](SKILL.md)
68
68
 
69
69
  ---
70
70
 
71
71
  <details>
72
72
  <summary>🔍 点击展开:完整功能介绍与架构详解</summary>
73
73
 
74
- ## 🚀 V4.5.0: Cross-Session Continuity + Protocol-Native Skills + Action-First Reports
74
+ ## 🚀 V4.5.2: Approval Gate + Connector Framework + Anti-Ghost E2E
75
+
76
+ **DevSquad V4.5.2** (PATCH release, SemVer compliant) introduces 2 new modules and completes 3 ROADMAP items (V451-1, V451-2, V451-7/8/9). All new modules default to safe, backward-compatible behavior — no API breaking changes. See [docs/release_notes/V4.5.2_RELEASE_NOTES.md](docs/release_notes/V4.5.2_RELEASE_NOTES.md) for full release notes.
77
+
78
+ ### V4.5.2 — 2 New Modules + 3 ROADMAP Items
79
+ - **ApprovalGate**: User-level approval mechanism for external operations. Fail-closed on callback exceptions. Auto-approve fallback when no callback configured (backward compatible).
80
+ - **ConnectorFramework**: Protocol-based interface for external system integration (GitHub first). `Connector` Protocol + `GitHubConnector` (api/cli/simulation modes). `simulation=True` enforced by default in dispatch pipeline.
81
+ - **V451-7 Dashboard browser-level E2E**: 11 AppTest cases (Streamlit AppTest replaces Playwright — avoids heavy browser deps while still being browser-level DOM simulation)
82
+ - **V451-8 REST API end-to-end user journey E2E**: 190 E2E tests covering dispatch→history→roles→quick dispatch→error handling→lifecycle→cross-entry
83
+ - **V451-9 Connector Framework anti-ghost E2E**: 12 E2E tests (AG-1 through AG-8) proving pipeline activation
84
+
85
+ ### V4.5.0 — Cross-Session Continuity + Protocol-Native Skills + Action-First Reports
75
86
 
76
87
  **DevSquad V4.5.0** (merging V4.4.3 + V4.4.4 + V4.5.0 changes) delivers 10 new features for cross-session continuity, protocol-native skill architecture, and action-first reporting. The 7-role AI team orchestrates complex engineering tasks with full audit trails and consensus mechanisms. See [docs/VISION.md](docs/VISION.md) for the project vision.
77
88
 
@@ -109,13 +120,13 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
109
120
  - 13 E2E tests xpass + anti-ghost counters
110
121
 
111
122
  ### Anti-Ghost Feature Guarantee
112
- Every new module includes `_call_counter` mechanism + E2E anti_ghost test + CI `check_module_activation.py` verification. Modules must be truly integrated into dispatch pipeline (not just instantiated), with Markdown report sections user-visible.
123
+ Every new module includes `_call_counter` mechanism + E2E anti_ghost test + CI `check_module_activation.py` verification. Modules must be truly integrated into dispatch pipeline (not just instantiated), with Markdown report sections user-visible. V4.5.2 extends this pattern from V4.4.0 (RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector) to V4.5.2 (ApprovalGate / ConnectorFramework).
113
124
 
114
125
  ### Test Pyramid Achieved
115
126
  - **Contract tests**: 5.2% (target ≥5% ✅)
116
127
  - **Integration tests**: 15.1% (target ≥15% ✅)
117
- - **Total tests**: 8260+ (CI authoritative)
118
- - **E2E coverage**: 107 e2e + 1244 integration + 13 V4.4.0 anti-ghost
128
+ - **Total tests**: 8392+ (CI authoritative)
129
+ - **E2E coverage**: 107 e2e + 1244 integration + 13 V4.4.0 anti-ghost + 12 V4.5.2 anti-ghost
119
130
 
120
131
  ### Historical Features (V4.0.0-V4.3.3)
121
132
  - **V4.3.3**: P0-P3 enhancement E2E skeletons (xfail TDD for V4.4.0)
@@ -131,7 +142,7 @@ Every new module includes `_call_counter` mechanism + E2E anti_ghost test + CI `
131
142
  - **V4.0.0 P3-1 Autonomous**: plan → dev → verify → fix 4-stage autonomous iteration
132
143
  - **V4.0.0 P3-2 Plugin Hot-Loading**: 3 loading paths + path traversal 3-layer protection + reload rollback
133
144
 
134
- 8260+ tests passing (CI authoritative).
145
+ 8996+ tests passing (CI authoritative).
135
146
 
136
147
  ---
137
148
 
@@ -631,7 +642,7 @@ python3 -m pytest tests/ -q --tb=line
631
642
  | Document | Description | Language |
632
643
  |----------|-------------|----------|
633
644
  | [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
634
- | [SKILL.md](SKILL.md) | 完整技能手册 + 185+ 模块参考 | EN/CN/JP |
645
+ | [SKILL.md](SKILL.md) | 完整技能手册 + 187+ 模块参考 | EN/CN/JP |
635
646
  | [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
636
647
  | [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
637
648
  | [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
@@ -711,6 +722,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
711
722
 
712
723
  ---
713
724
 
714
- *Last updated: 2026-08-03 | Version: V4.5.0 (cross-session continuity + protocol-native skills + action-first reports — 10 new features) | V4.4.0 (5 enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
725
+ *Last updated: 2026-08-05 | Version: V4.5.2 (Approval Gate + Connector Framework + anti-ghost E2E — 2 new modules, 3 ROADMAP items completed) | V4.5.0 (cross-session continuity + protocol-native skills + action-first reports — 10 new features) | V4.4.0 (5 enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
715
726
 
716
727
  </details>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devsquad
3
- Version: 4.5.0
3
+ Version: 4.5.4
4
4
  Summary: Production-Ready Multi-Role AI Task Orchestrator
5
5
  Author-email: DevSquad Team <devsquad@example.com>
6
6
  License: MIT
@@ -96,14 +96,14 @@ Dynamic: license-file
96
96
  <p align="center">
97
97
  <strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
98
98
  <br>
99
- <em>One task → Multi-role AI collaboration → One conclusion | V4.5.0 (cross-session continuity + protocol-native skills + action-first reports) | V4.4.0 (5 enhancement modules)</em>
99
+ <em>One task → Multi-role AI collaboration → One conclusion | V4.5.4 (Module Fiber + Coeffect: 6-state FSM + topological activation + modules CLI) | V4.5.3 (Artifacts + Effect — ArtifactStore + DispatchEffect + EffectRegistry + Audit CLI) | V4.5.2 (Experience polish: MOKA + Metrics + GitLab + Doctor + BackendConfig) | V4.5.0 (cross-session continuity + protocol-native skills) | V4.4.0 (5 enhancement modules)</em>
100
100
  </p>
101
101
 
102
102
  <p align="center">
103
103
  <img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
104
104
  <img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
105
- <img alt="Tests" src="https://img.shields.io/badge/Tests-8260%2B%20passing-brightgreen" />
106
- <img alt="Version" src="https://img.shields.io/badge/V4.5.0-success" />
105
+ <img alt="Tests" src="https://img.shields.io/badge/Tests-8996%2B%20passing-brightgreen" />
106
+ <img alt="Version" src="https://img.shields.io/badge/V4.5.4-success" />
107
107
  <img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
108
108
  <img alt="Quality" src="https://img.shields.io/badge/Code%20Quality-4.3%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%86-blue" />
109
109
  <img alt="Security" src="https://img.shields.io/badge/Security-5%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%85-success" />
@@ -157,14 +157,25 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
157
157
  | 复杂系统设计(需要多视角) | **DevSquad 多角色协作** 🎯 |
158
158
  | 生产环境自动化流程 | **DevSquad + REST API + Dashboard** 🎯 |
159
159
 
160
- 📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [185+ 模块详细参考](SKILL.md)
160
+ 📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [193 模块详细参考](SKILL.md)
161
161
 
162
162
  ---
163
163
 
164
164
  <details>
165
165
  <summary>🔍 点击展开:完整功能介绍与架构详解</summary>
166
166
 
167
- ## 🚀 V4.5.0: Cross-Session Continuity + Protocol-Native Skills + Action-First Reports
167
+ ## 🚀 V4.5.2: Approval Gate + Connector Framework + Anti-Ghost E2E
168
+
169
+ **DevSquad V4.5.2** (PATCH release, SemVer compliant) introduces 2 new modules and completes 3 ROADMAP items (V451-1, V451-2, V451-7/8/9). All new modules default to safe, backward-compatible behavior — no API breaking changes. See [docs/release_notes/V4.5.2_RELEASE_NOTES.md](docs/release_notes/V4.5.2_RELEASE_NOTES.md) for full release notes.
170
+
171
+ ### V4.5.2 — 2 New Modules + 3 ROADMAP Items
172
+ - **ApprovalGate**: User-level approval mechanism for external operations. Fail-closed on callback exceptions. Auto-approve fallback when no callback configured (backward compatible).
173
+ - **ConnectorFramework**: Protocol-based interface for external system integration (GitHub first). `Connector` Protocol + `GitHubConnector` (api/cli/simulation modes). `simulation=True` enforced by default in dispatch pipeline.
174
+ - **V451-7 Dashboard browser-level E2E**: 11 AppTest cases (Streamlit AppTest replaces Playwright — avoids heavy browser deps while still being browser-level DOM simulation)
175
+ - **V451-8 REST API end-to-end user journey E2E**: 190 E2E tests covering dispatch→history→roles→quick dispatch→error handling→lifecycle→cross-entry
176
+ - **V451-9 Connector Framework anti-ghost E2E**: 12 E2E tests (AG-1 through AG-8) proving pipeline activation
177
+
178
+ ### V4.5.0 — Cross-Session Continuity + Protocol-Native Skills + Action-First Reports
168
179
 
169
180
  **DevSquad V4.5.0** (merging V4.4.3 + V4.4.4 + V4.5.0 changes) delivers 10 new features for cross-session continuity, protocol-native skill architecture, and action-first reporting. The 7-role AI team orchestrates complex engineering tasks with full audit trails and consensus mechanisms. See [docs/VISION.md](docs/VISION.md) for the project vision.
170
181
 
@@ -202,13 +213,13 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
202
213
  - 13 E2E tests xpass + anti-ghost counters
203
214
 
204
215
  ### Anti-Ghost Feature Guarantee
205
- Every new module includes `_call_counter` mechanism + E2E anti_ghost test + CI `check_module_activation.py` verification. Modules must be truly integrated into dispatch pipeline (not just instantiated), with Markdown report sections user-visible.
216
+ Every new module includes `_call_counter` mechanism + E2E anti_ghost test + CI `check_module_activation.py` verification. Modules must be truly integrated into dispatch pipeline (not just instantiated), with Markdown report sections user-visible. V4.5.2 extends this pattern from V4.4.0 (RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector) to V4.5.2 (ApprovalGate / ConnectorFramework).
206
217
 
207
218
  ### Test Pyramid Achieved
208
219
  - **Contract tests**: 5.2% (target ≥5% ✅)
209
220
  - **Integration tests**: 15.1% (target ≥15% ✅)
210
- - **Total tests**: 8260+ (CI authoritative)
211
- - **E2E coverage**: 107 e2e + 1244 integration + 13 V4.4.0 anti-ghost
221
+ - **Total tests**: 8392+ (CI authoritative)
222
+ - **E2E coverage**: 107 e2e + 1244 integration + 13 V4.4.0 anti-ghost + 12 V4.5.2 anti-ghost
212
223
 
213
224
  ### Historical Features (V4.0.0-V4.3.3)
214
225
  - **V4.3.3**: P0-P3 enhancement E2E skeletons (xfail TDD for V4.4.0)
@@ -224,7 +235,7 @@ Every new module includes `_call_counter` mechanism + E2E anti_ghost test + CI `
224
235
  - **V4.0.0 P3-1 Autonomous**: plan → dev → verify → fix 4-stage autonomous iteration
225
236
  - **V4.0.0 P3-2 Plugin Hot-Loading**: 3 loading paths + path traversal 3-layer protection + reload rollback
226
237
 
227
- 8260+ tests passing (CI authoritative).
238
+ 8996+ tests passing (CI authoritative).
228
239
 
229
240
  ---
230
241
 
@@ -724,7 +735,7 @@ python3 -m pytest tests/ -q --tb=line
724
735
  | Document | Description | Language |
725
736
  |----------|-------------|----------|
726
737
  | [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
727
- | [SKILL.md](SKILL.md) | 完整技能手册 + 185+ 模块参考 | EN/CN/JP |
738
+ | [SKILL.md](SKILL.md) | 完整技能手册 + 187+ 模块参考 | EN/CN/JP |
728
739
  | [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
729
740
  | [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
730
741
  | [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
@@ -804,6 +815,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
804
815
 
805
816
  ---
806
817
 
807
- *Last updated: 2026-08-03 | Version: V4.5.0 (cross-session continuity + protocol-native skills + action-first reports — 10 new features) | V4.4.0 (5 enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
818
+ *Last updated: 2026-08-05 | Version: V4.5.2 (Approval Gate + Connector Framework + anti-ghost E2E — 2 new modules, 3 ROADMAP items completed) | V4.5.0 (cross-session continuity + protocol-native skills + action-first reports — 10 new features) | V4.4.0 (5 enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
808
819
 
809
820
  </details>
@@ -20,14 +20,21 @@ scripts/check_dependency_lock.py
20
20
  scripts/check_dependency_sync.py
21
21
  scripts/check_doc_consistency.py
22
22
  scripts/check_hidden_content.py
23
+ scripts/check_module_activation.py
23
24
  scripts/check_test_pyramid.py
24
25
  scripts/check_test_quality.py
25
26
  scripts/check_version_consistency.py
26
27
  scripts/cli.py
28
+ scripts/cli_audit.py
29
+ scripts/cli_backend.py
27
30
  scripts/cli_dispatch.py
31
+ scripts/cli_doctor.py
28
32
  scripts/cli_lifecycle.py
33
+ scripts/cli_metrics.py
34
+ scripts/cli_modules.py
29
35
  scripts/cli_sessions.py
30
36
  scripts/cli_utils.py
37
+ scripts/collect_baseline.py
31
38
  scripts/dashboard.py
32
39
  scripts/generate_benchmark_report.py
33
40
  scripts/generate_quality_decision_report.py
@@ -54,10 +61,14 @@ scripts/collaboration/agent_identity.py
54
61
  scripts/collaboration/ai_semantic_matcher.py
55
62
  scripts/collaboration/anchor_checker.py
56
63
  scripts/collaboration/anti_rationalization.py
64
+ scripts/collaboration/approval_gate.py
65
+ scripts/collaboration/artifact_store.py
57
66
  scripts/collaboration/async_adapter.py
58
67
  scripts/collaboration/async_coordinator.py
59
68
  scripts/collaboration/async_llm_backend.py
60
69
  scripts/collaboration/audit_logger.py
70
+ scripts/collaboration/backend_config.py
71
+ scripts/collaboration/backend_paths.py
61
72
  scripts/collaboration/batch_scheduler.py
62
73
  scripts/collaboration/benchmark_regression_checker.py
63
74
  scripts/collaboration/cache_interface.py
@@ -69,9 +80,11 @@ scripts/collaboration/code_graph_query.py
69
80
  scripts/collaboration/code_graph_storage.py
70
81
  scripts/collaboration/code_knowledge_graph.py
71
82
  scripts/collaboration/code_map_generator.py
83
+ scripts/collaboration/coeffect.py
72
84
  scripts/collaboration/concern_pack_loader.py
73
85
  scripts/collaboration/confidence_score.py
74
86
  scripts/collaboration/config_manager.py
87
+ scripts/collaboration/connector_framework.py
75
88
  scripts/collaboration/consensus.py
76
89
  scripts/collaboration/consensus_gate.py
77
90
  scripts/collaboration/constants.py
@@ -85,6 +98,7 @@ scripts/collaboration/dependency_hallucination_checker.py
85
98
  scripts/collaboration/deployment_compliance_checker.py
86
99
  scripts/collaboration/dispatch_audit.py
87
100
  scripts/collaboration/dispatch_component_factory.py
101
+ scripts/collaboration/dispatch_effect.py
88
102
  scripts/collaboration/dispatch_hooks.py
89
103
  scripts/collaboration/dispatch_lifecycle.py
90
104
  scripts/collaboration/dispatch_models.py
@@ -113,6 +127,7 @@ scripts/collaboration/dispatcher_status_mixin.py
113
127
  scripts/collaboration/dispatcher_utils_mixin.py
114
128
  scripts/collaboration/dora_metrics_collector.py
115
129
  scripts/collaboration/dual_layer_context.py
130
+ scripts/collaboration/effect_registry.py
116
131
  scripts/collaboration/enhanced_worker.py
117
132
  scripts/collaboration/enterprise_feature.py
118
133
  scripts/collaboration/error_budget_tracker.py
@@ -123,6 +138,8 @@ scripts/collaboration/feedback_control_loop.py
123
138
  scripts/collaboration/file_bundler.py
124
139
  scripts/collaboration/five_axis_consensus.py
125
140
  scripts/collaboration/gap_analyzer.py
141
+ scripts/collaboration/gitlab_connector.py
142
+ scripts/collaboration/host_llm_bridge.py
126
143
  scripts/collaboration/input_validator.py
127
144
  scripts/collaboration/intent_workflow_mapper.py
128
145
  scripts/collaboration/judge_agent.py
@@ -154,13 +171,17 @@ scripts/collaboration/models.py
154
171
  scripts/collaboration/models_base.py
155
172
  scripts/collaboration/models_dispatch.py
156
173
  scripts/collaboration/models_lifecycle.py
174
+ scripts/collaboration/module_fiber.py
175
+ scripts/collaboration/moka_backend.py
157
176
  scripts/collaboration/multi_host_adapter.py
158
177
  scripts/collaboration/multi_level_cache.py
159
178
  scripts/collaboration/multi_tenant.py
160
179
  scripts/collaboration/null_providers.py
161
180
  scripts/collaboration/operation_classifier.py
181
+ scripts/collaboration/order_chain_detector.py
162
182
  scripts/collaboration/output_slicer.py
163
183
  scripts/collaboration/output_validator.py
184
+ scripts/collaboration/perf_baseline.py
164
185
  scripts/collaboration/performance_fingerprint.py
165
186
  scripts/collaboration/performance_monitor.py
166
187
  scripts/collaboration/permission_guard.py
@@ -203,6 +224,7 @@ scripts/collaboration/skill_storage.py
203
224
  scripts/collaboration/skillifier.py
204
225
  scripts/collaboration/standardized_role_template.py
205
226
  scripts/collaboration/task_completion_checker.py
227
+ scripts/collaboration/task_scale_gate.py
206
228
  scripts/collaboration/tech_debt_manager.py
207
229
  scripts/collaboration/test_quality_guard.py
208
230
  scripts/collaboration/todo_drift_monitor.py
@@ -291,11 +313,15 @@ tests/test_antipattern_bans.py
291
313
  tests/test_api_budget_status_endpoint.py
292
314
  tests/test_api_security.py
293
315
  tests/test_api_server_v362.py
316
+ tests/test_approval_gate.py
317
+ tests/test_artifact_effect_binding.py
318
+ tests/test_artifact_store.py
294
319
  tests/test_async_coordinator.py
295
320
  tests/test_async_modules.py
296
321
  tests/test_audit_logger.py
297
322
  tests/test_auth_phase5.py
298
323
  tests/test_autonomous.py
324
+ tests/test_backend_config.py
299
325
  tests/test_benchmark_ponytail_smart.py
300
326
  tests/test_cache_interface.py
301
327
  tests/test_ccr_store.py
@@ -308,9 +334,12 @@ tests/test_check_test_pyramid.py
308
334
  tests/test_check_test_quality.py
309
335
  tests/test_check_version_consistency.py
310
336
  tests/test_ci_feedback_adapter.py
337
+ tests/test_cli_audit.py
311
338
  tests/test_cli_command_classifier.py
312
339
  tests/test_cli_deep_v362.py
340
+ tests/test_cli_doctor.py
313
341
  tests/test_cli_lifecycle.py
342
+ tests/test_cli_metrics.py
314
343
  tests/test_cli_phase5.py
315
344
  tests/test_code_knowledge_graph.py
316
345
  tests/test_collaboration_claw_integration_test.py
@@ -362,16 +391,20 @@ tests/test_dispatcher_mixins.py
362
391
  tests/test_dispatcher_phase5_core.py
363
392
  tests/test_docker_deployment.py
364
393
  tests/test_dual_layer_context.py
394
+ tests/test_effect_registry.py
365
395
  tests/test_enhanced_worker.py
396
+ tests/test_fallback_fuse.py
366
397
  tests/test_feedback_control_loop.py
367
398
  tests/test_five_axis_consensus.py
368
399
  tests/test_flow_standalone.py
369
400
  tests/test_full_lifecycle_adapter.py
370
401
  tests/test_git_guardrails.py
402
+ tests/test_gitlab_connector.py
371
403
  tests/test_glossary_loader.py
372
404
  tests/test_grilling_mode.py
373
405
  tests/test_handoff_redaction.py
374
406
  tests/test_history_manager_v362.py
407
+ tests/test_host_bridge_unit.py
375
408
  tests/test_input_validator_phase5.py
376
409
  tests/test_input_validator_sensitive.py
377
410
  tests/test_intent_workflow_mapper.py
@@ -379,6 +412,7 @@ tests/test_judge_agent.py
379
412
  tests/test_learned_rule_phase4.py
380
413
  tests/test_lifecycle_protocol.py
381
414
  tests/test_llm_auto_fallback.py
415
+ tests/test_llm_backend_resolve.py
382
416
  tests/test_llm_cache_protocol.py
383
417
  tests/test_loop_engineering.py
384
418
  tests/test_loop_engineering_rollback.py
@@ -386,6 +420,7 @@ tests/test_mcp_server_v362.py
386
420
  tests/test_memory_benchmarks.py
387
421
  tests/test_meta_skill_layering.py
388
422
  tests/test_micro_task_planner.py
423
+ tests/test_moka_backend.py
389
424
  tests/test_multi_host_adapter.py
390
425
  tests/test_multi_tenant.py
391
426
  tests/test_multi_tenant_isolation_e2e.py
@@ -394,8 +429,11 @@ tests/test_node_type_separation.py
394
429
  tests/test_null_providers.py
395
430
  tests/test_oklch_color.py
396
431
  tests/test_operation_classifier.py
432
+ tests/test_order_chain_detector.py
397
433
  tests/test_output_slicer.py
398
434
  tests/test_output_validator_prompt_injection.py
435
+ tests/test_perf_baseline.py
436
+ tests/test_perf_baseline_ci_gate.py
399
437
  tests/test_performance_benchmarks.py
400
438
  tests/test_performance_fingerprint.py
401
439
  tests/test_performance_monitor_protocol.py
@@ -435,6 +473,7 @@ tests/test_start_script.py
435
473
  tests/test_step_node_types.py
436
474
  tests/test_suggested_next_steps.py
437
475
  tests/test_task_completion_checker.py
476
+ tests/test_task_scale_gate.py
438
477
  tests/test_taste_dials.py
439
478
  tests/test_tautological_seams.py
440
479
  tests/test_teach_skill.py
@@ -452,6 +491,7 @@ tests/test_v411_security_hardening.py
452
491
  tests/test_verification_gate.py
453
492
  tests/test_version.py
454
493
  tests/test_vertical_slice.py
494
+ tests/test_worker_artifact_integration.py
455
495
  tests/test_workflow_engine.py
456
496
  tests/test_workflow_engine_base.py
457
497
  tests/test_workflow_engine_lifecycle.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "devsquad"
7
- version = "4.5.0"
7
+ version = "4.5.4"
8
8
  description = "Production-Ready Multi-Role AI Task Orchestrator"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -219,6 +219,10 @@ markers = [
219
219
  "unit: marks tests as unit tests",
220
220
  "smoke: marks tests as release smoke tests",
221
221
  "asyncio: async tests using pytest-asyncio",
222
+ "security: security tests (no-secrets-in-repo, redteam)",
223
+ "contract: cross-module API contract tests",
224
+ "openai: real OpenAI API tests (release-only)",
225
+ "moka: real MOKA AI API tests (release-only)",
222
226
  ]
223
227
  filterwarnings = [
224
228
  "ignore::DeprecationWarning",
@@ -49,12 +49,22 @@ _global_dispatcher: MultiAgentDispatcher | None = None
49
49
 
50
50
 
51
51
  def _get_dispatcher() -> MultiAgentDispatcher:
52
- """Get or create the global MultiAgentDispatcher instance."""
52
+ """Get or create the global MultiAgentDispatcher instance.
53
+
54
+ RBAC mode is selected by environment:
55
+ - ``DEVSQUAD_API_AUTH_DISABLED=1`` → development_mode=True (RBAC open,
56
+ for E2E tests and local dev). This env var already disables API key
57
+ auth, so treating it as a dev/test signal is consistent.
58
+ - Otherwise → development_mode=False (HC-1: production RBAC fail-closed).
59
+ """
53
60
  global _global_dispatcher
54
61
  if _global_dispatcher is None:
55
62
  try:
56
63
  from scripts.collaboration.dispatcher import MultiAgentDispatcher
57
64
 
65
+ _is_dev_mode = os.environ.get("DEVSQUAD_API_AUTH_DISABLED", "").strip() in (
66
+ "1", "true", "True", "TRUE",
67
+ )
58
68
  _global_dispatcher = MultiAgentDispatcher(
59
69
  enable_warmup=True,
60
70
  enable_compression=True,
@@ -62,9 +72,12 @@ def _get_dispatcher() -> MultiAgentDispatcher:
62
72
  enable_memory=True,
63
73
  enable_skillify=True,
64
74
  enable_quality_guard=False,
65
- development_mode=False, # HC-1: production mode enforces RBAC fail-closed
75
+ development_mode=_is_dev_mode, # HC-1: prod fail-closed; dev open
76
+ )
77
+ logger.info(
78
+ "MultiAgentDispatcher initialized (development_mode=%s)",
79
+ _is_dev_mode,
66
80
  )
67
- logger.info("MultiAgentDispatcher initialized successfully")
68
81
  except (ImportError, RuntimeError) as e:
69
82
  logger.error("Failed to initialize MultiAgentDispatcher: %s", e)
70
83
  raise HTTPException(status_code=503, detail=f"Dispatcher initialization failed: {str(e)}") from None
@@ -18,7 +18,7 @@ from __future__ import annotations
18
18
 
19
19
  import re
20
20
  import sys
21
- from dataclasses import dataclass, field
21
+ from dataclasses import dataclass
22
22
  from pathlib import Path
23
23
 
24
24
  __all__ = ["Violation", "check_test_count_consistency", "check_module_count_consistency", "main"]