drydock-cli 2.8.48__tar.gz → 2.8.50__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 (829) hide show
  1. drydock_cli-2.8.50/.auto_release.lock +1 -0
  2. drydock_cli-2.8.50/.drydock/graphrag.sqlite +0 -0
  3. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/CLAUDE.md +45 -41
  4. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/PKG-INFO +1 -1
  5. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/agent_loop.py +36 -11
  6. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/retrieve.py +9 -0
  7. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/pyproject.toml +1 -1
  8. drydock_cli-2.8.50/scripts/_archived_eval_harness/README.md +38 -0
  9. drydock_cli-2.8.48/scripts/hle_eval.py → drydock_cli-2.8.50/scripts/_archived_eval_harness/hle_eval.py.deprecated +1 -1
  10. drydock_cli-2.8.50/tests/backend/__init__.py +0 -0
  11. drydock_cli-2.8.50/tests/cli/textual_ui/__init__.py +0 -0
  12. drydock_cli-2.8.50/tests/mock/__init__.py +0 -0
  13. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/trip_log.md +248 -0
  14. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/uv.lock +15 -1
  15. drydock_cli-2.8.48/.auto_release.lock +0 -1
  16. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.github/CODEOWNERS +0 -0
  17. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
  18. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  19. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  20. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.github/workflows/build-and-upload.yml +0 -0
  21. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.github/workflows/ci.yml +0 -0
  22. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.github/workflows/issue-labeler.yml +0 -0
  23. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.github/workflows/release.yml +0 -0
  24. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.gitignore +0 -0
  25. /drydock_cli-2.8.48/.pause_stress → /drydock_cli-2.8.50/.pause_hle_babysitter +0 -0
  26. /drydock_cli-2.8.48/drydock/acp/__init__.py → /drydock_cli-2.8.50/.pause_hle_burndown +0 -0
  27. /drydock_cli-2.8.48/drydock/acp/tools/__init__.py → /drydock_cli-2.8.50/.pause_hle_burndown_keepalive +0 -0
  28. /drydock_cli-2.8.48/drydock/cli/__init__.py → /drydock_cli-2.8.50/.pause_stress +0 -0
  29. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.pre-commit-config.yaml +0 -0
  30. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.python-version +0 -0
  31. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.typos.toml +0 -0
  32. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.vscode/extensions.json +0 -0
  33. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.vscode/launch.json +0 -0
  34. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/.vscode/settings.json +0 -0
  35. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/AGENTS.md +0 -0
  36. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/Admiral.md +0 -0
  37. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/CHANGELOG.md +0 -0
  38. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/CONTRIBUTING.md +0 -0
  39. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/DEEP_NOIR_PRD.md +0 -0
  40. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/DEPLOYMENT.md +0 -0
  41. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/DRYDOCK.md +0 -0
  42. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/HLE_PRD.md +0 -0
  43. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/JETSON_BENCH.md +0 -0
  44. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/LICENSE +0 -0
  45. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/MODEL_SHORTCOMINGS.md +0 -0
  46. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/NOTICE +0 -0
  47. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/README.md +0 -0
  48. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/SOVEREIGN_PRD.md +0 -0
  49. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/TRIAGE_v1.md +0 -0
  50. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/action.yml +0 -0
  51. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/README.md +0 -0
  52. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results1.tsv +0 -0
  53. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results13.tsv +0 -0
  54. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results14.tsv +0 -0
  55. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results15.tsv +0 -0
  56. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results16.tsv +0 -0
  57. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results17.tsv +0 -0
  58. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results18.tsv +0 -0
  59. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results19.tsv +0 -0
  60. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results2.tsv +0 -0
  61. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results20.tsv +0 -0
  62. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results3.tsv +0 -0
  63. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results4.tsv +0 -0
  64. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results5.tsv +0 -0
  65. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results6.tsv +0 -0
  66. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results7.tsv +0 -0
  67. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results8.tsv +0 -0
  68. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results9.tsv +0 -0
  69. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/baseline_history/results_evolved_v1.tsv +0 -0
  70. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/distribution/zed/LICENSE +0 -0
  71. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/distribution/zed/extension.toml +0 -0
  72. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/distribution/zed/icons/mistral_vibe.svg +0 -0
  73. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/docs/README.md +0 -0
  74. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/docs/acp-setup.md +0 -0
  75. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/docs/archive/BASELINE_412.md +0 -0
  76. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/docs/archive/Drydock_rebrand.md +0 -0
  77. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/docs/archive/OVERNIGHT_PROGRESS.md +0 -0
  78. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/docs/archive/OVERNIGHT_REPORT_2026_04_13.md +0 -0
  79. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/docs/archive/PERF_SWEEP_PLAN.md +0 -0
  80. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/docs/archive/PRD.md +0 -0
  81. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/docs/archive/drydock_terms.md +0 -0
  82. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/docs/archive/resume.md +0 -0
  83. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/docs/proxy-setup.md +0 -0
  84. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/__init__.py +0 -0
  85. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/__main__.py +0 -0
  86. {drydock_cli-2.8.48/drydock/cli/autocompletion → drydock_cli-2.8.50/drydock/acp}/__init__.py +0 -0
  87. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/acp/acp_agent_loop.py +0 -0
  88. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/acp/acp_logger.py +0 -0
  89. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/acp/entrypoint.py +0 -0
  90. {drydock_cli-2.8.48/drydock/cli/textual_ui → drydock_cli-2.8.50/drydock/acp/tools}/__init__.py +0 -0
  91. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/acp/tools/base.py +0 -0
  92. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/acp/tools/builtins/bash.py +0 -0
  93. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/acp/tools/builtins/read_file.py +0 -0
  94. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/acp/tools/builtins/search_replace.py +0 -0
  95. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/acp/tools/builtins/todo.py +0 -0
  96. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/acp/tools/builtins/write_file.py +0 -0
  97. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/acp/tools/session_update.py +0 -0
  98. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/acp/utils.py +0 -0
  99. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/__init__.py +0 -0
  100. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/detectors.py +0 -0
  101. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/detectors_proposed.py +0 -0
  102. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/history.py +0 -0
  103. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/interventions.py +0 -0
  104. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/llm_analyzer.py +0 -0
  105. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/metrics.py +0 -0
  106. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/opus_escalator.py +0 -0
  107. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/persistence.py +0 -0
  108. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/policy.py +0 -0
  109. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/proposer.py +0 -0
  110. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/stager.py +0 -0
  111. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/task_classifier.py +0 -0
  112. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/tuning.py +0 -0
  113. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/validator.py +0 -0
  114. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/admiral/worker.py +0 -0
  115. {drydock_cli-2.8.48/drydock/cli/textual_ui/notifications/adapters → drydock_cli-2.8.50/drydock/cli}/__init__.py +0 -0
  116. {drydock_cli-2.8.48/drydock/cli/textual_ui/notifications/ports → drydock_cli-2.8.50/drydock/cli/autocompletion}/__init__.py +0 -0
  117. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/autocompletion/base.py +0 -0
  118. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/autocompletion/path_completion.py +0 -0
  119. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/autocompletion/slash_command.py +0 -0
  120. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/cli.py +0 -0
  121. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/clipboard.py +0 -0
  122. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/commands.py +0 -0
  123. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/entrypoint.py +0 -0
  124. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/fix_windows_path.py +0 -0
  125. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/history_manager.py +0 -0
  126. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
  127. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
  128. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
  129. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/terminal_setup.py +0 -0
  130. {drydock_cli-2.8.48/drydock/cli/textual_ui/widgets → drydock_cli-2.8.50/drydock/cli/textual_ui}/__init__.py +0 -0
  131. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
  132. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/app.py +0 -0
  133. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/app.tcss +0 -0
  134. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/external_editor.py +0 -0
  135. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
  136. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
  137. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
  138. {drydock_cli-2.8.48/drydock/core/autocompletion → drydock_cli-2.8.50/drydock/cli/textual_ui/notifications/adapters}/__init__.py +0 -0
  139. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
  140. {drydock_cli-2.8.48/drydock/core/llm → drydock_cli-2.8.50/drydock/cli/textual_ui/notifications/ports}/__init__.py +0 -0
  141. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
  142. {drydock_cli-2.8.48/drydock/core/telemetry → drydock_cli-2.8.50/drydock/cli/textual_ui/widgets}/__init__.py +0 -0
  143. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
  144. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
  145. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
  146. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
  147. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
  148. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
  149. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
  150. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
  151. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
  152. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
  153. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/checkpoint_picker.py +0 -0
  154. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/compact.py +0 -0
  155. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
  156. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
  157. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
  158. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/loading.py +0 -0
  159. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/messages.py +0 -0
  160. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
  161. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
  162. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
  163. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
  164. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
  165. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
  166. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
  167. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
  168. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
  169. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/tools.py +0 -0
  170. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
  171. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
  172. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/windowing/history.py +0 -0
  173. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
  174. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/textual_ui/windowing/state.py +0 -0
  175. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/update_notifier/__init__.py +0 -0
  176. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
  177. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
  178. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
  179. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
  180. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
  181. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/update_notifier/update.py +0 -0
  182. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/cli/update_notifier/whats_new.py +0 -0
  183. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/__init__.py +0 -0
  184. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/agents/__init__.py +0 -0
  185. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/agents/manager.py +0 -0
  186. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/agents/models.py +0 -0
  187. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/auth/__init__.py +0 -0
  188. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/auth/crypto.py +0 -0
  189. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/auth/github.py +0 -0
  190. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/auto_solve.py +0 -0
  191. {drydock_cli-2.8.48/drydock/core/tools/builtins/prompts → drydock_cli-2.8.50/drydock/core/autocompletion}/__init__.py +0 -0
  192. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/autocompletion/completers.py +0 -0
  193. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
  194. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
  195. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
  196. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/autocompletion/file_indexer/store.py +0 -0
  197. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
  198. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/autocompletion/fuzzy.py +0 -0
  199. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/autocompletion/path_prompt.py +0 -0
  200. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
  201. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/build_orchestrator.py +0 -0
  202. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/checkpoint.py +0 -0
  203. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/classifier/__init__.py +0 -0
  204. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/classifier/__main__.py +0 -0
  205. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/classifier/classifier.py +0 -0
  206. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/classifier/dispatcher.py +0 -0
  207. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/classifier/rules.py +0 -0
  208. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/classifier/signal.py +0 -0
  209. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/config/__init__.py +0 -0
  210. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/config/_dotenv.py +0 -0
  211. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/config/_settings.py +0 -0
  212. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/config/doctor.py +0 -0
  213. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/config/harness_files/__init__.py +0 -0
  214. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/config/harness_files/_harness_manager.py +0 -0
  215. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/config/harness_files/_paths.py +0 -0
  216. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/config/local_detect.py +0 -0
  217. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/config/migrate.py +0 -0
  218. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/constraint_extract.py +0 -0
  219. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/constraint_hint.py +0 -0
  220. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/consultant.py +0 -0
  221. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/context_recovery.py +0 -0
  222. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/drydock_states.py +0 -0
  223. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/goal.py +0 -0
  224. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/hooks.py +0 -0
  225. {drydock_cli-2.8.48/drydock/skills → drydock_cli-2.8.50/drydock/core/llm}/__init__.py +0 -0
  226. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/llm/backend/anthropic.py +0 -0
  227. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/llm/backend/base.py +0 -0
  228. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/llm/backend/factory.py +0 -0
  229. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/llm/backend/generic.py +0 -0
  230. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/llm/backend/mistral.py +0 -0
  231. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
  232. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/llm/backend/vertex.py +0 -0
  233. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/llm/exceptions.py +0 -0
  234. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/llm/format.py +0 -0
  235. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/llm/message_utils.py +0 -0
  236. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/llm/types.py +0 -0
  237. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/logger.py +0 -0
  238. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/middleware.py +0 -0
  239. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/output_formatters.py +0 -0
  240. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/paths/__init__.py +0 -0
  241. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/paths/_drydock_home.py +0 -0
  242. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/paths/_local_config_walk.py +0 -0
  243. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/paths/conventions.py +0 -0
  244. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/plan_session.py +0 -0
  245. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/plugins.py +0 -0
  246. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/programmatic.py +0 -0
  247. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/prompts/__init__.py +0 -0
  248. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/prompts/builder.md +0 -0
  249. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/prompts/cli.md +0 -0
  250. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/prompts/compact.md +0 -0
  251. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/prompts/dangerous_directory.md +0 -0
  252. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/prompts/diagnostic.md +0 -0
  253. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/prompts/explore.md +0 -0
  254. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/prompts/gemma4.md +0 -0
  255. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/prompts/planner.md +0 -0
  256. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/prompts/project_context.md +0 -0
  257. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/prompts/tests.md +0 -0
  258. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/proxy_setup.py +0 -0
  259. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/session/agent_memory.py +0 -0
  260. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/session/checkpoints.py +0 -0
  261. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/session/session_loader.py +0 -0
  262. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/session/session_logger.py +0 -0
  263. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/session/session_migration.py +0 -0
  264. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/session/state_file.py +0 -0
  265. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/session_checker.py +0 -0
  266. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/skills/__init__.py +0 -0
  267. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/skills/manager.py +0 -0
  268. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/skills/models.py +0 -0
  269. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/skills/parser.py +0 -0
  270. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/slug.py +0 -0
  271. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/steering_hook.py +0 -0
  272. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/system_prompt.py +0 -0
  273. {drydock_cli-2.8.48/tests/backend → drydock_cli-2.8.50/drydock/core/telemetry}/__init__.py +0 -0
  274. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/telemetry/send.py +0 -0
  275. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/teleport/errors.py +0 -0
  276. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/teleport/git.py +0 -0
  277. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/teleport/nuage.py +0 -0
  278. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/teleport/teleport.py +0 -0
  279. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/teleport/types.py +0 -0
  280. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/base.py +0 -0
  281. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/_task_manager.py +0 -0
  282. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/algebra_tool.py +0 -0
  283. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/ask_user_question.py +0 -0
  284. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/bash.py +0 -0
  285. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/chemistry_tool.py +0 -0
  286. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/count_tool.py +0 -0
  287. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/cron.py +0 -0
  288. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
  289. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/glob_tool.py +0 -0
  290. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/grep.py +0 -0
  291. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/invoke_skill.py +0 -0
  292. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/linear_algebra_tool.py +0 -0
  293. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/logic_tool.py +0 -0
  294. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/lsp.py +0 -0
  295. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/math_tool.py +0 -0
  296. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/mcp_resources.py +0 -0
  297. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/memory_tool.py +0 -0
  298. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/notebook_edit.py +0 -0
  299. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/number_theory_tool.py +0 -0
  300. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/powershell.py +0 -0
  301. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prolog_tool.py +0 -0
  302. {drydock_cli-2.8.48/tests/cli/textual_ui → drydock_cli-2.8.50/drydock/core/tools/builtins/prompts}/__init__.py +0 -0
  303. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
  304. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/bash.md +0 -0
  305. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/cron.md +0 -0
  306. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/glob.md +0 -0
  307. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/grep.md +0 -0
  308. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
  309. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
  310. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
  311. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
  312. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
  313. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
  314. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/retrieve.md +0 -0
  315. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
  316. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
  317. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/task.md +0 -0
  318. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
  319. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/todo.md +0 -0
  320. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
  321. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
  322. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
  323. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
  324. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
  325. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/read_file.py +0 -0
  326. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/search_replace.py +0 -0
  327. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/set_tool.py +0 -0
  328. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/solve_tool.py +0 -0
  329. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/stats_tool.py +0 -0
  330. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/task.py +0 -0
  331. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/todo.py +0 -0
  332. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/tool_search.py +0 -0
  333. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/units_tool.py +0 -0
  334. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/verify_tool.py +0 -0
  335. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/webfetch.py +0 -0
  336. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/websearch.py +0 -0
  337. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/worktree.py +0 -0
  338. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/builtins/write_file.py +0 -0
  339. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/injection_guard.py +0 -0
  340. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/manager.py +0 -0
  341. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/mcp/__init__.py +0 -0
  342. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/mcp/registry.py +0 -0
  343. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/mcp/tools.py +0 -0
  344. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/mcp_sampling.py +0 -0
  345. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/ui.py +0 -0
  346. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/tools/utils.py +0 -0
  347. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/trusted_folders.py +0 -0
  348. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/types.py +0 -0
  349. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/core/utils.py +0 -0
  350. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/curiosity/__init__.py +0 -0
  351. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/curiosity/__main__.py +0 -0
  352. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/curiosity/gap_detector.py +0 -0
  353. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/curiosity/item.py +0 -0
  354. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/curiosity/queue.py +0 -0
  355. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/curiosity/surprise.py +0 -0
  356. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/graphrag/__init__.py +0 -0
  357. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/graphrag/__main__.py +0 -0
  358. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/graphrag/code_indexer.py +0 -0
  359. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/graphrag/retriever.py +0 -0
  360. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/graphrag/storage.py +0 -0
  361. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/graphrag/text_indexer.py +0 -0
  362. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/setup/onboarding/__init__.py +0 -0
  363. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/setup/onboarding/base.py +0 -0
  364. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/setup/onboarding/onboarding.tcss +0 -0
  365. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/setup/onboarding/screens/__init__.py +0 -0
  366. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/setup/onboarding/screens/api_key.py +0 -0
  367. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/setup/onboarding/screens/choice.py +0 -0
  368. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/setup/onboarding/screens/local_model.py +0 -0
  369. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/setup/onboarding/screens/welcome.py +0 -0
  370. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
  371. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
  372. {drydock_cli-2.8.48/tests/mock → drydock_cli-2.8.50/drydock/skills}/__init__.py +0 -0
  373. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/api-design/SKILL.md +0 -0
  374. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/audit-tests/SKILL.md +0 -0
  375. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/batch/SKILL.md +0 -0
  376. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/commit-code/SKILL.md +0 -0
  377. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/constraint-reasoning/SKILL.md +0 -0
  378. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/context-summary/SKILL.md +0 -0
  379. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/create-presentation/SKILL.md +0 -0
  380. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/deep-research/SKILL.md +0 -0
  381. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/deploy/SKILL.md +0 -0
  382. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/diff-review/SKILL.md +0 -0
  383. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/doc-gen/SKILL.md +0 -0
  384. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/explain-code/SKILL.md +0 -0
  385. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/explore-code/SKILL.md +0 -0
  386. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/fix-issue/SKILL.md +0 -0
  387. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/git-ops/SKILL.md +0 -0
  388. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/init-project/SKILL.md +0 -0
  389. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/investigate/SKILL.md +0 -0
  390. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/logic/SKILL.md +0 -0
  391. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/logic/assets/cheat_sheet_full.txt +0 -0
  392. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/loop/SKILL.md +0 -0
  393. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/migrate/SKILL.md +0 -0
  394. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/perf-analyze/SKILL.md +0 -0
  395. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/plan-impl/SKILL.md +0 -0
  396. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/pr-review/SKILL.md +0 -0
  397. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/prove/SKILL.md +0 -0
  398. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/refactor/SKILL.md +0 -0
  399. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/regex-help/SKILL.md +0 -0
  400. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/review/SKILL.md +0 -0
  401. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/security-review/SKILL.md +0 -0
  402. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/ship/SKILL.md +0 -0
  403. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/simplify/SKILL.md +0 -0
  404. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/strong-tests/SKILL.md +0 -0
  405. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/skills/test-verify/SKILL.md +0 -0
  406. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/__init__.py +0 -0
  407. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/__main__.py +0 -0
  408. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/applier.py +0 -0
  409. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/config.py +0 -0
  410. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/registry.py +0 -0
  411. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/sandbox.py +0 -0
  412. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/sidecar/__init__.py +0 -0
  413. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/sidecar/header_parser.py +0 -0
  414. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/sidecar/hooks.py +0 -0
  415. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/sidecar/loader.py +0 -0
  416. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/sidecar/server.py +0 -0
  417. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/train/__init__.py +0 -0
  418. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/train/capture.py +0 -0
  419. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/train/compute_vector.py +0 -0
  420. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/train/extract_pairs.py +0 -0
  421. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/train/scan_sessions.py +0 -0
  422. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/steering/vectors.py +0 -0
  423. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock/whats_new.md +0 -0
  424. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/drydock-acp.spec +0 -0
  425. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/flake.lock +0 -0
  426. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/flake.nix +0 -0
  427. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/outlook_draft_assistant.tar.gz +0 -0
  428. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/README.md +0 -0
  429. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/config_base.toml +0 -0
  430. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/config_best.toml +0 -0
  431. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/deep_noir/pairs/empty_after_bash.jsonl +0 -0
  432. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/deep_noir/pairs/scan_empty_after_bash.jsonl +0 -0
  433. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/domain_spec.md +0 -0
  434. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/experimenter.py +0 -0
  435. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/kernel.py +0 -0
  436. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/mini_prd.md +0 -0
  437. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/mini_prompts.txt +0 -0
  438. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/proposer.py +0 -0
  439. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/research/results.tsv +0 -0
  440. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/resume.md +0 -0
  441. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/README.md +0 -0
  442. /drydock_cli-2.8.48/scripts/auto_solve_audit.py → /drydock_cli-2.8.50/scripts/_archived_eval_harness/auto_solve_audit.py.deprecated +0 -0
  443. /drydock_cli-2.8.48/scripts/hle_babysitter.sh → /drydock_cli-2.8.50/scripts/_archived_eval_harness/hle_babysitter.sh.deprecated +0 -0
  444. /drydock_cli-2.8.48/scripts/hle_burndown.sh → /drydock_cli-2.8.50/scripts/_archived_eval_harness/hle_burndown.sh.deprecated +0 -0
  445. /drydock_cli-2.8.48/scripts/hle_burndown_keepalive.sh → /drydock_cli-2.8.50/scripts/_archived_eval_harness/hle_burndown_keepalive.sh.deprecated +0 -0
  446. /drydock_cli-2.8.48/scripts/hle_burndown_status.py → /drydock_cli-2.8.50/scripts/_archived_eval_harness/hle_burndown_status.py.deprecated +0 -0
  447. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/admiral_probe.py +0 -0
  448. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/archive/auto_test_loop.sh +0 -0
  449. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/archive/monitor_test_battery.sh +0 -0
  450. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/archive/overnight_agents_test.sh +0 -0
  451. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/archive/test_bank.sh +0 -0
  452. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/archive/test_full.sh +0 -0
  453. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/archive/test_smoke.sh +0 -0
  454. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/archive/tui_test.py +0 -0
  455. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/audit_sampler.py +0 -0
  456. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/auto_generate_tests.py +0 -0
  457. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/auto_release.sh +0 -0
  458. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/autonomous_review.sh +0 -0
  459. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/autonomous_review_prompt.md +0 -0
  460. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/backfill_hle_curiosity.py +0 -0
  461. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/backup.sh +0 -0
  462. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/bench_inference.py +0 -0
  463. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/bump_version.py +0 -0
  464. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/classify_pulse.sh +0 -0
  465. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/consume_retrieval_queue.py +0 -0
  466. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/curiosity_idle_cycle.sh +0 -0
  467. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/dedupe_dispatch_queues.py +0 -0
  468. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/deploy_to_github.sh +0 -0
  469. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/dispatch_report.py +0 -0
  470. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/drydock_status.sh +0 -0
  471. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/fetch_arxiv_abstracts.py +0 -0
  472. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/gen_2000_prompts.py +0 -0
  473. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/hle_aggregate.py +0 -0
  474. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/hle_eval_seed.jsonl +0 -0
  475. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/llm_balancer.py +0 -0
  476. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/notify_release.py +0 -0
  477. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/perf_baseline_when_idle.sh +0 -0
  478. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/perf_sweep.py +0 -0
  479. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/poll_issues.sh +0 -0
  480. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/publish_to_pypi.sh +0 -0
  481. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/queue_top.py +0 -0
  482. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/ralph_loop.py +0 -0
  483. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/rejudge_hle.py +0 -0
  484. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/research_babysitter.sh +0 -0
  485. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/shakedown.py +0 -0
  486. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/shakedown_interactive.py +0 -0
  487. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/shakedown_suite.sh +0 -0
  488. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/shakedown_variance.sh +0 -0
  489. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/start_steering_sidecar.sh +0 -0
  490. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/stress_babysitter.sh +0 -0
  491. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/stress_prompts_50.txt +0 -0
  492. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/stress_prompts_realuser.txt +0 -0
  493. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/stress_prompts_tool_agent.txt +0 -0
  494. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/stress_prompts_tool_agent_2000.txt +0 -0
  495. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/stress_shakedown.py +0 -0
  496. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/stress_telegram_status.py +0 -0
  497. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/stress_watcher.py +0 -0
  498. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/telegram_bot.py +0 -0
  499. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/tool_usage_report.py +0 -0
  500. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/scripts/vllm_failover.sh +0 -0
  501. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/__init__.py +0 -0
  502. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/conftest.py +0 -0
  503. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_acp.py +0 -0
  504. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_agent_thought.py +0 -0
  505. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_bash.py +0 -0
  506. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_compact_session_updates.py +0 -0
  507. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_content.py +0 -0
  508. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_initialize.py +0 -0
  509. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_list_sessions.py +0 -0
  510. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_load_session.py +0 -0
  511. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_multi_session.py +0 -0
  512. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_new_session.py +0 -0
  513. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_proxy_setup_acp.py +0 -0
  514. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_read_file.py +0 -0
  515. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_search_replace.py +0 -0
  516. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_set_config_option.py +0 -0
  517. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_set_mode.py +0 -0
  518. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_set_model.py +0 -0
  519. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_tool_call_session_update.py +0 -0
  520. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_utils.py +0 -0
  521. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/acp/test_write_file.py +0 -0
  522. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/autocompletion/test_file_indexer.py +0 -0
  523. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/autocompletion/test_fuzzy.py +0 -0
  524. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
  525. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/autocompletion/test_path_completer_recursive.py +0 -0
  526. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/autocompletion/test_path_completion_controller.py +0 -0
  527. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
  528. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/autocompletion/test_slash_command_controller.py +0 -0
  529. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
  530. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/backend/data/__init__.py +0 -0
  531. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/backend/data/fireworks.py +0 -0
  532. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/backend/data/mistral.py +0 -0
  533. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/backend/test_anthropic_adapter.py +0 -0
  534. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/backend/test_backend.py +0 -0
  535. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/backend/test_generic_adapter_sanitize.py +0 -0
  536. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/backend/test_reasoning_adapter.py +0 -0
  537. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
  538. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
  539. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
  540. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
  541. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_bell_notifications.py +0 -0
  542. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_braille_renderer.py +0 -0
  543. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_clipboard.py +0 -0
  544. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_commands.py +0 -0
  545. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_copy_shortcuts.py +0 -0
  546. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_external_editor.py +0 -0
  547. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_no_markup_static.py +0 -0
  548. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_question_app.py +0 -0
  549. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_spinner.py +0 -0
  550. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_switching_mode.py +0 -0
  551. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_ui_clipboard_notifications.py +0 -0
  552. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
  553. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_ui_session_resume.py +0 -0
  554. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/test_ui_skill_dispatch.py +0 -0
  555. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/cli/textual_ui/test_session_picker.py +0 -0
  556. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/conftest.py +0 -0
  557. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_agents.py +0 -0
  558. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_auth_crypto.py +0 -0
  559. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_auth_github.py +0 -0
  560. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_circuit_breaker_count_escalation.py +0 -0
  561. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_circuit_breaker_readonly_threshold.py +0 -0
  562. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_config_load_dotenv.py +0 -0
  563. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_config_paths.py +0 -0
  564. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_config_resolution.py +0 -0
  565. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_file_logging.py +0 -0
  566. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_plan_session.py +0 -0
  567. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_proxy_setup.py +0 -0
  568. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_slug.py +0 -0
  569. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_telemetry_send.py +0 -0
  570. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_teleport_git.py +0 -0
  571. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_teleport_nuage.py +0 -0
  572. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_teleport_service.py +0 -0
  573. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_trusted_folders.py +0 -0
  574. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/core/test_utils.py +0 -0
  575. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/e2e/common.py +0 -0
  576. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/e2e/conftest.py +0 -0
  577. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/e2e/mock_server.py +0 -0
  578. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/e2e/test_cli_tui_onboarding.py +0 -0
  579. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/e2e/test_cli_tui_streaming.py +0 -0
  580. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
  581. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/fixtures/doc_qa_system_prd.md +0 -0
  582. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/mock/mock_backend_factory.py +0 -0
  583. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/mock/mock_entrypoint.py +0 -0
  584. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/mock/utils.py +0 -0
  585. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/onboarding/test_run_onboarding.py +0 -0
  586. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/onboarding/test_ui_onboarding.py +0 -0
  587. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/session/test_session_loader.py +0 -0
  588. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/session/test_session_logger.py +0 -0
  589. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/session/test_session_migration.py +0 -0
  590. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/skills/conftest.py +0 -0
  591. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/skills/test_manager.py +0 -0
  592. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/skills/test_models.py +0 -0
  593. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/skills/test_parser.py +0 -0
  594. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
  595. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
  596. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
  597. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
  598. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
  599. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
  600. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
  601. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
  602. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
  603. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
  604. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
  605. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
  606. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
  607. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
  608. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
  609. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
  610. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
  611. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
  612. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
  613. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
  614. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
  615. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
  616. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
  617. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
  618. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
  619. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
  620. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
  621. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
  622. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
  623. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
  624. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
  625. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
  626. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
  627. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
  628. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
  629. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
  630. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
  631. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
  632. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
  633. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
  634. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
  635. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
  636. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
  637. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
  638. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
  639. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
  640. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
  641. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
  642. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
  643. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
  644. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
  645. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
  646. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
  647. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
  648. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
  649. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
  650. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
  651. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
  652. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
  653. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
  654. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/base_snapshot_test_app.py +0 -0
  655. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/conftest.py +0 -0
  656. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/snap_compare.py +0 -0
  657. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
  658. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
  659. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
  660. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
  661. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
  662. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
  663. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
  664. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
  665. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
  666. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
  667. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
  668. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
  669. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
  670. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
  671. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/stubs/fake_backend.py +0 -0
  672. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/stubs/fake_client.py +0 -0
  673. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/stubs/fake_tool.py +0 -0
  674. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_admiral.py +0 -0
  675. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_admiral_hallucinated_tool_filter.py +0 -0
  676. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_admiral_intervention_outcome.py +0 -0
  677. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_admiral_phase3.py +0 -0
  678. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_admiral_proposed.py +0 -0
  679. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_admiral_session_id.py +0 -0
  680. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_admiral_struggle_dedup.py +0 -0
  681. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_agent_auto_compact.py +0 -0
  682. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_agent_backend.py +0 -0
  683. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_agent_observer_streaming.py +0 -0
  684. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_agent_stats.py +0 -0
  685. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_agent_tasks.py +0 -0
  686. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_agent_tool_call.py +0 -0
  687. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_agents.py +0 -0
  688. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_algebra_tool.py +0 -0
  689. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_api_error_recovery.py +0 -0
  690. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_auto_retrieve_soft_nudge.py +0 -0
  691. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_auto_solve.py +0 -0
  692. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_bank_build.py +0 -0
  693. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_bank_debug.py +0 -0
  694. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_bank_multiagent.py +0 -0
  695. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_bank_prd.py +0 -0
  696. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_bank_prd_extended.py +0 -0
  697. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_bank_tools.py +0 -0
  698. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_bank_update.py +0 -0
  699. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_build_projects.py +0 -0
  700. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_checkpoint.py +0 -0
  701. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_chemistry_tool.py +0 -0
  702. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_classifier.py +0 -0
  703. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_cli_programmatic_preload.py +0 -0
  704. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_config_migration.py +0 -0
  705. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_constraint_extract.py +0 -0
  706. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_constraint_hint.py +0 -0
  707. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_context_recovery.py +0 -0
  708. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_count_tool.py +0 -0
  709. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_curiosity.py +0 -0
  710. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_current_bugs.py +0 -0
  711. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_dispatch_report.py +0 -0
  712. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_dispatcher.py +0 -0
  713. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_drydock_regression.py +0 -0
  714. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_drydock_tasks.py +0 -0
  715. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_fake_tool_call_paren_syntax.py +0 -0
  716. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_full_regression.py +0 -0
  717. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_goal.py +0 -0
  718. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_graphrag.py +0 -0
  719. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_graphrag_worked_examples.py +0 -0
  720. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_hallucinated_tool_suppression.py +0 -0
  721. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_history_manager.py +0 -0
  722. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_hle_aggregate.py +0 -0
  723. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_hle_score_method_split.py +0 -0
  724. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_hle_typing.py +0 -0
  725. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_integration.py +0 -0
  726. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_issue_fixes.py +0 -0
  727. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_linear_algebra_tool.py +0 -0
  728. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_local_detect.py +0 -0
  729. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_logic_tool.py +0 -0
  730. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_loop_detection.py +0 -0
  731. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_math_tool.py +0 -0
  732. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_mcp_settings.py +0 -0
  733. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_memory_tool.py +0 -0
  734. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_message_id.py +0 -0
  735. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_message_merging.py +0 -0
  736. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_middleware.py +0 -0
  737. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_multi_agent.py +0 -0
  738. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_number_theory_tool.py +0 -0
  739. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_prolog_tool.py +0 -0
  740. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_read_file_not_found_listing.py +0 -0
  741. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_real_failures.py +0 -0
  742. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_real_issues.py +0 -0
  743. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_real_workflow.py +0 -0
  744. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_reasoning_content.py +0 -0
  745. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_rejudge_hle.py +0 -0
  746. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_retrieval_consumer.py +0 -0
  747. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_retrieve_tool.py +0 -0
  748. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_search_replace_args_not_truncated.py +0 -0
  749. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_set_tool.py +0 -0
  750. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_smoke.py +0 -0
  751. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_solve_tool.py +0 -0
  752. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_stats_tool.py +0 -0
  753. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_steering.py +0 -0
  754. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_steering_capture.py +0 -0
  755. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_steering_compute_vector.py +0 -0
  756. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_steering_extract_pairs.py +0 -0
  757. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_steering_hook.py +0 -0
  758. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_steering_sidecar_chat_inputs.py +0 -0
  759. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_steering_sidecar_hooks.py +0 -0
  760. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_system_prompt.py +0 -0
  761. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_tagged_text.py +0 -0
  762. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_task_complete_nudge.py +0 -0
  763. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_tool_args.py +0 -0
  764. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_truncate_args_valid_json.py +0 -0
  765. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_truncated_arg_path_hint.py +0 -0
  766. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_truncated_search_replace_escalation.py +0 -0
  767. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_truncated_write_escalation.py +0 -0
  768. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_ui_external_editor.py +0 -0
  769. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_ui_input_history.py +0 -0
  770. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_units_tool.py +0 -0
  771. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_user_issues.py +0 -0
  772. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_verify_tool.py +0 -0
  773. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_wall_of_text_rescue.py +0 -0
  774. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_workloads.py +0 -0
  775. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/test_write_file_missing_path.py +0 -0
  776. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/testbank_helpers.py +0 -0
  777. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_ask_user_question.py +0 -0
  778. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_bash.py +0 -0
  779. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_bash_binary_grep_hint.py +0 -0
  780. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_bash_consec_empty_search.py +0 -0
  781. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_bash_echo_escape_loop_breaker.py +0 -0
  782. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_bash_empty_search_loop_breaker.py +0 -0
  783. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_bash_error_loop_breaker.py +0 -0
  784. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_bash_exact_cmd_loop_breaker.py +0 -0
  785. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_bash_heredoc_confirmation.py +0 -0
  786. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_bash_kill_exit1_annotation.py +0 -0
  787. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_bash_python_c_syntaxerr_loop_breaker.py +0 -0
  788. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_exit_plan_mode.py +0 -0
  789. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_grep.py +0 -0
  790. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_hallucinated_retrieval_redirect.py +0 -0
  791. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_invoke_context.py +0 -0
  792. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_manager_gemma_derived_models.py +0 -0
  793. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_manager_get_tool_config.py +0 -0
  794. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_mcp.py +0 -0
  795. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_mcp_sampling.py +0 -0
  796. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_read_file_dedup_alternating_offset.py +0 -0
  797. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_read_file_dedup_reembed.py +0 -0
  798. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_read_file_directory.py +0 -0
  799. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_read_file_limit_truncation.py +0 -0
  800. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_search_replace_append_fallback.py +0 -0
  801. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_search_replace_dir_path.py +0 -0
  802. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_search_replace_empty_content.py +0 -0
  803. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_search_replace_file_not_found.py +0 -0
  804. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_search_replace_first_failure_hint.py +0 -0
  805. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_search_replace_hard_stop.py +0 -0
  806. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_search_replace_malformed_block.py +0 -0
  807. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_search_replace_no_op_loop_breaker.py +0 -0
  808. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_search_replace_placeholder.py +0 -0
  809. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_search_replace_refused_loop_breaker.py +0 -0
  810. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_task.py +0 -0
  811. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_ui_bash_execution.py +0 -0
  812. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_webfetch.py +0 -0
  813. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_websearch.py +0 -0
  814. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_write_file_dedup_missing_imports.py +0 -0
  815. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/tools/test_write_file_missing_path_hint.py +0 -0
  816. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
  817. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
  818. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/update_notifier/test_do_update.py +0 -0
  819. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
  820. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/update_notifier/test_github_update_gateway.py +0 -0
  821. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
  822. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/update_notifier/test_ui_update_notification.py +0 -0
  823. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/update_notifier/test_update_use_case.py +0 -0
  824. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/tests/update_notifier/test_whats_new.py +0 -0
  825. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/worked_examples/README.md +0 -0
  826. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/worked_examples/cli_subcommand_dispatch.py +0 -0
  827. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/worked_examples/lookup.json +0 -0
  828. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/worked_examples/sql_parser.py +0 -0
  829. {drydock_cli-2.8.48 → drydock_cli-2.8.50}/worked_examples/tree_walking_interpreter.py +0 -0
@@ -0,0 +1 @@
1
+ 2480262
@@ -43,57 +43,61 @@ Drydock is a local CLI coding agent (fork of mistral-vibe, Apache 2.0).
43
43
  - **370 PRDs** at /data3/drydock_test_projects/ — the benchmark suite
44
44
  - **Current version:** v2.8.27 on PyPI (auto-released every 6h from `main`)
45
45
  - **Active continuous loops:** stress harness (hourly), autonomous_review
46
- (30-min), classify_pulse (10-min), telegram_bot keepalive (2-min),
47
- hle_babysitter (hourly @ :45 10-Q HLE batch per tick, see
48
- HLE_PRD §"Continuous HLE evaluation"), **hle_burndown daemon** (back-to-back
49
- batches, runs as background process via `scripts/hle_burndown.sh start`;
50
- keepalive cron at `*/15` resurrects if it dies). Both HLE loops share
51
- `/tmp/hle_continuous.pid` whichever owns the lock keeps it; the other
52
- exits/skips. Anything new the operator adds should not run at :00 or
53
- :30 (autonomous_review owns those).
54
-
55
- ## Current plan (2026-05-14)
56
-
57
- Three vectors moving in parallel. Each has a queue of concrete fixes
58
- tracked as TaskCreate items; the high-level shape is:
59
-
60
- 1. **HLE** keep pushing the floor up from 6.7% on Math. The
61
- `scripts/hle_babysitter.sh` cron runs 10-Q Math batches every hour.
62
- Open work: rotate categories beyond Math; build a multi-batch
63
- aggregator (`scripts/hle_aggregate.py`); produce a clean Q3 vs Q4
64
- stall-rate comparison once 30+ Q3 Math attempts have accumulated;
65
- verify the gemma4.md tool-inventory change (e47cc4e) actually
66
- lifted math/count/memory/verify call rates.
67
-
68
- 2. **GraphRAG** — the auto-prefetch hook is shipping good chunks on
69
- trivia but not on hard symbolic Math. Two concrete moves: lower
46
+ (30-min), classify_pulse (10-min), telegram_bot keepalive (2-min).
47
+ HLE eval loops were removed 2026-05-17 per operator directive see
48
+ the "NO CUSTOM EVAL HARNESSES" rule below.
49
+ - 🚨 **NO CUSTOM EVAL HARNESSES (2026-05-17).** The user has banned
50
+ bespoke evaluation infrastructure (HLE eval scripts, burndown
51
+ daemons, batch runners, judge-prompt pipelines, telemetry-aggregator
52
+ cron jobs, etc.). Even when such a harness drives the real TUI via
53
+ pexpect, the *concept* tempts the agent to fix harness-specific
54
+ issues (timeout tuning, env-var-gated behaviour, judge edge cases)
55
+ that don't help real users. Improving drydock comes from USING
56
+ drydock interactively as a real user does — the operator notices
57
+ pain, the agent fixes the pain. If you need a regression check,
58
+ write a unit test against the drydock library. If you need a
59
+ benchmark, run prompts through the TUI by hand and observe. Do
60
+ NOT spin up background eval daemons. Archived scripts at
61
+ `scripts/_archived_eval_harness/` leave them archived.
62
+
63
+ ## Current plan (2026-05-17)
64
+
65
+ Focus is on **TUI experience** — the operator uses drydock interactively;
66
+ the agent fixes what the operator hits. No HLE eval loops, no custom
67
+ benchmark daemons (see the "NO CUSTOM EVAL HARNESSES" rule above).
68
+
69
+ 1. **TUI bugs the operator notices in real use** error recovery
70
+ paths, slash commands, tool reliability. Recent ships: /undo,
71
+ /back, /goal, vision (--mmproj), recovery meta-fix.
72
+
73
+ 2. **GraphRAG** — the auto-prefetch hook ships good chunks on trivia
74
+ but not on hard symbolic Math. Two concrete moves: lower
70
75
  `QUALITY_THRESHOLD` (currently 8.0 in `agent_loop.py:3391`) once
71
- we know the real score distribution, and add an arxiv-corpus
72
- fallback (`/data3/arxiv_corpus/graphrag.sqlite`) when the primary
73
- index returns nothing above threshold.
76
+ we know the real score distribution, and the arxiv-corpus
77
+ fallback (`/data3/arxiv_corpus/graphrag.sqlite`) is wired.
74
78
 
75
79
  3. **Deep Noir** — sidecar/hooks/capture/train all coded; the
76
80
  `apply_chat_template` API-drift fix shipped 2026-05-14 (f02aa4b).
77
- Real blocker for v1 vectors: contrastive-pair extraction is
78
- currently broken admiral records full UUIDs (e.g.
79
- `5b55aacd-3606-4656-ad4b-eacf86506eda`) but session dirs are named
80
- `session_<date>_<time>_<short_uuid>` where the `short_uuid` is the
81
- first 8 chars of the SESSION's own UUID, not admiral's recorded
82
- one. `extract_pairs._find_session_dir` matches on session_dir name
83
- endswith(admiral_short) which only succeeds for the rare case
84
- where both happen to match. Yield on `empty_after_tool:bash`:
85
- 2 / 88 derailed sessions found. Needs a real mapping layer
86
- (meta.json admiral) or admiral has to be fixed to record the
87
- short hash used by session dirs.
81
+ Contrastive-pair extraction was fixed by **706f226 (2026-05-10)**:
82
+ admiral now records the live `agent_loop.session_id` (which IS the
83
+ short hash used by session dirs), and `extract_pairs._find_session_dir`
84
+ builds a `{meta.session_id dir}` map from the on-disk
85
+ meta.json files. Both pieces work.
86
+ Real remaining issue: **admiral_state.json has ~3000 pre-fix
87
+ findings (recorded 2026-04-19 to 2026-05-10) whose UUIDs are
88
+ phantom they don't resolve to any on-disk session_dir**.
89
+ `extract_pairs` correctly yields only the post-fix findings (~20
90
+ sessions across all categories as of 2026-05-17). The training
91
+ set will fill in as new findings accumulate. Pre-fix findings
92
+ are unrecoverable; consider GC'ing them out of admiral_state.json
93
+ so future audits aren't misleading.
88
94
 
89
95
  Operator controls for the continuous loops:
90
96
 
91
97
  ```bash
92
- touch /data3/drydock/.pause_hle_babysitter # pause hourly HLE cron
93
- touch /data3/drydock/.pause_hle_burndown # pause back-to-back burndown daemon
94
- touch /data3/drydock/.pause_hle_burndown_keepalive # disable burndown auto-resurrection
95
98
  touch /data3/drydock_test_projects/.pause_watchdog
96
99
  touch /data3/drydock/.pause_auto_release # pause 6h PyPI publish
100
+ touch /data3/drydock/.pause_stress # pause stress harness restarts
97
101
  ```
98
102
 
99
103
  ## Build & Test
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 2.8.48
3
+ Version: 2.8.50
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
@@ -1369,7 +1369,8 @@ class AgentLoop:
1369
1369
  prev_tool_name = assistant_msg.tool_calls[-1].function.name if assistant_msg.tool_calls[-1].function else None
1370
1370
  _readonly_tools = {"read_file", "grep", "glob", "ls", "pwd",
1371
1371
  "ralph_repo_index", "ralph_file_summary",
1372
- "retrieve", "search_files", "lsp"}
1372
+ "retrieve", "search_files", "lsp",
1373
+ "web_search", "web_fetch"}
1373
1374
  _write_tools = {"write_file", "search_replace"}
1374
1375
  _prev_was_read = prev_tool_name in _readonly_tools
1375
1376
  _prev_was_write = prev_tool_name in _write_tools
@@ -1471,10 +1472,12 @@ class AgentLoop:
1471
1472
  )
1472
1473
  elif _prev_was_read:
1473
1474
  _tool_name_str = prev_tool_name or "read_file"
1475
+ _generic_suffix = os.environ.get("DRYDOCK_STOP_NOW_SUFFIX", "")
1474
1476
  note = (
1475
1477
  f"You called {_tool_name_str} but produced no output. "
1476
- f"Now use write_file, search_replace, or bash "
1477
- f"to make changes — do NOT call {_tool_name_str} again."
1478
+ f"Now respond in text — write your answer or make changes. "
1479
+ f"Do NOT call {_tool_name_str} again."
1480
+ + (f" {_generic_suffix}" if _generic_suffix else "")
1478
1481
  )
1479
1482
  elif _prev_write_success:
1480
1483
  note = (
@@ -1507,10 +1510,12 @@ class AgentLoop:
1507
1510
  "to the user. Do NOT re-run the same command."
1508
1511
  )
1509
1512
  else:
1513
+ _generic_suffix = os.environ.get("DRYDOCK_STOP_NOW_SUFFIX", "")
1510
1514
  note = (
1511
1515
  "Continue working. Use a tool (write_file, "
1512
1516
  "search_replace, bash, glob, grep) or state "
1513
1517
  "your plan in text."
1518
+ + (f" {_generic_suffix}" if _generic_suffix else "")
1514
1519
  )
1515
1520
  elif _stall_attempt == 1:
1516
1521
  if _tool_stop_injected:
@@ -1532,11 +1537,12 @@ class AgentLoop:
1532
1537
  )
1533
1538
  elif _prev_was_read:
1534
1539
  _tool_name_str = prev_tool_name or "read_file"
1540
+ _generic_suffix = os.environ.get("DRYDOCK_STOP_NOW_SUFFIX", "")
1535
1541
  note = (
1536
1542
  f"You sent an empty response after calling {_tool_name_str}. "
1537
- f"Call write_file or search_replace NOW to apply "
1538
- f"what you read OR state in one sentence why you "
1539
- f"cannot proceed. Do NOT call {_tool_name_str} again."
1543
+ f"Respond in text now write your answer or apply what you read. "
1544
+ f"Do NOT call {_tool_name_str} again."
1545
+ + (f" {_generic_suffix}" if _generic_suffix else "")
1540
1546
  )
1541
1547
  elif _prev_was_write:
1542
1548
  _tool_name_str = prev_tool_name or "write_file"
@@ -1560,10 +1566,12 @@ class AgentLoop:
1560
1566
  "Do NOT re-run the same command."
1561
1567
  )
1562
1568
  else:
1569
+ _generic_suffix = os.environ.get("DRYDOCK_STOP_NOW_SUFFIX", "")
1563
1570
  note = (
1564
1571
  "You sent an empty response. Call a tool now "
1565
1572
  "(write_file, search_replace, bash, read_file, glob) "
1566
1573
  "OR explicitly say you are done with this task."
1574
+ + (f" {_generic_suffix}" if _generic_suffix else "")
1567
1575
  )
1568
1576
  else:
1569
1577
  if _tool_stop_injected:
@@ -1585,11 +1593,12 @@ class AgentLoop:
1585
1593
  )
1586
1594
  elif prev_tool_name in _readonly_tools:
1587
1595
  _tool_name_str = prev_tool_name or "read_file"
1596
+ _generic_suffix = os.environ.get("DRYDOCK_STOP_NOW_SUFFIX", "")
1588
1597
  note = (
1589
1598
  f"THIRD empty response after {_tool_name_str}. "
1590
- "Stop reading call write_file or search_replace NOW to apply "
1591
- "the change, or respond in text explaining why you cannot proceed. "
1599
+ "Stop — respond in text with your analysis or best answer. "
1592
1600
  f"Do NOT call {_tool_name_str} again."
1601
+ + (f" {_generic_suffix}" if _generic_suffix else "")
1593
1602
  )
1594
1603
  elif _prev_was_write:
1595
1604
  _tool_name_str = prev_tool_name or "write_file"
@@ -1614,11 +1623,13 @@ class AgentLoop:
1614
1623
  "Do NOT re-run the same command."
1615
1624
  )
1616
1625
  else:
1626
+ _generic_suffix = os.environ.get("DRYDOCK_STOP_NOW_SUFFIX", "")
1617
1627
  note = (
1618
1628
  "You have sent 3 empty responses in a row for "
1619
1629
  "this user request. Respond with either (a) a "
1620
1630
  "tool call to make progress, or (b) one "
1621
1631
  "sentence explaining why you cannot proceed."
1632
+ + (f" {_generic_suffix}" if _generic_suffix else "")
1622
1633
  )
1623
1634
  self._inject_system_note(note)
1624
1635
  logger.info(
@@ -3636,9 +3647,23 @@ class AgentLoop:
3636
3647
  # corpus at /data3/arxiv_corpus/graphrag.sqlite (1.18M chunks)
3637
3648
  # has much better recall. The fallback path is operator-tunable
3638
3649
  # via DRYDOCK_GRAPHRAG_FALLBACK_DB; set to empty to disable.
3639
- primary_db = os.environ.get("DRYDOCK_GRAPHRAG_DB") or str(
3640
- Path.home() / ".drydock" / "graphrag.sqlite"
3641
- )
3650
+ # Primary DB selection mirrors retrieve._resolve_db_path so the
3651
+ # auto-prefetch and the model-issued retrieve calls always agree
3652
+ # on which corpus to search:
3653
+ # 1. DRYDOCK_GRAPHRAG_DB env override
3654
+ # 2. <cwd>/.drydock/graphrag.sqlite (per-project index)
3655
+ # 3. ~/.drydock/graphrag.sqlite (home fallback)
3656
+ # Without #2, a user with a populated home DB never saw their
3657
+ # own project's chunks because home always won.
3658
+ env_db = os.environ.get("DRYDOCK_GRAPHRAG_DB")
3659
+ if env_db:
3660
+ primary_db = env_db
3661
+ else:
3662
+ project_db = Path.cwd() / ".drydock" / "graphrag.sqlite"
3663
+ if project_db.is_file():
3664
+ primary_db = str(project_db)
3665
+ else:
3666
+ primary_db = str(Path.home() / ".drydock" / "graphrag.sqlite")
3642
3667
  fallback_default = "/data3/arxiv_corpus/graphrag.sqlite"
3643
3668
  fallback_db_raw = os.environ.get(
3644
3669
  "DRYDOCK_GRAPHRAG_FALLBACK_DB", fallback_default
@@ -78,6 +78,15 @@ def _resolve_db_path(arg: str) -> Path:
78
78
  project_db = Path.cwd() / ".drydock" / "graphrag.sqlite"
79
79
  if project_db.is_file():
80
80
  return project_db
81
+ # If we're inside a real project that doesn't yet have its own index,
82
+ # PREFER to create a per-project index over falling back to the home
83
+ # index (which is contaminated with other projects' content and
84
+ # answers wrong queries about THIS project). The home index is only
85
+ # the right answer for ad-hoc use outside any project — e.g. when
86
+ # the user runs drydock from their home dir.
87
+ cwd = Path.cwd()
88
+ if _looks_like_project(cwd):
89
+ return project_db # will be auto-ingested by Retrieve.run
81
90
  return Path.home() / ".drydock" / "graphrag.sqlite"
82
91
 
83
92
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "drydock-cli"
3
- version = "2.8.48"
3
+ version = "2.8.50"
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"
@@ -0,0 +1,38 @@
1
+ # Archived 2026-05-17 — DO NOT RESURRECT
2
+
3
+ These scripts implemented a custom HLE eval harness that drove drydock
4
+ via pexpect. The infrastructure was technically TUI-based (it spawned
5
+ the real `drydock` binary), but the user objected to the entire
6
+ *concept* of building bespoke evaluation infrastructure on the side:
7
+
8
+ > "STOP trying to create custom harnesses for evals. Improving drydock
9
+ > is what matters. And using drydock can't be headless, you have to
10
+ > actually use it like the user would."
11
+
12
+ The principle: **drydock improvements should come from USING drydock
13
+ as a real user would** — interactively, with the user noticing pain
14
+ points and the agent fixing them. A custom eval harness:
15
+
16
+ 1. Tempts the agent to fix harness-specific issues (timeout tuning,
17
+ env-var-gated behavior, judge-prompt edge cases) that don't help
18
+ real users.
19
+ 2. Introduces operational overhead (cron jobs, keepalive daemons,
20
+ telemetry pipelines) that's parallel to the actual product.
21
+ 3. Distracts from the headline goal: make drydock better at what
22
+ real users do, not at what an eval suite measures.
23
+
24
+ If you (future Claude) are tempted to build a new HLE-style eval
25
+ harness, STOP. Read `~/.claude/projects/-data3-drydock/memory/
26
+ feedback_no_custom_eval_harness.md` first. The user has been very
27
+ clear on this and will push back hard.
28
+
29
+ What to do instead:
30
+ - Use the drydock TUI yourself (or watch the user use it) to find
31
+ real bugs.
32
+ - Read open GH issues at fbobe321/drydock for user-reported pain.
33
+ - Fix things that affect interactive UX: error recovery, slash
34
+ commands, tool reliability.
35
+ - If you really need a regression-style check, write a unit test
36
+ against the drydock library — not a long-running eval daemon.
37
+
38
+ Files preserved here for git history continuity; do not run them.
@@ -65,7 +65,7 @@ HF_TOKEN_FILE = Path.home() / ".config" / "drydock" / "hf_token"
65
65
  # Coding-style PRDs in shakedown allow 600s for harder steps; QA should be
66
66
  # faster since there's no file-writing iteration, but Gemma 4 thinking can
67
67
  # still chew through several minutes on a hard question.
68
- QUESTION_TIMEOUT = 480 # 8 min per question
68
+ QUESTION_TIMEOUT = 600 # 10 min per question — 480s left 3/196 recent cases killed mid-generation
69
69
  IDLE_GRACE = 8.0 # seconds of no new messages before declaring done
70
70
 
71
71
 
File without changes
File without changes
File without changes
@@ -1,5 +1,243 @@
1
1
  # Drydock Trip Log
2
2
 
3
+ ## 2026-05-17 15:30 UTC tick
4
+ - Stress: PAUSED (.pause_stress sentinel active)
5
+ - HLE burndown: running (PID 2465533 engineering batch, slot 59, ~51 min elapsed), lifetime 115/848 = 13.6% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.3%, Chem 8.7%); babysitter skipping correctly while burndown active
6
+ - Write rate: N/A (stress paused)
7
+ - Admiral last 30 min: not checked (stress paused)
8
+ - vLLM 400s: 0 observed
9
+ - GH issues: 0 open
10
+ - Dispatch queue: harness=7 (all thinking_stall from 2026-05-15, already addressed by recent commits), retrieval=3 (0 actionable — all already ingested), steering=0, curiosity=2546 pending (top 3 are hle_failure/no-FINAL-ANSWER pattern, covered by commits a9f16ae/4909542/d500234)
11
+ - retrieval-drain: 0 projects ingested (nothing new)
12
+ - Model: Q3_K_M via llama.cpp :8000 healthy; balancer :8001 healthy
13
+ - Action this tick: no action — healthy; recent 24h commits are actively addressing HLE stall/FINAL-ANSWER pattern; curiosity top items already covered
14
+
15
+ ## 2026-05-17 14:30 UTC tick
16
+ - Stress: PAUSED (.pause_stress sentinel active)
17
+ - HLE burndown: running (PID 2452616 chemistry batch in progress), lifetime 115/841 = 13.7% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.3%, Chem 8.7%, Other 18.2%, Engineering 4.7%, Hum/SS 14.3%); latest batch chemistry 1/10
18
+ - Write rate: N/A (stress paused)
19
+ - vLLM 400s: 0; llamacpp-gemma4 healthy; balancer on :8001 healthy
20
+ - GH issues: 0 open
21
+ - Dispatch queue: harness=7 (all thinking_stall, stale pre-fix), retrieval=3 (nothing actionable), curiosity=2934 total/2525 pending/406 consumed
22
+ - Action this tick: committed fix a9f16ae (addresses curiosity:01c0f4dc34d97142, :fbe7b3456bdbb0ca, :4ffd02384a890963) — stall-retry _prev_was_read notes at attempts 0 and 1 now append DRYDOCK_STOP_NOW_SUFFIX ("FINAL ANSWER: <answer>") which 4909542 only did for attempt 2; also neutralized coding-task wording ("write_file, search_replace") to context-neutral ("respond in text — write your answer or make changes"). No-op for coding sessions (suffix unset by default).
23
+
24
+ ## 2026-05-17 14:00 UTC tick
25
+ - Stress: PAUSED (.pause_stress sentinel active)
26
+ - HLE burndown: running (PID 2452616, slot 58 chemistry), lifetime 114/837 = 13.6% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.3%, Chem 7.8%); recent batch Physics 20%
27
+ - Write rate: N/A (stress paused)
28
+ - Admiral last 30 min: N/A
29
+ - vLLM 400s: 0; llamacpp-gemma4 healthy (25h uptime)
30
+ - GH issues: 0 open
31
+ - Dispatch queue: harness=1305 total (8 in last 24h, thinking_stall, already addressed by v2.8.47+), retrieval=3 (nothing actionable), curiosity=2931 total (2524 pending, 403 consumed)
32
+ - Action this tick: consumed curiosity acf1a1892044a747 (thinking-budget timeout case — addressed by 2973dd1 QUESTION_TIMEOUT 480→600s). Investigated ongoing empty-pred failures in physics batch (3 questions produced pred='' in run_1779013132 after FINAL ANSWER fixes) — these are hard-QA questions where model likely times out during inference before producing output; pattern requires deeper session log analysis, leaving for next autonomous_review tick.
33
+
34
+ ## 2026-05-17 13:30 UTC tick
35
+ - Stress: PAUSED (.pause_stress sentinel active)
36
+ - HLE burndown: running (PID 1742185, 3+ days elapsed), lifetime 114/832 = 13.7% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.3%, Chem 8.5%); recent batches: Humanities 30%, Physics 20%, Physics 10%
37
+ - Write rate: N/A (stress paused)
38
+ - vLLM 400s: 0 in last 30min (llamacpp-gemma4 Q3_K_M healthy on :8000, balancer :8001 up)
39
+ - GH issues: 0 open
40
+ - Dispatch queue: harness=8 (all historical thinking_stall, resolved v2.8.47), retrieval=3 (all recently ingested, 0 actionable), curiosity=2513 pending (409 hle_failure, 2107 unknown_term)
41
+ - Action this tick: consumed 3 stale hle_failure curiosity items (da424f73, 5c2ad87e, 4f4de190 — empty:no_final_answer cases addressed by d500234/4909542 stall-retry FINAL ANSWER suffix fixes); observed 1 new empty:no_response at 601s in Humanities batch (poetry question) — non-streaming HTTP timeout still hitting first-turn for some questions; no code change this tick as system otherwise healthy and autonomous_review just completed 13:00Z tick
42
+
43
+ ## 2026-05-17 13:00 UTC tick
44
+ - Stress: PAUSED (.pause_stress sentinel active)
45
+ - HLE burndown: running (PID 2440503, 27min elapsed), lifetime 112/825 = 13.6% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.3%, Chem 8.5%); recent batches variable (0-50%)
46
+ - Write rate: N/A (stress paused)
47
+ - Admiral last 30 min: N/A (stress paused)
48
+ - vLLM 400s: N/A (llamacpp container, not vLLM)
49
+ - GH issues: 0 open
50
+ - Dispatch queue: harness=8 (all historical, thinking_stall resolved v2.8.47), retrieval=3 (all already ingested), curiosity=2504 pending
51
+ - Action this tick: consumed 3 stale pre-fix curiosity items (FINAL ANSWER + timeout artifacts addressed by d500234/4909542/2973dd1); no new bugs found; autonomous_review running concurrently at 13:00Z
52
+
53
+ ## 2026-05-17 12:30 UTC tick
54
+ - Stress: PAUSED (.pause_stress sentinel active)
55
+ - HLE burndown: running slot 56 (PID 2425424, 69min elapsed, physics batch — Q10 in progress), lifetime 111/821 = 13.5% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.5%, Chem 8.5%, Other unchanged)
56
+ - Write rate: N/A (stress paused)
57
+ - vLLM 400s: 0 in last 30min, llamacpp-gemma4 healthy (Q3_K_M)
58
+ - GH issues: 0 open
59
+ - Dispatch queue: harness=8 (all stale thinking_stall, resolved v2.8.47); retrieval=0 actionable (3 entries, all recently ingested); curiosity=2488 pending — consumed 3 stale hle_failure artifacts (532e9d22, 77d0d52, 44f4d505 — hard theoretical questions: Tate-graph/μ-fixpoint, DomSet complexity, SU(N) structure constants; model capability gap, not addressable by prompt rules)
60
+ - 12:00Z autonomous_review tick hit $1 USD budget cap and exited early (exit=1)
61
+ - Action this tick: no code change — system nominal; consumed 3 curiosity items; retrieval drain 0 new ingestions
62
+
63
+ ## 2026-05-17 12:00 UTC tick
64
+ - Stress: PAUSED (.pause_stress sentinel active)
65
+ - HLE burndown: running (PID 2425424, physics batch in progress), lifetime 110/817 = 13.5% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 7.5%, Chem 8.5%, Other 18.2%)
66
+ - Write rate: N/A (stress paused)
67
+ - Admiral: autonomous_review tick started at 12:00Z
68
+ - vLLM 400s: 0 in last 30min, model healthy
69
+ - GH issues: 0 open
70
+ - Dispatch queue: harness=9 (all thinking_stall, stale from 2026-05-16); retrieval=0 actionable; curiosity=2488 pending (hle_failure=407, unknown_term=2081)
71
+ - Action this tick: committed fix — QUESTION_TIMEOUT 480→600s in hle_eval.py; all 3 recent empty:no_final_answer cases elapsed exactly at deadline (model killed mid-generation); retrieval drain: 0 actionable; curiosity top item (threshold-sig scheme) marked consumed (42e0bdf8)
72
+
73
+ ## 2026-05-17 11:30 UTC tick
74
+ - Stress: PAUSED (.pause_stress sentinel active)
75
+ - HLE burndown: running (PID 2425424, 08:50 elapsed, physics slot 56 active), lifetime 109/813 = 13.4% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 6.3%, Chem 8.5%, Other 18.2%)
76
+ - Write rate: N/A (stress paused)
77
+ - Admiral last 30 min: autonomous_review tick started at 11:30Z
78
+ - vLLM 400s: 3 matches in docker grep (benign — reasoning-budget activation noise, Q3_K_M healthy, 23376 tok prompt for physics slot)
79
+ - GH issues: 0 open
80
+ - Dispatch queue: harness=9 (all stale, thinking_stall resolved by v2.8.47); retrieval=0 actionable; curiosity=2478 pending (top 3 are today's physics no_response failures — spinor/scalar field + Z-boson EW + virial series; model timed out at 480s with msg_count=1; not addressable by prompt changes)
81
+ - Retrieval drain: 0 projects (3 queue entries, all already ingested)
82
+ - Action this tick: no code change — system nominal; harness:thinking_stall pattern confirmed stale (last dispatch evidence says "fully resolved by v2.8.47"); top curiosity items are empty:no_response physics timeouts where model never starts within 480s, distinct from the empty:no_final_answer cases targeted by recent FINAL ANSWER suffix commits
83
+
84
+ ## 2026-05-17 10:30 UTC tick
85
+ - Stress: PAUSED (.pause_stress sentinel active)
86
+ - HLE burndown: running (PID 2412661, physics batch active, 12min elapsed), lifetime 108/803 = 13.4% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Chem 8.5%, Other 18.2%)
87
+ - Write rate: N/A (stress paused)
88
+ - Admiral last 30 min: autonomous_review tick started 10:30Z
89
+ - vLLM 400s: 0 (llamacpp-gemma4 healthy, Q3_K_M)
90
+ - GH issues: 0 open
91
+ - Dispatch queue: harness=9 (all stale thinking_stall, covered by v2.8.47+v2.8.48); retrieval=0 actionable; steering=0; curiosity=2457 pending
92
+ - Retrieval drain: 0 projects (3 entries already ingested)
93
+ - Action this tick: consumed 3 stale hle_failure curiosity items (46987dc, 3696a9b, a139a26) — all empty-prediction "no answer extracted" cases addressed by d500234; no code change — system nominal
94
+
95
+ ## 2026-05-17 10:00 UTC tick
96
+ - Stress: PAUSED (.pause_stress sentinel active)
97
+ - HLE burndown: running (PID 2400939, ~44min elapsed), lifetime 108/799 = 13.5% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Chem 8.5%, Physics 5.8%, Other pending)
98
+ - Write rate: N/A (stress paused)
99
+ - Admiral last 30 min: autonomous_review completed at 09:31Z, new tick started 10:00Z
100
+ - vLLM 400s: 0 (llamacpp-gemma4 healthy; "should_stop" log messages are normal generation-end markers)
101
+ - GH issues: 0 open
102
+ - Dispatch queue: harness=9 (all stale pre-fix thinking_stall, resolved by v2.8.47); retrieval=0 actionable; curiosity=2448 pending (dominated by pre-fix hle_failure + unknown_term)
103
+ - Action: consumed 3 stale pre-fix chemistry hle_failure curiosity items (c7176..., bd0ed..., 7ef4...) addressed by d500234; no code change — system nominal. Noted 5/84 (6%) empty:no_response in today's "Other" category batches, likely transient load contention with 43-min burndown batch running concurrently.
104
+
105
+ ## 2026-05-17 09:30 UTC tick
106
+ - Stress: PAUSED (.pause_stress sentinel active)
107
+ - HLE burndown: running (PID 2400939, ~10:45 elapsed), lifetime 105/793 = 13.2% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Chem 8.5%, Physics 5.8%)
108
+ - Write rate: N/A (stress paused)
109
+ - Admiral last 30 min: N/A (stress paused)
110
+ - vLLM 400s: 0 (llamacpp-gemma4 healthy, Q3_K_M running)
111
+ - GH issues: 0 open
112
+ - Dispatch queue: harness=9 (all pre-fix thinking_stall, addressed by v2.8.47+v2.8.48), curiosity=2425 pending; retrieval=0 actionable
113
+ - Retrieval drain: 0 projects (3 entries all already ingested recently)
114
+ - Curiosity action: top 3 items are chemistry hle_failure with empty predictions (pre-fix artifacts); d500234 already addresses stall-retry FINAL ANSWER emission; no new action needed
115
+ - Action this tick: no code change — system healthy; model+balancer+burndown all nominal; autonomous_review hit USD ceiling at 08:00 tick (expected), resumed normally at 09:00
116
+
117
+ ## 2026-05-17 09:00 UTC tick
118
+ - Stress: PAUSED (.pause_stress sentinel active)
119
+ - HLE burndown: running (PID 2388607, slot 53 other category, ~41 min elapsed), lifetime 105/788 = 13.3% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Chem 8.5%, Physics 5.8%)
120
+ - Write rate: N/A (stress paused)
121
+ - Admiral last 30 min: N/A (stress paused)
122
+ - vLLM 400s: 0 (llamacpp-gemma4 healthy, Up 20h)
123
+ - GH issues: 0 open
124
+ - Dispatch queue: harness=9 (all pre-fix thinking_stall, addressed by v2.8.47+v2.8.48), curiosity=2396 pending (2002 unknown_term, 394 hle_failure); retrieval=0 actionable
125
+ - Retrieval drain: 0 projects (all 3 entries already ingested)
126
+ - Curiosity action: consumed 3 stale hle_failure items (42a14c908f37797f, a81d05832f0531ee, 7942b4ea896964d8) — all from 2026-05-14, predating d500234+e20fb7b+23f65dc fix series; post-fix failures are factual-knowledge gaps (wrong answer, not missing FINAL ANSWER), not addressable via prompt rules
127
+ - Action this tick: no code change — system healthy; model+balancer healthy; burndown daemon churning through "other" category questions
128
+
129
+ ## 2026-05-17 08:30 UTC tick
130
+ - Stress: PAUSED (.pause_stress sentinel active)
131
+ - HLE burndown: running (PID 2388607, ~11:32 elapsed), lifetime 104/784 = 13.3% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Chem 8.5%, Physics 5.8%)
132
+ - Write rate: N/A (stress paused)
133
+ - Admiral last 30 min: N/A (stress paused)
134
+ - vLLM 400s: 0 (llamacpp-gemma4 healthy, 0 errors in last 30m)
135
+ - GH issues: 0 open
136
+ - Dispatch queue: harness=9 (all pre-fix thinking_stall, addressed by v2.8.47+v2.8.48), curiosity=2397 pending (2001 unknown_term, 396 hle_failure); retrieval=0 actionable
137
+ - Retrieval drain: 0 projects (all 3 entries already ingested)
138
+ - Curiosity action: consumed 3 stale hle_failure items (b9677370, a35ffc74, 678d1ee8) — all from 2026-05-14, method=empty:no_final_answer, predating the e20fb7b+23f65dc+d500234 stall-fix series; post-fix hle_failure entries (4 items after 08:05Z) all show method=judge/exact meaning model is producing answers, just wrong ones, not missing FINAL ANSWER
139
+ - Action this tick: no code change — system healthy; 08:00 AR tick hit USD budget ceiling (exit=1); model+balancer healthy; no new bugs in last 6h
140
+
141
+ ## 2026-05-17 07:30 UTC tick
142
+ - Stress: PAUSED (.pause_stress sentinel active)
143
+ - HLE burndown: running (PID 2374691, slot 52 CS, ~21 min elapsed), lifetime 99/774 = 12.8% (Math 17.8%, CS/AI 2.1%, Bio/Med 13.2%, Chem 8.5%, Physics 5.8%)
144
+ - Write rate: N/A (stress paused)
145
+ - Admiral last 30 min: N/A (stress paused)
146
+ - vLLM 400s: 0 (llamacpp-gemma4 healthy, Up 19h)
147
+ - GH issues: 0 open
148
+ - Dispatch queue: harness=9 (all historical thinking_stall, resolved by v2.8.47), curiosity=2375 pending (500 unknown_term, 155 hle_failure, rest mixed), retrieval=0 actionable (already ingested)
149
+ - Retrieval drain: 0 projects (all 3 entries already ingested recently)
150
+ - Curiosity action: consumed 3 items (d989e493, 5b8cb785, 7e51e840) — all pre-fix hle_failure artifacts (thinking stalls or missing FINAL ANSWER, addressed by e20fb7b+23f65dc shipped in v2.8.47)
151
+ - Action this tick: no code change — system stable, burndown running, model+balancer healthy; recent batch (slot 51 CS) still shows 1 empty:no_final_answer post-fix but at 480s/3msgs it appears to be thinking-budget exhaustion on hard questions, not a fixable code path
152
+
153
+ ## 2026-05-17 07:00 UTC tick
154
+ - Stress: PAUSED (.pause_stress sentinel active)
155
+ - HLE burndown: running (PID 2361681, ~58 min elapsed), lifetime 99/770 = 12.9% (Math 17.8%, CS/AI 2.2%, Bio/Med 13.2%, Chem 8.5%, Physics 5.8%)
156
+ - Write rate: N/A (stress paused)
157
+ - Admiral last 30 min: N/A (stress paused)
158
+ - vLLM 400s: 0 (llamacpp-gemma4 no errors in last 30m)
159
+ - GH issues: 0 open
160
+ - Dispatch queue: harness=9 (all thinking_stall, fully addressed by v2.8.47), curiosity=375 hle_failure consumed so far, retrieval=0 actionable
161
+ - Retrieval drain: 0 projects (already ingested)
162
+ - Curiosity action: consumed d2602aa81ae85229 (parametric arc no-FINAL-ANSWER — pre-fix artifact addressed by 23f65dc + e20fb7b); remaining top items are capability-gap timeouts on hard math (electromagnetic surface current, 2000-dim F_p subspaces) — not actionable
163
+ - Action this tick: no code change — system stable, burndown running, model+balancer healthy
164
+
165
+ ## 2026-05-17 06:30 UTC tick
166
+ - Stress: PAUSED (.pause_stress sentinel active)
167
+ - Write rate: N/A (stress paused)
168
+ - HLE burndown: PID 2361681 alive (28 min elapsed), lifetime score 12.9% (99/766 correct); babysitter skipping each tick as expected (burndown holds the lock)
169
+ - Admiral last 30 min: N/A (stress paused)
170
+ - vLLM 400s: 0 (llamacpp-gemma4 clean)
171
+ - GH issues: 0 open
172
+ - Dispatch queue: harness=9 thinking_stall (addressed by v2.8.47 stall-retry guards), retrieval=0 actionable, curiosity=2351 pending (392 hle_failure, 1959 unknown_term)
173
+ - retrieval-drain: 0 ingested (all already recent)
174
+ - Action this tick: consumed curiosity:372686d3c6df99ed (homeomorphism-group model-used-tools-but-no-FINAL-ANSWER — already covered by v2.8.47 stall-retry propagation fix); no code fix committed — system healthy
175
+
176
+ ## 2026-05-17 06:00 UTC tick
177
+ - Stress: PAUSED (.pause_stress sentinel active)
178
+ - Write rate: N/A (stress paused)
179
+ - HLE burndown: running (PID 2353171, 40+ min elapsed), lifetime 98/761 = 12.9% (Math 17.8%, CS/AI 2.4%, Chem 8.5%, Bio/Med 12.0%, Physics 5.8%)
180
+ - vLLM 400s: 0 (llamacpp-gemma4 healthy, no errors last 30m)
181
+ - GH issues: 0 open
182
+ - Dispatch queue: harness=9 (all thinking_stall, all addressed by v2.8.47), retrieval=3 (all already ingested), curiosity=2331 pending (392 hle_failure, 1942 unknown_term)
183
+ - Retrieval drain: 0 projects ingested (already up to date)
184
+ - Curiosity action: consumed 3 stale pre-v2.8.47 hle_failure artifacts (589002202589fa54, 910403238b247f07, 411df7f8c7fb7981 — MIMO/LoRaWAN/XRD failures from 2026-05-14, all predating the stall-retry guard fixes in e20fb7b+23f65dc)
185
+ - Action this tick: no code fix — system stable, all dispatch patterns already resolved, burndown running normally
186
+
187
+ ## 2026-05-17 05:30 UTC tick
188
+ - Stress: PAUSED (.pause_stress sentinel active)
189
+ - Write rate: N/A (stress paused)
190
+ - HLE burndown: running (PID 2353171, ~10m elapsed); lifetime 13.0% (98/756); Math 17.8%, CS/AI 2.4%, Bio/Med 12.9%, Chem 8.5%, Physics 5.8%
191
+ - Admiral last 30 min: 0 new patterns (all thinking_stall entries are historical, fully resolved by v2.8.47)
192
+ - vLLM 400s: 0 (llamacpp container healthy; reasoning-budget=12000 active in logs)
193
+ - GH issues: 0 open
194
+ - Dispatch queue: harness=9 (all historical thinking_stall, resolved), retrieval=3 (0 actionable), curiosity=2320 pending
195
+ - retrieval-drain: 0 projects ingested (all already current)
196
+ - curiosity: consumed `6ca605a357149394` (EM/cylindrical-electrode timeout — pre-fix thinking-stall artifact, no code change needed); 2319 pending
197
+ - Action this tick: no fix committed — system healthy, all known dispatch patterns addressed by v2.8.47+v2.8.48
198
+
199
+ ## 2026-05-17 05:00 UTC tick
200
+ - Stress: PAUSED (.pause_stress sentinel active)
201
+ - Write rate: N/A (stress paused)
202
+ - HLE: PID 2342056 alive (37min, biology/medicine batch via babysitter lock); burndown daemon PID 1742185 running 2d 7h; lifetime 97/748 = 13.0% (Math 17.8%, CS/AI 2.4%, Bio/Med 12.9%, Chem 8.5%, Physics 5.8%)
203
+ - vLLM/llamacpp: model=Q3_K_M healthy; balancer :8001 up (PID 380535)
204
+ - GH issues: 0 open
205
+ - Dispatch queue: harness=1303 (all historical thinking_stall, resolved by v2.8.47); retrieval=3 (0 actionable); curiosity=2284 pending (382 hle_failure, 1902 unknown_term)
206
+ - Retrieval drain: 0 projects ingested (all already processed)
207
+ - Action this tick: consumed curiosity 5ca8871e665fa60c (bending stiffness hle_failure — structural mechanics capability gap, no code fix; model engaged tools but didn't emit FINAL ANSWER; stall-retry mechanisms confirmed working per latest burndown showing judge/exact failures rather than empty:no_final_answer)
208
+
209
+ ## 2026-05-17 04:30 UTC tick
210
+ - Stress: PAUSED (.pause_stress sentinel active)
211
+ - Write rate: N/A (stress paused)
212
+ - HLE burndown: batch 49 in progress (PID 2342056, biology/medicine, 4h elapsed); lifetime 97/742 = 13.1% (Math 17.8%, CS/AI 2.4%, Chem 8.5%, Bio/Med 14.3%, Physics 5.8%)
213
+ - vLLM 400s: 0 in last 30min; llamacpp-gemma4 healthy (up 16h)
214
+ - GH issues: 0 open
215
+ - Dispatch queue: harness=1303 entries (thinking_stall pattern fully resolved by v2.8.47+v2.8.48 per 02:10 UTC entry), retrieval=3 entries (0 actionable — all already ingested), curiosity=2266 pending (1889 unknown_term, 377 hle_failure)
216
+ - Retrieval drain: 0 projects ingested (all already processed)
217
+ - Action this tick: consumed curiosity 378c47ace335ab2d (textile permeability hle_failure — historical pre-fix failure from before e20fb7b+23f65dc stall-retry fixes; no source change needed)
218
+
219
+ ## 2026-05-17 04:00 UTC tick
220
+ - Stress: PAUSED (.pause_stress sentinel active)
221
+ - Write rate: N/A (stress paused)
222
+ - HLE burndown: running (PID 2328948, 42min elapsed); lifetime 95/737 = 12.9% (Math 17.5%, CS/AI 2.4%, Chem 8.5%, Bio/Med 14.3%, Physics 5.8%)
223
+ - vLLM 400s: 3 (minor, llamacpp-gemma4 healthy overall)
224
+ - GH issues: 0 open
225
+ - Dispatch queue: harness=9 (all thinking_stall, normal operational signals from stall-retry mechanism — not bugs), curiosity=pending (top 3 are pre-fix hle_failure from 2026-05-14, root cause addressed by e20fb7b), retrieval=0 actionable
226
+ - Retrieval drain: 0 projects (all already ingested)
227
+ - Curiosity action: no action — top items are from 2026-05-14, root cause (post-tool-stop stall loop) addressed by v2.8.47 e20fb7b/23f65dc; recent HLE batches showing 40% per-batch rate validates fix
228
+ - Action this tick: no code change — system healthy; autonomous_review running at :00/:30 cadence; balancer and model nominal
229
+
230
+ ## 2026-05-17 03:30 UTC tick
231
+ - Stress: PAUSED (.pause_stress sentinel active)
232
+ - Write rate: N/A (stress paused)
233
+ - HLE burndown: running (PID 2328948, 12min elapsed, slot=48 Math); lifetime 95/733 = 13.0% (Math 17.7%, CS/AI 2.4%, Chem 8.5%, Bio/Med 14.3%, Physics 5.8%); last two batches 4/10 each = 40%
234
+ - vLLM 400s: 0 (llamacpp-gemma4 healthy, reasoning-budget=12000 confirmed active)
235
+ - GH issues: 0 open
236
+ - Dispatch queue: harness=10 (all thinking_stall, all addressed by e20fb7b), retrieval=3 (0 actionable, already ingested), curiosity=2256 pending (377 hle_failure, 1879 unknown_term)
237
+ - Retrieval drain: 0 projects (all already ingested)
238
+ - Curiosity action: consumed 3 pre-fix hle_failure artifacts (f016303a: C RISC scheduling timeout, 522d4481: β-SVM no-FINAL-ANSWER, 860dcaed: chess timeout) — all patterns addressed by prior commits; FINAL ANSWER confirmed emitting in today's sessions (46 occurrences in session logs)
239
+ - Action this tick: no code change — system healthy; 13% HLE lifetime and 40% recent-batch rate are best recorded values; no new dispatch patterns; balancer and model nominal
240
+
3
241
  ## 2026-05-17 03:00 UTC tick
4
242
  - Stress: PAUSED (.pause_stress sentinel active)
5
243
  - HLE burndown: slot 47 in progress (PID 2316207, ~52m elapsed), lifetime 93/729 = 12.8% (Math 17.3%, CS/AI 2.4%, Chem 8.5%, Bio/Med 14.3%, Physics 5.8%); slot 47 live output shows answers emitting correctly (YES at 480s, YES at 334s) — v2.8.47 stall-retry re-arm working in production
@@ -7208,3 +7446,13 @@ restarted, cron self-match bug fixed in this same session).
7208
7446
  - Previous batch (23:52 UTC, 10 Math questions): 0/10 — all 480s timeouts on hard questions (fuzzy logic, semilattice functors, Boolean prime implicants); model outputs show reasoning fragments not clean FINAL ANSWER — capability gap, not a drydock bug
7209
7447
  - Current batch (01:13 UTC): 2/4 correct so far (chess Q1 YES exact, Cauchy Q3 YES fuzzy) after recent stall-retry fixes; still running
7210
7448
  - Action this tick: consumed curiosity:982cd07192229b9e (LSH-threshold model-used-tools-but-no-FINAL-ANSWER — addressed by 23f65dc + e20fb7b stall-retry guards); no code fix committed — system healthy, recent fixes still being evaluated by burndown daemon
7449
+
7450
+ ## 2026-05-17 11:00 UTC tick
7451
+ - Stress: paused via .pause_stress sentinel (expected)
7452
+ - Write rate: N/A (stress paused)
7453
+ - Admiral last 30 min: N/A
7454
+ - vLLM 400s: 10 (within llamacpp normal range, no errors logged)
7455
+ - GH issues: 0 open
7456
+ - Dispatch queue: harness=9 (all stale thinking_stall, addressed by v2.8.47+v2.8.48), retrieval=0 actionable, curiosity=2468 pending (402 hle_failure, 2066 unknown_term)
7457
+ - HLE: lifetime 13.5% across 809 questions (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%); burndown daemon running (PID 2412661, physics batch)
7458
+ - Action this tick: committed fix (4909542) — readonly-tool stall-retry note was saying "call write_file or search_replace NOW" (wrong for HLE) and omitting DRYDOCK_STOP_NOW_SUFFIX; fixed to say "respond in text with analysis/best answer" and append the FINAL ANSWER suffix; consumed curiosity:87cf3274e4ba6912