devsquad 4.5.18__tar.gz → 4.5.19__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 (524) hide show
  1. {devsquad-4.5.18 → devsquad-4.5.19}/PKG-INFO +8 -6
  2. {devsquad-4.5.18 → devsquad-4.5.19}/README.md +5 -5
  3. {devsquad-4.5.18 → devsquad-4.5.19}/devsquad.egg-info/PKG-INFO +8 -6
  4. {devsquad-4.5.18 → devsquad-4.5.19}/devsquad.egg-info/requires.txt +2 -0
  5. {devsquad-4.5.18 → devsquad-4.5.19}/pyproject.toml +5 -2
  6. devsquad-4.5.19/scripts/collaboration/_version.py +2 -0
  7. {devsquad-4.5.18 → devsquad-4.5.19}/skills/__init__.py +1 -1
  8. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dashboard_v43_panels.py +29 -9
  9. devsquad-4.5.18/scripts/collaboration/_version.py +0 -2
  10. {devsquad-4.5.18 → devsquad-4.5.19}/LICENSE +0 -0
  11. {devsquad-4.5.18 → devsquad-4.5.19}/devsquad.egg-info/SOURCES.txt +0 -0
  12. {devsquad-4.5.18 → devsquad-4.5.19}/devsquad.egg-info/dependency_links.txt +0 -0
  13. {devsquad-4.5.18 → devsquad-4.5.19}/devsquad.egg-info/entry_points.txt +0 -0
  14. {devsquad-4.5.18 → devsquad-4.5.19}/devsquad.egg-info/top_level.txt +0 -0
  15. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/__init__.py +0 -0
  16. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/api/__init__.py +0 -0
  17. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/api/models.py +0 -0
  18. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/api/rate_limit.py +0 -0
  19. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/api/routes/__init__.py +0 -0
  20. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/api/routes/dispatch.py +0 -0
  21. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/api/routes/lifecycle.py +0 -0
  22. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/api/routes/metrics.py +0 -0
  23. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/api/routes/metrics_gates.py +0 -0
  24. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/api/security.py +0 -0
  25. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/api_server.py +0 -0
  26. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/auth.py +0 -0
  27. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/benchmark_async_dispatch.py +0 -0
  28. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/benchmark_ponytail_smart.py +0 -0
  29. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/benchmark_real_llm.py +0 -0
  30. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_async_coverage.py +0 -0
  31. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_bandit.py +0 -0
  32. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_config_consistency.py +0 -0
  33. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_constructor_params.py +0 -0
  34. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_dependency_lock.py +0 -0
  35. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_dependency_sync.py +0 -0
  36. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_dispatcher_size.py +0 -0
  37. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_doc_consistency.py +0 -0
  38. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_hidden_content.py +0 -0
  39. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_module_activation.py +0 -0
  40. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_test_pyramid.py +0 -0
  41. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_test_quality.py +0 -0
  42. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/check_version_consistency.py +0 -0
  43. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli/__init__.py +0 -0
  44. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli/cli_visual.py +0 -0
  45. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli.py +0 -0
  46. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli_audit.py +0 -0
  47. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli_backend.py +0 -0
  48. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli_dispatch.py +0 -0
  49. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli_doctor.py +0 -0
  50. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli_lifecycle.py +0 -0
  51. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli_metrics.py +0 -0
  52. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli_modules.py +0 -0
  53. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli_risks.py +0 -0
  54. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli_sessions.py +0 -0
  55. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/cli_utils.py +0 -0
  56. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/__init__.py +0 -0
  57. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/adaptive_role_selector.py +0 -0
  58. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/adversarial_verify.py +0 -0
  59. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/agent_briefing.py +0 -0
  60. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/agent_identity.py +0 -0
  61. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/ai_semantic_matcher.py +0 -0
  62. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/anchor_checker.py +0 -0
  63. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/anti_rationalization.py +0 -0
  64. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/approval_gate.py +0 -0
  65. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/artifact_store.py +0 -0
  66. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/async_adapter.py +0 -0
  67. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/async_coeffect_resolver.py +0 -0
  68. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/async_coordinator.py +0 -0
  69. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/async_llm_backend.py +0 -0
  70. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/audit_logger.py +0 -0
  71. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/autonomous/__init__.py +0 -0
  72. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/autonomous/git_driver.py +0 -0
  73. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/autonomous/loop_controller.py +0 -0
  74. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/autonomous/notes_memory.py +0 -0
  75. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/autonomous/run_state.py +0 -0
  76. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/autonomous/sleep_guard.py +0 -0
  77. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/autonomous/smart_confirmation.py +0 -0
  78. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/backend_config.py +0 -0
  79. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/backend_paths.py +0 -0
  80. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/batch_scheduler.py +0 -0
  81. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/benchmark_regression_checker.py +0 -0
  82. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/cache_interface.py +0 -0
  83. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/ccr_store.py +0 -0
  84. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/checkpoint_manager.py +0 -0
  85. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/ci_feedback_adapter.py +0 -0
  86. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/cli_command_classifier.py +0 -0
  87. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/code_graph_query.py +0 -0
  88. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/code_graph_storage.py +0 -0
  89. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/code_knowledge_graph.py +0 -0
  90. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/code_map_generator.py +0 -0
  91. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/coeffect.py +0 -0
  92. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/concern_pack_loader.py +0 -0
  93. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/confidence_score.py +0 -0
  94. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/config_manager.py +0 -0
  95. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/connector_framework.py +0 -0
  96. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/consensus.py +0 -0
  97. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/consensus_gate.py +0 -0
  98. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/constants.py +0 -0
  99. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/content_cache.py +0 -0
  100. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/content_crusher.py +0 -0
  101. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/context_compressor.py +0 -0
  102. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/coordinator.py +0 -0
  103. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dashboard_live_mode.py +0 -0
  104. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/debt_collector.py +0 -0
  105. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dependency_hallucination_checker.py +0 -0
  106. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/deployment_compliance_checker.py +0 -0
  107. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_audit.py +0 -0
  108. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_component_factory.py +0 -0
  109. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_effect.py +0 -0
  110. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_hooks.py +0 -0
  111. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_lifecycle.py +0 -0
  112. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_models.py +0 -0
  113. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_performance.py +0 -0
  114. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_pre_steps.py +0 -0
  115. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_rbac.py +0 -0
  116. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_result_assembler.py +0 -0
  117. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_services.py +0 -0
  118. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_steps.py +0 -0
  119. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_steps_base.py +0 -0
  120. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_steps_consensus_mixin.py +0 -0
  121. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_steps_feedback_mixin.py +0 -0
  122. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_steps_mixins.py +0 -0
  123. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_steps_quality_mixin.py +0 -0
  124. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatch_steps_services_mixin.py +0 -0
  125. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher.py +0 -0
  126. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_async_mixin.py +0 -0
  127. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_audit_mixin.py +0 -0
  128. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_base.py +0 -0
  129. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_config.py +0 -0
  130. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_error_mixin.py +0 -0
  131. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_factory.py +0 -0
  132. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_intent_mapper.py +0 -0
  133. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_lifecycle_mixin.py +0 -0
  134. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_loop_controller.py +0 -0
  135. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_mixins.py +0 -0
  136. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_status_mixin.py +0 -0
  137. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_transaction.py +0 -0
  138. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dispatcher_utils_mixin.py +0 -0
  139. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dora_metrics_collector.py +0 -0
  140. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/dual_layer_context.py +0 -0
  141. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/effect_registry.py +0 -0
  142. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/enhanced_worker.py +0 -0
  143. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/enterprise_feature.py +0 -0
  144. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/error_budget_tracker.py +0 -0
  145. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/event_bus.py +0 -0
  146. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/execution_guard.py +0 -0
  147. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/feature_usage_tracker.py +0 -0
  148. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/feedback_control_loop.py +0 -0
  149. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/file_bundler.py +0 -0
  150. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/file_risk_store.py +0 -0
  151. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/five_axis_consensus.py +0 -0
  152. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/gap_analyzer.py +0 -0
  153. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/gather_core.py +0 -0
  154. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/gitlab_connector.py +0 -0
  155. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/host_llm_bridge.py +0 -0
  156. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/host_llm_bridge_v2.py +0 -0
  157. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/input_validator.py +0 -0
  158. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/intent_workflow_mapper.py +0 -0
  159. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/judge_agent.py +0 -0
  160. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/language_parsers.py +0 -0
  161. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/learned_rule_store.py +0 -0
  162. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/lifecycle_gate.py +0 -0
  163. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/lifecycle_protocol.py +0 -0
  164. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/lifecycle_shortcut_adapter.py +0 -0
  165. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/lifecycle_shortcut_helpers.py +0 -0
  166. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/lifecycle_templates.py +0 -0
  167. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/llm_backend.py +0 -0
  168. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/llm_cache.py +0 -0
  169. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/llm_cache_async.py +0 -0
  170. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/llm_cache_base.py +0 -0
  171. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/llm_retry.py +0 -0
  172. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/llm_retry_async.py +0 -0
  173. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/llm_retry_base.py +0 -0
  174. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/loop_engineering/__init__.py +0 -0
  175. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/loop_engineering/discovery_probe.py +0 -0
  176. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/loop_engineering/handoff_adapter.py +0 -0
  177. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/loop_engineering/independent_evaluator.py +0 -0
  178. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/loop_engineering/kernel.py +0 -0
  179. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/loop_engineering/loop_scheduler.py +0 -0
  180. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/loop_engineering/models.py +0 -0
  181. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/loop_engineering/protocols.py +0 -0
  182. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/loop_engineering/rollback_strategy.py +0 -0
  183. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/loop_engineering/unified_memory.py +0 -0
  184. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/mce_adapter.py +0 -0
  185. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/memory_bridge.py +0 -0
  186. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/memory_claw_source.py +0 -0
  187. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/memory_forgetting.py +0 -0
  188. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/memory_index.py +0 -0
  189. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/memory_query.py +0 -0
  190. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/memory_serializer.py +0 -0
  191. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/memory_types.py +0 -0
  192. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/meta_skill_layering.py +0 -0
  193. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/micro_task_planner.py +0 -0
  194. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/models.py +0 -0
  195. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/models_base.py +0 -0
  196. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/models_dispatch.py +0 -0
  197. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/models_lifecycle.py +0 -0
  198. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/module_fiber.py +0 -0
  199. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/moka_backend.py +0 -0
  200. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/multi_host_adapter.py +0 -0
  201. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/multi_level_cache.py +0 -0
  202. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/multi_tenant.py +0 -0
  203. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/null_providers.py +0 -0
  204. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/operation_classifier.py +0 -0
  205. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/order_chain_detector.py +0 -0
  206. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/output_slicer.py +0 -0
  207. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/output_validator.py +0 -0
  208. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/perf_baseline.py +0 -0
  209. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/performance_fingerprint.py +0 -0
  210. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/performance_monitor.py +0 -0
  211. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/permission_guard.py +0 -0
  212. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/plugins/__init__.py +0 -0
  213. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/plugins/hot_loader.py +0 -0
  214. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/ponytail_rule_injector.py +0 -0
  215. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/prometheus_metrics.py +0 -0
  216. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/prompt_assembler.py +0 -0
  217. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/prompt_assembler_base.py +0 -0
  218. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/prompt_assembler_formatting_mixin.py +0 -0
  219. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/prompt_assembler_mixins.py +0 -0
  220. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/prompt_assembler_substitution_mixin.py +0 -0
  221. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/prompt_assembler_template_mixin.py +0 -0
  222. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/prompt_assembler_validation_mixin.py +0 -0
  223. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/prompt_dials.py +0 -0
  224. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/protocols.py +0 -0
  225. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/quality_calibration_gate.py +0 -0
  226. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/quality_probe_slice.py +0 -0
  227. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/rbac_engine.py +0 -0
  228. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/redesign_auditor.py +0 -0
  229. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/redesign_checkers.py +0 -0
  230. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/redis_cache.py +0 -0
  231. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/report_formatter.py +0 -0
  232. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/requirement_tracer.py +0 -0
  233. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/retrospective.py +0 -0
  234. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/review_checkers.py +0 -0
  235. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/risk_register.py +0 -0
  236. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/role_matcher.py +0 -0
  237. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/role_skill_loader.py +0 -0
  238. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/role_specific_mock_backend.py +0 -0
  239. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/rule_collector.py +0 -0
  240. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/scratchpad.py +0 -0
  241. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/scratchpad_history_store.py +0 -0
  242. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/secret_patterns.py +0 -0
  243. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/severity_router.py +0 -0
  244. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/similar_task_recommender.py +0 -0
  245. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/skill_extractor.py +0 -0
  246. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/skill_provider_builtin.py +0 -0
  247. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/skill_provider_mcp.py +0 -0
  248. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/skill_registry.py +0 -0
  249. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/skill_storage.py +0 -0
  250. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/skillifier.py +0 -0
  251. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/standardized_role_template.py +0 -0
  252. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/task_completion_checker.py +0 -0
  253. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/task_scale_gate.py +0 -0
  254. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/tech_debt_manager.py +0 -0
  255. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/test_quality_guard.py +0 -0
  256. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/todo_drift_monitor.py +0 -0
  257. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/two_stage_review_gate.py +0 -0
  258. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/ue_test_accessibility_mixin.py +0 -0
  259. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/ue_test_framework.py +0 -0
  260. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/ue_test_framework_base.py +0 -0
  261. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/ue_test_heuristic_mixin.py +0 -0
  262. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/ue_test_journey_mixin.py +0 -0
  263. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/ue_test_mixins.py +0 -0
  264. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/ue_test_persona_mixin.py +0 -0
  265. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/unified_gate_engine.py +0 -0
  266. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/usage_tracker.py +0 -0
  267. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/user_friendly_error.py +0 -0
  268. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/verification_gate.py +0 -0
  269. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/viewpoint_registry.py +0 -0
  270. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/warmup_manager.py +0 -0
  271. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/worker.py +0 -0
  272. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/workflow_engine.py +0 -0
  273. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/workflow_engine_base.py +0 -0
  274. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/workflow_engine_lifecycle_mixin.py +0 -0
  275. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/workflow_engine_mixins.py +0 -0
  276. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/workflow_engine_persistence_mixin.py +0 -0
  277. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/workflow_engine_state_mixin.py +0 -0
  278. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/workflow_engine_transition_mixin.py +0 -0
  279. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collaboration/yagni_checker.py +0 -0
  280. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collect_baseline.py +0 -0
  281. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/collect_trae_traces.py +0 -0
  282. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard/__init__.py +0 -0
  283. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard/app.py +0 -0
  284. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard/auth_views.py +0 -0
  285. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard/components.py +0 -0
  286. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard/dag_views.py +0 -0
  287. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard/dispatch_views.py +0 -0
  288. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard/i18n.py +0 -0
  289. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard/lifecycle_views.py +0 -0
  290. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard/metrics_views.py +0 -0
  291. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard/state.py +0 -0
  292. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard/v43_panels.py +0 -0
  293. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/dashboard.py +0 -0
  294. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/generate_benchmark_report.py +0 -0
  295. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/generate_quality_decision_report.py +0 -0
  296. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/history_manager.py +0 -0
  297. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/mcp_server.py +0 -0
  298. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/perf_baseline.py +0 -0
  299. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/qa/__init__.py +0 -0
  300. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/qa/deterministic_rule_engine.py +0 -0
  301. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/qa/models.py +0 -0
  302. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/qa/taste_dials.py +0 -0
  303. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/qa/uiux_analyzer.py +0 -0
  304. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/qa/uiux_subitems.py +0 -0
  305. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/qa/visual_regression.py +0 -0
  306. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/scan_pickle_payloads.py +0 -0
  307. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/sync_skill_pack.py +0 -0
  308. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/utils/__init__.py +0 -0
  309. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/utils/_find_missing_hints.py +0 -0
  310. {devsquad-4.5.18 → devsquad-4.5.19}/scripts/verify_prometheus_e2e.py +0 -0
  311. {devsquad-4.5.18 → devsquad-4.5.19}/setup.cfg +0 -0
  312. {devsquad-4.5.18 → devsquad-4.5.19}/skills/_version.py +0 -0
  313. {devsquad-4.5.18 → devsquad-4.5.19}/skills/dispatch/handler.py +0 -0
  314. {devsquad-4.5.18 → devsquad-4.5.19}/skills/intent/handler.py +0 -0
  315. {devsquad-4.5.18 → devsquad-4.5.19}/skills/prototype/handler.py +0 -0
  316. {devsquad-4.5.18 → devsquad-4.5.19}/skills/registry.py +0 -0
  317. {devsquad-4.5.18 → devsquad-4.5.19}/skills/retrospective/__init__.py +0 -0
  318. {devsquad-4.5.18 → devsquad-4.5.19}/skills/retrospective/handler.py +0 -0
  319. {devsquad-4.5.18 → devsquad-4.5.19}/skills/review/handler.py +0 -0
  320. {devsquad-4.5.18 → devsquad-4.5.19}/skills/security/handler.py +0 -0
  321. {devsquad-4.5.18 → devsquad-4.5.19}/skills/teach/handler.py +0 -0
  322. {devsquad-4.5.18 → devsquad-4.5.19}/skills/test/__init__.py +0 -0
  323. {devsquad-4.5.18 → devsquad-4.5.19}/skills/test/handler.py +0 -0
  324. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_4pt_grid.py +0 -0
  325. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_adaptive_role_selector.py +0 -0
  326. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_adversarial_verify.py +0 -0
  327. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_agent_briefing.py +0 -0
  328. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_anchor_retrospective.py +0 -0
  329. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_anti_rationalization.py +0 -0
  330. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_antipattern_bans.py +0 -0
  331. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_api_budget_status_endpoint.py +0 -0
  332. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_api_security.py +0 -0
  333. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_api_server_v362.py +0 -0
  334. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_approval_gate.py +0 -0
  335. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_artifact_effect_binding.py +0 -0
  336. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_artifact_store.py +0 -0
  337. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_async_coordinator.py +0 -0
  338. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_async_modules.py +0 -0
  339. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_audit_logger.py +0 -0
  340. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_auth_phase5.py +0 -0
  341. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_autonomous.py +0 -0
  342. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_backend_config.py +0 -0
  343. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_benchmark_ponytail_smart.py +0 -0
  344. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_cache_interface.py +0 -0
  345. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_ccr_store.py +0 -0
  346. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_check_async_coverage.py +0 -0
  347. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_check_bandit.py +0 -0
  348. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_check_config_consistency.py +0 -0
  349. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_check_constructor_params.py +0 -0
  350. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_check_dependency_lock.py +0 -0
  351. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_check_dispatcher_size.py +0 -0
  352. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_check_hidden_content.py +0 -0
  353. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_check_test_pyramid.py +0 -0
  354. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_check_test_quality.py +0 -0
  355. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_check_version_consistency.py +0 -0
  356. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_ci_feedback_adapter.py +0 -0
  357. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_cli_audit.py +0 -0
  358. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_cli_command_classifier.py +0 -0
  359. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_cli_deep_v362.py +0 -0
  360. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_cli_doctor.py +0 -0
  361. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_cli_lifecycle.py +0 -0
  362. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_cli_metrics.py +0 -0
  363. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_cli_phase5.py +0 -0
  364. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_code_knowledge_graph.py +0 -0
  365. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_claw_integration_test.py +0 -0
  366. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_context_compressor_test.py +0 -0
  367. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_core_test.py +0 -0
  368. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_dispatcher_test.py +0 -0
  369. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_dispatcher_ux_test.py +0 -0
  370. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_e2e_test.py +0 -0
  371. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_enhanced_e2e_test.py +0 -0
  372. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_llm_cache_test.py +0 -0
  373. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_llm_retry_test.py +0 -0
  374. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_mce_adapter_test.py +0 -0
  375. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_memory_bridge_test.py +0 -0
  376. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_performance_monitor_test.py +0 -0
  377. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_permission_guard_test.py +0 -0
  378. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_prompt_optimization_test.py +0 -0
  379. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_role_mapping_test.py +0 -0
  380. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_skillifier_test.py +0 -0
  381. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_test_quality_guard.py +0 -0
  382. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_test_quality_guard_test.py +0 -0
  383. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_upstream_test.py +0 -0
  384. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_collaboration_warmup_manager_test.py +0 -0
  385. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_confidence_score.py +0 -0
  386. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_config_injection.py +0 -0
  387. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_consensus_dissent.py +0 -0
  388. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_consensus_fatigue.py +0 -0
  389. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_consensus_gate.py +0 -0
  390. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_content_cache.py +0 -0
  391. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_content_crusher.py +0 -0
  392. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_coordinator_smart_compression.py +0 -0
  393. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dag_views.py +0 -0
  394. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dashboard_live_mode.py +0 -0
  395. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dashboard_split.py +0 -0
  396. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dashboard_ui_e2e.py +0 -0
  397. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_data_backup.py +0 -0
  398. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_debt_collector.py +0 -0
  399. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_deep_shallow.py +0 -0
  400. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_deletion_test.py +0 -0
  401. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dependency_hallucination_checker.py +0 -0
  402. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dependency_lock.py +0 -0
  403. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_deployment_compliance_checker.py +0 -0
  404. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_deterministic_rule_engine.py +0 -0
  405. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dispatch_audit.py +0 -0
  406. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dispatch_performance.py +0 -0
  407. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dispatch_rbac.py +0 -0
  408. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dispatch_steps.py +0 -0
  409. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dispatcher_intent_mapper.py +0 -0
  410. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dispatcher_loop_controller.py +0 -0
  411. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dispatcher_mixins.py +0 -0
  412. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dispatcher_phase5_core.py +0 -0
  413. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dispatcher_transaction.py +0 -0
  414. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_docker_deployment.py +0 -0
  415. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_dual_layer_context.py +0 -0
  416. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_effect_registry.py +0 -0
  417. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_enhanced_worker.py +0 -0
  418. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_fallback_fuse.py +0 -0
  419. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_feedback_control_loop.py +0 -0
  420. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_five_axis_consensus.py +0 -0
  421. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_flow_standalone.py +0 -0
  422. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_full_lifecycle_adapter.py +0 -0
  423. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_git_guardrails.py +0 -0
  424. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_gitlab_connector.py +0 -0
  425. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_glossary_loader.py +0 -0
  426. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_grilling_mode.py +0 -0
  427. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_handoff_redaction.py +0 -0
  428. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_history_manager_v362.py +0 -0
  429. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_host_bridge_unit.py +0 -0
  430. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_host_llm_bridge_v2.py +0 -0
  431. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_input_validator_phase5.py +0 -0
  432. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_input_validator_sensitive.py +0 -0
  433. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_intent_workflow_mapper.py +0 -0
  434. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_judge_agent.py +0 -0
  435. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_learned_rule_phase4.py +0 -0
  436. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_lifecycle_protocol.py +0 -0
  437. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_llm_auto_fallback.py +0 -0
  438. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_llm_backend_resolve.py +0 -0
  439. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_llm_cache_protocol.py +0 -0
  440. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_loop_engineering.py +0 -0
  441. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_loop_engineering_rollback.py +0 -0
  442. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_mcp_server_v362.py +0 -0
  443. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_memory_benchmarks.py +0 -0
  444. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_meta_skill_layering.py +0 -0
  445. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_micro_task_planner.py +0 -0
  446. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_moka_backend.py +0 -0
  447. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_multi_host_adapter.py +0 -0
  448. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_multi_tenant.py +0 -0
  449. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_multi_tenant_isolation_e2e.py +0 -0
  450. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_no_op_test.py +0 -0
  451. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_node_type_separation.py +0 -0
  452. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_null_providers.py +0 -0
  453. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_oklch_color.py +0 -0
  454. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_operation_classifier.py +0 -0
  455. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_order_chain_detector.py +0 -0
  456. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_output_slicer.py +0 -0
  457. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_output_validator_prompt_injection.py +0 -0
  458. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_perf_baseline.py +0 -0
  459. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_perf_baseline_ci_gate.py +0 -0
  460. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_performance_benchmarks.py +0 -0
  461. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_performance_fingerprint.py +0 -0
  462. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_performance_monitor_protocol.py +0 -0
  463. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_permission_guard_human_gate.py +0 -0
  464. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_permission_guard_phase5.py +0 -0
  465. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_phase4_ghost_feature_defense.py +0 -0
  466. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_pipeline_step19_20.py +0 -0
  467. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_plan_c_unified_architecture.py +0 -0
  468. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_plugins_hot_loader.py +0 -0
  469. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_ponytail_rule_injector.py +0 -0
  470. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_production_features.py +0 -0
  471. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_prometheus_metrics.py +0 -0
  472. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_prompt_dials.py +0 -0
  473. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_protocols.py +0 -0
  474. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_prototype_skill.py +0 -0
  475. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_qa_uiux_visual_regression.py +0 -0
  476. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_quick_bonus.py +0 -0
  477. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_rate_limit.py +0 -0
  478. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_rbac_engine.py +0 -0
  479. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_rbac_fail_closed.py +0 -0
  480. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_red_capable_gate.py +0 -0
  481. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_redesign_auditor.py +0 -0
  482. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_redis_cache.py +0 -0
  483. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_requirement_tracer.py +0 -0
  484. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_retry_jitter_strategies.py +0 -0
  485. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_role_skill_loader.py +0 -0
  486. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_rule_collector.py +0 -0
  487. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_rule_injection_security.py +0 -0
  488. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_secret_patterns.py +0 -0
  489. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_severity_router.py +0 -0
  490. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_similar_task_recommender.py +0 -0
  491. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_skill_registry_coverage.py +0 -0
  492. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_skill_security.py +0 -0
  493. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_sleep_guard.py +0 -0
  494. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_standardized_role_template.py +0 -0
  495. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_start_script.py +0 -0
  496. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_step_node_types.py +0 -0
  497. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_suggested_next_steps.py +0 -0
  498. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_task_completion_checker.py +0 -0
  499. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_task_scale_gate.py +0 -0
  500. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_taste_dials.py +0 -0
  501. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_tautological_seams.py +0 -0
  502. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_teach_skill.py +0 -0
  503. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_tech_debt_manager.py +0 -0
  504. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_todo_drift_monitor.py +0 -0
  505. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_token_budget_compressed_scratchpad.py +0 -0
  506. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_triage_label.py +0 -0
  507. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_two_stage_review_gate.py +0 -0
  508. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_ue_test_framework.py +0 -0
  509. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_uiux_subitems.py +0 -0
  510. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_usage_tracker_coverage.py +0 -0
  511. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_v39_e2e.py +0 -0
  512. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_v39_performance.py +0 -0
  513. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_v411_security_hardening.py +0 -0
  514. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_verification_gate.py +0 -0
  515. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_version.py +0 -0
  516. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_vertical_slice.py +0 -0
  517. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_worker_artifact_integration.py +0 -0
  518. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_workflow_engine.py +0 -0
  519. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_workflow_engine_base.py +0 -0
  520. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_workflow_engine_lifecycle.py +0 -0
  521. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_workflow_engine_state.py +0 -0
  522. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_workflow_engine_transition.py +0 -0
  523. {devsquad-4.5.18 → devsquad-4.5.19}/tests/test_workflow_persistence_coverage.py +0 -0
  524. {devsquad-4.5.18 → devsquad-4.5.19}/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.18
3
+ Version: 4.5.19
4
4
  Summary: Production-Ready Multi-Role AI Task Orchestrator
5
5
  Author-email: DevSquad Team <devsquad@example.com>
6
6
  License: MIT
@@ -54,6 +54,7 @@ Provides-Extra: dev
54
54
  Requires-Dist: pytest>=7.0; extra == "dev"
55
55
  Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
56
56
  Requires-Dist: pytest-cov>=4.1; extra == "dev"
57
+ Requires-Dist: pytest-rerunfailures>=14.0; extra == "dev"
57
58
  Requires-Dist: ruff==0.15.20; extra == "dev"
58
59
  Requires-Dist: mypy==2.2.0; extra == "dev"
59
60
  Requires-Dist: black==26.5.1; extra == "dev"
@@ -84,6 +85,7 @@ Requires-Dist: Pillow>=10.0.0; extra == "all"
84
85
  Requires-Dist: pytest>=7.0; extra == "all"
85
86
  Requires-Dist: pytest-asyncio>=0.21; extra == "all"
86
87
  Requires-Dist: pytest-cov>=4.1; extra == "all"
88
+ Requires-Dist: pytest-rerunfailures>=14.0; extra == "all"
87
89
  Requires-Dist: ruff>=0.4.0; extra == "all"
88
90
  Requires-Dist: mypy>=1.0; extra == "all"
89
91
  Requires-Dist: black>=23.0; extra == "all"
@@ -99,14 +101,14 @@ Dynamic: license-file
99
101
  <p align="center">
100
102
  <strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
101
103
  <br>
102
- <em>One task → Multi-role AI collaboration → One conclusion | V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badge 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI: v2 protocol hardening + factory v2 default + v1/v2 isolation) | V4.5.9 (Unified Gather Execution Core + Native Async Worker: 执行层统一 gather 化 + Worker 原生异步) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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)</em>
104
+ <em>One task → Multi-role AI collaboration → One conclusion | V4.5.19 (Flaky-test cleanup: dashboard latency gate → 5-run median + pytest-rerunfailures) | V4.5.18 (Perf-extension: SQLite PRAGMA to ccr_store/history_manager + SkillRegistry thread-safety hotfix) | V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badge 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI: v2 protocol hardening + factory v2 default + v1/v2 isolation) | V4.5.9 (Unified Gather Execution Core + Native Async Worker: 执行层统一 gather 化 + Worker 原生异步) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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)</em>
103
105
  </p>
104
106
 
105
107
  <p align="center">
106
108
  <img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
107
109
  <img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
108
110
  <img alt="Tests" src="https://img.shields.io/badge/Tests-9400%2B%20passing-brightgreen" />
109
- <img alt="Version" src="https://img.shields.io/badge/V4.5.18-success" />
111
+ <img alt="Version" src="https://img.shields.io/badge/V4.5.19-success" />
110
112
  <img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
111
113
  <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" />
112
114
  <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" />
@@ -638,7 +640,7 @@ devsquad dispatch -t "Design user authentication system"
638
640
  ```bash
639
641
  # Check version
640
642
  devsquad --version
641
- # Expected: devsquad 4.5.18
643
+ # Expected: devsquad 4.5.19
642
644
 
643
645
  # Run tests
644
646
  pytest tests/ -v --tb=short
@@ -693,7 +695,7 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
693
695
 
694
696
  ### Quick Smoke Test (< 30 seconds)
695
697
  ```bash
696
- python3 scripts/cli.py --version # Expected: DevSquad 4.5.18
698
+ python3 scripts/cli.py --version # Expected: DevSquad 4.5.19
697
699
  python3 scripts/cli.py status # Expected: System ready
698
700
  python3 scripts/cli.py roles # Expected: 7 core roles listed
699
701
  ```
@@ -818,6 +820,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
818
820
 
819
821
  ---
820
822
 
821
- *Last updated: 2026-09-14 | Version: V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badges 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI) | V4.5.9 (Unified Gather Execution Core + Native Async Worker) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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 new enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
823
+ *Last updated: 2026-09-18 | Version: V4.5.19 (Flaky-test cleanup: dashboard latency gate → 5-run median + pytest-rerunfailures) | V4.5.18 (Perf-extension: SQLite PRAGMA to ccr_store/history_manager + SkillRegistry thread-safety hotfix) | V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badges 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI) | V4.5.9 (Unified Gather Execution Core + Native Async Worker) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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 new enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
822
824
 
823
825
  </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.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badge 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI: v2 protocol hardening + factory v2 default + v1/v2 isolation) | V4.5.9 (Unified Gather Execution Core + Native Async Worker: 执行层统一 gather 化 + Worker 原生异步) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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)</em>
6
+ <em>One task → Multi-role AI collaboration → One conclusion | V4.5.19 (Flaky-test cleanup: dashboard latency gate → 5-run median + pytest-rerunfailures) | V4.5.18 (Perf-extension: SQLite PRAGMA to ccr_store/history_manager + SkillRegistry thread-safety hotfix) | V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badge 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI: v2 protocol hardening + factory v2 default + v1/v2 isolation) | V4.5.9 (Unified Gather Execution Core + Native Async Worker: 执行层统一 gather 化 + Worker 原生异步) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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)</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
12
  <img alt="Tests" src="https://img.shields.io/badge/Tests-9400%2B%20passing-brightgreen" />
13
- <img alt="Version" src="https://img.shields.io/badge/V4.5.18-success" />
13
+ <img alt="Version" src="https://img.shields.io/badge/V4.5.19-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" />
@@ -542,7 +542,7 @@ devsquad dispatch -t "Design user authentication system"
542
542
  ```bash
543
543
  # Check version
544
544
  devsquad --version
545
- # Expected: devsquad 4.5.18
545
+ # Expected: devsquad 4.5.19
546
546
 
547
547
  # Run tests
548
548
  pytest tests/ -v --tb=short
@@ -597,7 +597,7 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
597
597
 
598
598
  ### Quick Smoke Test (< 30 seconds)
599
599
  ```bash
600
- python3 scripts/cli.py --version # Expected: DevSquad 4.5.18
600
+ python3 scripts/cli.py --version # Expected: DevSquad 4.5.19
601
601
  python3 scripts/cli.py status # Expected: System ready
602
602
  python3 scripts/cli.py roles # Expected: 7 core roles listed
603
603
  ```
@@ -722,6 +722,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
722
722
 
723
723
  ---
724
724
 
725
- *Last updated: 2026-09-14 | Version: V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badges 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI) | V4.5.9 (Unified Gather Execution Core + Native Async Worker) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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 new enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
725
+ *Last updated: 2026-09-18 | Version: V4.5.19 (Flaky-test cleanup: dashboard latency gate → 5-run median + pytest-rerunfailures) | V4.5.18 (Perf-extension: SQLite PRAGMA to ccr_store/history_manager + SkillRegistry thread-safety hotfix) | V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badges 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI) | V4.5.9 (Unified Gather Execution Core + Native Async Worker) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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 new enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
726
726
 
727
727
  </details>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devsquad
3
- Version: 4.5.18
3
+ Version: 4.5.19
4
4
  Summary: Production-Ready Multi-Role AI Task Orchestrator
5
5
  Author-email: DevSquad Team <devsquad@example.com>
6
6
  License: MIT
@@ -54,6 +54,7 @@ Provides-Extra: dev
54
54
  Requires-Dist: pytest>=7.0; extra == "dev"
55
55
  Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
56
56
  Requires-Dist: pytest-cov>=4.1; extra == "dev"
57
+ Requires-Dist: pytest-rerunfailures>=14.0; extra == "dev"
57
58
  Requires-Dist: ruff==0.15.20; extra == "dev"
58
59
  Requires-Dist: mypy==2.2.0; extra == "dev"
59
60
  Requires-Dist: black==26.5.1; extra == "dev"
@@ -84,6 +85,7 @@ Requires-Dist: Pillow>=10.0.0; extra == "all"
84
85
  Requires-Dist: pytest>=7.0; extra == "all"
85
86
  Requires-Dist: pytest-asyncio>=0.21; extra == "all"
86
87
  Requires-Dist: pytest-cov>=4.1; extra == "all"
88
+ Requires-Dist: pytest-rerunfailures>=14.0; extra == "all"
87
89
  Requires-Dist: ruff>=0.4.0; extra == "all"
88
90
  Requires-Dist: mypy>=1.0; extra == "all"
89
91
  Requires-Dist: black>=23.0; extra == "all"
@@ -99,14 +101,14 @@ Dynamic: license-file
99
101
  <p align="center">
100
102
  <strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
101
103
  <br>
102
- <em>One task → Multi-role AI collaboration → One conclusion | V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badge 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI: v2 protocol hardening + factory v2 default + v1/v2 isolation) | V4.5.9 (Unified Gather Execution Core + Native Async Worker: 执行层统一 gather 化 + Worker 原生异步) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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)</em>
104
+ <em>One task → Multi-role AI collaboration → One conclusion | V4.5.19 (Flaky-test cleanup: dashboard latency gate → 5-run median + pytest-rerunfailures) | V4.5.18 (Perf-extension: SQLite PRAGMA to ccr_store/history_manager + SkillRegistry thread-safety hotfix) | V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badge 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI: v2 protocol hardening + factory v2 default + v1/v2 isolation) | V4.5.9 (Unified Gather Execution Core + Native Async Worker: 执行层统一 gather 化 + Worker 原生异步) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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)</em>
103
105
  </p>
104
106
 
105
107
  <p align="center">
106
108
  <img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
107
109
  <img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
108
110
  <img alt="Tests" src="https://img.shields.io/badge/Tests-9400%2B%20passing-brightgreen" />
109
- <img alt="Version" src="https://img.shields.io/badge/V4.5.18-success" />
111
+ <img alt="Version" src="https://img.shields.io/badge/V4.5.19-success" />
110
112
  <img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
111
113
  <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" />
112
114
  <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" />
@@ -638,7 +640,7 @@ devsquad dispatch -t "Design user authentication system"
638
640
  ```bash
639
641
  # Check version
640
642
  devsquad --version
641
- # Expected: devsquad 4.5.18
643
+ # Expected: devsquad 4.5.19
642
644
 
643
645
  # Run tests
644
646
  pytest tests/ -v --tb=short
@@ -693,7 +695,7 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
693
695
 
694
696
  ### Quick Smoke Test (< 30 seconds)
695
697
  ```bash
696
- python3 scripts/cli.py --version # Expected: DevSquad 4.5.18
698
+ python3 scripts/cli.py --version # Expected: DevSquad 4.5.19
697
699
  python3 scripts/cli.py status # Expected: System ready
698
700
  python3 scripts/cli.py roles # Expected: 7 core roles listed
699
701
  ```
@@ -818,6 +820,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
818
820
 
819
821
  ---
820
822
 
821
- *Last updated: 2026-09-14 | Version: V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badges 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI) | V4.5.9 (Unified Gather Execution Core + Native Async Worker) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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 new enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
823
+ *Last updated: 2026-09-18 | Version: V4.5.19 (Flaky-test cleanup: dashboard latency gate → 5-run median + pytest-rerunfailures) | V4.5.18 (Perf-extension: SQLite PRAGMA to ccr_store/history_manager + SkillRegistry thread-safety hotfix) | V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badges 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI) | V4.5.9 (Unified Gather Execution Core + Native Async Worker) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (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 new enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
822
824
 
823
825
  </details>
@@ -23,6 +23,7 @@ Pillow>=10.0.0
23
23
  pytest>=7.0
24
24
  pytest-asyncio>=0.21
25
25
  pytest-cov>=4.1
26
+ pytest-rerunfailures>=14.0
26
27
  ruff>=0.4.0
27
28
  mypy>=1.0
28
29
  black>=23.0
@@ -47,6 +48,7 @@ carrymem[devsquad]>=0.2.8
47
48
  pytest>=7.0
48
49
  pytest-asyncio>=0.21
49
50
  pytest-cov>=4.1
51
+ pytest-rerunfailures>=14.0
50
52
  ruff==0.15.20
51
53
  mypy==2.2.0
52
54
  black==26.5.1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "devsquad"
7
- version = "4.5.18"
7
+ version = "4.5.19"
8
8
  description = "Production-Ready Multi-Role AI Task Orchestrator"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -63,6 +63,7 @@ dev = [
63
63
  "pytest>=7.0",
64
64
  "pytest-asyncio>=0.21",
65
65
  "pytest-cov>=4.1",
66
+ "pytest-rerunfailures>=14.0", # V4.5.19 — flaky-test retry support (used by `pytest.mark.flaky`)
66
67
  "ruff==0.15.20",
67
68
  "mypy==2.2.0",
68
69
  "black==26.5.1",
@@ -94,6 +95,7 @@ all = [
94
95
  "pytest>=7.0",
95
96
  "pytest-asyncio>=0.21",
96
97
  "pytest-cov>=4.1",
98
+ "pytest-rerunfailures>=14.0",
97
99
  "ruff>=0.4.0",
98
100
  "mypy>=1.0",
99
101
  "black>=23.0",
@@ -218,9 +220,10 @@ addopts = [
218
220
  ]
219
221
  markers = [
220
222
  "slow: marks tests as slow (deselect with '-m \"not slow\"')",
223
+ "external: marks tests that require external network/API access",
224
+ "flaky: marks tests as flaky; rerun up to N times (pytest-rerunfailures)",
221
225
  "e2e: end-to-end tests requiring full stack",
222
226
  "integration: integration tests (cross-module, no external deps)",
223
- "external: tests requiring real external services (LLM API, Redis, PostgreSQL)",
224
227
  "benchmark: performance benchmark tests",
225
228
  "unit: marks tests as unit tests",
226
229
  "smoke: marks tests as release smoke tests",
@@ -0,0 +1,2 @@
1
+ __version__ = "4.5.19"
2
+ __version_info__ = (4, 5, 19)
@@ -1,5 +1,5 @@
1
1
  """
2
- DevSquad V4.5.18 — Layered Sub-Skill Architecture
2
+ DevSquad V4.5.19 — Layered Sub-Skill Architecture
3
3
 
4
4
  This package provides fine-grained, independently usable skills that wrap
5
5
  DevSquad's core modules. Each sub-skill is a thin handler (~50 lines) that
@@ -270,13 +270,27 @@ class TestTodoDriftPanel:
270
270
 
271
271
 
272
272
  class TestStatusUpdateLatency:
273
+ # V4.5.19 — relax the latency gate from a single-shot < 100ms assertion to
274
+ # a 5-run median budget of < 150ms, and tag the test with the standard
275
+ # `flaky` marker so CI runners can retry it up to 2 times. The CI Python
276
+ # 3.10 matrix run saw the test intermittently reach 280ms under
277
+ # scheduling contention even though the local host runs it in <10ms;
278
+ # treating the test as flaky (rather than raising the single-shot budget
279
+ # to 280ms) keeps a real performance regression visible while preventing
280
+ # transient scheduler noise from blocking releases.
281
+ @pytest.mark.flaky(max_runs=3, min_passes=1)
273
282
  def test_status_update_latency(self) -> None:
274
- """Rendering all four panels completes in < 100ms (Mock container).
283
+ """Rendering all four panels completes in < 150ms median (Mock container).
275
284
 
276
285
  Performance gate: the panel functions must be cheap to invoke since
277
286
  the dashboard refreshes on a 30s auto-refresh cycle and should never
278
287
  block the UI thread. With a Mock container (no real rendering), the
279
288
  overhead is pure Python dispatch.
289
+
290
+ V4.5.19 — statistical assertion: take the median of 5 consecutive
291
+ invocations and compare against a 150ms ceiling. A single outlier
292
+ (e.g. caused by a CI runner scheduler tick) no longer fails the
293
+ gate; a genuine regression (every run slow) still surfaces.
280
294
  """
281
295
  container = _make_container()
282
296
  events = [
@@ -288,11 +302,17 @@ class TestStatusUpdateLatency:
288
302
  }
289
303
  ]
290
304
 
291
- start = time.perf_counter()
292
- render_ponytail_mode_panel("full", container=container)
293
- render_loop_rollback_panel(1, 3, 2, "DEV", container=container)
294
- render_plugin_events_panel(events, container=container)
295
- render_todo_drift_panel(5, 4, 1, "2026-07-24T10:00:00Z", container=container)
296
- elapsed_ms = (time.perf_counter() - start) * 1000
297
-
298
- assert elapsed_ms < 100.0, f"Panel rendering took {elapsed_ms:.2f}ms (> 100ms budget)"
305
+ timings_ms: list[float] = []
306
+ for _ in range(5):
307
+ start = time.perf_counter()
308
+ render_ponytail_mode_panel("full", container=container)
309
+ render_loop_rollback_panel(1, 3, 2, "DEV", container=container)
310
+ render_plugin_events_panel(events, container=container)
311
+ render_todo_drift_panel(5, 4, 1, "2026-07-24T10:00:00Z", container=container)
312
+ timings_ms.append((time.perf_counter() - start) * 1000)
313
+
314
+ median_ms = sorted(timings_ms)[len(timings_ms) // 2]
315
+ assert median_ms < 150.0, (
316
+ f"Panel rendering median took {median_ms:.2f}ms (> 150ms budget). "
317
+ f"Individual timings (sorted): {[f'{t:.2f}' for t in sorted(timings_ms)]}"
318
+ )
@@ -1,2 +0,0 @@
1
- __version__ = "4.5.18"
2
- __version_info__ = (4, 5, 18)
File without changes
File without changes
File without changes
File without changes