drydock-cli 2.7.40__tar.gz → 2.7.41__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 (745) hide show
  1. drydock_cli-2.7.41/.auto_release.lock +1 -0
  2. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/PKG-INFO +1 -1
  3. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/agent_loop.py +10 -1
  4. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/bash.py +7 -4
  5. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/write_file.py +30 -32
  6. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/pyproject.toml +1 -1
  7. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_bash_exact_cmd_loop_breaker.py +17 -0
  8. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_bash_heredoc_confirmation.py +24 -0
  9. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/trip_log.md +102 -0
  10. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/uv.lock +1 -1
  11. drydock_cli-2.7.40/.auto_release.lock +0 -1
  12. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.claude/scheduled_tasks.lock +0 -0
  13. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.github/CODEOWNERS +0 -0
  14. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
  15. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  16. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  17. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.github/workflows/build-and-upload.yml +0 -0
  18. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.github/workflows/ci.yml +0 -0
  19. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.github/workflows/issue-labeler.yml +0 -0
  20. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.github/workflows/release.yml +0 -0
  21. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.gitignore +0 -0
  22. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.perf_baseline_done +0 -0
  23. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.pre-commit-config.yaml +0 -0
  24. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.python-version +0 -0
  25. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.typos.toml +0 -0
  26. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.vscode/extensions.json +0 -0
  27. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.vscode/launch.json +0 -0
  28. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/.vscode/settings.json +0 -0
  29. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/AGENTS.md +0 -0
  30. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/Admiral.md +0 -0
  31. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/BASELINE_412.md +0 -0
  32. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/CHANGELOG.md +0 -0
  33. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/CLAUDE.md +0 -0
  34. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/CONTRIBUTING.md +0 -0
  35. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/DEPLOYMENT.md +0 -0
  36. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/Drydock_rebrand.md +0 -0
  37. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/HLE_PRD.md +0 -0
  38. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/JETSON_BENCH.md +0 -0
  39. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/LICENSE +0 -0
  40. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/MODEL_SHORTCOMINGS.md +0 -0
  41. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/NOTICE +0 -0
  42. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/OVERNIGHT_PROGRESS.md +0 -0
  43. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/OVERNIGHT_REPORT_2026_04_13.md +0 -0
  44. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/PERF_SWEEP_PLAN.md +0 -0
  45. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/PRD.md +0 -0
  46. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/README.md +0 -0
  47. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/SOVEREIGN_PRD.md +0 -0
  48. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/TRIAGE_v1.md +0 -0
  49. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/action.yml +0 -0
  50. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/README.md +0 -0
  51. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results1.tsv +0 -0
  52. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results13.tsv +0 -0
  53. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results14.tsv +0 -0
  54. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results15.tsv +0 -0
  55. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results16.tsv +0 -0
  56. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results17.tsv +0 -0
  57. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results18.tsv +0 -0
  58. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results19.tsv +0 -0
  59. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results2.tsv +0 -0
  60. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results20.tsv +0 -0
  61. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results3.tsv +0 -0
  62. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results4.tsv +0 -0
  63. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results5.tsv +0 -0
  64. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results6.tsv +0 -0
  65. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results7.tsv +0 -0
  66. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results8.tsv +0 -0
  67. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results9.tsv +0 -0
  68. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/baseline_history/results_evolved_v1.tsv +0 -0
  69. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/distribution/zed/LICENSE +0 -0
  70. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/distribution/zed/extension.toml +0 -0
  71. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/distribution/zed/icons/mistral_vibe.svg +0 -0
  72. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/docs/README.md +0 -0
  73. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/docs/acp-setup.md +0 -0
  74. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/docs/proxy-setup.md +0 -0
  75. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/__init__.py +0 -0
  76. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/__init__.py +0 -0
  77. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/acp_agent_loop.py +0 -0
  78. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/acp_logger.py +0 -0
  79. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/entrypoint.py +0 -0
  80. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/tools/__init__.py +0 -0
  81. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/tools/base.py +0 -0
  82. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/tools/builtins/bash.py +0 -0
  83. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/tools/builtins/read_file.py +0 -0
  84. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/tools/builtins/search_replace.py +0 -0
  85. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/tools/builtins/todo.py +0 -0
  86. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/tools/builtins/write_file.py +0 -0
  87. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/tools/session_update.py +0 -0
  88. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/acp/utils.py +0 -0
  89. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/__init__.py +0 -0
  90. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/detectors.py +0 -0
  91. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/detectors_proposed.py +0 -0
  92. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/history.py +0 -0
  93. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/interventions.py +0 -0
  94. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/llm_analyzer.py +0 -0
  95. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/metrics.py +0 -0
  96. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/opus_escalator.py +0 -0
  97. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/persistence.py +0 -0
  98. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/policy.py +0 -0
  99. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/proposer.py +0 -0
  100. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/stager.py +0 -0
  101. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/task_classifier.py +0 -0
  102. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/tuning.py +0 -0
  103. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/validator.py +0 -0
  104. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/admiral/worker.py +0 -0
  105. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/__init__.py +0 -0
  106. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/autocompletion/__init__.py +0 -0
  107. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/autocompletion/base.py +0 -0
  108. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/autocompletion/path_completion.py +0 -0
  109. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/autocompletion/slash_command.py +0 -0
  110. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/cli.py +0 -0
  111. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/clipboard.py +0 -0
  112. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/commands.py +0 -0
  113. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/entrypoint.py +0 -0
  114. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/history_manager.py +0 -0
  115. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
  116. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
  117. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
  118. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/terminal_setup.py +0 -0
  119. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/__init__.py +0 -0
  120. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
  121. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/app.py +0 -0
  122. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/app.tcss +0 -0
  123. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/external_editor.py +0 -0
  124. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
  125. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
  126. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
  127. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
  128. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
  129. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
  130. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
  131. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
  132. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
  133. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
  134. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
  135. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
  136. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
  137. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
  138. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
  139. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
  140. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
  141. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
  142. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/checkpoint_picker.py +0 -0
  143. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/compact.py +0 -0
  144. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
  145. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
  146. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
  147. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/loading.py +0 -0
  148. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/messages.py +0 -0
  149. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
  150. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
  151. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
  152. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
  153. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
  154. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
  155. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
  156. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
  157. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
  158. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/tools.py +0 -0
  159. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
  160. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
  161. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/windowing/history.py +0 -0
  162. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
  163. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/textual_ui/windowing/state.py +0 -0
  164. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/update_notifier/__init__.py +0 -0
  165. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
  166. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
  167. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
  168. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
  169. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
  170. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/update_notifier/update.py +0 -0
  171. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/cli/update_notifier/whats_new.py +0 -0
  172. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/__init__.py +0 -0
  173. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/agents/__init__.py +0 -0
  174. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/agents/manager.py +0 -0
  175. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/agents/models.py +0 -0
  176. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/auth/__init__.py +0 -0
  177. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/auth/crypto.py +0 -0
  178. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/auth/github.py +0 -0
  179. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/autocompletion/__init__.py +0 -0
  180. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/autocompletion/completers.py +0 -0
  181. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
  182. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
  183. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
  184. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/autocompletion/file_indexer/store.py +0 -0
  185. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
  186. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/autocompletion/fuzzy.py +0 -0
  187. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/autocompletion/path_prompt.py +0 -0
  188. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
  189. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/build_orchestrator.py +0 -0
  190. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/checkpoint.py +0 -0
  191. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/classifier/__init__.py +0 -0
  192. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/classifier/__main__.py +0 -0
  193. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/classifier/classifier.py +0 -0
  194. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/classifier/dispatcher.py +0 -0
  195. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/classifier/rules.py +0 -0
  196. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/classifier/signal.py +0 -0
  197. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/config/__init__.py +0 -0
  198. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/config/_settings.py +0 -0
  199. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/config/doctor.py +0 -0
  200. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/config/harness_files/__init__.py +0 -0
  201. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/config/harness_files/_harness_manager.py +0 -0
  202. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/config/harness_files/_paths.py +0 -0
  203. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/config/local_detect.py +0 -0
  204. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/consultant.py +0 -0
  205. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/context_recovery.py +0 -0
  206. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/drydock_states.py +0 -0
  207. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/hooks.py +0 -0
  208. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/__init__.py +0 -0
  209. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/backend/anthropic.py +0 -0
  210. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/backend/base.py +0 -0
  211. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/backend/factory.py +0 -0
  212. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/backend/generic.py +0 -0
  213. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/backend/mistral.py +0 -0
  214. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
  215. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/backend/vertex.py +0 -0
  216. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/exceptions.py +0 -0
  217. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/format.py +0 -0
  218. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/message_utils.py +0 -0
  219. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/llm/types.py +0 -0
  220. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/logger.py +0 -0
  221. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/middleware.py +0 -0
  222. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/output_formatters.py +0 -0
  223. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/paths/__init__.py +0 -0
  224. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/paths/_drydock_home.py +0 -0
  225. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/paths/_local_config_walk.py +0 -0
  226. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/paths/conventions.py +0 -0
  227. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/plan_session.py +0 -0
  228. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/plugins.py +0 -0
  229. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/programmatic.py +0 -0
  230. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/prompts/__init__.py +0 -0
  231. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/prompts/builder.md +0 -0
  232. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/prompts/cli.md +0 -0
  233. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/prompts/compact.md +0 -0
  234. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/prompts/dangerous_directory.md +0 -0
  235. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/prompts/diagnostic.md +0 -0
  236. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/prompts/explore.md +0 -0
  237. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/prompts/gemma4.md +0 -0
  238. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/prompts/planner.md +0 -0
  239. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/prompts/project_context.md +0 -0
  240. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/prompts/tests.md +0 -0
  241. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/proxy_setup.py +0 -0
  242. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/session/agent_memory.py +0 -0
  243. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/session/checkpoints.py +0 -0
  244. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/session/session_loader.py +0 -0
  245. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/session/session_logger.py +0 -0
  246. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/session/session_migration.py +0 -0
  247. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/session/state_file.py +0 -0
  248. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/session_checker.py +0 -0
  249. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/skills/__init__.py +0 -0
  250. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/skills/manager.py +0 -0
  251. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/skills/models.py +0 -0
  252. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/skills/parser.py +0 -0
  253. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/slug.py +0 -0
  254. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/steering_hook.py +0 -0
  255. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/system_prompt.py +0 -0
  256. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/telemetry/__init__.py +0 -0
  257. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/telemetry/send.py +0 -0
  258. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/teleport/errors.py +0 -0
  259. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/teleport/git.py +0 -0
  260. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/teleport/nuage.py +0 -0
  261. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/teleport/teleport.py +0 -0
  262. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/teleport/types.py +0 -0
  263. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/base.py +0 -0
  264. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/_task_manager.py +0 -0
  265. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/ask_user_question.py +0 -0
  266. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/cron.py +0 -0
  267. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
  268. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/glob_tool.py +0 -0
  269. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/grep.py +0 -0
  270. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/invoke_skill.py +0 -0
  271. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/lsp.py +0 -0
  272. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/mcp_resources.py +0 -0
  273. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/notebook_edit.py +0 -0
  274. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/powershell.py +0 -0
  275. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
  276. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
  277. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/bash.md +0 -0
  278. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/cron.md +0 -0
  279. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/glob.md +0 -0
  280. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/grep.md +0 -0
  281. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
  282. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
  283. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
  284. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
  285. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
  286. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
  287. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/retrieve.md +0 -0
  288. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
  289. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
  290. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/task.md +0 -0
  291. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
  292. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/todo.md +0 -0
  293. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
  294. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
  295. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
  296. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
  297. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
  298. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/read_file.py +0 -0
  299. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/retrieve.py +0 -0
  300. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/search_replace.py +0 -0
  301. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/task.py +0 -0
  302. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/todo.py +0 -0
  303. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/tool_search.py +0 -0
  304. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/webfetch.py +0 -0
  305. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/websearch.py +0 -0
  306. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/builtins/worktree.py +0 -0
  307. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/injection_guard.py +0 -0
  308. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/manager.py +0 -0
  309. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/mcp/__init__.py +0 -0
  310. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/mcp/registry.py +0 -0
  311. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/mcp/tools.py +0 -0
  312. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/mcp_sampling.py +0 -0
  313. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/ui.py +0 -0
  314. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/tools/utils.py +0 -0
  315. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/trusted_folders.py +0 -0
  316. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/types.py +0 -0
  317. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/core/utils.py +0 -0
  318. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/graphrag/__init__.py +0 -0
  319. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/graphrag/__main__.py +0 -0
  320. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/graphrag/code_indexer.py +0 -0
  321. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/graphrag/retriever.py +0 -0
  322. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/graphrag/storage.py +0 -0
  323. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/graphrag/text_indexer.py +0 -0
  324. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/setup/onboarding/__init__.py +0 -0
  325. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/setup/onboarding/base.py +0 -0
  326. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/setup/onboarding/onboarding.tcss +0 -0
  327. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/setup/onboarding/screens/__init__.py +0 -0
  328. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/setup/onboarding/screens/api_key.py +0 -0
  329. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/setup/onboarding/screens/choice.py +0 -0
  330. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/setup/onboarding/screens/local_model.py +0 -0
  331. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/setup/onboarding/screens/welcome.py +0 -0
  332. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
  333. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
  334. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/__init__.py +0 -0
  335. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/api-design/SKILL.md +0 -0
  336. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/audit-tests/SKILL.md +0 -0
  337. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/batch/SKILL.md +0 -0
  338. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/commit-code/SKILL.md +0 -0
  339. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/context-summary/SKILL.md +0 -0
  340. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/create-presentation/SKILL.md +0 -0
  341. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/deep-research/SKILL.md +0 -0
  342. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/deploy/SKILL.md +0 -0
  343. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/diff-review/SKILL.md +0 -0
  344. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/doc-gen/SKILL.md +0 -0
  345. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/explain-code/SKILL.md +0 -0
  346. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/explore-code/SKILL.md +0 -0
  347. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/fix-issue/SKILL.md +0 -0
  348. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/git-ops/SKILL.md +0 -0
  349. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/init-project/SKILL.md +0 -0
  350. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/investigate/SKILL.md +0 -0
  351. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/loop/SKILL.md +0 -0
  352. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/migrate/SKILL.md +0 -0
  353. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/perf-analyze/SKILL.md +0 -0
  354. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/plan-impl/SKILL.md +0 -0
  355. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/pr-review/SKILL.md +0 -0
  356. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/refactor/SKILL.md +0 -0
  357. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/regex-help/SKILL.md +0 -0
  358. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/review/SKILL.md +0 -0
  359. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/security-review/SKILL.md +0 -0
  360. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/ship/SKILL.md +0 -0
  361. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/simplify/SKILL.md +0 -0
  362. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/strong-tests/SKILL.md +0 -0
  363. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/skills/test-verify/SKILL.md +0 -0
  364. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/steering/__init__.py +0 -0
  365. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/steering/__main__.py +0 -0
  366. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/steering/applier.py +0 -0
  367. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/steering/config.py +0 -0
  368. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/steering/registry.py +0 -0
  369. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/steering/sandbox.py +0 -0
  370. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/steering/vectors.py +0 -0
  371. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock/whats_new.md +0 -0
  372. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock-acp.spec +0 -0
  373. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/drydock_terms.md +0 -0
  374. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/flake.lock +0 -0
  375. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/flake.nix +0 -0
  376. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/nohup.out +0 -0
  377. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/perf_results/baseline_1777672181.json +0 -0
  378. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/perf_results/baseline_1777672218.json +0 -0
  379. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/perf_results/baseline_1777672322.json +0 -0
  380. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/perf_results/baseline_1777732278.json +0 -0
  381. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/perf_results/baseline_1777811293.json +0 -0
  382. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/perf_results/baseline_1777811401.json +0 -0
  383. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/research/README.md +0 -0
  384. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/research/config_base.toml +0 -0
  385. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/research/config_best.toml +0 -0
  386. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/research/domain_spec.md +0 -0
  387. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/research/experimenter.py +0 -0
  388. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/research/kernel.py +0 -0
  389. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/research/mini_prd.md +0 -0
  390. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/research/mini_prompts.txt +0 -0
  391. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/research/proposer.py +0 -0
  392. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/research/results.tsv +0 -0
  393. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/resume.md +0 -0
  394. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/README.md +0 -0
  395. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/admiral_probe.py +0 -0
  396. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/audit_sampler.py +0 -0
  397. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/auto_generate_tests.py +0 -0
  398. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/auto_release.sh +0 -0
  399. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/auto_test_loop.sh +0 -0
  400. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/autonomous_review.sh +0 -0
  401. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/autonomous_review_prompt.md +0 -0
  402. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/backup.sh +0 -0
  403. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/bump_version.py +0 -0
  404. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/classify_pulse.sh +0 -0
  405. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/comprehensive_loop.py +0 -0
  406. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/consume_retrieval_queue.py +0 -0
  407. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/deploy_to_github.sh +0 -0
  408. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/discover_cli_tools.sh +0 -0
  409. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/evolve_tests.py +0 -0
  410. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/gen_2000_prompts.py +0 -0
  411. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/hle_eval.py +0 -0
  412. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/hle_eval_seed.jsonl +0 -0
  413. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/install.sh +0 -0
  414. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/llm_balancer.py +0 -0
  415. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/mega_loop.py +0 -0
  416. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/meta_ralph_loop.py +0 -0
  417. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/monitor_swebench.sh +0 -0
  418. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/monitor_test_battery.sh +0 -0
  419. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/notify_release.py +0 -0
  420. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/oss_task_harness.py +0 -0
  421. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/overnight_agents_test.sh +0 -0
  422. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/perf_baseline_when_idle.sh +0 -0
  423. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/perf_sweep.py +0 -0
  424. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/poll_issues.sh +0 -0
  425. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/port_task.py +0 -0
  426. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/prepare_release.py +0 -0
  427. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/publish_to_pypi.sh +0 -0
  428. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/queue_top.py +0 -0
  429. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/ralph_loop.py +0 -0
  430. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/research_babysitter.sh +0 -0
  431. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/session_loop_audit.py +0 -0
  432. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/shakedown.py +0 -0
  433. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/shakedown_interactive.py +0 -0
  434. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/shakedown_regression.sh +0 -0
  435. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/shakedown_suite.sh +0 -0
  436. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/shakedown_variance.sh +0 -0
  437. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/stress_babysitter.sh +0 -0
  438. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/stress_prompts_50.txt +0 -0
  439. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/stress_prompts_realuser.txt +0 -0
  440. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/stress_prompts_tool_agent.txt +0 -0
  441. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/stress_prompts_tool_agent_2000.txt +0 -0
  442. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/stress_shakedown.py +0 -0
  443. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/stress_telegram_status.py +0 -0
  444. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/stress_watcher.py +0 -0
  445. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/telegram_bot.py +0 -0
  446. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/test_bank.sh +0 -0
  447. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/test_full.sh +0 -0
  448. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/test_smoke.sh +0 -0
  449. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/test_tui_path.py +0 -0
  450. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/tui_test.py +0 -0
  451. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/scripts/vllm_failover.sh +0 -0
  452. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/test/project/dummy +0 -0
  453. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/__init__.py +0 -0
  454. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/conftest.py +0 -0
  455. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_acp.py +0 -0
  456. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_agent_thought.py +0 -0
  457. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_bash.py +0 -0
  458. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_compact_session_updates.py +0 -0
  459. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_content.py +0 -0
  460. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_initialize.py +0 -0
  461. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_list_sessions.py +0 -0
  462. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_load_session.py +0 -0
  463. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_multi_session.py +0 -0
  464. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_new_session.py +0 -0
  465. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_proxy_setup_acp.py +0 -0
  466. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_read_file.py +0 -0
  467. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_search_replace.py +0 -0
  468. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_set_config_option.py +0 -0
  469. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_set_mode.py +0 -0
  470. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_set_model.py +0 -0
  471. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_tool_call_session_update.py +0 -0
  472. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_utils.py +0 -0
  473. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/acp/test_write_file.py +0 -0
  474. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/autocompletion/test_file_indexer.py +0 -0
  475. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/autocompletion/test_fuzzy.py +0 -0
  476. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
  477. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/autocompletion/test_path_completer_recursive.py +0 -0
  478. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/autocompletion/test_path_completion_controller.py +0 -0
  479. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
  480. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/autocompletion/test_slash_command_controller.py +0 -0
  481. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
  482. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/backend/__init__.py +0 -0
  483. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/backend/data/__init__.py +0 -0
  484. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/backend/data/fireworks.py +0 -0
  485. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/backend/data/mistral.py +0 -0
  486. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/backend/test_anthropic_adapter.py +0 -0
  487. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/backend/test_backend.py +0 -0
  488. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/backend/test_generic_adapter_sanitize.py +0 -0
  489. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/backend/test_reasoning_adapter.py +0 -0
  490. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
  491. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
  492. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
  493. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
  494. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_bell_notifications.py +0 -0
  495. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_braille_renderer.py +0 -0
  496. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_clipboard.py +0 -0
  497. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_commands.py +0 -0
  498. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_copy_shortcuts.py +0 -0
  499. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_external_editor.py +0 -0
  500. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_no_markup_static.py +0 -0
  501. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_question_app.py +0 -0
  502. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_spinner.py +0 -0
  503. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_switching_mode.py +0 -0
  504. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_ui_clipboard_notifications.py +0 -0
  505. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
  506. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_ui_session_resume.py +0 -0
  507. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/test_ui_skill_dispatch.py +0 -0
  508. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/textual_ui/__init__.py +0 -0
  509. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/cli/textual_ui/test_session_picker.py +0 -0
  510. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/conftest.py +0 -0
  511. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_agents.py +0 -0
  512. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_auth_crypto.py +0 -0
  513. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_auth_github.py +0 -0
  514. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_circuit_breaker_count_escalation.py +0 -0
  515. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_circuit_breaker_readonly_threshold.py +0 -0
  516. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_config_load_dotenv.py +0 -0
  517. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_config_paths.py +0 -0
  518. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_config_resolution.py +0 -0
  519. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_file_logging.py +0 -0
  520. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_plan_session.py +0 -0
  521. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_proxy_setup.py +0 -0
  522. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_slug.py +0 -0
  523. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_telemetry_send.py +0 -0
  524. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_teleport_git.py +0 -0
  525. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_teleport_nuage.py +0 -0
  526. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_teleport_service.py +0 -0
  527. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_trusted_folders.py +0 -0
  528. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/core/test_utils.py +0 -0
  529. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/e2e/common.py +0 -0
  530. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/e2e/conftest.py +0 -0
  531. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/e2e/mock_server.py +0 -0
  532. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/e2e/test_cli_tui_onboarding.py +0 -0
  533. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/e2e/test_cli_tui_streaming.py +0 -0
  534. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
  535. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/fixtures/doc_qa_system_prd.md +0 -0
  536. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/mock/__init__.py +0 -0
  537. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/mock/mock_backend_factory.py +0 -0
  538. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/mock/mock_entrypoint.py +0 -0
  539. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/mock/utils.py +0 -0
  540. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/onboarding/test_run_onboarding.py +0 -0
  541. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/onboarding/test_ui_onboarding.py +0 -0
  542. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/session/test_session_loader.py +0 -0
  543. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/session/test_session_logger.py +0 -0
  544. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/session/test_session_migration.py +0 -0
  545. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/skills/conftest.py +0 -0
  546. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/skills/test_manager.py +0 -0
  547. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/skills/test_models.py +0 -0
  548. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/skills/test_parser.py +0 -0
  549. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
  550. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
  551. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
  552. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
  553. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
  554. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
  555. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
  556. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
  557. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
  558. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
  559. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
  560. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
  561. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
  562. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
  563. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
  564. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
  565. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
  566. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
  567. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
  568. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
  569. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
  570. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
  571. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
  572. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
  573. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
  574. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
  575. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
  576. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
  577. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
  578. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
  579. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
  580. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
  581. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
  582. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
  583. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
  584. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
  585. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
  586. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
  587. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
  588. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
  589. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
  590. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
  591. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
  592. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
  593. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
  594. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
  595. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
  596. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
  597. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
  598. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
  599. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
  600. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
  601. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
  602. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
  603. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
  604. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
  605. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
  606. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
  607. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
  608. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
  609. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/base_snapshot_test_app.py +0 -0
  610. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/conftest.py +0 -0
  611. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/snap_compare.py +0 -0
  612. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
  613. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
  614. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
  615. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
  616. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
  617. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
  618. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
  619. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
  620. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
  621. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
  622. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
  623. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
  624. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
  625. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
  626. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/stubs/fake_backend.py +0 -0
  627. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/stubs/fake_client.py +0 -0
  628. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/stubs/fake_tool.py +0 -0
  629. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_admiral.py +0 -0
  630. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_admiral_phase3.py +0 -0
  631. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_admiral_proposed.py +0 -0
  632. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_admiral_struggle_dedup.py +0 -0
  633. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_agent_auto_compact.py +0 -0
  634. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_agent_backend.py +0 -0
  635. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_agent_observer_streaming.py +0 -0
  636. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_agent_stats.py +0 -0
  637. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_agent_tasks.py +0 -0
  638. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_agent_tool_call.py +0 -0
  639. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_agents.py +0 -0
  640. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_bank_build.py +0 -0
  641. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_bank_debug.py +0 -0
  642. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_bank_multiagent.py +0 -0
  643. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_bank_prd.py +0 -0
  644. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_bank_prd_extended.py +0 -0
  645. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_bank_tools.py +0 -0
  646. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_bank_update.py +0 -0
  647. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_build_projects.py +0 -0
  648. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_checkpoint.py +0 -0
  649. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_classifier.py +0 -0
  650. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_cli_programmatic_preload.py +0 -0
  651. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_context_recovery.py +0 -0
  652. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_current_bugs.py +0 -0
  653. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_dispatcher.py +0 -0
  654. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_drydock_regression.py +0 -0
  655. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_drydock_tasks.py +0 -0
  656. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_fake_tool_call_paren_syntax.py +0 -0
  657. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_full_regression.py +0 -0
  658. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_graphrag.py +0 -0
  659. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_hallucinated_tool_suppression.py +0 -0
  660. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_history_manager.py +0 -0
  661. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_integration.py +0 -0
  662. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_issue_fixes.py +0 -0
  663. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_local_detect.py +0 -0
  664. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_loop_detection.py +0 -0
  665. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_message_id.py +0 -0
  666. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_message_merging.py +0 -0
  667. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_middleware.py +0 -0
  668. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_multi_agent.py +0 -0
  669. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_read_file_not_found_listing.py +0 -0
  670. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_real_failures.py +0 -0
  671. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_real_issues.py +0 -0
  672. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_real_workflow.py +0 -0
  673. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_reasoning_content.py +0 -0
  674. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_retrieval_consumer.py +0 -0
  675. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_retrieve_tool.py +0 -0
  676. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_search_replace_args_not_truncated.py +0 -0
  677. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_smoke.py +0 -0
  678. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_steering.py +0 -0
  679. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_steering_hook.py +0 -0
  680. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_system_prompt.py +0 -0
  681. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_tagged_text.py +0 -0
  682. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_task_complete_nudge.py +0 -0
  683. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_tool_args.py +0 -0
  684. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_truncate_args_valid_json.py +0 -0
  685. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_truncated_arg_path_hint.py +0 -0
  686. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_truncated_search_replace_escalation.py +0 -0
  687. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_truncated_write_escalation.py +0 -0
  688. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_ui_external_editor.py +0 -0
  689. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_ui_input_history.py +0 -0
  690. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_user_issues.py +0 -0
  691. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_wall_of_text_rescue.py +0 -0
  692. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_workloads.py +0 -0
  693. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/test_write_file_missing_path.py +0 -0
  694. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/testbank_helpers.py +0 -0
  695. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_ask_user_question.py +0 -0
  696. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_bash.py +0 -0
  697. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_bash_binary_grep_hint.py +0 -0
  698. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_bash_consec_empty_search.py +0 -0
  699. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_bash_echo_escape_loop_breaker.py +0 -0
  700. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_bash_empty_search_loop_breaker.py +0 -0
  701. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_bash_error_loop_breaker.py +0 -0
  702. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_bash_kill_exit1_annotation.py +0 -0
  703. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_bash_python_c_syntaxerr_loop_breaker.py +0 -0
  704. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_exit_plan_mode.py +0 -0
  705. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_grep.py +0 -0
  706. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_hallucinated_retrieval_redirect.py +0 -0
  707. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_invoke_context.py +0 -0
  708. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_manager_gemma_derived_models.py +0 -0
  709. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_manager_get_tool_config.py +0 -0
  710. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_mcp.py +0 -0
  711. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_mcp_sampling.py +0 -0
  712. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_read_file_dedup_alternating_offset.py +0 -0
  713. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_read_file_dedup_reembed.py +0 -0
  714. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_read_file_directory.py +0 -0
  715. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_read_file_limit_truncation.py +0 -0
  716. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_search_replace_append_fallback.py +0 -0
  717. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_search_replace_dir_path.py +0 -0
  718. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_search_replace_empty_content.py +0 -0
  719. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_search_replace_file_not_found.py +0 -0
  720. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_search_replace_first_failure_hint.py +0 -0
  721. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_search_replace_hard_stop.py +0 -0
  722. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_search_replace_malformed_block.py +0 -0
  723. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_search_replace_no_op_loop_breaker.py +0 -0
  724. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_search_replace_placeholder.py +0 -0
  725. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_search_replace_refused_loop_breaker.py +0 -0
  726. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_task.py +0 -0
  727. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_ui_bash_execution.py +0 -0
  728. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_webfetch.py +0 -0
  729. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_websearch.py +0 -0
  730. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_write_file_dedup_missing_imports.py +0 -0
  731. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/tools/test_write_file_missing_path_hint.py +0 -0
  732. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
  733. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
  734. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/update_notifier/test_do_update.py +0 -0
  735. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
  736. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/update_notifier/test_github_update_gateway.py +0 -0
  737. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
  738. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/update_notifier/test_ui_update_notification.py +0 -0
  739. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/update_notifier/test_update_use_case.py +0 -0
  740. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/tests/update_notifier/test_whats_new.py +0 -0
  741. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/worked_examples/README.md +0 -0
  742. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/worked_examples/cli_subcommand_dispatch.py +0 -0
  743. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/worked_examples/lookup.json +0 -0
  744. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/worked_examples/sql_parser.py +0 -0
  745. {drydock_cli-2.7.40 → drydock_cli-2.7.41}/worked_examples/tree_walking_interpreter.py +0 -0
@@ -0,0 +1 @@
1
+ 2874397
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 2.7.40
3
+ Version: 2.7.41
4
4
  Summary: Local-first CLI coding agent — tested with Gemma 4 26B via vLLM
5
5
  Project-URL: Homepage, https://github.com/fbobe321/drydock
6
6
  Project-URL: Repository, https://github.com/fbobe321/drydock
@@ -995,7 +995,16 @@ class AgentLoop:
995
995
 
996
996
  # Empty response — try to recover inline.
997
997
  if _stall_attempt >= MAX_STALL_RETRIES:
998
- _dbg(f"[STALL-DEBUG] max retries ({MAX_STALL_RETRIES}) exhausted; leaving empty")
998
+ _dbg(f"[STALL-DEBUG] max retries ({MAX_STALL_RETRIES}) exhausted; injecting fallback")
999
+ # Replace the silent empty message with visible text so the
1000
+ # harness and the user both see a clean end-of-turn rather
1001
+ # than a frozen TUI waiting for content that never arrives.
1002
+ last_message.content = (
1003
+ "[Drydock: model returned an empty response after "
1004
+ f"{MAX_STALL_RETRIES} retries. Please rephrase your "
1005
+ "request or use /clear to reset context.]"
1006
+ )
1007
+ yield AssistantEvent(content=last_message.content)
999
1008
  break
1000
1009
  prev_role = self.messages[-2].role if len(self.messages) >= 2 else None
1001
1010
  if prev_role not in (Role.tool, Role.user):
@@ -636,11 +636,14 @@ class Bash(
636
636
  # command text is run 5+ times regardless of output or exit code.
637
637
  # Catches benchmark/timeit/import-check loops where each run has
638
638
  # varying output (timings, object ids) that defeats the hash check.
639
- # Excludes commands that write files (heredoc, redirect, sed -i)
640
- # since those legitimately run the same form multiple times.
639
+ # Excludes redirect/heredoc writes since those legitimately append
640
+ # the same content in loops. Does NOT exclude `sed -i`: when the
641
+ # sed pattern is wrong (e.g. escape mismatch) it exits 0 but makes
642
+ # no change, so the model loops forever — the repetition check
643
+ # must fire to break it (harness:bash:escape_loop pattern).
641
644
  _is_write_cmd = bool(
642
645
  __import__("re").search(
643
- r"(>|>>|\bsed\s+-i\b|\btee\b|\bcat\s+<<|\bprintf\b.*>)",
646
+ r"(>|>>|\btee\b|\bcat\s+<<|\bprintf\b.*>)",
644
647
  args.command,
645
648
  )
646
649
  )
@@ -700,7 +703,7 @@ class Bash(
700
703
  # "EDIT SOURCE CODE" confuses it — give a targeted hint.
701
704
  import re as _re
702
705
  _is_heredoc_write = bool(_re.search(
703
- r"cat\s+<<\s*['\"]?EOF['\"]?\s+>", args.command
706
+ r"cat\s+<<\s*['\"]?[A-Za-z_]+['\"]?\s+>+", args.command
704
707
  ))
705
708
  # Detect ls/grep/find search that returned empty output.
706
709
  # The model runs `ls -F | grep "test_cli"` repeatedly when
@@ -470,39 +470,37 @@ class WriteFile(
470
470
 
471
471
  body = "File already has this exact content (no-op). "
472
472
  if repeat_n >= 2:
473
- try:
474
- siblings = sorted(
475
- p.name for p in file_path.parent.iterdir()
476
- if p.is_file() and not p.name.startswith("__pycache__")
477
- )
478
- sibling_str = ", ".join(siblings) if siblings else "(none)"
479
- body += (
480
- f"You've written this exact file {repeat_n} times. "
481
- f"Files currently in {file_path.parent.name}/: "
482
- f"{sibling_str}. Move on — write a DIFFERENT file "
483
- f"from your plan, or run `bash` with `python3 -m "
484
- f"{file_path.parent.name} --help` to verify."
485
- )
486
- # Also surface missing imports so the model knows
487
- # which file to write next instead of re-looping.
488
- if file_path.suffix == ".py":
489
- try:
490
- import ast as _ast
491
- _tree = _ast.parse(args.content)
492
- missing = _check_missing_sibling_imports(
493
- _tree, file_path
473
+ body += f"You've written this exact file {repeat_n} times. "
474
+ try:
475
+ siblings = sorted(
476
+ p.name for p in file_path.parent.iterdir()
477
+ if p.is_file() and not p.name.startswith("__pycache__")
478
+ )
479
+ sibling_str = ", ".join(siblings) if siblings else "(none)"
480
+ body += (
481
+ f"Files currently in {file_path.parent.name}/: "
482
+ f"{sibling_str}. Move on — write a DIFFERENT file "
483
+ f"from your plan, or run `bash` with `python3 -m "
484
+ f"{file_path.parent.name} --help` to verify."
485
+ )
486
+ # Surface missing imports so the model knows which file
487
+ # to write next instead of re-looping.
488
+ if file_path.suffix == ".py":
489
+ try:
490
+ import ast as _ast
491
+ _tree = _ast.parse(args.content)
492
+ missing = _check_missing_sibling_imports(
493
+ _tree, file_path
494
+ )
495
+ if missing:
496
+ body += (
497
+ f" This file imports modules that don't "
498
+ f"exist yet: {sorted(missing)}. "
499
+ f"Write those files next."
494
500
  )
495
- if missing:
496
- body += (
497
- f" This file imports modules that don't "
498
- f"exist yet: {sorted(missing)}. "
499
- f"Write those files next."
500
- )
501
- except Exception:
502
- pass
503
- except Exception:
504
- body += "Move to the NEXT file in your plan."
505
- else:
501
+ except Exception:
502
+ pass
503
+ except Exception:
506
504
  body += "Move to the NEXT file in your plan."
507
505
  msg = f"<system-reminder>\n{body}\n</system-reminder>"
508
506
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "drydock-cli"
3
- version = "2.7.40"
3
+ version = "2.7.41"
4
4
  description = "Local-first CLI coding agent — tested with Gemma 4 26B via vLLM"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -57,3 +57,20 @@ async def test_distinct_commands_no_breaker(bash, tmp_path):
57
57
  for i in range(6):
58
58
  result = await collect_result(bash.run(BashArgs(command=f"echo cmd_{i}")))
59
59
  assert "LOOP-BREAKER" not in result.stdout
60
+
61
+
62
+ @pytest.mark.asyncio
63
+ async def test_sed_i_escape_loop_triggers_breaker(bash, tmp_path):
64
+ """sed -i with exact same command fires the loop-breaker (harness:bash:escape_loop).
65
+
66
+ When the sed pattern is malformed (e.g. escape mismatch), sed exits 0 but
67
+ makes no change. The model retries the same command indefinitely. The loop-
68
+ breaker must fire because sed -i is no longer exempt from the repetition check.
69
+ """
70
+ target = tmp_path / "demo.py"
71
+ target.write_text('print("n")\n')
72
+ # Exact same sed -i command repeated 5 times (same escaping mistake each time)
73
+ cmd = f"sed -i 's/print(\"n/print(\"\\\\n/g' {target}"
74
+ for _ in range(5):
75
+ result = await collect_result(bash.run(BashArgs(command=cmd)))
76
+ assert "LOOP-BREAKER" in result.stdout
@@ -74,3 +74,27 @@ async def test_non_heredoc_command_unaffected(bash):
74
74
  cmd = "true"
75
75
  result = await collect_result(bash.run(BashArgs(command=cmd)))
76
76
  assert "File written" not in result.stdout
77
+
78
+
79
+ @pytest.mark.asyncio
80
+ async def test_heredoc_loop_breaker_non_eof_delimiter(bash, tmp_path):
81
+ """Loop-breaker targets heredoc message for non-EOF delimiters (CONTENT, PYTHON, etc).
82
+
83
+ Before fix: regex only matched 'EOF'; non-EOF delimiters fell through to the
84
+ generic 'EDIT SOURCE CODE' message, which confused the model.
85
+ After fix: any alpha delimiter triggers the targeted heredoc hint.
86
+ """
87
+ target = tmp_path / "plugin.py"
88
+ cmd = f"cat <<CONTENT > {target}\nprint('hello')\nCONTENT"
89
+
90
+ # Run 3 times to trigger the hash-based loop breaker
91
+ for _ in range(3):
92
+ result = await collect_result(bash.run(BashArgs(command=cmd)))
93
+
94
+ # The 3rd run must produce the heredoc-targeted notice, not the generic one
95
+ assert "cat command" in result.stdout or "re-run this cat" in result.stdout, (
96
+ "Expected heredoc-targeted loop notice, got: " + result.stdout[:200]
97
+ )
98
+ assert "EDIT SOURCE CODE" not in result.stdout, (
99
+ "Got generic loop notice instead of heredoc-targeted one"
100
+ )
@@ -3,6 +3,36 @@
3
3
  Autonomous Claude Code review ticks while the user is away. Each tick appended
4
4
  chronologically. Cron-driven every 30 min from `/data3/drydock/scripts/autonomous_review.sh`.
5
5
 
6
+ ## 2026-05-05 05:15 UTC tick
7
+ - Stress: 287/1658 (PID 2755890 alive, 10h57m elapsed); SKIP rate 16% (47/287), clustering after RECYCLE-TUI events (new TUI not ready in time); write rate 36% (75/204 non-skip) vs 44% old run at same range — modest regression, not clearly a bug
8
+ - vLLM 400s: 0; gemma4 Docker healthy; llm_balancer healthy on :8001
9
+ - GH issues: 0 open
10
+ - Dispatch queue: harness=33741 (recent active: thinking_stall=16x, loop:bash_generic=4x); retrieval=74 (0 newly actionable — all already ingested)
11
+ - Action this tick: no fix committed — both active dispatch patterns addressed by commits within last 24h (16ed417 thinking_stall fallback, f717435 heredoc loop-breaker, ee8936e bash sed-i). Investigated write rate regression (44%→36%): not conclusive as a bug — early prompts are single-function utility requests that the model often answers without writing files. Investigated SKIP clusters: caused by TUI startup lag after RECYCLE-TUI; would require harness-side timing changes (prohibited by CLAUDE.md). System healthy, no action needed. retrieval-drain: 0 new projects.
12
+
13
+ ## 2026-05-05 02:10 UTC tick
14
+ - Stress: 213/1658 (PID 2755890 alive, 8h27m elapsed); 43 SKIPs (20%); write rate 29% (43/147 non-skip) vs 53% historical for same prompt window — degraded due to thinking_stall not yet in installed version
15
+ - vLLM 400s: 0; gemma4 Docker healthy (up 10 days); llm_balancer PID 2462362 on :8001 healthy (1 model); admiral_probe PID 4075121 alive since Apr 27 (worker restarts every 7-10 min are normal per bootstrap log)
16
+ - GH issues: 0 open
17
+ - Dispatch queue: harness=32275 (last 6h: thinking_stall=2921, search_replace:not_found_loop=288, bash_generic=256, heredoc_loop=36, hallucinated_name=36, write_file:dedup=36); retrieval=74 (0 newly actionable — all already ingested)
18
+ - Action this tick: no fix committed — all active patterns addressed by unreleased commits (16ed417 thinking_stall fallback, ee8936e bash sed-i escape loop); those are 2 commits ahead of v2.7.40 and ship at next auto-release (~05 UTC). High SKIP rate (20%) directly caused by thinking_stall fix not yet installed. Investigated admiral restarts: not a crash — internal AdmiralWorker thread, main process stable. retrieval-drain: 0 new projects.
19
+
20
+ ## 2026-05-05 00:30 UTC tick
21
+ - Stress: 148/1658 (PID 2755890 alive, 6h57m elapsed; previous run completed ~1640/1658 at 17:00 UTC before babysitter relaunched fresh run at 18:00 UTC)
22
+ - Write rate: 32% (last 92 prompts); low but consistent with prior ticks on early prompts — simple utility tasks in stress list
23
+ - vLLM 400s: 0; gemma4 Docker healthy (up 10 days); llm_balancer healthy on :8001
24
+ - GH issues: 0 open
25
+ - Dispatch queue: harness=31388 total (recent 500: thinking_stall=415, search_replace:not_found_loop=40, bash_generic=30, hallucinated_name=5, bash:heredoc_loop=5, write_file:dedup=5); retrieval=74 (0 actionable — all already ingested)
26
+ - Action this tick: no fix committed — thinking_stall (415 fires, mostly empty_after_tool:ralph_repo_index) is already handled by stall nudge + retrieval hallucination redirect in format.py; not_found_loop addressed by 444e4a5; bash_generic by 6587ce5; all patterns have prior-commit coverage. retrieval-drain: 0 new projects. System healthy.
27
+
28
+ ## 2026-05-04 23:30 UTC tick
29
+ - Stress: 123/1658 (PID 2755890 alive, 5h57m elapsed; new run log /tmp/stress_2000_1777915991.log; 32 SKIPs / 123 done)
30
+ - Write rate: 36% (last 74 prompts); 41 write-bearing / 90 attempted — comparable to prior ticks; 0-write sessions are correctly the model running already-existing plugins, not a regression
31
+ - vLLM 400s: 0; llm_balancer PID 2462362 on :8001 healthy; gemma4 Docker healthy
32
+ - GH issues: 0 open
33
+ - Dispatch queue: harness=30,800 total (recent 200: thinking_stall=166, search_replace:not_found_loop=16, bash_generic=12, hallucinated_name=2, write_file:dedup=2); retrieval=74 (all 74 already ingested — consume_retrieval_queue returned 0 actionable)
34
+ - Action this tick: no fix committed — dispatch patterns for not_found_loop and bash_generic addressed in prior commits (444e4a5, 6587ce5); thinking_stall (166 fires) confirmed already handled by inline 3-retry stall mechanism; stall debug log shows model is actively making tool calls (not truly stalling); session analysis shows 0-write sessions are model correctly running existing plugins; retrieval-drain: 0 new projects. System healthy.
35
+
6
36
  ## 2026-05-04 22:00 UTC tick
7
37
  - Stress: 90/1658 (PID 2755890 alive, TUI active PID 2790960; 20 SKIPs / 70 done in run so far)
8
38
  - Write rate: 35% (last 57 prompts with write data; low expected — current prompts are simple utility functions: pad, wrap, indent, hash)
@@ -1730,6 +1760,15 @@ restarted, cron self-match bug fixed in this same session).
1730
1760
  - retrieval-drain: 0 projects ingested (all current within 7-day window)
1731
1761
  - Action this tick: no fix committed — all dispatch patterns addressed; system healthy; elevated skip rate is a harness-timing artifact of long sessions (dict_set_nested: 45 msgs/14 writes), not a drydock bug. Monitoring.
1732
1762
 
1763
+ ## 2026-05-04 23:04 UTC tick
1764
+ - Stress: 116/1658 (PID 2755890, 5h30m elapsed); skip rate ~25% (29 SKIPs in 116 prompts); write rate 37% last 70 prompts
1765
+ - vLLM 400s: 0; llm_balancer healthy (PID 2462362, :8001); gemma4 Docker healthy
1766
+ - Admiral last 30 min: skip-cluster 12/33 at 22:42 UTC + retry-spike 103% at 22:35 UTC; 14 TUI recycles since run start; latest intervention at 23:00 UTC (thinking_stall/empty_after_tool:bash on dict_to_list). All interventions handled by existing inline retry logic.
1767
+ - GH issues: 0 open
1768
+ - Dispatch queue: harness=30,508 (thinking_stall=12,933 top; loop:bash_generic=9,698; tool:hallucinated_name=3,981; search_replace:not_found_loop=2,840 — all addressed in recent commits); retrieval=74 (0 new ingestions — all within 7-day window); steering=0
1769
+ - retrieval-drain: 0 projects ingested (all current)
1770
+ - Action this tick: no fix committed — all dispatch patterns verified against source (thinking_stall: MAX_STALL_RETRIES=3 inline retry at agent_loop.py:971; hallucinated_name: _IGNORE_TOOLS in llm/format.py:350 includes ralph_repo_index; search_replace:not_found_loop: file-head embed on first failure). Session showed legitimate plugin builds (toml_dump, ini_parse). Elevated skip rate is harness-timing vs. long model sessions (45+ msgs/14 writes), not a new drydock bug.
1771
+
1733
1772
  ## 2026-05-04 22:30 UTC tick
1734
1773
  - Stress: 96/1658 new run (PID 2755890, 4h27m elapsed); previous run PID 2219727 completed 1442/1656 — babysitter auto-launched new run at 18:00 UTC
1735
1774
  - Write rate: 32% (last 50 prompts — low, run just started; previous run peaked at 74%)
@@ -1738,3 +1777,66 @@ restarted, cron self-match bug fixed in this same session).
1738
1777
  - Dispatch queue: harness=29926 (dominated by thinking_stall=12459, loop:bash_generic=9656, tool:hallucinated_name=3975 — all addressed); retrieval=74 (0 new ingestions); steering=0
1739
1778
  - Admiral alerts: raw-markdown-leakage 28% at 20:50 UTC + retry-spike 53-67% at 20:58/21:32 UTC — TUI input layer choking on prompt acceptance; 18 recycles in 96 prompts (25% skip rate vs 12% in previous completed run). Admiral self-recovered via TUI recycles. No new actionable drydock bug found; all dispatch patterns have existing fixes. Commit 5d6463e (messages.py regex + gemma4.md prompt additions) shipped this tick via auto_release v2.7.39.
1740
1779
  - Action this tick: no fix committed — all queued patterns already addressed; monitoring elevated skip rate
1780
+
1781
+ ## 2026-05-05 00:05 UTC tick
1782
+ - Stress: 143/1658 (PID 2755890, 6h30m elapsed, new run started ~18:33 UTC May 4); skip rate 22% (32 SKIPs in 143 prompts); write rate 32% last 91 prompts
1783
+ - vLLM 400s: 0; llm_balancer healthy (PID 2462362, :8001, up 33h); gemma4 Docker healthy
1784
+ - GH issues: 0 open
1785
+ - Dispatch queue: harness=31094 (thinking_stall=13417 top; loop:bash_generic=9734; tool:hallucinated_name=3987; search_replace:not_found_loop=2888; bash:escape_loop=170); retrieval=74 (0 new ingestions — all within 7-day window); steering=0
1786
+ - retrieval-drain: 0 projects ingested (all current within 7-day window)
1787
+ - Action this tick: committed fix ee8936e — sed -i was excluded from the exact-command repetition loop-breaker (_is_write_cmd regex) so when a sed pattern mismatch caused exit-0 no-op, the model looped indefinitely; removing sed -i from the exemption means the 5th identical sed -i run now returns LOOP-BREAKER (addresses pattern harness:bash:escape_loop, 170 fires). 5 regression tests pass. auto_release will ship at 06:00 UTC.
1788
+
1789
+ ## 2026-05-05 01:30 UTC tick
1790
+ - Stress: 680/1658 (41%), PID 2755890, running 7h27m
1791
+ - Write rate: 32% last 100 prompts (API REST/GraphQL sequence naturally 0-write; variance normal)
1792
+ - Admiral last 30 min: 5 fires (empty_after_tool events)
1793
+ - vLLM 400s: 0
1794
+ - GH issues: 0 open
1795
+ - Dispatch queue: harness=31679 total (2939 in last 6h), retrieval=0 actionable, steering=n/a
1796
+ - Retrieval drain: 0 projects ingested (all already ingested recently)
1797
+ - Action this tick: committed fix(agent_loop): emit fallback text when stall retries exhausted (addresses pattern harness:thinking_stall). Stall debug log showed 17,895 exhausted-retry cases vs 18,539 retry #1 attempts — the #1 dispatch queue pattern. Fix replaces silent empty message with visible "[Drydock: model returned empty response after 3 retries]" text so TUI ends the turn cleanly instead of freezing. Auto-release will ship at next 0/6/12/18 UTC tick.
1798
+
1799
+ ## 2026-05-05 01:33 UTC tick
1800
+ - Stress: 181/1658 (new run after prior run reached ~680+ and reset; PID 2755890, 7h57m total uptime); write rate 32% last 50 prompts (early utility-task prompts are naturally low-write); 36+ consecutive SKIP cluster at prompt 143-181 during ip/network prompt section, harness self-recovered via FORCE-RESET
1801
+ - vLLM 400s: 0; llm_balancer PID 2462362 healthy; gemma4 Docker healthy
1802
+ - GH issues: 0 open
1803
+ - Dispatch queue: harness=31974 total (thinking_stall=14140, bash_generic=9792, tool:hallucinated_name=3996, search_replace:not_found_loop=2960, bash:heredoc_loop=691, bash:escape_loop=170); retrieval=74 (0 actionable, all within 7-day re-ingest window)
1804
+ - retrieval-drain: 0 projects ingested (all current)
1805
+ - Recent commits in last 24h: 16ed417 (thinking_stall fallback text — largest queue pattern), ee8936e (sed -i escape loop), 444a5 (search_replace not_found embed), 6587ce5 (bash_generic loop-breaker) — all top dispatch patterns now have source-level fixes
1806
+ - Action this tick: no fix committed — all major dispatch patterns addressed by commits in last 24h; harness progressing normally; 0 vLLM 400s; no new hallucinated tool names beyond existing _IGNORE_TOOLS list
1807
+
1808
+ ## 2026-05-05 02:30 UTC tick
1809
+ - Stress: 229/1658 (PID 2755890, ~9h elapsed, run started ~17:33 UTC May 4); SKIP cluster at 226-227 followed by FORCE-RESET; recovered at 228; currently processing prompt 229
1810
+ - Write rate: 33% last 100 prompts (expected — early-run utility-function prompts rarely need file writes)
1811
+ - Admiral last 30 min: transient SKIP cluster + FORCE-RESET at prompts 226-227 (TUI input timing); harness self-recovered; no active interventions
1812
+ - vLLM 400s: 0; llm_balancer PID 2462362 healthy on :8001; gemma4 Docker healthy
1813
+ - GH issues: 0 open
1814
+ - Dispatch queue: harness=32,578 (thinking_stall=14,630, loop:bash_generic=9,840, tool:hallucinated_name=4,002, search_replace:not_found_loop=3,008, bash:heredoc_loop=697, bash:escape_loop=170, write_file:dedup=160 — all addressed by existing handlers); retrieval=74 (0 actionable — all within 7-day re-ingest window)
1815
+ - 2 commits ahead of v2.7.40 (16ed417: thinking_stall fallback text; ee8936e: sed -i escape loop fix) — will auto-release as v2.7.41 at 06:00 UTC
1816
+ - retrieval-drain: 0 projects ingested (all current)
1817
+ - Action this tick: no fix committed — all dispatch patterns verified against source; system healthy and progressing normally
1818
+
1819
+ ## 2026-05-05 03:04 UTC tick
1820
+ - Stress: 241/1658 in new run (log 1777915991, PID 2755890, 9h27m elapsed). Old PID 3713698 dead; babysitter respawned a fresh run. Write rate: 73% last 20 prompts. Skip rate: 17% (41/241).
1821
+ - vLLM 400s: 0
1822
+ - GH issues: 0 open
1823
+ - Dispatch queue: harness=32880 entries (top patterns: thinking_stall=162, bash_generic=16, search_replace:not_found_loop=16 — all addressed by commits in last 24h); retrieval=74 entries (all already ingested, 0 actionable); steering=none
1824
+ - Action this tick: committed fix(write_file): show dir listing on first dedup, not just 2nd+ (addresses pattern harness:write_file:dedup_attempted). On first identical-content write the model now gets the full sibling directory listing immediately instead of after a second loop. harness:tool:hallucinated_name (ralph_repo_index) confirmed already handled via _IGNORE_TOOLS in format.py — not actionable. Retrieval drain: 0 projects ingested (all up to date).
1825
+
1826
+ ## 2026-05-05 03:34 UTC tick
1827
+ - Stress: 680/1658 (41% done, ~10h remaining at current pace)
1828
+ - Write rate: 32% last 100 prompts (lower due to short API: gRPC/WebSocket/JSON-RPC prompts returning text answers, not code)
1829
+ - Admiral last 30 min: source=opus sessions active; interventions for empty_after_tool and search_replace retry
1830
+ - vLLM 400s: 0
1831
+ - GH issues: 0 open
1832
+ - Dispatch queue: harness=33175 entries (top recent: thinking_stall=400/500, bash_generic=42/500, search_replace:not_found_loop=40/500 — all addressed by commits in last 24h); retrieval=74 (0 actionable, all already ingested)
1833
+ - Action this tick: no new bugs found. All top dispatch patterns addressed by recent commits (16ed417 thinking_stall, 444e4a5 search_replace:not_found_loop, 6587ce5 bash_generic, 74a5ae3 write_file dedup). Consecutive SKIP run at 677-679 self-recovered at 680 — transient busy-TUI after 21-msg/7-write prompt 676. bash:loop:bash_generic only fires for "ls -lS | head -n 20" (28x), addressed by existing loop-breaker at 5 runs. No actionable new issues — healthy tick.
1834
+
1835
+ ## 2026-05-05 04:30 UTC tick
1836
+ - Stress: 273/1658 (fresh run, PID 2755890, log /tmp/stress_2000_1777915991.log)
1837
+ - Write rate: 39% last 100 prompts (run is new; ~50 early SKIPs from startup turbulence, tapering off by prompt ~250)
1838
+ - Admiral last 30 min: n/a (not checked directly)
1839
+ - vLLM 400s: 0
1840
+ - GH issues: 0 open
1841
+ - Dispatch queue: harness=33461, retrieval=74 (all ingested recently, nothing new), steering=not present
1842
+ - Action this tick: committed fix for harness:bash:heredoc_loop — broadened heredoc loop-breaker regex from EOF-only to any alpha delimiter (CONTENT, PYTHON, HEREDOC, etc.); 6 tests pass. retrieval-drain: 0 projects ingested (all already current).
@@ -326,7 +326,7 @@ wheels = [
326
326
 
327
327
  [[package]]
328
328
  name = "drydock-cli"
329
- version = "2.7.39"
329
+ version = "2.7.40"
330
330
  source = { editable = "." }
331
331
  dependencies = [
332
332
  { name = "agent-client-protocol" },
@@ -1 +0,0 @@
1
- 2806441
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes