drydock-cli 2.7.41__tar.gz → 2.7.43__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (745) hide show
  1. drydock_cli-2.7.43/.auto_release.lock +1 -0
  2. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.gitignore +7 -0
  3. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/DEPLOYMENT.md +54 -1
  4. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/PKG-INFO +86 -29
  5. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/README.md +85 -28
  6. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/app.py +1 -0
  7. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/pyproject.toml +1 -1
  8. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/trip_log.md +102 -0
  9. drydock_cli-2.7.41/.auto_release.lock +0 -1
  10. drydock_cli-2.7.41/.perf_baseline_done +0 -0
  11. drydock_cli-2.7.41/nohup.out +0 -38138
  12. drydock_cli-2.7.41/perf_results/baseline_1777672181.json +0 -76
  13. drydock_cli-2.7.41/perf_results/baseline_1777672218.json +0 -96
  14. drydock_cli-2.7.41/perf_results/baseline_1777672322.json +0 -112
  15. drydock_cli-2.7.41/perf_results/baseline_1777732278.json +0 -306
  16. drydock_cli-2.7.41/perf_results/baseline_1777811293.json +0 -96
  17. drydock_cli-2.7.41/perf_results/baseline_1777811401.json +0 -112
  18. drydock_cli-2.7.41/test/project/dummy +0 -32
  19. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.claude/scheduled_tasks.lock +0 -0
  20. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.github/CODEOWNERS +0 -0
  21. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
  22. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  23. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  24. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.github/workflows/build-and-upload.yml +0 -0
  25. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.github/workflows/ci.yml +0 -0
  26. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.github/workflows/issue-labeler.yml +0 -0
  27. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.github/workflows/release.yml +0 -0
  28. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.pre-commit-config.yaml +0 -0
  29. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.python-version +0 -0
  30. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.typos.toml +0 -0
  31. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.vscode/extensions.json +0 -0
  32. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.vscode/launch.json +0 -0
  33. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/.vscode/settings.json +0 -0
  34. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/AGENTS.md +0 -0
  35. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/Admiral.md +0 -0
  36. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/CHANGELOG.md +0 -0
  37. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/CLAUDE.md +0 -0
  38. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/CONTRIBUTING.md +0 -0
  39. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/HLE_PRD.md +0 -0
  40. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/JETSON_BENCH.md +0 -0
  41. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/LICENSE +0 -0
  42. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/MODEL_SHORTCOMINGS.md +0 -0
  43. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/NOTICE +0 -0
  44. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/SOVEREIGN_PRD.md +0 -0
  45. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/TRIAGE_v1.md +0 -0
  46. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/action.yml +0 -0
  47. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/README.md +0 -0
  48. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results1.tsv +0 -0
  49. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results13.tsv +0 -0
  50. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results14.tsv +0 -0
  51. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results15.tsv +0 -0
  52. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results16.tsv +0 -0
  53. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results17.tsv +0 -0
  54. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results18.tsv +0 -0
  55. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results19.tsv +0 -0
  56. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results2.tsv +0 -0
  57. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results20.tsv +0 -0
  58. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results3.tsv +0 -0
  59. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results4.tsv +0 -0
  60. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results5.tsv +0 -0
  61. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results6.tsv +0 -0
  62. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results7.tsv +0 -0
  63. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results8.tsv +0 -0
  64. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results9.tsv +0 -0
  65. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/baseline_history/results_evolved_v1.tsv +0 -0
  66. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/distribution/zed/LICENSE +0 -0
  67. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/distribution/zed/extension.toml +0 -0
  68. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/distribution/zed/icons/mistral_vibe.svg +0 -0
  69. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/docs/README.md +0 -0
  70. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/docs/acp-setup.md +0 -0
  71. {drydock_cli-2.7.41 → drydock_cli-2.7.43/docs/archive}/BASELINE_412.md +0 -0
  72. {drydock_cli-2.7.41 → drydock_cli-2.7.43/docs/archive}/Drydock_rebrand.md +0 -0
  73. {drydock_cli-2.7.41 → drydock_cli-2.7.43/docs/archive}/OVERNIGHT_PROGRESS.md +0 -0
  74. {drydock_cli-2.7.41 → drydock_cli-2.7.43/docs/archive}/OVERNIGHT_REPORT_2026_04_13.md +0 -0
  75. {drydock_cli-2.7.41 → drydock_cli-2.7.43/docs/archive}/PERF_SWEEP_PLAN.md +0 -0
  76. {drydock_cli-2.7.41 → drydock_cli-2.7.43/docs/archive}/PRD.md +0 -0
  77. {drydock_cli-2.7.41 → drydock_cli-2.7.43/docs/archive}/drydock_terms.md +0 -0
  78. {drydock_cli-2.7.41 → drydock_cli-2.7.43/docs/archive}/resume.md +0 -0
  79. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/docs/proxy-setup.md +0 -0
  80. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/__init__.py +0 -0
  81. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/__init__.py +0 -0
  82. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/acp_agent_loop.py +0 -0
  83. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/acp_logger.py +0 -0
  84. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/entrypoint.py +0 -0
  85. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/tools/__init__.py +0 -0
  86. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/tools/base.py +0 -0
  87. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/tools/builtins/bash.py +0 -0
  88. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/tools/builtins/read_file.py +0 -0
  89. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/tools/builtins/search_replace.py +0 -0
  90. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/tools/builtins/todo.py +0 -0
  91. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/tools/builtins/write_file.py +0 -0
  92. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/tools/session_update.py +0 -0
  93. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/acp/utils.py +0 -0
  94. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/__init__.py +0 -0
  95. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/detectors.py +0 -0
  96. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/detectors_proposed.py +0 -0
  97. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/history.py +0 -0
  98. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/interventions.py +0 -0
  99. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/llm_analyzer.py +0 -0
  100. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/metrics.py +0 -0
  101. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/opus_escalator.py +0 -0
  102. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/persistence.py +0 -0
  103. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/policy.py +0 -0
  104. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/proposer.py +0 -0
  105. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/stager.py +0 -0
  106. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/task_classifier.py +0 -0
  107. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/tuning.py +0 -0
  108. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/validator.py +0 -0
  109. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/admiral/worker.py +0 -0
  110. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/__init__.py +0 -0
  111. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/autocompletion/__init__.py +0 -0
  112. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/autocompletion/base.py +0 -0
  113. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/autocompletion/path_completion.py +0 -0
  114. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/autocompletion/slash_command.py +0 -0
  115. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/cli.py +0 -0
  116. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/clipboard.py +0 -0
  117. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/commands.py +0 -0
  118. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/entrypoint.py +0 -0
  119. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/history_manager.py +0 -0
  120. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
  121. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
  122. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
  123. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/terminal_setup.py +0 -0
  124. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/__init__.py +0 -0
  125. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
  126. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/app.tcss +0 -0
  127. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/external_editor.py +0 -0
  128. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
  129. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
  130. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
  131. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
  132. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
  133. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
  134. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
  135. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
  136. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
  137. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
  138. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
  139. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
  140. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
  141. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
  142. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
  143. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
  144. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
  145. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
  146. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/checkpoint_picker.py +0 -0
  147. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/compact.py +0 -0
  148. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
  149. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
  150. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
  151. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/loading.py +0 -0
  152. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/messages.py +0 -0
  153. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
  154. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
  155. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
  156. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
  157. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
  158. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
  159. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
  160. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
  161. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
  162. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/tools.py +0 -0
  163. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
  164. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
  165. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/windowing/history.py +0 -0
  166. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
  167. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/textual_ui/windowing/state.py +0 -0
  168. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/update_notifier/__init__.py +0 -0
  169. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
  170. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
  171. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
  172. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
  173. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
  174. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/update_notifier/update.py +0 -0
  175. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/cli/update_notifier/whats_new.py +0 -0
  176. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/__init__.py +0 -0
  177. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/agent_loop.py +0 -0
  178. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/agents/__init__.py +0 -0
  179. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/agents/manager.py +0 -0
  180. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/agents/models.py +0 -0
  181. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/auth/__init__.py +0 -0
  182. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/auth/crypto.py +0 -0
  183. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/auth/github.py +0 -0
  184. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/autocompletion/__init__.py +0 -0
  185. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/autocompletion/completers.py +0 -0
  186. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
  187. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
  188. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
  189. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/autocompletion/file_indexer/store.py +0 -0
  190. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
  191. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/autocompletion/fuzzy.py +0 -0
  192. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/autocompletion/path_prompt.py +0 -0
  193. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
  194. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/build_orchestrator.py +0 -0
  195. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/checkpoint.py +0 -0
  196. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/classifier/__init__.py +0 -0
  197. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/classifier/__main__.py +0 -0
  198. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/classifier/classifier.py +0 -0
  199. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/classifier/dispatcher.py +0 -0
  200. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/classifier/rules.py +0 -0
  201. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/classifier/signal.py +0 -0
  202. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/config/__init__.py +0 -0
  203. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/config/_settings.py +0 -0
  204. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/config/doctor.py +0 -0
  205. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/config/harness_files/__init__.py +0 -0
  206. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/config/harness_files/_harness_manager.py +0 -0
  207. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/config/harness_files/_paths.py +0 -0
  208. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/config/local_detect.py +0 -0
  209. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/consultant.py +0 -0
  210. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/context_recovery.py +0 -0
  211. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/drydock_states.py +0 -0
  212. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/hooks.py +0 -0
  213. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/__init__.py +0 -0
  214. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/backend/anthropic.py +0 -0
  215. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/backend/base.py +0 -0
  216. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/backend/factory.py +0 -0
  217. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/backend/generic.py +0 -0
  218. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/backend/mistral.py +0 -0
  219. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
  220. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/backend/vertex.py +0 -0
  221. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/exceptions.py +0 -0
  222. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/format.py +0 -0
  223. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/message_utils.py +0 -0
  224. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/llm/types.py +0 -0
  225. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/logger.py +0 -0
  226. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/middleware.py +0 -0
  227. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/output_formatters.py +0 -0
  228. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/paths/__init__.py +0 -0
  229. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/paths/_drydock_home.py +0 -0
  230. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/paths/_local_config_walk.py +0 -0
  231. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/paths/conventions.py +0 -0
  232. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/plan_session.py +0 -0
  233. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/plugins.py +0 -0
  234. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/programmatic.py +0 -0
  235. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/prompts/__init__.py +0 -0
  236. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/prompts/builder.md +0 -0
  237. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/prompts/cli.md +0 -0
  238. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/prompts/compact.md +0 -0
  239. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/prompts/dangerous_directory.md +0 -0
  240. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/prompts/diagnostic.md +0 -0
  241. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/prompts/explore.md +0 -0
  242. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/prompts/gemma4.md +0 -0
  243. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/prompts/planner.md +0 -0
  244. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/prompts/project_context.md +0 -0
  245. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/prompts/tests.md +0 -0
  246. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/proxy_setup.py +0 -0
  247. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/session/agent_memory.py +0 -0
  248. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/session/checkpoints.py +0 -0
  249. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/session/session_loader.py +0 -0
  250. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/session/session_logger.py +0 -0
  251. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/session/session_migration.py +0 -0
  252. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/session/state_file.py +0 -0
  253. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/session_checker.py +0 -0
  254. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/skills/__init__.py +0 -0
  255. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/skills/manager.py +0 -0
  256. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/skills/models.py +0 -0
  257. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/skills/parser.py +0 -0
  258. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/slug.py +0 -0
  259. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/steering_hook.py +0 -0
  260. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/system_prompt.py +0 -0
  261. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/telemetry/__init__.py +0 -0
  262. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/telemetry/send.py +0 -0
  263. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/teleport/errors.py +0 -0
  264. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/teleport/git.py +0 -0
  265. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/teleport/nuage.py +0 -0
  266. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/teleport/teleport.py +0 -0
  267. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/teleport/types.py +0 -0
  268. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/base.py +0 -0
  269. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/_task_manager.py +0 -0
  270. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/ask_user_question.py +0 -0
  271. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/bash.py +0 -0
  272. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/cron.py +0 -0
  273. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
  274. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/glob_tool.py +0 -0
  275. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/grep.py +0 -0
  276. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/invoke_skill.py +0 -0
  277. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/lsp.py +0 -0
  278. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/mcp_resources.py +0 -0
  279. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/notebook_edit.py +0 -0
  280. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/powershell.py +0 -0
  281. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
  282. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
  283. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/bash.md +0 -0
  284. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/cron.md +0 -0
  285. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/glob.md +0 -0
  286. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/grep.md +0 -0
  287. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
  288. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
  289. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
  290. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
  291. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
  292. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
  293. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/retrieve.md +0 -0
  294. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
  295. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
  296. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/task.md +0 -0
  297. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
  298. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/todo.md +0 -0
  299. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
  300. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
  301. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
  302. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
  303. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
  304. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/read_file.py +0 -0
  305. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/retrieve.py +0 -0
  306. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/search_replace.py +0 -0
  307. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/task.py +0 -0
  308. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/todo.py +0 -0
  309. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/tool_search.py +0 -0
  310. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/webfetch.py +0 -0
  311. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/websearch.py +0 -0
  312. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/worktree.py +0 -0
  313. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/builtins/write_file.py +0 -0
  314. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/injection_guard.py +0 -0
  315. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/manager.py +0 -0
  316. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/mcp/__init__.py +0 -0
  317. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/mcp/registry.py +0 -0
  318. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/mcp/tools.py +0 -0
  319. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/mcp_sampling.py +0 -0
  320. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/ui.py +0 -0
  321. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/tools/utils.py +0 -0
  322. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/trusted_folders.py +0 -0
  323. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/types.py +0 -0
  324. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/core/utils.py +0 -0
  325. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/graphrag/__init__.py +0 -0
  326. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/graphrag/__main__.py +0 -0
  327. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/graphrag/code_indexer.py +0 -0
  328. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/graphrag/retriever.py +0 -0
  329. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/graphrag/storage.py +0 -0
  330. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/graphrag/text_indexer.py +0 -0
  331. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/setup/onboarding/__init__.py +0 -0
  332. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/setup/onboarding/base.py +0 -0
  333. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/setup/onboarding/onboarding.tcss +0 -0
  334. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/setup/onboarding/screens/__init__.py +0 -0
  335. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/setup/onboarding/screens/api_key.py +0 -0
  336. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/setup/onboarding/screens/choice.py +0 -0
  337. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/setup/onboarding/screens/local_model.py +0 -0
  338. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/setup/onboarding/screens/welcome.py +0 -0
  339. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
  340. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
  341. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/__init__.py +0 -0
  342. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/api-design/SKILL.md +0 -0
  343. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/audit-tests/SKILL.md +0 -0
  344. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/batch/SKILL.md +0 -0
  345. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/commit-code/SKILL.md +0 -0
  346. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/context-summary/SKILL.md +0 -0
  347. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/create-presentation/SKILL.md +0 -0
  348. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/deep-research/SKILL.md +0 -0
  349. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/deploy/SKILL.md +0 -0
  350. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/diff-review/SKILL.md +0 -0
  351. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/doc-gen/SKILL.md +0 -0
  352. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/explain-code/SKILL.md +0 -0
  353. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/explore-code/SKILL.md +0 -0
  354. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/fix-issue/SKILL.md +0 -0
  355. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/git-ops/SKILL.md +0 -0
  356. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/init-project/SKILL.md +0 -0
  357. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/investigate/SKILL.md +0 -0
  358. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/loop/SKILL.md +0 -0
  359. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/migrate/SKILL.md +0 -0
  360. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/perf-analyze/SKILL.md +0 -0
  361. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/plan-impl/SKILL.md +0 -0
  362. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/pr-review/SKILL.md +0 -0
  363. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/refactor/SKILL.md +0 -0
  364. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/regex-help/SKILL.md +0 -0
  365. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/review/SKILL.md +0 -0
  366. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/security-review/SKILL.md +0 -0
  367. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/ship/SKILL.md +0 -0
  368. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/simplify/SKILL.md +0 -0
  369. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/strong-tests/SKILL.md +0 -0
  370. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/skills/test-verify/SKILL.md +0 -0
  371. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/steering/__init__.py +0 -0
  372. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/steering/__main__.py +0 -0
  373. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/steering/applier.py +0 -0
  374. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/steering/config.py +0 -0
  375. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/steering/registry.py +0 -0
  376. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/steering/sandbox.py +0 -0
  377. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/steering/vectors.py +0 -0
  378. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock/whats_new.md +0 -0
  379. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/drydock-acp.spec +0 -0
  380. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/flake.lock +0 -0
  381. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/flake.nix +0 -0
  382. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/research/README.md +0 -0
  383. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/research/config_base.toml +0 -0
  384. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/research/config_best.toml +0 -0
  385. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/research/domain_spec.md +0 -0
  386. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/research/experimenter.py +0 -0
  387. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/research/kernel.py +0 -0
  388. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/research/mini_prd.md +0 -0
  389. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/research/mini_prompts.txt +0 -0
  390. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/research/proposer.py +0 -0
  391. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/research/results.tsv +0 -0
  392. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/README.md +0 -0
  393. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/admiral_probe.py +0 -0
  394. {drydock_cli-2.7.41/scripts → drydock_cli-2.7.43/scripts/archive}/auto_test_loop.sh +0 -0
  395. {drydock_cli-2.7.41/scripts → drydock_cli-2.7.43/scripts/archive}/monitor_test_battery.sh +0 -0
  396. {drydock_cli-2.7.41/scripts → drydock_cli-2.7.43/scripts/archive}/overnight_agents_test.sh +0 -0
  397. {drydock_cli-2.7.41/scripts → drydock_cli-2.7.43/scripts/archive}/test_bank.sh +0 -0
  398. {drydock_cli-2.7.41/scripts → drydock_cli-2.7.43/scripts/archive}/test_full.sh +0 -0
  399. {drydock_cli-2.7.41/scripts → drydock_cli-2.7.43/scripts/archive}/test_smoke.sh +0 -0
  400. {drydock_cli-2.7.41/scripts → drydock_cli-2.7.43/scripts/archive}/tui_test.py +0 -0
  401. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/audit_sampler.py +0 -0
  402. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/auto_generate_tests.py +0 -0
  403. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/auto_release.sh +0 -0
  404. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/autonomous_review.sh +0 -0
  405. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/autonomous_review_prompt.md +0 -0
  406. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/backup.sh +0 -0
  407. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/bump_version.py +0 -0
  408. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/classify_pulse.sh +0 -0
  409. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/comprehensive_loop.py +0 -0
  410. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/consume_retrieval_queue.py +0 -0
  411. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/deploy_to_github.sh +0 -0
  412. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/discover_cli_tools.sh +0 -0
  413. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/evolve_tests.py +0 -0
  414. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/gen_2000_prompts.py +0 -0
  415. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/hle_eval.py +0 -0
  416. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/hle_eval_seed.jsonl +0 -0
  417. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/install.sh +0 -0
  418. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/llm_balancer.py +0 -0
  419. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/mega_loop.py +0 -0
  420. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/meta_ralph_loop.py +0 -0
  421. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/monitor_swebench.sh +0 -0
  422. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/notify_release.py +0 -0
  423. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/oss_task_harness.py +0 -0
  424. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/perf_baseline_when_idle.sh +0 -0
  425. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/perf_sweep.py +0 -0
  426. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/poll_issues.sh +0 -0
  427. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/port_task.py +0 -0
  428. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/prepare_release.py +0 -0
  429. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/publish_to_pypi.sh +0 -0
  430. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/queue_top.py +0 -0
  431. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/ralph_loop.py +0 -0
  432. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/research_babysitter.sh +0 -0
  433. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/session_loop_audit.py +0 -0
  434. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/shakedown.py +0 -0
  435. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/shakedown_interactive.py +0 -0
  436. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/shakedown_regression.sh +0 -0
  437. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/shakedown_suite.sh +0 -0
  438. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/shakedown_variance.sh +0 -0
  439. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/stress_babysitter.sh +0 -0
  440. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/stress_prompts_50.txt +0 -0
  441. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/stress_prompts_realuser.txt +0 -0
  442. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/stress_prompts_tool_agent.txt +0 -0
  443. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/stress_prompts_tool_agent_2000.txt +0 -0
  444. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/stress_shakedown.py +0 -0
  445. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/stress_telegram_status.py +0 -0
  446. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/stress_watcher.py +0 -0
  447. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/telegram_bot.py +0 -0
  448. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/test_tui_path.py +0 -0
  449. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/scripts/vllm_failover.sh +0 -0
  450. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/__init__.py +0 -0
  451. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/conftest.py +0 -0
  452. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_acp.py +0 -0
  453. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_agent_thought.py +0 -0
  454. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_bash.py +0 -0
  455. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_compact_session_updates.py +0 -0
  456. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_content.py +0 -0
  457. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_initialize.py +0 -0
  458. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_list_sessions.py +0 -0
  459. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_load_session.py +0 -0
  460. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_multi_session.py +0 -0
  461. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_new_session.py +0 -0
  462. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_proxy_setup_acp.py +0 -0
  463. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_read_file.py +0 -0
  464. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_search_replace.py +0 -0
  465. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_set_config_option.py +0 -0
  466. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_set_mode.py +0 -0
  467. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_set_model.py +0 -0
  468. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_tool_call_session_update.py +0 -0
  469. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_utils.py +0 -0
  470. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/acp/test_write_file.py +0 -0
  471. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/autocompletion/test_file_indexer.py +0 -0
  472. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/autocompletion/test_fuzzy.py +0 -0
  473. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
  474. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/autocompletion/test_path_completer_recursive.py +0 -0
  475. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/autocompletion/test_path_completion_controller.py +0 -0
  476. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
  477. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/autocompletion/test_slash_command_controller.py +0 -0
  478. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
  479. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/backend/__init__.py +0 -0
  480. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/backend/data/__init__.py +0 -0
  481. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/backend/data/fireworks.py +0 -0
  482. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/backend/data/mistral.py +0 -0
  483. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/backend/test_anthropic_adapter.py +0 -0
  484. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/backend/test_backend.py +0 -0
  485. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/backend/test_generic_adapter_sanitize.py +0 -0
  486. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/backend/test_reasoning_adapter.py +0 -0
  487. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
  488. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
  489. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
  490. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
  491. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_bell_notifications.py +0 -0
  492. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_braille_renderer.py +0 -0
  493. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_clipboard.py +0 -0
  494. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_commands.py +0 -0
  495. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_copy_shortcuts.py +0 -0
  496. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_external_editor.py +0 -0
  497. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_no_markup_static.py +0 -0
  498. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_question_app.py +0 -0
  499. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_spinner.py +0 -0
  500. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_switching_mode.py +0 -0
  501. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_ui_clipboard_notifications.py +0 -0
  502. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
  503. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_ui_session_resume.py +0 -0
  504. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/test_ui_skill_dispatch.py +0 -0
  505. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/textual_ui/__init__.py +0 -0
  506. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/cli/textual_ui/test_session_picker.py +0 -0
  507. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/conftest.py +0 -0
  508. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_agents.py +0 -0
  509. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_auth_crypto.py +0 -0
  510. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_auth_github.py +0 -0
  511. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_circuit_breaker_count_escalation.py +0 -0
  512. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_circuit_breaker_readonly_threshold.py +0 -0
  513. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_config_load_dotenv.py +0 -0
  514. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_config_paths.py +0 -0
  515. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_config_resolution.py +0 -0
  516. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_file_logging.py +0 -0
  517. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_plan_session.py +0 -0
  518. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_proxy_setup.py +0 -0
  519. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_slug.py +0 -0
  520. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_telemetry_send.py +0 -0
  521. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_teleport_git.py +0 -0
  522. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_teleport_nuage.py +0 -0
  523. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_teleport_service.py +0 -0
  524. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_trusted_folders.py +0 -0
  525. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/core/test_utils.py +0 -0
  526. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/e2e/common.py +0 -0
  527. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/e2e/conftest.py +0 -0
  528. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/e2e/mock_server.py +0 -0
  529. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/e2e/test_cli_tui_onboarding.py +0 -0
  530. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/e2e/test_cli_tui_streaming.py +0 -0
  531. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
  532. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/fixtures/doc_qa_system_prd.md +0 -0
  533. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/mock/__init__.py +0 -0
  534. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/mock/mock_backend_factory.py +0 -0
  535. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/mock/mock_entrypoint.py +0 -0
  536. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/mock/utils.py +0 -0
  537. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/onboarding/test_run_onboarding.py +0 -0
  538. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/onboarding/test_ui_onboarding.py +0 -0
  539. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/session/test_session_loader.py +0 -0
  540. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/session/test_session_logger.py +0 -0
  541. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/session/test_session_migration.py +0 -0
  542. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/skills/conftest.py +0 -0
  543. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/skills/test_manager.py +0 -0
  544. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/skills/test_models.py +0 -0
  545. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/skills/test_parser.py +0 -0
  546. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
  547. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
  548. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
  549. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
  550. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
  551. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
  552. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
  553. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
  554. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
  555. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
  556. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
  557. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
  558. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
  559. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
  560. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
  561. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
  562. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
  563. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
  564. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
  565. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
  566. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
  567. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
  568. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
  569. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
  570. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
  571. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
  572. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
  573. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
  574. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
  575. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
  576. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
  577. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
  578. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
  579. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
  580. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
  581. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
  582. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
  583. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
  584. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
  585. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
  586. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
  587. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
  588. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
  589. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
  590. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
  591. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
  592. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
  593. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
  594. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
  595. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
  596. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
  597. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
  598. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
  599. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
  600. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
  601. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
  602. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
  603. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
  604. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
  605. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
  606. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/base_snapshot_test_app.py +0 -0
  607. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/conftest.py +0 -0
  608. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/snap_compare.py +0 -0
  609. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
  610. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
  611. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
  612. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
  613. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
  614. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
  615. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
  616. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
  617. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
  618. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
  619. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
  620. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
  621. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
  622. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
  623. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/stubs/fake_backend.py +0 -0
  624. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/stubs/fake_client.py +0 -0
  625. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/stubs/fake_tool.py +0 -0
  626. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_admiral.py +0 -0
  627. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_admiral_phase3.py +0 -0
  628. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_admiral_proposed.py +0 -0
  629. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_admiral_struggle_dedup.py +0 -0
  630. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_agent_auto_compact.py +0 -0
  631. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_agent_backend.py +0 -0
  632. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_agent_observer_streaming.py +0 -0
  633. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_agent_stats.py +0 -0
  634. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_agent_tasks.py +0 -0
  635. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_agent_tool_call.py +0 -0
  636. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_agents.py +0 -0
  637. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_bank_build.py +0 -0
  638. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_bank_debug.py +0 -0
  639. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_bank_multiagent.py +0 -0
  640. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_bank_prd.py +0 -0
  641. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_bank_prd_extended.py +0 -0
  642. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_bank_tools.py +0 -0
  643. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_bank_update.py +0 -0
  644. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_build_projects.py +0 -0
  645. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_checkpoint.py +0 -0
  646. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_classifier.py +0 -0
  647. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_cli_programmatic_preload.py +0 -0
  648. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_context_recovery.py +0 -0
  649. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_current_bugs.py +0 -0
  650. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_dispatcher.py +0 -0
  651. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_drydock_regression.py +0 -0
  652. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_drydock_tasks.py +0 -0
  653. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_fake_tool_call_paren_syntax.py +0 -0
  654. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_full_regression.py +0 -0
  655. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_graphrag.py +0 -0
  656. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_hallucinated_tool_suppression.py +0 -0
  657. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_history_manager.py +0 -0
  658. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_integration.py +0 -0
  659. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_issue_fixes.py +0 -0
  660. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_local_detect.py +0 -0
  661. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_loop_detection.py +0 -0
  662. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_message_id.py +0 -0
  663. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_message_merging.py +0 -0
  664. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_middleware.py +0 -0
  665. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_multi_agent.py +0 -0
  666. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_read_file_not_found_listing.py +0 -0
  667. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_real_failures.py +0 -0
  668. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_real_issues.py +0 -0
  669. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_real_workflow.py +0 -0
  670. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_reasoning_content.py +0 -0
  671. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_retrieval_consumer.py +0 -0
  672. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_retrieve_tool.py +0 -0
  673. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_search_replace_args_not_truncated.py +0 -0
  674. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_smoke.py +0 -0
  675. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_steering.py +0 -0
  676. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_steering_hook.py +0 -0
  677. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_system_prompt.py +0 -0
  678. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_tagged_text.py +0 -0
  679. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_task_complete_nudge.py +0 -0
  680. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_tool_args.py +0 -0
  681. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_truncate_args_valid_json.py +0 -0
  682. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_truncated_arg_path_hint.py +0 -0
  683. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_truncated_search_replace_escalation.py +0 -0
  684. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_truncated_write_escalation.py +0 -0
  685. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_ui_external_editor.py +0 -0
  686. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_ui_input_history.py +0 -0
  687. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_user_issues.py +0 -0
  688. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_wall_of_text_rescue.py +0 -0
  689. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_workloads.py +0 -0
  690. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/test_write_file_missing_path.py +0 -0
  691. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/testbank_helpers.py +0 -0
  692. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_ask_user_question.py +0 -0
  693. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_bash.py +0 -0
  694. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_bash_binary_grep_hint.py +0 -0
  695. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_bash_consec_empty_search.py +0 -0
  696. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_bash_echo_escape_loop_breaker.py +0 -0
  697. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_bash_empty_search_loop_breaker.py +0 -0
  698. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_bash_error_loop_breaker.py +0 -0
  699. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_bash_exact_cmd_loop_breaker.py +0 -0
  700. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_bash_heredoc_confirmation.py +0 -0
  701. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_bash_kill_exit1_annotation.py +0 -0
  702. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_bash_python_c_syntaxerr_loop_breaker.py +0 -0
  703. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_exit_plan_mode.py +0 -0
  704. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_grep.py +0 -0
  705. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_hallucinated_retrieval_redirect.py +0 -0
  706. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_invoke_context.py +0 -0
  707. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_manager_gemma_derived_models.py +0 -0
  708. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_manager_get_tool_config.py +0 -0
  709. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_mcp.py +0 -0
  710. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_mcp_sampling.py +0 -0
  711. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_read_file_dedup_alternating_offset.py +0 -0
  712. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_read_file_dedup_reembed.py +0 -0
  713. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_read_file_directory.py +0 -0
  714. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_read_file_limit_truncation.py +0 -0
  715. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_search_replace_append_fallback.py +0 -0
  716. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_search_replace_dir_path.py +0 -0
  717. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_search_replace_empty_content.py +0 -0
  718. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_search_replace_file_not_found.py +0 -0
  719. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_search_replace_first_failure_hint.py +0 -0
  720. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_search_replace_hard_stop.py +0 -0
  721. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_search_replace_malformed_block.py +0 -0
  722. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_search_replace_no_op_loop_breaker.py +0 -0
  723. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_search_replace_placeholder.py +0 -0
  724. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_search_replace_refused_loop_breaker.py +0 -0
  725. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_task.py +0 -0
  726. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_ui_bash_execution.py +0 -0
  727. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_webfetch.py +0 -0
  728. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_websearch.py +0 -0
  729. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_write_file_dedup_missing_imports.py +0 -0
  730. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/tools/test_write_file_missing_path_hint.py +0 -0
  731. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
  732. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
  733. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/update_notifier/test_do_update.py +0 -0
  734. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
  735. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/update_notifier/test_github_update_gateway.py +0 -0
  736. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
  737. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/update_notifier/test_ui_update_notification.py +0 -0
  738. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/update_notifier/test_update_use_case.py +0 -0
  739. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/tests/update_notifier/test_whats_new.py +0 -0
  740. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/uv.lock +0 -0
  741. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/worked_examples/README.md +0 -0
  742. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/worked_examples/cli_subcommand_dispatch.py +0 -0
  743. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/worked_examples/lookup.json +0 -0
  744. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/worked_examples/sql_parser.py +0 -0
  745. {drydock_cli-2.7.41 → drydock_cli-2.7.43}/worked_examples/tree_walking_interpreter.py +0 -0
@@ -0,0 +1 @@
1
+ 2929491
@@ -213,3 +213,10 @@ research/STOP
213
213
  # HLE eval outputs: per-run TUI logs, session symlinks, and copyrighted
214
214
  # HLE dataset content. Never commit.
215
215
  hle_results/
216
+
217
+ # Untracked development clutter that shouldn't go to PyPI
218
+ nohup.out
219
+ .perf_baseline_done
220
+ test/
221
+ perf_results/baseline_*.json
222
+ hle_results_iter/
@@ -20,7 +20,60 @@ A single 24 GB GPU can run the model with slightly reduced context.
20
20
  The AWQ quant is what makes 16 GB cards viable — non-quantized
21
21
  Gemma 4 26B needs ≥40 GB.
22
22
 
23
- ## vLLM (model server)
23
+ ## llama.cpp (recommended for tool-using workflows)
24
+
25
+ Use this stack if drydock's TUI is your primary workflow. The `--jinja`
26
+ flag is the loop-fix — without it, Gemma 4 enters infinite tool-call
27
+ retry loops on multi-turn sessions (the 400 Bad Request loop fixed
28
+ in v2.7.39, GH #14).
29
+
30
+ ```bash
31
+ # 1. Download Unsloth GGUF (Q3_K_M is the article-recommended quant;
32
+ # UD-Q4_K_M is higher quality if you have ~17GB VRAM per slot)
33
+ huggingface-cli download unsloth/gemma-4-26B-A4B-it-GGUF \
34
+ --include "gemma-4-26B-A4B-it-UD-Q3_K_M.gguf" \
35
+ --local-dir /path/to/models
36
+
37
+ # 2. Build llama.cpp with CUDA, OR use the prebuilt Docker image
38
+ # ghcr.io/ggml-org/llama.cpp:server-cuda
39
+
40
+ git clone https://github.com/ggerganov/llama.cpp.git
41
+ cd llama.cpp
42
+ cmake -B build -DGGML_CUDA=ON -DLLAMA_CURL=OFF
43
+ cmake --build build --config Release -j8 --target llama-server
44
+
45
+ # 3. Start the server (native binary)
46
+ ./build/bin/llama-server \
47
+ -m /path/to/models/gemma-4-26B-A4B-it-UD-Q3_K_M.gguf \
48
+ --host 0.0.0.0 --port 8000 \
49
+ -ngl 99 -c 32768 -np 1 \
50
+ --jinja \
51
+ -ctk q8_0 -ctv q8_0 \
52
+ --alias gemma4
53
+ ```
54
+
55
+ **Don't omit** any of these flags — they're all load-bearing:
56
+
57
+ | Flag | Why |
58
+ |---|---|
59
+ | `--jinja` | **The loop-fix.** Required for tool-using workflows. The GGUF's bundled chat template handles `tool` turns natively; without `--jinja`, tool results inject without proper turn markers and the model loops or returns empty assistants. |
60
+ | `-ngl 99` | Offload all transformer layers to GPU. Anything less than full offload tanks decode speed on this model. |
61
+ | `-c 32768` | 32K context. Fits in 16GB VRAM with q8 KV cache; raise to 65536 if you have headroom. |
62
+ | `-ctk q8_0 -ctv q8_0` | Quantize K/V cache to q8 for longer contexts. f16 is ~2× slower per token at this size. |
63
+ | `-np 1` | Single slot. Concurrent requests serialize — fine for one user, queue under load. |
64
+ | `--alias gemma4` | What the API reports as the `model` field. Match this to your config.toml's `[[models]] name`. |
65
+
66
+ **Critical client-side requirement:** temperature MUST be 1.0. Lower
67
+ temperatures reinforce tool-call loops on Q3_K_M quants. The
68
+ auto-detect path in v2.7.39+ (`local_detect.py`) bakes this in
69
+ automatically when it sees a llama.cpp endpoint at first launch.
70
+
71
+ ## vLLM (alternative — higher decode throughput)
72
+
73
+ Use this stack for batch eval / non-interactive workloads where you
74
+ need ~70 tok/s decode (vs llama.cpp's ~15–17). The drydock-side
75
+ empty-assistant filter (v2.7.39, GH #14) catches the loops vLLM is
76
+ prone to without `--jinja`.
24
77
 
25
78
  Run via Docker:
26
79
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 2.7.41
3
+ Version: 2.7.43
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
@@ -73,30 +73,99 @@ Description-Content-Type: text/markdown
73
73
  DryDock is a TUI coding assistant designed to work with **local LLMs**. It provides a conversational interface to your codebase — explore, modify, build, and test projects through natural language and a powerful set of tools.
74
74
 
75
75
  > [!IMPORTANT]
76
- > DryDock is tested and optimized for **Gemma 4 26B-A4B** (26B MoE, 4B active parameters) served via vLLM. Other models and providers are supported (Mistral, OpenAI, Anthropic, Ollama) but are not as thoroughly tested. If you use a different model, expect to tune prompts and tool settings.
76
+ > DryDock is tested and optimized for **Gemma 4 26B-A4B** (26B MoE, 4B active parameters). **Recommended serving stack: llama.cpp** with `--jinja` (the chat-template fix that prevents the tool-call loops Gemma 4 hits under other backends). vLLM is also documented below as a higher-throughput alternative for batch/eval workloads. Other models and providers are supported (Mistral, OpenAI, Anthropic, Ollama) but are not as thoroughly tested. If you use a different model, expect to tune prompts and tool settings.
77
77
 
78
78
  ## Tested Hardware + Model
79
79
 
80
80
  | Component | Spec |
81
81
  |-----------|------|
82
- | GPUs | 2x NVIDIA RTX 4060 Ti 16GB |
83
- | Model | [Gemma-4-26B-A4B-it-AWQ-4bit](https://huggingface.co/casperhansen/gemma-4-26b-a4b-it-AWQ-4bit) |
84
- | Serving | vLLM (Docker image `vllm/vllm-openai:gemma4`) |
85
- | Performance | ~70 tok/s, 131K context, 0% timeouts |
82
+ | GPUs | NVIDIA RTX 4060 Ti 16GB |
83
+ | Model (llama.cpp, recommended) | [unsloth/gemma-4-26B-A4B-it-GGUF](https://huggingface.co/unsloth/gemma-4-26B-A4B-it-GGUF) — UD-Q3_K_M (12.7GB) or UD-Q4_K_M (16.9GB) |
84
+ | Model (vLLM, alternative) | [casperhansen/gemma-4-26b-a4b-it-AWQ-4bit](https://huggingface.co/casperhansen/gemma-4-26b-a4b-it-AWQ-4bit) |
85
+ | Performance | ~15–17 tok/s decode (llama.cpp Q3), ~70 tok/s decode (vLLM AWQ) |
86
86
  | Active params | 4B per token (MoE architecture — fast inference) |
87
87
 
88
- ### Install the model
88
+ ### Recommended path: llama.cpp + Unsloth GGUF
89
+
90
+ **Why this is the recommended setup:** Gemma 4's tool-calling format
91
+ requires precise chat-template handling. Without `--jinja`, `tool` results
92
+ get injected without the right turn markers and the model loops or
93
+ returns empty assistant messages — the exact 400 Bad Request loop
94
+ fixed in v2.7.39 (GH #14). With `--jinja`, the GGUF's bundled chat
95
+ template handles tool turns natively and the loops disappear.
89
96
 
90
97
  ```bash
91
- # Download the model weights (requires HuggingFace access)
92
- pip install huggingface-hub
93
- huggingface-cli download casperhansen/gemma-4-26b-a4b-it-AWQ-4bit \
94
- --local-dir /path/to/models/Gemma-4-26B-A4B-it-AWQ-4bit
98
+ # 1. Download Unsloth's GGUF (Q3_K_M is the article-recommended quant;
99
+ # UD-Q4_K_M is a higher-quality alternative if you have ~17GB VRAM)
100
+ huggingface-cli download unsloth/gemma-4-26B-A4B-it-GGUF \
101
+ --include "gemma-4-26B-A4B-it-UD-Q3_K_M.gguf" \
102
+ --local-dir /path/to/models
103
+
104
+ # 2. Build llama.cpp with CUDA (or use the Docker image
105
+ # ghcr.io/ggml-org/llama.cpp:server-cuda)
106
+ git clone https://github.com/ggerganov/llama.cpp.git
107
+ cd llama.cpp
108
+ cmake -B build -DGGML_CUDA=ON -DLLAMA_CURL=OFF
109
+ cmake --build build --config Release -j8 --target llama-server
110
+
111
+ # 3. Start the server with the article recipe
112
+ ./build/bin/llama-server \
113
+ -m /path/to/models/gemma-4-26B-A4B-it-UD-Q3_K_M.gguf \
114
+ --host 0.0.0.0 --port 8000 \
115
+ -ngl 99 -c 32768 -np 1 \
116
+ --jinja \
117
+ -ctk q8_0 -ctv q8_0 \
118
+ --alias gemma4
119
+ ```
120
+
121
+ **Critical flags:**
122
+ - `--jinja` — **the loop-fix.** Required for tool-using workflows. Without it, Gemma 4 enters infinite retry loops on multi-turn tool sessions.
123
+ - `-ngl 99` — offload all layers to GPU
124
+ - `-c 32768` — 32K context (fits in 16GB VRAM with q8 KV cache)
125
+ - `-ctk q8_0 -ctv q8_0` — quantize KV cache for longer contexts
126
+ - `-np 1` — single slot (concurrent requests serialize)
127
+ - `--alias gemma4` — what the API reports as the `model` field
128
+
129
+ **Drydock config** (`~/.drydock/config.toml`):
130
+
131
+ ```toml
132
+ active_model = "gemma4"
133
+
134
+ [[providers]]
135
+ name = "local"
136
+ api_base = "http://localhost:8000/v1"
137
+ api_key_env_var = ""
138
+ backend = "generic"
139
+
140
+ [[models]]
141
+ name = "gemma4"
142
+ provider = "local"
143
+ alias = "gemma4"
144
+ temperature = 1.0 # MUST be 1.0 with --jinja — lower temps reinforce loops
145
+
146
+ # Article-recommended sampling (passed through extra_sampling to llama-server).
147
+ # Drydock auto-bakes these on first launch when llama.cpp is detected at
148
+ # 127.0.0.1:8080 / :8000, but you can override here.
149
+ [models.extra_params]
150
+ top_k = 40
151
+ top_p = 0.95
152
+ frequency_penalty = 1.1
153
+ max_tokens = 2048
95
154
  ```
96
155
 
97
- ### Start vLLM
156
+ ### Alternative: vLLM (higher throughput, no `--jinja` equivalent)
157
+
158
+ vLLM has its own `--tool-call-parser gemma4` path that works for most
159
+ workflows, but has been observed to enter tool-call loops on long
160
+ multi-turn sessions (GH #14, fixed at the drydock side in v2.7.39 by
161
+ filtering empty assistant messages before re-call). Use vLLM when you
162
+ need higher decode throughput (~70 tok/s vs llama.cpp's ~15–17) for
163
+ batch eval or non-interactive workloads where loop-fix matters less.
98
164
 
99
165
  ```bash
166
+ huggingface-cli download casperhansen/gemma-4-26b-a4b-it-AWQ-4bit \
167
+ --local-dir /path/to/models/Gemma-4-26B-A4B-it-AWQ-4bit
168
+
100
169
  docker run -d \
101
170
  --gpus all \
102
171
  --name gemma4 \
@@ -121,29 +190,17 @@ docker run -d \
121
190
  Key flags:
122
191
  - `--tensor-parallel-size 2` — split across 2 GPUs
123
192
  - `--kv-cache-dtype fp8` — reduce KV cache memory for longer contexts
124
- - `--tool-call-parser gemma4` + `--enable-auto-tool-choice` — required for Gemma 4 tool calling
193
+ - `--tool-call-parser gemma4` + `--enable-auto-tool-choice` — required for Gemma 4 tool calling under vLLM
125
194
  - `--max-num-seqs 2` — limit concurrent requests (prevents OOM on 16GB GPUs)
126
195
 
127
- Verify the model is running:
196
+ Verify either backend is running:
128
197
  ```bash
129
198
  curl http://localhost:8000/v1/models
130
199
  ```
131
200
 
132
- ### Configure DryDock
133
-
134
- ```toml
135
- # ~/.drydock/config.toml
136
- [models.gemma4]
137
- name = "gemma4"
138
- provider = "generic-openai"
139
- alias = "gemma4"
140
- temperature = 0.2
141
- thinking = "high"
142
-
143
- [providers.generic-openai]
144
- api_base = "http://localhost:8000/v1"
145
- api_style = "openai"
146
- ```
201
+ For vLLM, drydock config is the same as the llama.cpp block above,
202
+ except `temperature = 0.2` is fine — the `--jinja` requirement only
203
+ applies to llama.cpp.
147
204
 
148
205
  ## Install
149
206
 
@@ -17,30 +17,99 @@
17
17
  DryDock is a TUI coding assistant designed to work with **local LLMs**. It provides a conversational interface to your codebase — explore, modify, build, and test projects through natural language and a powerful set of tools.
18
18
 
19
19
  > [!IMPORTANT]
20
- > DryDock is tested and optimized for **Gemma 4 26B-A4B** (26B MoE, 4B active parameters) served via vLLM. Other models and providers are supported (Mistral, OpenAI, Anthropic, Ollama) but are not as thoroughly tested. If you use a different model, expect to tune prompts and tool settings.
20
+ > DryDock is tested and optimized for **Gemma 4 26B-A4B** (26B MoE, 4B active parameters). **Recommended serving stack: llama.cpp** with `--jinja` (the chat-template fix that prevents the tool-call loops Gemma 4 hits under other backends). vLLM is also documented below as a higher-throughput alternative for batch/eval workloads. Other models and providers are supported (Mistral, OpenAI, Anthropic, Ollama) but are not as thoroughly tested. If you use a different model, expect to tune prompts and tool settings.
21
21
 
22
22
  ## Tested Hardware + Model
23
23
 
24
24
  | Component | Spec |
25
25
  |-----------|------|
26
- | GPUs | 2x NVIDIA RTX 4060 Ti 16GB |
27
- | Model | [Gemma-4-26B-A4B-it-AWQ-4bit](https://huggingface.co/casperhansen/gemma-4-26b-a4b-it-AWQ-4bit) |
28
- | Serving | vLLM (Docker image `vllm/vllm-openai:gemma4`) |
29
- | Performance | ~70 tok/s, 131K context, 0% timeouts |
26
+ | GPUs | NVIDIA RTX 4060 Ti 16GB |
27
+ | Model (llama.cpp, recommended) | [unsloth/gemma-4-26B-A4B-it-GGUF](https://huggingface.co/unsloth/gemma-4-26B-A4B-it-GGUF) — UD-Q3_K_M (12.7GB) or UD-Q4_K_M (16.9GB) |
28
+ | Model (vLLM, alternative) | [casperhansen/gemma-4-26b-a4b-it-AWQ-4bit](https://huggingface.co/casperhansen/gemma-4-26b-a4b-it-AWQ-4bit) |
29
+ | Performance | ~15–17 tok/s decode (llama.cpp Q3), ~70 tok/s decode (vLLM AWQ) |
30
30
  | Active params | 4B per token (MoE architecture — fast inference) |
31
31
 
32
- ### Install the model
32
+ ### Recommended path: llama.cpp + Unsloth GGUF
33
+
34
+ **Why this is the recommended setup:** Gemma 4's tool-calling format
35
+ requires precise chat-template handling. Without `--jinja`, `tool` results
36
+ get injected without the right turn markers and the model loops or
37
+ returns empty assistant messages — the exact 400 Bad Request loop
38
+ fixed in v2.7.39 (GH #14). With `--jinja`, the GGUF's bundled chat
39
+ template handles tool turns natively and the loops disappear.
33
40
 
34
41
  ```bash
35
- # Download the model weights (requires HuggingFace access)
36
- pip install huggingface-hub
37
- huggingface-cli download casperhansen/gemma-4-26b-a4b-it-AWQ-4bit \
38
- --local-dir /path/to/models/Gemma-4-26B-A4B-it-AWQ-4bit
42
+ # 1. Download Unsloth's GGUF (Q3_K_M is the article-recommended quant;
43
+ # UD-Q4_K_M is a higher-quality alternative if you have ~17GB VRAM)
44
+ huggingface-cli download unsloth/gemma-4-26B-A4B-it-GGUF \
45
+ --include "gemma-4-26B-A4B-it-UD-Q3_K_M.gguf" \
46
+ --local-dir /path/to/models
47
+
48
+ # 2. Build llama.cpp with CUDA (or use the Docker image
49
+ # ghcr.io/ggml-org/llama.cpp:server-cuda)
50
+ git clone https://github.com/ggerganov/llama.cpp.git
51
+ cd llama.cpp
52
+ cmake -B build -DGGML_CUDA=ON -DLLAMA_CURL=OFF
53
+ cmake --build build --config Release -j8 --target llama-server
54
+
55
+ # 3. Start the server with the article recipe
56
+ ./build/bin/llama-server \
57
+ -m /path/to/models/gemma-4-26B-A4B-it-UD-Q3_K_M.gguf \
58
+ --host 0.0.0.0 --port 8000 \
59
+ -ngl 99 -c 32768 -np 1 \
60
+ --jinja \
61
+ -ctk q8_0 -ctv q8_0 \
62
+ --alias gemma4
63
+ ```
64
+
65
+ **Critical flags:**
66
+ - `--jinja` — **the loop-fix.** Required for tool-using workflows. Without it, Gemma 4 enters infinite retry loops on multi-turn tool sessions.
67
+ - `-ngl 99` — offload all layers to GPU
68
+ - `-c 32768` — 32K context (fits in 16GB VRAM with q8 KV cache)
69
+ - `-ctk q8_0 -ctv q8_0` — quantize KV cache for longer contexts
70
+ - `-np 1` — single slot (concurrent requests serialize)
71
+ - `--alias gemma4` — what the API reports as the `model` field
72
+
73
+ **Drydock config** (`~/.drydock/config.toml`):
74
+
75
+ ```toml
76
+ active_model = "gemma4"
77
+
78
+ [[providers]]
79
+ name = "local"
80
+ api_base = "http://localhost:8000/v1"
81
+ api_key_env_var = ""
82
+ backend = "generic"
83
+
84
+ [[models]]
85
+ name = "gemma4"
86
+ provider = "local"
87
+ alias = "gemma4"
88
+ temperature = 1.0 # MUST be 1.0 with --jinja — lower temps reinforce loops
89
+
90
+ # Article-recommended sampling (passed through extra_sampling to llama-server).
91
+ # Drydock auto-bakes these on first launch when llama.cpp is detected at
92
+ # 127.0.0.1:8080 / :8000, but you can override here.
93
+ [models.extra_params]
94
+ top_k = 40
95
+ top_p = 0.95
96
+ frequency_penalty = 1.1
97
+ max_tokens = 2048
39
98
  ```
40
99
 
41
- ### Start vLLM
100
+ ### Alternative: vLLM (higher throughput, no `--jinja` equivalent)
101
+
102
+ vLLM has its own `--tool-call-parser gemma4` path that works for most
103
+ workflows, but has been observed to enter tool-call loops on long
104
+ multi-turn sessions (GH #14, fixed at the drydock side in v2.7.39 by
105
+ filtering empty assistant messages before re-call). Use vLLM when you
106
+ need higher decode throughput (~70 tok/s vs llama.cpp's ~15–17) for
107
+ batch eval or non-interactive workloads where loop-fix matters less.
42
108
 
43
109
  ```bash
110
+ huggingface-cli download casperhansen/gemma-4-26b-a4b-it-AWQ-4bit \
111
+ --local-dir /path/to/models/Gemma-4-26B-A4B-it-AWQ-4bit
112
+
44
113
  docker run -d \
45
114
  --gpus all \
46
115
  --name gemma4 \
@@ -65,29 +134,17 @@ docker run -d \
65
134
  Key flags:
66
135
  - `--tensor-parallel-size 2` — split across 2 GPUs
67
136
  - `--kv-cache-dtype fp8` — reduce KV cache memory for longer contexts
68
- - `--tool-call-parser gemma4` + `--enable-auto-tool-choice` — required for Gemma 4 tool calling
137
+ - `--tool-call-parser gemma4` + `--enable-auto-tool-choice` — required for Gemma 4 tool calling under vLLM
69
138
  - `--max-num-seqs 2` — limit concurrent requests (prevents OOM on 16GB GPUs)
70
139
 
71
- Verify the model is running:
140
+ Verify either backend is running:
72
141
  ```bash
73
142
  curl http://localhost:8000/v1/models
74
143
  ```
75
144
 
76
- ### Configure DryDock
77
-
78
- ```toml
79
- # ~/.drydock/config.toml
80
- [models.gemma4]
81
- name = "gemma4"
82
- provider = "generic-openai"
83
- alias = "gemma4"
84
- temperature = 0.2
85
- thinking = "high"
86
-
87
- [providers.generic-openai]
88
- api_base = "http://localhost:8000/v1"
89
- api_style = "openai"
90
- ```
145
+ For vLLM, drydock config is the same as the llama.cpp block above,
146
+ except `temperature = 0.2` is fine — the `--jinja` requirement only
147
+ applies to llama.cpp.
91
148
 
92
149
  ## Install
93
150
 
@@ -847,6 +847,7 @@ class DrydockApp(App): # noqa: PLR0904
847
847
  await self.event_handler.finalize_streaming()
848
848
  await self._refresh_windowing_from_history()
849
849
  self._terminal_notifier.notify(NotificationContext.COMPLETE)
850
+ self.call_after_refresh(self._focus_current_bottom_app)
850
851
 
851
852
  # Process queued messages from user input during agent execution
852
853
  if hasattr(self, "_pending_messages") and self._pending_messages:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "drydock-cli"
3
- version = "2.7.41"
3
+ version = "2.7.43"
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"
@@ -3,6 +3,43 @@
3
3
  Autonomous Claude Code review ticks while the user is away. Each tick appended
4
4
  chronologically. Cron-driven every 30 min from `/data3/drydock/scripts/autonomous_review.sh`.
5
5
 
6
+ ## 2026-05-05 13:00 UTC tick
7
+ - Stress: 380/1658 (PID 2755890 alive, ~17h elapsed); write rate 48% last 100 prompts, 36% overall (84 SKIPs all "TUI did not accept after 3 retries"; SKIPs cluster after TUI recycles — harness-side timing, not a drydock bug); RECYCLE-TUI fires frequently but stress progresses
8
+ - vLLM 400s: 0 last 30 min (recovered from 10:30 regression); gemma4 Docker healthy; balancer PID 2462362 on :8001 healthy; 0 open GH issues
9
+ - Dispatch queue: harness=37077 entries; top last 200: thinking_stall 148, search_replace:not_found_loop 28, bash_generic 14, hallucinated_name 6 — all addressed by commits in v2.7.40–v2.7.42; retrieval=74 (0 actionable — all already ingested)
10
+ - Investigated: lower write rate vs prior run (36% vs 74%) traced to shorter prompts (sha1 hash, sin, cos etc.) getting text-only model responses + session resets resetting context; not a drydock source bug; TUI focus restoration code confirmed present in _handle_agent_loop_turn finally block
11
+ - Action this tick: no fix committed — all patterns addressed by recent commits; stress alive and progressing; retrieval drain ran (0 new ingests)
12
+
13
+ ## 2026-05-05 12:00 UTC tick
14
+ - Stress: 366/1658 (PID 2755890 alive, ~16h elapsed); write rate 46% last 100 prompts (prompts 265-366 are all "Add a --XXX CLI flag" — low write rate reflects model treating flag infrastructure as already done); SKIP rate 88/366 = 24% total, improving (5 SKIPs in current 350-399 window vs 25 in 300-349 peak)
15
+ - vLLM 400s: 0 last 30 min (recovered from 69/30min regression noted at 10:30); gemma4 Docker healthy; balancer PID 2462362 on :8001 healthy (resume.md had stale PID 1230765); admiral_probe PID 4075121 on :8878 healthy
16
+ - GH issues: 0 open
17
+ - Dispatch queue: harness=36547 (today: thinking_stall 4459, search_replace:not_found 486, bash_generic 384, hallucinated_name 106, heredoc_loop 58, dedup 58 — all addressed by commits in last 24h); retrieval=74 (0 actionable)
18
+ - Current session active (PID 2915395): model in read_file loop (8+ identical reads after search_replace returned ALREADY CORRECT) — advisory NOTE fires at count 5, Gemma 4 ignoring per known limitation; harness will RECYCLE-TUI if session stalls; no drydock source change warranted
19
+ - Action this tick: no fix committed — all patterns addressed by v2.7.42 and prior; vLLM 400s self-resolved; stress alive and progressing; retrieval drain ran (0 new ingests)
20
+
21
+ ## 2026-05-05 10:30 UTC tick
22
+ - Stress: 357/1658 (PID 2755890 alive, 15h27m elapsed); write rate 45% last 100; SKIP rate 75/357 (21%), 38 SKIPs in last ~200 prompts — v2.7.42 input-focus fix deployed but SKIPs persist; 67 RECYCLE-TUI events
23
+ - vLLM 400s: 69 in last 30 min, 298 in last 2h — REGRESSION; error is JSONDecodeError at char 11 ("Unterminated string") in request body; emergency compaction handles the 400s but degrades write rate; balancer at :8001 healthy (PID 2462362), secondary backend 192.168.50.21:8000 returns llama.cpp format (incompatible) causing every failover to 500
24
+ - GH issues: 0 open
25
+ - Dispatch queue: harness=36,266 (top patterns last 24h: thinking_stall 10,613; bash_generic 1,448; search_replace:not_found 1,127; hallucinated_name 309; all have prior commits); retrieval=74 (0 actionable — all already ingested)
26
+ - Action this tick: no fix committed — vLLM 400 regression investigated but root cause unclear (JSONDecodeError at exactly char 11 in every case suggests systematic issue, possibly Content-Length truncation or special char escaping); retrieval drain ran (0 new ingests); stress alive and progressing; will continue monitoring next tick.
27
+
28
+ ## 2026-05-05 08:40 UTC tick
29
+ - Stress: 350/1658 (PID 2755890 alive, 14h58m elapsed); write rate 44% last 100; SKIP rate elevated — 73/350 total (21%), spike at prompts 300-349 (54%) then recovering after FORCE-RESET; session_20260505_083349 active with 21 msgs growing
30
+ - vLLM 400s: 0; gemma4 Docker healthy; llm_balancer healthy on :8001 (PID 2462362); stress_watcher running (PID 2759636)
31
+ - GH issues: 0 open
32
+ - Dispatch queue: harness=35,981 (top patterns: thinking_stall 17355, bash_generic 10076, hallucinated_name 4074, search_replace:not_found 3306 — all addressed by commits in last 24h; hallucinated_name confirmed suppressed via _IGNORE_TOOLS in format.py); retrieval=74 (0 new this tick, all already ingested)
33
+ - Action this tick: no fix committed — investigated SKIP spike at 300-349; consistent with context-bloat causing >120s agent turns; v2.7.42 focus-restore fix (68342fc) deployed and correct; FORCE-RESET at prompt ~340 recovered the run; no drydock source change warranted this tick.
34
+
35
+ ## 2026-05-05 06:38 UTC tick
36
+ - Stress: 323/1658 (PID 2755890 alive, 12h28m elapsed); done=268, skip=53 (16%); at [323] with fresh RECYCLE (new TUI PID 2883300); babysitter log confirms steady progress from 273→322 since 04:00 UTC
37
+ - vLLM 400s: 0; gemma4 Docker healthy; llm_balancer healthy on :8001 (PID 2462362)
38
+ - GH issues: 0 open
39
+ - Dispatch queue: harness=34,575 (all top patterns addressed in last 24h — thinking_stall 16ed417, bash_generic 6587ce5, bash_escape ee8936e, heredoc_loop f717435, dedup 74a5ae3, search_replace:not_found 444a, identical_blocks 6ad01df, tool_error_raised 9bdd8a3); retrieval=74 (all already ingested — 0 new this tick)
40
+ - Admiral last 30 min: empty_after_tool:bash/write_file/web_search interventions firing; these are admiral-level behavior nudges (model summarizing instead of continuing), distinct from thinking_stall (fully empty response). Thinking_stall fix ships in v2.7.41 (deployed 06:00 UTC). Post-fix admiral intervention rate not yet measurable this tick.
41
+ - Action this tick: no fix committed — all dispatch queue patterns addressed; retrieval fully drained; system healthy.
42
+
6
43
  ## 2026-05-05 05:15 UTC tick
7
44
  - Stress: 287/1658 (PID 2755890 alive, 10h57m elapsed); SKIP rate 16% (47/287), clustering after RECYCLE-TUI events (new TUI not ready in time); write rate 36% (75/204 non-skip) vs 44% old run at same range — modest regression, not clearly a bug
8
45
  - vLLM 400s: 0; gemma4 Docker healthy; llm_balancer healthy on :8001
@@ -1840,3 +1877,68 @@ restarted, cron self-match bug fixed in this same session).
1840
1877
  - GH issues: 0 open
1841
1878
  - Dispatch queue: harness=33461, retrieval=74 (all ingested recently, nothing new), steering=not present
1842
1879
  - Action this tick: committed fix for harness:bash:heredoc_loop — broadened heredoc loop-breaker regex from EOF-only to any alpha delimiter (CONTENT, PYTHON, HEREDOC, etc.); 6 tests pass. retrieval-drain: 0 projects ingested (all already current).
1880
+
1881
+ ## 2026-05-05 05:04 UTC tick
1882
+ - Stress: 305/1658 (18% done; fresh run PID 2755890 started May 4 13:00 UTC; log /tmp/stress_2000_1777915991.log)
1883
+ - Write rate: 37% (82/219 prompts with writes; lower baseline expected — early prompts are simple one-liner tool requests like "sha1 hash", "abs" that return text, not files)
1884
+ - vLLM 400s: 0
1885
+ - GH issues: 0 open (gh returned no output)
1886
+ - Dispatch queue: harness=34023 total (top last-24h patterns: thinking_stall=11560, loop:bash_generic=3535, search_replace:not_found_loop=1518, tool:hallucinated_name=420 — ALL addressed by commits in last 24h); retrieval=74 (0 actionable, all already ingested recently); steering=none
1887
+ - All key ports healthy: 8000 (vLLM/gemma4), 8001 (llm_balancer PID 2462362), 8878 (admiral PID 4075121)
1888
+ - Stall debug log confirms stall-retry working correctly (all attempt=0, breaking on has_tool_calls=True — no spurious stalls)
1889
+ - Action this tick: no new actionable bugs found. All major dispatch patterns covered by v2.7.41 commits. retrieval-drain: 0 projects ingested (all current). No fix committed — healthy tick.
1890
+
1891
+ ## 2026-05-05 06:00 UTC tick
1892
+ - Stress: 315/1658 (fresh run, harness PID 2755890, ~12h elapsed on current run)
1893
+ - Write rate: 41% overall (50% for last 50 prompts); down from 74% in previous run but early bootstrap prompts (1-7) caused 10 SKIPs skewing the rate
1894
+ - Admiral: all key ports healthy (8000 vLLM, 8001 llm_balancer PID 2462362, 8878 admiral PID 4075121)
1895
+ - vLLM 400s: 0 in last 30 min
1896
+ - GH issues: 0 open
1897
+ - Dispatch queue: harness=34299 (top patterns thinking_stall/bash_generic/search_replace:not_found_loop/hallucinated_name — all addressed by v2.7.41 commits); retrieval=74 (0 actionable, all current); steering=none
1898
+ - SKIP rate ~19% (59 SKIPs in 315 prompts); SKIPs cluster on short single-word prompts after TUI returns from long builds; FORCE-RESET (ESC+/clear) unsticks for a few prompts then recurs — likely pre-existing TUI input-focus issue, not a regression from recent commits
1899
+ - retrieval-drain: 0 projects ingested (all already current)
1900
+ - Action this tick: no new actionable drydock bugs found. All dispatch patterns covered by recent commits. No fix committed — monitoring SKIP pattern for harness:tui:input_not_accepted signal.
1901
+
1902
+ ## 2026-05-05 07:00 UTC tick
1903
+ - Stress: 327/1658 (20% done, PID 2755890, ~13h elapsed on current run)
1904
+ - Write rate: 43% last 100 prompts (down from 74% in prior run; write rate is metric-valid — these prompts add CLI flags to an already-built package, many complete in 2 msgs with no writes)
1905
+ - vLLM 400s: 0
1906
+ - GH issues: 0 open
1907
+ - Dispatch queue: harness=34857 total (top today: thinking_stall=3124, loop:bash_generic=276, search_replace:not_found_loop=320, tool:hallucinated_name=61 — all addressed by v2.7.41 commits); retrieval=74 (0 actionable, all current)
1908
+ - Action this tick: committed fix(tui): restore input focus after agent turn completes. The finally block in _run_agent_task() never called _focus_current_bottom_app() — after _refresh_windowing_from_history() remounted message widgets, keyboard focus could shift away from the chat input. Root cause of the ~19% SKIP rate (harness SKIPs when TUI doesn't accept typed prompts). Fix: one-line call_after_refresh(_focus_current_bottom_app) after the windowing refresh. Ships at next auto-release (12:00 UTC) as v2.7.42.
1909
+
1910
+ ## 2026-05-05 07:33 UTC tick
1911
+ - Stress: 339/1658 (20% done, PID 2755890, alive ~14h)
1912
+ - Write rate: 44% last 100 prompts (CLI-flag prompts; many complete with 0 file writes — metric is valid)
1913
+ - Admiral last 30 min: 2 interventions (empty_after_tool:task, empty_after_tool:bash)
1914
+ - vLLM 400s: 0
1915
+ - GH issues: 0 open
1916
+ - Dispatch queue: harness=35413 total (top: thinking_stall=16908, loop:bash_generic=10040, tool:hallucinated_name=4059, search_replace:not_found_loop=3248 — all addressed by recent commits); retrieval=74 (0 actionable)
1917
+ - Action this tick: triggered manual auto_release to ship v2.7.42 (TUI focus fix) 4.5h ahead of next scheduled cron (12:00 UTC). The focus fix was committed at 01:34 CDT this tick but hadn't been deployed; stress harness SKIP rate (~19%) is directly caused by keyboard focus not being restored after each agent turn. v2.7.42 now installed in user env; next TUI recycles will run the fixed version.
1918
+
1919
+ ## 2026-05-05 07:02 UTC tick
1920
+ - Stress: 333/1658 (harness PID 2755890, elapsed 13h29m, alive)
1921
+ - Write rate: 54% last 50 prompts (CLI-flag prompts; many complete with 0 writes — expected)
1922
+ - Admiral last 30 min: ~14 interventions in last 200 log lines
1923
+ - vLLM 400s: 0
1924
+ - GH issues: 0 open
1925
+ - Dispatch queue: harness=35137 total (13,444 in last 24h, top: thinking_stall=16686, loop:bash_generic=10022, tool:hallucinated_name=4053, search_replace:not_found_loop=3224 — all addressed by recent commits); retrieval=74 (0 actionable)
1926
+ - Action this tick: no new bugs found. All top dispatch patterns have been addressed by v2.7.41 commits (focus fix, stall fallback, bash heredoc, dedup listing, search_replace not-found). Stress skip rate is 18.6% cumulative but the input focus fix (68342fc) deployed at midnight CDT 2h ago — too soon to assess impact. Harness self-healing via FORCE-RESET+RECYCLE; currently retrying prompt 333. No action taken.
1927
+
1928
+ ## 2026-05-05 08:28 UTC tick
1929
+ - Stress: 680/1658 (41% done, PID 2755890, alive, session active on prompt 680)
1930
+ - Write rate: 32% last 100 prompts (down from 44%; reflects 80-error burst during SKIPs at 677-679)
1931
+ - SKIP rate: 8.5% cumulative (58/680) — improved from ~19% prior to v2.7.42 TUI focus fix; fix is working
1932
+ - vLLM 400s: 80 in a burst earlier this tick (JSONDecodeError at line 1 col 12), now 0 in last 10 min; burst appears linked to consecutive SKIP cascade at 677-679 triggering aggressive context compaction + session reset, not a persisting regression; balancer healthy (pid 2462362 on :8001)
1933
+ - GH issues: 0 open
1934
+ - Dispatch queue: harness=35693 total (thinking_stall=17130, loop:bash_generic=10058, tool:hallucinated_name=4065, search_replace:not_found_loop=3276 — all addressed by recent commits; hallucinated_name already suppressed via _IGNORE_TOOLS); retrieval=74 (0 actionable, all current)
1935
+ - Action this tick: no fix committed. Retrieval drain: 0 projects (all 74 entries already ingested). No unaddressed actionable bug found in source. Infrastructure healthy.
1936
+
1937
+ ## 2026-05-05 10:02 UTC tick
1938
+ - Stress: 373/1658 (22.5%), PID 2755890 alive (16h elapsed); babysitter latest tick 10:00 UTC shows done=291 skip=81 recycle=71 idx=372 — run is progressing normally
1939
+ - Write rate: 47% last 100 prompts (down from 74% peak; "Add a --flag CLI flag" prompts often produce 0 writes because model says flag already exists)
1940
+ - Admiral last 30 min: 1 fire (retry_after_error:search_replace at 09:56 — model behavior, not a drydock bug; search_replace loop-breaker is working)
1941
+ - vLLM 400s: 0
1942
+ - GH issues: 0 open
1943
+ - Dispatch queue: harness=36816 entries (top: thinking_stall, search_replace:not_found_loop, loop:bash_generic — all addressed by recent commits); retrieval=74 (0 actionable, all current); steering=N/A
1944
+ - Action this tick: no fix committed. Retrieval drain: 0 new ingests. All dispatch patterns covered. TUI log mtime appeared stale (05:02 CDT = 10:02 UTC, timezone confusion — it's current). Infrastructure healthy.
@@ -1 +0,0 @@
1
- 2874397
File without changes