drydock-cli 2.8.37__tar.gz → 2.8.39__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.
- drydock_cli-2.8.39/.auto_release.lock +1 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/PKG-INFO +1 -1
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/agent_loop.py +43 -8
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/backend/generic.py +13 -3
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/pyproject.toml +1 -1
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/hle_burndown.sh +4 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/hle_eval.py +7 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_user_issues.py +45 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/trip_log.md +207 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/uv.lock +1 -1
- drydock_cli-2.8.37/.auto_release.lock +0 -1
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.gitignore +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.pause_stress +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.python-version +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.typos.toml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.vscode/extensions.json +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.vscode/launch.json +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/.vscode/settings.json +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/AGENTS.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/Admiral.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/CHANGELOG.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/CLAUDE.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/DEEP_NOIR_PRD.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/DEPLOYMENT.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/DRYDOCK.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/HLE_PRD.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/JETSON_BENCH.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/LICENSE +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/MODEL_SHORTCOMINGS.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/NOTICE +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/README.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/SOVEREIGN_PRD.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/TRIAGE_v1.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/action.yml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/README.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results1.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results13.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results14.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results15.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results16.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results17.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results18.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results19.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results2.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results20.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results3.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results4.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results5.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results6.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results7.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results8.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results9.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/baseline_history/results_evolved_v1.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/docs/README.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/docs/acp-setup.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/docs/archive/BASELINE_412.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/docs/archive/Drydock_rebrand.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/docs/archive/OVERNIGHT_PROGRESS.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/docs/archive/OVERNIGHT_REPORT_2026_04_13.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/docs/archive/PERF_SWEEP_PLAN.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/docs/archive/PRD.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/docs/archive/drydock_terms.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/docs/archive/resume.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/__main__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/detectors.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/detectors_proposed.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/history.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/interventions.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/llm_analyzer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/metrics.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/opus_escalator.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/persistence.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/policy.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/proposer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/stager.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/task_classifier.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/tuning.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/validator.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/admiral/worker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/fix_windows_path.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/checkpoint_picker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/checkpoint.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/classifier/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/classifier/__main__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/classifier/classifier.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/classifier/dispatcher.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/classifier/rules.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/classifier/signal.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/config/_dotenv.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/config/doctor.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/config/local_detect.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/config/migrate.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/constraint_extract.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/constraint_hint.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/context_recovery.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/format.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/logger.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/paths/_drydock_home.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/prompts/cli.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/prompts/gemma4.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/session_checker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/slug.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/steering_hook.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/base.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/_task_manager.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/algebra_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/chemistry_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/count_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/linear_algebra_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/logic_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/math_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/memory_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/number_theory_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/retrieve.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/retrieve.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/set_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/solve_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/stats_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/units_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/verify_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/types.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/core/utils.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/curiosity/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/curiosity/__main__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/curiosity/gap_detector.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/curiosity/item.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/curiosity/queue.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/curiosity/surprise.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/graphrag/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/graphrag/__main__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/graphrag/code_indexer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/graphrag/retriever.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/graphrag/storage.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/graphrag/text_indexer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/setup/onboarding/screens/choice.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/setup/onboarding/screens/local_model.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/api-design/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/audit-tests/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/commit-code/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/constraint-reasoning/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/context-summary/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/deploy/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/diff-review/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/doc-gen/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/explain-code/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/explore-code/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/fix-issue/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/git-ops/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/init-project/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/logic/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/logic/assets/cheat_sheet_full.txt +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/loop/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/migrate/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/perf-analyze/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/plan-impl/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/pr-review/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/prove/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/refactor/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/regex-help/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/security-review/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/strong-tests/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/skills/test-verify/SKILL.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/__main__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/applier.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/config.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/registry.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/sandbox.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/sidecar/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/sidecar/header_parser.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/sidecar/hooks.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/sidecar/loader.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/sidecar/server.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/train/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/train/capture.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/train/compute_vector.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/train/extract_pairs.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/train/scan_sessions.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/steering/vectors.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock/whats_new.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/drydock-acp.spec +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/flake.lock +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/flake.nix +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/outlook_draft_assistant.tar.gz +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/README.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/config_base.toml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/config_best.toml +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/deep_noir/pairs/empty_after_bash.jsonl +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/deep_noir/pairs/scan_empty_after_bash.jsonl +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/domain_spec.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/experimenter.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/kernel.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/mini_prd.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/mini_prompts.txt +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/proposer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/research/results.tsv +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/resume.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/README.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/admiral_probe.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/archive/auto_test_loop.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/archive/monitor_test_battery.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/archive/overnight_agents_test.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/archive/test_bank.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/archive/test_full.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/archive/test_smoke.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/archive/tui_test.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/audit_sampler.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/auto_generate_tests.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/auto_release.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/autonomous_review.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/autonomous_review_prompt.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/backfill_hle_curiosity.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/backup.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/bench_inference.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/bump_version.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/classify_pulse.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/consume_retrieval_queue.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/curiosity_idle_cycle.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/dedupe_dispatch_queues.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/dispatch_report.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/drydock_status.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/fetch_arxiv_abstracts.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/gen_2000_prompts.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/hle_aggregate.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/hle_babysitter.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/hle_burndown_keepalive.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/hle_burndown_status.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/hle_eval_seed.jsonl +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/llm_balancer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/notify_release.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/perf_baseline_when_idle.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/perf_sweep.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/poll_issues.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/queue_top.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/ralph_loop.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/rejudge_hle.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/research_babysitter.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/shakedown.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/shakedown_interactive.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/shakedown_suite.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/shakedown_variance.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/start_steering_sidecar.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/stress_babysitter.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/stress_prompts_50.txt +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/stress_prompts_realuser.txt +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/stress_prompts_tool_agent.txt +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/stress_prompts_tool_agent_2000.txt +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/stress_shakedown.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/stress_telegram_status.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/stress_watcher.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/telegram_bot.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/tool_usage_report.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/scripts/vllm_failover.sh +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/backend/test_generic_adapter_sanitize.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/conftest.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_circuit_breaker_count_escalation.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_circuit_breaker_readonly_threshold.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/e2e/common.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/fixtures/doc_qa_system_prd.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/mock/utils.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_admiral.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_admiral_hallucinated_tool_filter.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_admiral_intervention_outcome.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_admiral_phase3.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_admiral_proposed.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_admiral_session_id.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_admiral_struggle_dedup.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_agents.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_algebra_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_auto_retrieve_soft_nudge.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_checkpoint.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_chemistry_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_classifier.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_config_migration.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_constraint_extract.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_constraint_hint.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_context_recovery.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_count_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_curiosity.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_dispatch_report.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_dispatcher.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_fake_tool_call_paren_syntax.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_graphrag.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_graphrag_worked_examples.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_hallucinated_tool_suppression.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_hle_aggregate.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_hle_score_method_split.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_hle_typing.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_integration.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_issue_fixes.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_linear_algebra_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_local_detect.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_logic_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_math_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_mcp_settings.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_memory_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_message_id.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_middleware.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_number_theory_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_read_file_not_found_listing.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_rejudge_hle.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_retrieval_consumer.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_retrieve_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_search_replace_args_not_truncated.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_set_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_smoke.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_solve_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_stats_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_steering.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_steering_capture.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_steering_compute_vector.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_steering_extract_pairs.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_steering_hook.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_steering_sidecar_chat_inputs.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_steering_sidecar_hooks.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_task_complete_nudge.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_tool_args.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_truncate_args_valid_json.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_truncated_arg_path_hint.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_truncated_search_replace_escalation.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_truncated_write_escalation.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_units_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_verify_tool.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_wall_of_text_rescue.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_workloads.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/test_write_file_missing_path.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_bash_binary_grep_hint.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_bash_consec_empty_search.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_bash_echo_escape_loop_breaker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_bash_empty_search_loop_breaker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_bash_error_loop_breaker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_bash_exact_cmd_loop_breaker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_bash_heredoc_confirmation.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_bash_kill_exit1_annotation.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_bash_python_c_syntaxerr_loop_breaker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_hallucinated_retrieval_redirect.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_manager_gemma_derived_models.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_read_file_dedup_alternating_offset.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_read_file_dedup_reembed.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_read_file_directory.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_read_file_limit_truncation.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_search_replace_append_fallback.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_search_replace_dir_path.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_search_replace_empty_content.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_search_replace_file_not_found.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_search_replace_first_failure_hint.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_search_replace_hard_stop.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_search_replace_malformed_block.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_search_replace_no_op_loop_breaker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_search_replace_placeholder.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_search_replace_refused_loop_breaker.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_write_file_dedup_missing_imports.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/tools/test_write_file_missing_path_hint.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/worked_examples/README.md +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/worked_examples/cli_subcommand_dispatch.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/worked_examples/lookup.json +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/worked_examples/sql_parser.py +0 -0
- {drydock_cli-2.8.37 → drydock_cli-2.8.39}/worked_examples/tree_walking_interpreter.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2016173
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: drydock-cli
|
|
3
|
-
Version: 2.8.
|
|
3
|
+
Version: 2.8.39
|
|
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
|
|
@@ -1051,7 +1051,10 @@ class AgentLoop:
|
|
|
1051
1051
|
or "400 bad request" in error_str.lower()
|
|
1052
1052
|
or "status: 400" in error_str.lower()
|
|
1053
1053
|
or "exceeds the available context" in error_str.lower()
|
|
1054
|
-
or "error code: 400" in error_str.lower()
|
|
1054
|
+
or "error code: 400" in error_str.lower()
|
|
1055
|
+
or "500 internal server error" in error_str.lower()
|
|
1056
|
+
or "status: 500" in error_str.lower()
|
|
1057
|
+
or "llm backend error" in error_str.lower()):
|
|
1055
1058
|
# Context limit or malformed request — aggressive recovery
|
|
1056
1059
|
# Step 0 (added 2026-05-09): if the error looks like a
|
|
1057
1060
|
# malformed tool call (most common 400 cause that ISN'T
|
|
@@ -1127,11 +1130,31 @@ class AgentLoop:
|
|
|
1127
1130
|
except Exception:
|
|
1128
1131
|
pass
|
|
1129
1132
|
if dropped_bad_tool_call:
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1133
|
+
# Detect JSON-truncation: llama.cpp returns this
|
|
1134
|
+
# when max_tokens is too low and the tool call
|
|
1135
|
+
# JSON gets cut off mid-string.
|
|
1136
|
+
_trunc = (
|
|
1137
|
+
"missing closing quote" in error_str.lower()
|
|
1138
|
+
or (
|
|
1139
|
+
"parse error at" in error_str.lower()
|
|
1140
|
+
and "column" in error_str.lower()
|
|
1141
|
+
)
|
|
1134
1142
|
)
|
|
1143
|
+
if _trunc:
|
|
1144
|
+
error_text = (
|
|
1145
|
+
"Your write_file content was too large — "
|
|
1146
|
+
"the server truncated the response mid-JSON "
|
|
1147
|
+
"(hit max_tokens). Split the file into "
|
|
1148
|
+
"smaller sections and write each with a "
|
|
1149
|
+
"separate write_file call (aim for ≤50 "
|
|
1150
|
+
"lines per call)."
|
|
1151
|
+
)
|
|
1152
|
+
else:
|
|
1153
|
+
error_text = (
|
|
1154
|
+
"Your last tool call was rejected by the "
|
|
1155
|
+
"server (likely malformed arguments). "
|
|
1156
|
+
"Try a simpler form, or use a different tool."
|
|
1157
|
+
)
|
|
1135
1158
|
else:
|
|
1136
1159
|
error_text = (
|
|
1137
1160
|
"Context compacted due to API error. "
|
|
@@ -1335,7 +1358,17 @@ class AgentLoop:
|
|
|
1335
1358
|
and bool(_prev_tool_result.strip())
|
|
1336
1359
|
)
|
|
1337
1360
|
if _stall_attempt == 0:
|
|
1338
|
-
if
|
|
1361
|
+
if _tool_stop_injected:
|
|
1362
|
+
_fa_suffix = os.environ.get(
|
|
1363
|
+
"DRYDOCK_STOP_NOW_SUFFIX",
|
|
1364
|
+
"End with 'FINAL ANSWER: <answer>'.",
|
|
1365
|
+
)
|
|
1366
|
+
note = (
|
|
1367
|
+
"STOP THINKING. Do NOT use any tools. "
|
|
1368
|
+
"Write your best answer as plain text RIGHT NOW. "
|
|
1369
|
+
+ _fa_suffix
|
|
1370
|
+
)
|
|
1371
|
+
elif _prev_write_path_error:
|
|
1339
1372
|
note = (
|
|
1340
1373
|
"Your write_file call failed because the path argument was empty. "
|
|
1341
1374
|
"Retry write_file RIGHT NOW with the correct path. "
|
|
@@ -1503,8 +1536,10 @@ class AgentLoop:
|
|
|
1503
1536
|
# Detect repetitive text generation (Gemma 4 sometimes loops text within one response)
|
|
1504
1537
|
if last_message.content and len(last_message.content) > 200:
|
|
1505
1538
|
text = last_message.content
|
|
1506
|
-
# Check if any sentence repeats 3+ times
|
|
1507
|
-
|
|
1539
|
+
# Check if any sentence repeats 3+ times.
|
|
1540
|
+
# Threshold 15: catches short repeated phrases like "(Wait, I'll call the tool."
|
|
1541
|
+
# which split to 28-char fragments — previously filtered by the old > 30 threshold.
|
|
1542
|
+
sentences = [s.strip() for s in text.split('.') if len(s.strip()) > 15]
|
|
1508
1543
|
if sentences:
|
|
1509
1544
|
from collections import Counter
|
|
1510
1545
|
sentence_counts = Counter(sentences)
|
|
@@ -191,17 +191,27 @@ class OpenAIAdapter(APIAdapter):
|
|
|
191
191
|
)
|
|
192
192
|
|
|
193
193
|
# Enable thinking for models that support it (Gemma 4)
|
|
194
|
+
_budget_env = os.environ.get("DRYDOCK_THINKING_BUDGET_TOKENS")
|
|
194
195
|
if thinking and thinking not in ("off", ""):
|
|
195
196
|
payload["chat_template_kwargs"] = {"enable_thinking": True}
|
|
196
197
|
# Cap thinking length (llama.cpp). Prevents runaway thinking stalls
|
|
197
198
|
# on hard HLE questions (model can think >480s without this).
|
|
198
199
|
# Set DRYDOCK_THINKING_BUDGET_TOKENS=8000 in HLE batch launches.
|
|
199
|
-
|
|
200
|
-
if _budget:
|
|
200
|
+
if _budget_env:
|
|
201
201
|
try:
|
|
202
|
-
|
|
202
|
+
# llama.cpp requires thinking_budget inside chat_template_kwargs,
|
|
203
|
+
# not as a top-level field (top-level is silently ignored → INT32_MAX).
|
|
204
|
+
payload["chat_template_kwargs"]["thinking_budget"] = int(_budget_env)
|
|
203
205
|
except ValueError:
|
|
204
206
|
pass
|
|
207
|
+
elif _budget_env:
|
|
208
|
+
# llama.cpp activates reasoning with budget=INT32_MAX by default even
|
|
209
|
+
# when thinking="off". Always cap it when the env var is set so that
|
|
210
|
+
# "off"-mode requests don't stall for 480s on hard questions.
|
|
211
|
+
try:
|
|
212
|
+
payload.setdefault("chat_template_kwargs", {})["thinking_budget"] = int(_budget_env)
|
|
213
|
+
except ValueError:
|
|
214
|
+
pass
|
|
205
215
|
|
|
206
216
|
if enable_streaming:
|
|
207
217
|
payload["stream"] = True
|
|
@@ -200,6 +200,8 @@ run_loop() {
|
|
|
200
200
|
DRYDOCK_STOP_NOW_WARN_AT=12 \
|
|
201
201
|
DRYDOCK_STOP_NOW_TIME_SEC=240 \
|
|
202
202
|
DRYDOCK_THINKING_BUDGET_TOKENS=8000 \
|
|
203
|
+
DRYDOCK_TOOL_STOP_AFTER=3 \
|
|
204
|
+
DRYDOCK_STOP_NOW_SUFFIX="End your response with 'FINAL ANSWER: <your answer>' on its own line." \
|
|
203
205
|
PYTHONUNBUFFERED=1 \
|
|
204
206
|
nohup "$PY" -u "$DRYDOCK/scripts/hle_eval.py" \
|
|
205
207
|
--source hle --limit "$LIMIT" --shuffle --seed "$SEED" \
|
|
@@ -210,6 +212,8 @@ run_loop() {
|
|
|
210
212
|
DRYDOCK_STOP_NOW_WARN_AT=12 \
|
|
211
213
|
DRYDOCK_STOP_NOW_TIME_SEC=240 \
|
|
212
214
|
DRYDOCK_THINKING_BUDGET_TOKENS=8000 \
|
|
215
|
+
DRYDOCK_TOOL_STOP_AFTER=3 \
|
|
216
|
+
DRYDOCK_STOP_NOW_SUFFIX="End your response with 'FINAL ANSWER: <your answer>' on its own line." \
|
|
213
217
|
PYTHONUNBUFFERED=1 \
|
|
214
218
|
nohup "$PY" -u "$DRYDOCK/scripts/hle_eval.py" \
|
|
215
219
|
--source hle --limit "$LIMIT" --shuffle --seed "$SEED" \
|
|
@@ -422,6 +422,13 @@ def _extract_answer(messages: list[dict]) -> str:
|
|
|
422
422
|
if m.get("role") != "assistant":
|
|
423
423
|
continue
|
|
424
424
|
content = _flat(m.get("content")).strip()
|
|
425
|
+
# Skip internal drydock error messages — they are not model answers.
|
|
426
|
+
if content.startswith("[Drydock:"):
|
|
427
|
+
continue
|
|
428
|
+
# llama.cpp --jinja stores thinking in reasoning_content; content may
|
|
429
|
+
# be empty even when the model wrote a FINAL ANSWER inside thinking.
|
|
430
|
+
if not content:
|
|
431
|
+
content = _flat(m.get("reasoning_content")).strip()
|
|
425
432
|
if not content:
|
|
426
433
|
continue
|
|
427
434
|
for line in reversed(content.splitlines()):
|
|
@@ -227,6 +227,51 @@ class TestWriteFileDedup:
|
|
|
227
227
|
assert old != new # Different = allow write
|
|
228
228
|
|
|
229
229
|
|
|
230
|
+
class TestIssue20_500ErrorRecovery:
|
|
231
|
+
"""#20: 500 Internal Server Error from llama.cpp backend triggers no-op
|
|
232
|
+
error path instead of context compaction, making recovery impossible."""
|
|
233
|
+
|
|
234
|
+
def test_500_error_matches_compaction_path(self):
|
|
235
|
+
"""The condition that routes errors to aggressive compaction should
|
|
236
|
+
match 500 Internal Server Error strings from llama.cpp backends."""
|
|
237
|
+
# Reproduce the predicate extracted from agent_loop.py
|
|
238
|
+
error_str = "API error from local (model: navygpt): LLM backend error [local]\nstatus: 500 Internal Server Error reason: Internal Server Error"
|
|
239
|
+
cond = (
|
|
240
|
+
"context length" in error_str.lower()
|
|
241
|
+
or "maximum context" in error_str.lower()
|
|
242
|
+
or "400 bad request" in error_str.lower()
|
|
243
|
+
or "status: 400" in error_str.lower()
|
|
244
|
+
or "exceeds the available context" in error_str.lower()
|
|
245
|
+
or "error code: 400" in error_str.lower()
|
|
246
|
+
or "500 internal server error" in error_str.lower()
|
|
247
|
+
or "status: 500" in error_str.lower()
|
|
248
|
+
or "llm backend error" in error_str.lower()
|
|
249
|
+
)
|
|
250
|
+
assert cond, "500 error should trigger compaction path"
|
|
251
|
+
|
|
252
|
+
def test_generic_500_matches(self):
|
|
253
|
+
"""Plain '500 Internal Server Error' string should also match."""
|
|
254
|
+
error_str = "status: 500 Internal Server Error"
|
|
255
|
+
cond = (
|
|
256
|
+
"500 internal server error" in error_str.lower()
|
|
257
|
+
or "status: 500" in error_str.lower()
|
|
258
|
+
)
|
|
259
|
+
assert cond
|
|
260
|
+
|
|
261
|
+
def test_non_500_error_does_not_match(self):
|
|
262
|
+
"""Unrelated errors (e.g. timeout) should NOT match."""
|
|
263
|
+
error_str = "Connection timed out after 30s"
|
|
264
|
+
cond = (
|
|
265
|
+
"context length" in error_str.lower()
|
|
266
|
+
or "400 bad request" in error_str.lower()
|
|
267
|
+
or "status: 400" in error_str.lower()
|
|
268
|
+
or "500 internal server error" in error_str.lower()
|
|
269
|
+
or "status: 500" in error_str.lower()
|
|
270
|
+
or "llm backend error" in error_str.lower()
|
|
271
|
+
)
|
|
272
|
+
assert not cond
|
|
273
|
+
|
|
274
|
+
|
|
230
275
|
class TestEscapeCharacters:
|
|
231
276
|
"""#70: Invalid escape characters causing API errors."""
|
|
232
277
|
|
|
@@ -1,5 +1,181 @@
|
|
|
1
1
|
# Drydock Trip Log
|
|
2
2
|
|
|
3
|
+
## 2026-05-15 22:30 UTC tick
|
|
4
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
5
|
+
- Write rate: N/A (stress paused)
|
|
6
|
+
- HLE burndown: running (pid 2001562, 55 min elapsed); lifetime 9.2% (43/467 across 40 runs) — Math 11.5%, Bio/Med 16.7%, CS/AI 3.2%
|
|
7
|
+
- vLLM 400s: 1 (minor, llama.cpp container otherwise clean)
|
|
8
|
+
- GH issues: 1 open (#23 image-processing enhancement — requires mmproj download, deferred to user return)
|
|
9
|
+
- Dispatch queue: harness=1291 total (thinking_stall pattern all addressed by prior commits), retrieval=3 (0 actionable, already ingested), curiosity=1627 pending
|
|
10
|
+
- Retrieval-drain: 0 projects ingested (all already current)
|
|
11
|
+
- Curiosity top 3: all hle_failure with empty predictions (Math/Bio) — genuine model non-responses; extraction already addressed by 8e92b1e/64a90b4
|
|
12
|
+
- Action this tick: committed b0350cb fix(stall): targeted FINAL-ANSWER nudge when _tool_stop_injected stalls — unstaged agent_loop.py change (10-line addition) that injects "STOP THINKING, write FINAL ANSWER" when model stalls after hitting TOOL_STOP_AFTER limit, instead of the generic read-stall message
|
|
13
|
+
|
|
14
|
+
## 2026-05-15 22:00 UTC tick
|
|
15
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
16
|
+
- Write rate: N/A (stress paused)
|
|
17
|
+
- HLE burndown: running (25 min elapsed this batch); lifetime 9.3% (43/463 across 40 runs) — Math 11.8%, Bio/Med 16.7%, CS/AI 3.2%
|
|
18
|
+
- vLLM 400s: 0 (llama.cpp container clean)
|
|
19
|
+
- GH issues: 1 open (#23 image-processing enhancement, not actionable this tick)
|
|
20
|
+
- Dispatch queue: harness=18 thinking_stall (all addressed by prior commits), retrieval=0 actionable, curiosity=1619 pending (265 hle_failure + 1354 unknown_term)
|
|
21
|
+
- Curiosity top items: hle_failure with empty-predicted on Math/Bio questions — genuine model non-responses, not extractable drydock bugs; prior 8e92b1e/64a90b4 commits covered the two structural extraction gaps
|
|
22
|
+
- Action this tick: no action — system healthy, no actionable drydock bug; retrieval-drain: 0 projects ingested (all already current)
|
|
23
|
+
|
|
24
|
+
## 2026-05-15 21:30 UTC tick
|
|
25
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
26
|
+
- Write rate: N/A (stress paused)
|
|
27
|
+
- HLE: 42/460 = 9.1% lifetime (39 runs); burndown daemon alive (PID in /tmp/hle_continuous.pid, engineering batch just completed 1/10=10%)
|
|
28
|
+
- vLLM 400s: 0 (llamacpp-gemma4 "unhealthy" Docker healthcheck but /health endpoint returns ok, model responding fine)
|
|
29
|
+
- GH issues: 1 open (#23 enhancement, image processing — not a drydock source bug)
|
|
30
|
+
- Dispatch queue: harness=19 (all harness:thinking_stall, addressed by 64a90b4), retrieval=0 actionable, curiosity=1614 pending (264 hle_failure, 1350 unknown_term)
|
|
31
|
+
- Action this tick: no fix committed. Engineering batch shows 4/10 questions hitting 481s timeout with `empty:no_response` (1 msg — model never produces content). The bc99b6b thinking-budget cap (DRYDOCK_THINKING_BUDGET_TOKENS=8000) is deployed in v2.8.38 and the burndown correctly passes the env var; unclear why stalls persist. Balancer passthrough confirmed correct. Next tick: verify llama.cpp is honoring chat_template_kwargs.thinking_budget by checking docker logs for "reasoning-budget:" lines on a live request.
|
|
32
|
+
|
|
33
|
+
## 2026-05-15 21:00 UTC tick
|
|
34
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
35
|
+
- Write rate: N/A (stress paused)
|
|
36
|
+
- HLE: 41/456 = 9.0% lifetime (39 runs); burndown daemon alive (38:50 elapsed, engineering batch 19 in flight)
|
|
37
|
+
- vLLM 400s: 0 (llamacpp-gemma4 build b9115 clean)
|
|
38
|
+
- GH issues: 1 open (#23 enhancement, image processing — skipped, not a drydock source bug)
|
|
39
|
+
- Dispatch queue: harness=19 (all thinking_stall, all addressed), retrieval=0 actionable, curiosity=1602 pending (262 hle_failure, 1340 unknown_term)
|
|
40
|
+
- Action this tick: no fix committed. Identified critical ongoing issue: engineering batch shows 3/5 questions hitting 481s QUESTION_TIMEOUT with only 1 message (model never responds). Docker logs show `reasoning-budget: activated, budget=2147483647` on ALL recent requests, confirming bc99b6b thinking-budget cap is NOT reaching llama.cpp despite correct payload construction. `chat_template_kwargs.thinking_budget=8000` is built correctly in code but llama.cpp b9115 appears to ignore it. Root cause unconfirmed — ran out of budget before deeper investigation. Next tick should verify if llama.cpp b9115 requires a different field path or if there's a proxy/stripping issue between drydock and the server.
|
|
41
|
+
|
|
42
|
+
## 2026-05-15 20:30 UTC tick
|
|
43
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
44
|
+
- Write rate: N/A (stress paused)
|
|
45
|
+
- HLE: 41/452 = 9.1% lifetime (39 runs); burndown daemon alive (8:52 elapsed, engineering batch in flight)
|
|
46
|
+
- vLLM 400s: 0 (llamacpp-gemma4 clean)
|
|
47
|
+
- GH issues: 1 open (#23 enhancement, image processing — not actioned)
|
|
48
|
+
- Dispatch queue: harness=19 (all thinking_stall, previously addressed), retrieval=0 actionable, curiosity=1591 pending (260 hle_failure, 1331 unknown_term)
|
|
49
|
+
- Action this tick: investigated empty-prediction pattern in Humanities/Social Science batches (8/10 empty in run_1778867670, 19:07 UTC, after bc99b6b thinking-cap fix) — still ongoing post-fix; likely model-side, not drydock bug. No code committed. System healthy.
|
|
50
|
+
|
|
51
|
+
## 2026-05-15 20:00 UTC tick
|
|
52
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
53
|
+
- HLE: 40/448 = 8.9% lifetime (38 runs); burndown daemon alive (54 min elapsed, chemistry batch slot 18 in flight)
|
|
54
|
+
- Write rate: N/A (stress paused)
|
|
55
|
+
- vLLM 400s: 0 (llamacpp-gemma4 clean)
|
|
56
|
+
- GH issues: 1 open (#23 enhancement: multimodal/image — not actionable)
|
|
57
|
+
- Dispatch queue: harness=1290 total (stale thinking_stall, pattern covered); retrieval=0 actionable; curiosity=1888 total / 1578 pending
|
|
58
|
+
- Action this tick: committed 64a90b4 — fix(hle): skip drydock error messages in _extract_answer. When MAX_STALL_RETRIES exhausted, agent_loop sets assistant content to "[Drydock: model returned an empty response...]"; _extract_answer was returning this error text as the prediction (causing judge to score NO on every case), wasting an API call per question. Now skips messages starting with "[Drydock:". Retrieval drain: 0 actionable (3 entries already ingested). Curiosity top-3 all hle_failure:empty — pattern partially addressed by 8e92b1e (reasoning_content fallback) and 64a90b4 (error-message skip); remaining empty cases are genuine timeouts.
|
|
59
|
+
|
|
60
|
+
## 2026-05-15 19:00 UTC tick
|
|
61
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
62
|
+
- HLE: 38/440 = 8.6% lifetime (37 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%; burndown daemon alive (01:05:50 elapsed)
|
|
63
|
+
- Write rate: N/A (stress paused)
|
|
64
|
+
- vLLM 400s: 0
|
|
65
|
+
- GH issues: 1 open (#23 enhancement: multimodal/image processing — not actionable this tick)
|
|
66
|
+
- Dispatch queue: harness=19 (stale thinking_stall, already covered by bc99b6b); retrieval=0 actionable; curiosity=1566 pending
|
|
67
|
+
- Action this tick: committed 8e92b1e — fix _extract_answer to fall back to reasoning_content when content is empty. llama.cpp --jinja mode stores Gemma 4 thinking in reasoning_content; 44-78% of HLE questions were scoring as empty:no_final_answer because the function skipped those messages. Matches logic already in judge function. Addresses curiosity:b572406518cd9013.
|
|
68
|
+
|
|
69
|
+
## 2026-05-15 18:30 UTC tick
|
|
70
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
71
|
+
- HLE: 38/436 = 8.7% lifetime (37 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%; burndown daemon alive (35:49 elapsed)
|
|
72
|
+
- Write rate: N/A (stress paused)
|
|
73
|
+
- Admiral last 30 min: N/A
|
|
74
|
+
- vLLM 400s: 0
|
|
75
|
+
- GH issues: 1 open (#23 enhancement: image processing/multimodal); closed #21 and #22 (fixes already in v2.8.38)
|
|
76
|
+
- Dispatch queue: harness=19 (all thinking_stall, entries from May 3 — stale, already addressed); retrieval=0 actionable; curiosity=1534 pending (top-3 are no_final_answer cases, covered by shipped TOOL_STOP_AFTER+STOP_NOW fixes)
|
|
77
|
+
- Action this tick: closed GH #21 and #22 manually (commits had "closes" but no push to GitHub); no source fix needed — system healthy
|
|
78
|
+
|
|
79
|
+
## 2026-05-15 18:00 UTC tick
|
|
80
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
81
|
+
- HLE: 38/432 = 8.8% lifetime (37 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%; burndown daemon alive (05:54 elapsed at tick time)
|
|
82
|
+
- Write rate: N/A (stress paused)
|
|
83
|
+
- Admiral last 30 min: N/A
|
|
84
|
+
- vLLM 400s: 0
|
|
85
|
+
- GH issues: 2 open (#21 #22 — fixed by recent commits, not yet pushed)
|
|
86
|
+
- Dispatch queue: harness=19 (all thinking_stall), retrieval=0 actionable, curiosity=1515 pending (645 in 24h)
|
|
87
|
+
- Action this tick: investigated empty:no_response pattern in Physics HLE batch (0/10, 480s timeouts) — model likely exhausts thinking budget on hard QFT/gauge-theory questions before producing FINAL ANSWER; thinking_budget cap (bc99b6b, 8000 tok) is in place but stall debug shows retries working normally for other sessions; no commit — deeper diagnosis deferred. Retrieval drain: 0 actionable. Autonomous_review 17:30 tick failed (budget exceeded).
|
|
88
|
+
|
|
89
|
+
## 2026-05-15 17:00 UTC tick
|
|
90
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
91
|
+
- HLE: 38/422 = 9.0% lifetime (36 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%; burndown daemon alive (11:07 elapsed)
|
|
92
|
+
- vLLM 400s: 0; llamacpp-gemma4 healthy (Q3_K_M on :8000); balancer :8001 up
|
|
93
|
+
- GH issues: 2 open (#21 still showing open despite close commit a338858; #22 looping bug filed by RedHat8 user — "(Wait, I'll call the tool.)" repeated 10+ times on large C++-to-Python port request)
|
|
94
|
+
- Dispatch queue: harness=19 (thinking_stall, addressed), retrieval=0 actionable, curiosity=1483 pending (top hle_failure: empty-prediction pre-thinking-budget-fix, consumed 2 stale items)
|
|
95
|
+
- retrieval-drain: 0 ingestions
|
|
96
|
+
- Action this tick: committed 50db330 fix(loop): lower repetitive-text sentence threshold 30→15 (closes #22) — "(Wait, I'll call the tool." fragments are 28 chars, previously filtered by >30 guard; now caught at >15, truncation fires after 3 repeats
|
|
97
|
+
|
|
98
|
+
## 2026-05-15 16:30 UTC tick
|
|
99
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
100
|
+
- HLE: 38/418 = 9.1% lifetime (35 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%; burndown daemon alive (43:51 elapsed)
|
|
101
|
+
- vLLM 400s: 0; llamacpp-gemma4 healthy (Q3_K_M on :8000); balancer :8001 up
|
|
102
|
+
- GH issues: 1 open (#21 — user on RedHat8/navygpt reports 500 JSON-parse error when write_file content exceeds max_tokens; also notes temperature 0.02 vs 1 in config.toml — not reproduced locally)
|
|
103
|
+
- Dispatch queue: harness=19 (all thinking_stall, addressed by bc99b6b), retrieval=0 actionable, curiosity=611 signals / top hle_failure items = empty-prediction failures (no FINAL ANSWER output)
|
|
104
|
+
- retrieval-drain: 0 ingestions (all recently consumed)
|
|
105
|
+
- curiosity-drain: no action — top 3 hle_failure items have empty predictions traceable to thinking stall / FINAL ANSWER format; root cause already addressed
|
|
106
|
+
- Action this tick: committed a338858 fix(recovery): detect JSON-truncation 500 (closes #21) — when llama.cpp returns HTTP 500 with 'missing closing quote' or 'parse error at column N', now injects targeted message telling model to split write_file into ≤50-line chunks instead of the generic 'malformed arguments' message
|
|
107
|
+
|
|
108
|
+
## 2026-05-15 16:00 UTC tick
|
|
109
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
110
|
+
- HLE: 38/414 = 9.2% lifetime (35 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%; burndown daemon PID 1938107 alive (14h elapsed)
|
|
111
|
+
- vLLM 400s: 0 in last 30min; llamacpp-gemma4 healthy (Q3_K_M); balancer :8001 up (pid 380535, llm_balancer.py confirmed)
|
|
112
|
+
- GH issues: 1 open (#21 — user on RedHat8/navygpt reports 500 JSON-parse error + temperature 0.02 instead of 1 from config.toml; JSON-parse 500 is covered by c174552 compaction routing; temperature 0.02 bug not reproduced locally — no code path produces 0.02, may be misread of 0.2 default or extra_params temperature collision; no fix this tick, needs repro)
|
|
113
|
+
- Dispatch queue: harness=18 (all thinking_stall, latest 12:10 UTC, addressed by bc99b6b), retrieval=0 actionable, curiosity=1458 pending (230 hle_failure, 1228 unknown_term)
|
|
114
|
+
- retrieval-drain: 0 ingestions (3 entries all recently consumed)
|
|
115
|
+
- curiosity-drain: 1458 pending, no action this tick — top hle_failure items are empty-prediction failures traceable to thinking stalls + missing FINAL ANSWER format; root causes addressed by bc99b6b + f8f4f06; autonomous_review cron just started at 16:00:01 UTC
|
|
116
|
+
- Action this tick: no fix committed — all queued patterns addressed by today's earlier commits; system healthy
|
|
117
|
+
|
|
118
|
+
## 2026-05-15 15:30 UTC tick
|
|
119
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
120
|
+
- HLE: 37/408 = 9.1% lifetime (34 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%, Eng 4.3%; burndown daemon PID 1926757 alive (slot 14, category=other)
|
|
121
|
+
- vLLM 400s: 0; llamacpp-gemma4 healthy (Q3_K_M); balancer :8001 up
|
|
122
|
+
- GH issues: 0 open (closed #20 this tick — already fixed in c174552, shipping in next auto-release; added close comment)
|
|
123
|
+
- Dispatch queue: harness=19 (all thinking_stall, no new fires since 39ddef9), retrieval=0 actionable, curiosity=1436 pending (226 hle_failure, 1210 unknown_term)
|
|
124
|
+
- retrieval-drain: 0 ingestions (all recently consumed)
|
|
125
|
+
- curiosity-drain: 1436 pending, no action this tick — top items are empty-prediction failures; root cause traced to same thinking_budget gap below
|
|
126
|
+
- Action this tick: committed fix bc99b6b (addresses pattern harness:thinking_stall) — docker logs showed budget=2147483647 on ~80% of requests even after 39ddef9, because the budget cap was only applied when thinking != "off"; llama.cpp activates reasoning with INT32_MAX by default on ALL requests; fix: always include thinking_budget in chat_template_kwargs when DRYDOCK_THINKING_BUDGET_TOKENS is set, regardless of thinking mode.
|
|
127
|
+
|
|
128
|
+
## 2026-05-15 15:00 UTC tick
|
|
129
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
130
|
+
- HLE: 36/403 = 8.9% lifetime (34 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%, Eng 4.3%; burndown daemon PID 1926757 alive (slot 14, category=other, batch in progress)
|
|
131
|
+
- vLLM 400s: 0; llamacpp-gemma4 healthy (Q3_K_M, budget=8000 confirmed in docker logs); balancer :8001 up
|
|
132
|
+
- GH issues: 1 open (#20 — already fixed in c174552, ships at next auto-release tick)
|
|
133
|
+
- Dispatch queue: harness=19 in 24h (all harness:thinking_stall, last fire 12:10 UTC documenting the 39ddef9 fix, no new fires post-fix); retrieval=0 actionable; curiosity=1409 pending (222 hle_failure, 1187 unknown_term)
|
|
134
|
+
- retrieval-drain: 0 ingestions (3 entries, all recently consumed)
|
|
135
|
+
- curiosity-drain: 1409 pending, no action this tick — top items are empty-prediction failures on extremely hard questions (MIT Mystery Hunt, Go puzzles); thinking budget IS working per docker logs (budget=8000, forced-end on exhaust), these are model-capability failures on questions above the model's ceiling
|
|
136
|
+
- Action this tick: no fix committed — thinking_budget fix (39ddef9) confirmed operational; thinking_stall dispatch pattern has no new fires since fix shipped; system healthy
|
|
137
|
+
|
|
138
|
+
## 2026-05-15 14:30 UTC tick
|
|
139
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
140
|
+
- HLE: 35/397 = 8.8% lifetime (33 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%, Eng 4.3%; burndown daemon PID 1917195 alive (category=other, 40+ min elapsed — stalling on 9-msg sessions)
|
|
141
|
+
- vLLM 400s: 0; llamacpp-gemma4 healthy (Q3_K_M); balancer :8001 up
|
|
142
|
+
- GH issues: 1 open (#20 "API error with tool call" — already fixed in c174552, pending next auto-release)
|
|
143
|
+
- Dispatch queue: harness=20 in 24h (all thinking_stall, addressed by 39ddef9), retrieval=0 actionable, curiosity=1380 pending (217 hle_failure, 1163 unknown_term)
|
|
144
|
+
- retrieval-drain: 0 ingestions (3 entries, all recently consumed)
|
|
145
|
+
- curiosity-drain: 1380 pending, no action this tick (top items are pre-fix no_final_answer failures, will clear naturally)
|
|
146
|
+
- Action this tick: committed fix f8f4f06 — hle_burndown.sh was missing DRYDOCK_TOOL_STOP_AFTER=3 and DRYDOCK_STOP_NOW_SUFFIX that hle_babysitter.sh had; burndown batches were spinning 9+ tool turns into 480s timeouts instead of capping at 3 tool calls
|
|
147
|
+
|
|
148
|
+
## 2026-05-15 13:30 UTC tick
|
|
149
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
150
|
+
- HLE: 34/387 = 8.8% lifetime (32 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.4%, Chem 0.0%, Eng 4.3%; burndown daemon PID 1905338 alive (slot=12 Computer Science/AI batch, ~47min elapsed, still running)
|
|
151
|
+
- vLLM 400s: 5 (minor); llamacpp-gemma4 healthy (Q3_K_M confirmed, budget=8000 in docker logs — 39ddef9 fix verified working); balancer :8001 up (PID 380535)
|
|
152
|
+
- GH issues: 0 open
|
|
153
|
+
- Dispatch queue: harness=21 in 24h (all thinking_stall, addressed by 39ddef9), retrieval=0 actionable, curiosity=1349 pending (135 hle_failure, 1140 unknown_term in 24h); dispatch report 578 signals in 24h window
|
|
154
|
+
- retrieval-drain: 0 ingestions (3 entries, all recently consumed)
|
|
155
|
+
- curiosity-drain: consumed item 4bd8d88fca523801 (Math empty prediction 3.9942, root cause = thinking budget unlimited; addressed by 39ddef9 chat_template_kwargs fix; total consumed: 305)
|
|
156
|
+
- Action this tick: no code changes needed; 39ddef9 thinking_budget fix is current work; current batch (slot=12) predates fix and still shows 480s stalls, next batch will benefit
|
|
157
|
+
|
|
158
|
+
## 2026-05-15 13:00 UTC tick
|
|
159
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
160
|
+
- HLE: 34/384 = 8.9% lifetime (32 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.6%, Chem 0.0%, Physics 0.0%; burndown daemon PID 1905338 alive (slot=12, Computer Science batch in progress); 135/197 failures are method=empty (thinking stalls)
|
|
161
|
+
- vLLM 400s: 0; llamacpp-gemma4 healthy (Q3_K_M confirmed); balancer :8001 up; thinking budget CONFIRMED working — docker logs show "reasoning-budget: activated, budget=8000 tokens" (was INT32_MAX before 39ddef9)
|
|
162
|
+
- GH issues: 0 open
|
|
163
|
+
- Dispatch queue: harness=1289 total (22 in 24h window, all thinking_stall — ADDRESSED by 39ddef9), retrieval=3 (0 actionable), curiosity=1636 total (135 hle_failure:no_final_answer, 419 unknown_term in 24h window)
|
|
164
|
+
- retrieval-drain: 0 new ingestions (3 entries all already consumed recently)
|
|
165
|
+
- curiosity-drain: consumed item 1b7d0cc4aaf08f52 (Math blank prediction 6*sqrt(2); root cause = thinking stall, addressed by 39ddef9 chat_template_kwargs fix; total consumed: 304)
|
|
166
|
+
- Action this tick: no new commit — 39ddef9 thinking_budget fix confirmed live in source tree (miniconda3 Python uses source dev path); current batch slot=12 uses fixed code; next auto-release at ~17:00 UTC will ship fix to PyPI as v2.8.38; system healthy
|
|
167
|
+
|
|
168
|
+
## 2026-05-15 12:30 UTC tick
|
|
169
|
+
- Stress: paused (.pause_stress sentinel)
|
|
170
|
+
- Write rate: N/A (stress paused)
|
|
171
|
+
- HLE: 33/378 = 8.7% lifetime (31 runs); burndown daemon alive (PID 1896475, ~34 min, running Computer Science/AI batch)
|
|
172
|
+
- vLLM 400s: 0 errors; llamacpp-gemma4 healthy (Q3_K_M, model_path confirmed)
|
|
173
|
+
- GH issues: 0 open
|
|
174
|
+
- Dispatch queue: harness=22 (thinking_stall, root cause fixed by 39ddef9 this tick), retrieval=0 actionable, curiosity=1297 pending (1093 unknown_term, 204 hle_failure)
|
|
175
|
+
- retrieval-drain: 0 new ingestions (all 3 entries already ingested)
|
|
176
|
+
- curiosity-drain: consumed item 8d95bf4cc3fc45d3 (Math blank prediction pi/2-1/4; root cause = thinking stall, fixed by 39ddef9)
|
|
177
|
+
- Action this tick: no new commit — 39ddef9 (thinking_budget into chat_template_kwargs for llama.cpp) already committed and live in source tree; current burndown batch is pre-fix but next batch will use correct 4000-token budget cap; system healthy, no new actionable patterns
|
|
178
|
+
|
|
3
179
|
## 2026-05-15 11:30 UTC tick
|
|
4
180
|
- Stress: alive PID 1878801, 55m elapsed (restarted this cycle)
|
|
5
181
|
- HLE lifetime: 33/371 = 8.9% (Math 11.4%, CS/AI 2.3%, Chem 0.0%, Bio/Med 16.7%, Eng 4.3%); latest batch 2/10 = 20% Biology/Medicine; burndown daemon PID 1742185 alive
|
|
@@ -6399,3 +6575,34 @@ restarted, cron self-match bug fixed in this same session).
|
|
|
6399
6575
|
- HLE: 22/331 = 6.6% lifetime (27 runs); burndown daemon alive (PID 1838832, 6h+ elapsed, running Math batch)
|
|
6400
6576
|
- Dispatch queue: harness=16 (thinking_stall, all self-referential false positives already addressed), retrieval=0 actionable, curiosity=1154 pending (972 unknown_term, 182 hle_failure)
|
|
6401
6577
|
- Action this tick: consumed curiosity item bd848692c98c1362 (Math blank-prediction thinking stall, already addressed by v2.8.32 4000-token cap); retrieval drain 0 actionable; no code changes needed — system healthy
|
|
6578
|
+
|
|
6579
|
+
## 2026-05-15 12:00 UTC tick
|
|
6580
|
+
- Stress: paused (.pause_stress sentinel)
|
|
6581
|
+
- Write rate: N/A (stress paused)
|
|
6582
|
+
- HLE: 33/372 = 8.9% lifetime (31 runs); burndown daemon alive (PID 1896475, ~4h elapsed)
|
|
6583
|
+
- vLLM 400s: 0 critical; llamacpp-gemma4 shows "unhealthy" Docker health status (healthcheck hitting wrong port 8080 vs actual 8000) — API responds normally, false alarm
|
|
6584
|
+
- GH issues: 0 open
|
|
6585
|
+
- Dispatch queue: harness=21 (thinking_stall), retrieval=0 actionable, curiosity=1263 pending (1063 unknown_term, 200 hle_failure)
|
|
6586
|
+
- Action this tick: fixed real bug — thinking_budget_tokens was being sent as a top-level payload field which llama.cpp silently ignores (logs showed budget=2147483647=INT32_MAX on every HLE call). Correct path is chat_template_kwargs.thinking_budget — verified empirically. This was causing all 480s+ thinking stalls despite DRYDOCK_THINKING_BUDGET_TOKENS=4000/8000 being set. Committed 39ddef9; addresses pattern harness:thinking_stall. Consumed curiosity item 7e62485e82c6849c (top hle_failure blank-prediction, root cause same). Retrieval drain: 0 actionable.
|
|
6587
|
+
|
|
6588
|
+
## 2026-05-15 14:00 UTC tick
|
|
6589
|
+
- Stress: paused (.pause_stress sentinel active)
|
|
6590
|
+
- HLE: 35/393 = 8.9% lifetime (33 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%, Eng 4.3%; burndown daemon PID 1917195 alive (running "other" category batch, ~9m elapsed)
|
|
6591
|
+
- vLLM 400s: n/a (llamacpp); balancer :8001 up; model Q3_K_M confirmed
|
|
6592
|
+
- GH issues: 1 new (issue #20 filed 13:56 UTC — user on Red Hat 8 / navygpt hitting "Stopping: 15+ API errors" after search_replace "file path required" error)
|
|
6593
|
+
- Dispatch queue: harness=21 (all thinking_stall, addressed by 39ddef9), retrieval=0 actionable, curiosity=1365 pending (1152 unknown_term, 213 hle_failure)
|
|
6594
|
+
- retrieval-drain: 0 ingestions (3 entries, all recently consumed)
|
|
6595
|
+
- curiosity-drain: no action — top 3 are empty-predicted hle_failure items (symptoms of thinking_stall fixed by 39ddef9, not a separate issue)
|
|
6596
|
+
- Action this tick: fixed issue #20 — commit c174552. Root cause: llama.cpp backends return HTTP 500 (not 400) for context overflow; the error handler only applied aggressive compaction+truncation for 400 errors. 500s hit the fallback path that injected an error note WITHOUT truncating context, making each retry larger and recovery impossible. Fix: route "500 Internal Server Error", "status: 500", "LLM backend error" through the same compaction path as 400 errors. 3 regression tests added. Issue commented with fix details.
|
|
6597
|
+
|
|
6598
|
+
## 2026-05-15 17:30 UTC tick
|
|
6599
|
+
- Stress: paused (`.pause_stress` sentinel active)
|
|
6600
|
+
- Write rate: N/A (stress paused)
|
|
6601
|
+
- HLE daemon: alive (PID 1949327, 41 min elapsed at tick start); current batch is Physics, 6/10 done, showing `no_response/no_final_answer` at 480s — expected for pre-v2.8.38 sessions where thinking="off" mode had no budget cap (bc99b6b). Future batches post-v2.8.38 have the cap applied to all modes.
|
|
6602
|
+
- HLE score: 38/427 = 8.9% lifetime (Math 11.4%, Bio 16.7%, CS 3.2%, Physics 3.6%, Chemistry 0.0%)
|
|
6603
|
+
- vLLM 400s: 0 (llama.cpp container clean)
|
|
6604
|
+
- GH issues: 2 open (#21, #22 — fixes committed 50db330+a338858, pending 4 AM rsync push to GitHub for auto-close)
|
|
6605
|
+
- Dispatch queue: harness=1290 (all addressed by bc99b6b), retrieval=3 (0 actionable), steering=N/A, curiosity=1492 pending
|
|
6606
|
+
- retrieval-drain: 0 ingestions (all recently consumed)
|
|
6607
|
+
- curiosity-drain: top items are pre-thinking-budget-fix empty-predicted failures — not actionable as code changes
|
|
6608
|
+
- Action this tick: no fix committed — system healthy, previous ticks (15:30, 16:30, 17:00) shipped bc99b6b+a338858+50db330 addressing all queued patterns; no new dispatch signals or GH issues since 17:00 tick
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1897081
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|