drydock-cli 2.7.15__tar.gz → 2.7.16__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.7.16/.auto_release.lock +1 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/PKG-INFO +1 -1
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/format.py +15 -1
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/bash.py +12 -1
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/pyproject.toml +1 -1
- drydock_cli-2.7.16/tests/tools/test_write_file_missing_path_hint.py +78 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/trip_log.md +106 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/uv.lock +1 -1
- drydock_cli-2.7.15/.auto_release.lock +0 -1
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.claude/scheduled_tasks.lock +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.gitignore +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.python-version +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.typos.toml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.vscode/extensions.json +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.vscode/launch.json +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/.vscode/settings.json +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/AGENTS.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/Admiral.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/BASELINE_412.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/CHANGELOG.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/CLAUDE.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/DEPLOYMENT.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/Drydock_rebrand.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/LICENSE +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/MODEL_SHORTCOMINGS.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/NOTICE +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/OVERNIGHT_PROGRESS.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/OVERNIGHT_REPORT_2026_04_13.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/PRD.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/README.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/action.yml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/README.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results1.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results13.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results14.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results15.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results16.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results17.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results18.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results19.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results2.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results20.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results3.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results4.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results5.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results6.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results7.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results8.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results9.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/baseline_history/results_evolved_v1.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/docs/README.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/docs/acp-setup.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/detectors.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/detectors_proposed.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/history.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/interventions.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/llm_analyzer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/metrics.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/opus_escalator.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/persistence.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/policy.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/proposer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/stager.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/task_classifier.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/tuning.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/validator.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/admiral/worker.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/checkpoint_picker.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/agent_loop.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/checkpoint.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/config/doctor.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/logger.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/paths/_drydock_home.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/prompts/cli.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/prompts/gemma4.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/session_checker.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/slug.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/base.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/_task_manager.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/types.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/core/utils.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/setup/onboarding/screens/choice.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/setup/onboarding/screens/local_model.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/api-design/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/audit-tests/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/commit-code/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/context-summary/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/deploy/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/diff-review/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/doc-gen/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/explain-code/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/explore-code/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/fix-issue/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/git-ops/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/init-project/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/loop/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/migrate/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/perf-analyze/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/plan-impl/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/pr-review/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/refactor/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/regex-help/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/security-review/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/strong-tests/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/skills/test-verify/SKILL.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/whats_new.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock-acp.spec +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock_terms.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/flake.lock +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/flake.nix +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/nohup.out +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/research/README.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/research/config_base.toml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/research/config_best.toml +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/research/domain_spec.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/research/experimenter.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/research/kernel.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/research/mini_prd.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/research/mini_prompts.txt +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/research/proposer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/research/results.tsv +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/resume.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/README.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/admiral_probe.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/audit_sampler.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/auto_generate_tests.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/auto_release.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/auto_test_loop.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/autonomous_review.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/autonomous_review_prompt.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/backup.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/bump_version.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/comprehensive_loop.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/discover_cli_tools.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/evolve_tests.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/gen_2000_prompts.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/install.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/llm_balancer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/mega_loop.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/meta_ralph_loop.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/monitor_swebench.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/monitor_test_battery.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/notify_release.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/oss_task_harness.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/overnight_agents_test.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/poll_issues.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/port_task.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/prepare_release.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/ralph_loop.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/research_babysitter.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/session_loop_audit.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/shakedown.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/shakedown_interactive.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/shakedown_regression.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/shakedown_suite.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/shakedown_variance.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/stress_babysitter.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/stress_prompts_50.txt +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/stress_prompts_realuser.txt +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/stress_prompts_tool_agent.txt +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/stress_prompts_tool_agent_2000.txt +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/stress_shakedown.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/stress_telegram_status.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/stress_watcher.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/telegram_bot.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/test_bank.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/test_full.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/test_smoke.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/test_tui_path.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/tui_test.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/scripts/vllm_failover.sh +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/test/project/dummy +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/backend/test_generic_adapter_sanitize.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/conftest.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/e2e/common.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/fixtures/doc_qa_system_prd.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/mock/utils.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/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.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_admiral.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_admiral_phase3.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_admiral_proposed.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_agents.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_checkpoint.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_fake_tool_call_paren_syntax.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_integration.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_issue_fixes.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_message_id.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_middleware.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_read_file_not_found_listing.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_smoke.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_tool_args.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_truncate_args_valid_json.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_truncated_arg_path_hint.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_user_issues.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_wall_of_text_rescue.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/test_workloads.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_manager_gemma_derived_models.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_read_file_directory.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_search_replace_append_fallback.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_search_replace_no_op_loop_breaker.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_search_replace_refused_loop_breaker.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/tools/test_write_file_dedup_missing_imports.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/worked_examples/README.md +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/worked_examples/cli_subcommand_dispatch.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/worked_examples/lookup.json +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/worked_examples/sql_parser.py +0 -0
- {drydock_cli-2.7.15 → drydock_cli-2.7.16}/worked_examples/tree_walking_interpreter.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
238585
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: drydock-cli
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.16
|
|
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
|
|
@@ -404,11 +404,25 @@ class APIToolFormatHandler:
|
|
|
404
404
|
)
|
|
405
405
|
)
|
|
406
406
|
except ValidationError as e:
|
|
407
|
+
error_str = str(e)
|
|
408
|
+
if (
|
|
409
|
+
parsed_call.tool_name == "write_file"
|
|
410
|
+
and "path" in error_str
|
|
411
|
+
and "Field required" in error_str
|
|
412
|
+
):
|
|
413
|
+
error_msg = (
|
|
414
|
+
"write_file: missing required `path` parameter. "
|
|
415
|
+
"You must pass BOTH `path` AND `content` as separate arguments. "
|
|
416
|
+
'Fix: write_file(path="your/file.py", content="..."). '
|
|
417
|
+
"Do NOT omit `path`."
|
|
418
|
+
)
|
|
419
|
+
else:
|
|
420
|
+
error_msg = f"Invalid arguments: {e}"
|
|
407
421
|
failed_calls.append(
|
|
408
422
|
FailedToolCall(
|
|
409
423
|
tool_name=parsed_call.tool_name,
|
|
410
424
|
call_id=parsed_call.call_id,
|
|
411
|
-
error=
|
|
425
|
+
error=error_msg,
|
|
412
426
|
)
|
|
413
427
|
)
|
|
414
428
|
|
|
@@ -412,7 +412,18 @@ class Bash(
|
|
|
412
412
|
# the model can reason about what happened.
|
|
413
413
|
# See feedback_no_tool_errors_for_loop_detection.md.
|
|
414
414
|
annotation = f"[Exit code {returncode}]"
|
|
415
|
-
if
|
|
415
|
+
if returncode < 0:
|
|
416
|
+
# Negative returncode means killed by a Unix signal.
|
|
417
|
+
try:
|
|
418
|
+
sig_name = signal.Signals(-returncode).name
|
|
419
|
+
except ValueError:
|
|
420
|
+
sig_name = f"signal {-returncode}"
|
|
421
|
+
annotation += (
|
|
422
|
+
f" — process killed by {sig_name}."
|
|
423
|
+
" If this command starts a server or long-running process,"
|
|
424
|
+
" background it with `command &` and verify ports with `ss -tlnp`."
|
|
425
|
+
)
|
|
426
|
+
elif not stdout and not stderr:
|
|
416
427
|
annotation += " (no output)"
|
|
417
428
|
if returncode == 1:
|
|
418
429
|
annotation += (
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"""Regression test: write_file missing path gives actionable error, not raw Pydantic noise.
|
|
2
|
+
|
|
3
|
+
Admiral logs on 2026-04-28 showed Gemma 4 calling write_file(content="...") without
|
|
4
|
+
a path parameter, then retrying identically 3+ times after the generic Pydantic
|
|
5
|
+
"Invalid arguments: 1 validation error for WriteFileArgs path Field required" message.
|
|
6
|
+
Fix in format.py: detect missing-path pattern and return a short, prescriptive error.
|
|
7
|
+
"""
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from drydock.core.llm.format import APIToolFormatHandler, ParsedMessage, ParsedToolCall
|
|
11
|
+
from drydock.core.tools.builtins.write_file import WriteFile
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _make_handler() -> APIToolFormatHandler:
|
|
15
|
+
from unittest.mock import MagicMock
|
|
16
|
+
handler = APIToolFormatHandler()
|
|
17
|
+
handler._tool_manager = MagicMock()
|
|
18
|
+
handler._tool_manager.available_tools = {"write_file": WriteFile}
|
|
19
|
+
return handler
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _parsed_msg(args: dict) -> ParsedMessage:
|
|
23
|
+
return ParsedMessage(
|
|
24
|
+
tool_calls=[
|
|
25
|
+
ParsedToolCall(
|
|
26
|
+
tool_name="write_file",
|
|
27
|
+
call_id="call_1",
|
|
28
|
+
raw_args=args,
|
|
29
|
+
)
|
|
30
|
+
],
|
|
31
|
+
failed_calls=[],
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class TestWriteFileMissingPathHint:
|
|
36
|
+
def test_missing_path_returns_actionable_error(self):
|
|
37
|
+
"""write_file(content=...) without path yields a clear, concise error."""
|
|
38
|
+
from unittest.mock import MagicMock
|
|
39
|
+
tm = MagicMock()
|
|
40
|
+
tm.available_tools = {"write_file": WriteFile}
|
|
41
|
+
|
|
42
|
+
handler = APIToolFormatHandler()
|
|
43
|
+
msg = _parsed_msg({"content": "print('hello')"})
|
|
44
|
+
resolved = handler.resolve_tool_calls(msg, tm)
|
|
45
|
+
|
|
46
|
+
assert len(resolved.failed_calls) == 1
|
|
47
|
+
error = resolved.failed_calls[0].error
|
|
48
|
+
assert "path" in error
|
|
49
|
+
assert "write_file" in error
|
|
50
|
+
# Must NOT be the raw Pydantic multi-line dump
|
|
51
|
+
assert "Field required" not in error
|
|
52
|
+
assert "input_url" not in error
|
|
53
|
+
|
|
54
|
+
def test_missing_path_error_contains_example(self):
|
|
55
|
+
"""The actionable error should include an example invocation."""
|
|
56
|
+
from unittest.mock import MagicMock
|
|
57
|
+
tm = MagicMock()
|
|
58
|
+
tm.available_tools = {"write_file": WriteFile}
|
|
59
|
+
|
|
60
|
+
handler = APIToolFormatHandler()
|
|
61
|
+
msg = _parsed_msg({"content": "x = 1"})
|
|
62
|
+
resolved = handler.resolve_tool_calls(msg, tm)
|
|
63
|
+
|
|
64
|
+
error = resolved.failed_calls[0].error
|
|
65
|
+
assert "path=" in error or "`path`" in error
|
|
66
|
+
|
|
67
|
+
def test_write_file_with_valid_args_resolves(self):
|
|
68
|
+
"""Sanity: write_file with both path and content resolves without error."""
|
|
69
|
+
from unittest.mock import MagicMock
|
|
70
|
+
tm = MagicMock()
|
|
71
|
+
tm.available_tools = {"write_file": WriteFile}
|
|
72
|
+
|
|
73
|
+
handler = APIToolFormatHandler()
|
|
74
|
+
msg = _parsed_msg({"path": "hello.py", "content": "x=1"})
|
|
75
|
+
resolved = handler.resolve_tool_calls(msg, tm)
|
|
76
|
+
|
|
77
|
+
assert len(resolved.failed_calls) == 0
|
|
78
|
+
assert len(resolved.tool_calls) == 1
|
|
@@ -215,3 +215,109 @@ restarted, cron self-match bug fixed in this same session).
|
|
|
215
215
|
- GH issues: 0 open
|
|
216
216
|
- Services: llm_balancer PID 24354 on :8001 healthy, vLLM gemma4 on :8000 healthy
|
|
217
217
|
- Action this tick: committed fix(format): include file_path in truncated-arg Re-read hint (6a2fed5); write_file/search_replace truncated stubs now produce the full "Re-read path" advisory; 3 regression tests added
|
|
218
|
+
|
|
219
|
+
## 2026-04-28 11:05 UTC tick
|
|
220
|
+
- Stress: 680/1658
|
|
221
|
+
- Write rate: 37% (last 200 prompts; down from 74% — API-type prompts have lower write density and SKIP cluster dragged the rate)
|
|
222
|
+
- Admiral last 30 min: heavy struggle:X:search_replace and loop:read_file firings; 2x tui-recycle-requested
|
|
223
|
+
- vLLM 400s: 0
|
|
224
|
+
- GH issues: 0 open
|
|
225
|
+
- Action this tick: committed fix(bash): add signal-kill hint for negative exit codes (signal-killed processes). Root cause found: stress run on "Perf: memoize expensive call" caused model to write benchmark_memoization_test as a server binding :8080; external kill left returncode=-15 with only "[Exit code -15] (no output)" — no guidance to background it — so model kept retrying. Also killed 3 orphaned server processes: benchmark_memoization_test (:8080 ×2) and json_rpc_server (:8002, 5+ hours). Fix ships at next auto-release cron (0/6/12/18 UTC).
|
|
226
|
+
|
|
227
|
+
## 2026-04-28 11:35 UTC tick
|
|
228
|
+
- Stress: 1404/1658 (85% complete, PID 3993968 alive, 1d14h elapsed); done=1080ish, skip=175 (14%), recycle=139+
|
|
229
|
+
- Write rate: 39% last 86 prompts (Perf: prompt section — model explains optimizations rather than writes; same pattern noted in last 5 ticks, not a regression; overall run averaging ~8 writes/prompt across non-Perf prompts)
|
|
230
|
+
- Admiral last 30 min: heavy struggle:N:none (up to 53 calls without writes) and loop:read_file on json_rpc_server/handler.py and tool_agent/plugins.py; all known categories, no new pattern types; tui-recycle-requested fired 3x (10:46, 10:56, 11:10, 11:26 UTC), admiral worker restarted after each
|
|
231
|
+
- vLLM 400s: 0
|
|
232
|
+
- GH issues: 0 open
|
|
233
|
+
- Services: llm_balancer PID 24354 on :8001 healthy, admiral_probe PID 4075121 on :8878 healthy, vLLM gemma4 on :8000 healthy; no orphan servers on unexpected ports
|
|
234
|
+
- Note: previous tick at 11:05 UTC reported 680/1658 — that was reading the stale old log (/tmp/stress_2000_1777119799.log). Actual count is 1403+/1658 from /tmp/stress_2000_v10_restart_1777237201.log
|
|
235
|
+
- Action this tick: no action — system healthy, struggle/loop patterns are existing model behavior (Gemma 4 ignoring nudges, per CLAUDE.md learning #2), no new drydock bugs found; stress run on track to complete in ~12-15 hours
|
|
236
|
+
|
|
237
|
+
## 2026-04-28 12:05 UTC tick
|
|
238
|
+
- Stress: 1418/1658 (85%), PID 3993968 alive, 1d15h elapsed; active at [1418] Perf: evict LRU entries
|
|
239
|
+
- Write rate: 37% last 87 prompts (Perf: section — model explains optimizations rather than writing; consistent with prior ticks, not a regression)
|
|
240
|
+
- Admiral last 30 min: struggle:25-31:search_replace loop on "Perf: warm cache on startup" (admiral opus fired [B6] "already desired state"); tui-recycle-requested 2x (11:47, 11:59 UTC); all known categories, no new pattern types
|
|
241
|
+
- vLLM 400s: 0
|
|
242
|
+
- GH issues: 0 open
|
|
243
|
+
- Services: llm_balancer PID 24354 on :8001 healthy, vLLM gemma4 on :8000 healthy, admiral_probe alive; 1 unshipped commit (30e3123 fix(bash) signal-kill hint) ships as v2.7.16 at next auto-release cron tick
|
|
244
|
+
- Action this tick: no action — system healthy; struggle/loop patterns are existing Gemma 4 model behavior per CLAUDE.md learning #2; no new drydock bugs found; stress on track to complete in ~6-8 hours
|
|
245
|
+
|
|
246
|
+
## 2026-04-28 13:00 UTC tick
|
|
247
|
+
- Stress: 1433/1658 (86%), PID 3993968 alive, 1d16h elapsed; active at [1433] Perf: stream large file (+46 writes)
|
|
248
|
+
- Write rate: 43% last 86 prompts (Perf: section continues — explains optimizations more than writing; consistent with prior ticks)
|
|
249
|
+
- Admiral last 30 min: no new pattern types; struggle/loop categories are existing Gemma 4 model behavior per CLAUDE.md learning #2
|
|
250
|
+
- vLLM 400s: 0
|
|
251
|
+
- GH issues: 0 open
|
|
252
|
+
- Services: llm_balancer PID 24354 on :8001 healthy, admiral_probe PID 4075121 on :8878 healthy, vLLM gemma4 on :8000 healthy; no orphan servers
|
|
253
|
+
- Last release: v2.7.15 shipped at 11:00 UTC (auto-release bundled 11 commits); 2 commits pending (a757616 write_file path error, 30e3123 bash signal-kill hint) will ship as v2.7.16 at next 0/6/12/18 CDT tick (~18:00 CDT / 23:00 UTC)
|
|
254
|
+
- Note: 12:30 UTC tick failed with USD budget exceeded — no loss, system was healthy that tick too
|
|
255
|
+
- Action this tick: no action — system healthy, stress on track to complete in ~5-6 hours
|
|
256
|
+
|
|
257
|
+
## 2026-04-28 13:34 UTC tick
|
|
258
|
+
- Stress: 1440/1658 (87%), PID 3993968 alive, 1d16.5h elapsed; session reset just triggered after 1440 prompts, new TUI child spawned, continuing from prompt 1441
|
|
259
|
+
- Write rate: 44% last 86 prompts (Perf: section — "Perf: evict LRU entries", "Perf: lazy-load module" etc., low write rate expected; not a regression)
|
|
260
|
+
- Admiral last 30 min: skip-cluster alerts (8 SKIP in 36 prompts) and retry-spike (56% retry rate) — model taking 30-120s on Perf: prompts with thinking=HIGH; no new pattern types beyond known skip/retry/struggle/loop categories
|
|
261
|
+
- vLLM 400s: 0
|
|
262
|
+
- GH issues: 0 open
|
|
263
|
+
- Services: llm_balancer PID 24354 on :8001 healthy (curl OK), admiral_probe PID 4075121 alive, vLLM gemma4 Up 4 days; no orphan servers on :8001
|
|
264
|
+
- Action this tick: no action — system healthy; elevated SKIP clusters (~16% overall) are caused by thinking=HIGH on short Perf: prompts; stress progressing ~19 prompts/hour, expected completion in ~11 hours
|
|
265
|
+
|
|
266
|
+
## 2026-04-28 14:20 UTC tick
|
|
267
|
+
- Stress: 1454/1658 (88%), PID 3993968 alive (1d17h), log `/tmp/stress_2000_v10_restart_1777237201.log`; currently in Perf: section (warm-cache, evict-LRU, lazy-load prompts)
|
|
268
|
+
- Write rate: 41% last 86 prompts (Perf: section has low write rate by design — model discusses optimization more than writing code; not a regression)
|
|
269
|
+
- Admiral last 30 min: loop:read_file, empty_after_tool:read_file, struggle:N:write_file, loop:search_replace — all known model-behavior categories, no new pattern types
|
|
270
|
+
- vLLM 400s: 0
|
|
271
|
+
- GH issues: 0 open
|
|
272
|
+
- Services: llm_balancer PID 24354 on :8001 healthy (curl OK), vLLM gemma4 container up; no orphan servers
|
|
273
|
+
- Pending commits: a757616 (write_file actionable error on missing path) + 30e3123 (bash signal-kill hint) — will ship as v2.7.16 at next 0/6/12/18 CDT auto-release tick
|
|
274
|
+
- Action this tick: no action — system healthy, stress on track to complete in ~4-5 hours
|
|
275
|
+
|
|
276
|
+
## 2026-04-28 14:35 UTC tick
|
|
277
|
+
- Stress: 1460/1658 (88%), PID 3993968 alive (1d17.5h elapsed), log `/tmp/stress_2000_v10_restart_1777237201.log`; active in Perf: → Integrate: transition (prompt 1459 = "Integrate: Slack webhook" with +24 msgs +6 writes)
|
|
278
|
+
- Write rate: 41% last 86 prompts (Perf: section by design; model explains existing optimizations rather than writing; consistent with prior 5 ticks, not a regression)
|
|
279
|
+
- Admiral last 30 min: loop:search_replace (13:55 UTC), loop:read_file (14:09), empty_after_tool:search_replace (14:10), retry_after_error:bash (14:30) — all known model-behavior categories; no new pattern types; session log reached 1.86 GB causing SKIP clusters at prompts 1454-1458
|
|
280
|
+
- vLLM 400s: 0
|
|
281
|
+
- GH issues: 0 open (gh auth unavailable this tick — silent fail)
|
|
282
|
+
- Services: llm_balancer PID 24354 on :8001 healthy (curl returned model list), vLLM gemma4 container up; no orphan servers on unexpected ports
|
|
283
|
+
- Pending: 2 unreleased commits (a757616 write_file missing-path error, 30e3123 bash signal-kill hint) will ship as v2.7.16 at next 0/6/12/18 CDT auto-release tick
|
|
284
|
+
- Action this tick: no action — system healthy; SKIP clusters caused by 1.86 GB session log slowing TUI input acceptance, not a drydock bug; stress on track to complete in ~3-4 hours
|
|
285
|
+
|
|
286
|
+
## 2026-04-28 15:10 UTC tick
|
|
287
|
+
- Stress: 1479/1658 (89%), PID 3993968 alive (1d18h elapsed), log `/tmp/stress_2000_v10_restart_1777237201.log`; progressing through Integrate: section (GCP, Azure, Cloudflare Workers, Fastly)
|
|
288
|
+
- Write rate: 39% last 89 prompts (Integrate: section — model answers knowledge questions about cloud platforms with minimal code writes; consistent with Perf: section behavior, not a regression)
|
|
289
|
+
- Admiral last 30 min: retry-spike (64-79% retry rate) and skip-cluster (7-10 SKIPs per 33 prompts) alerts with 4x tui-recycle-requested; caused by 1.86+ GB session log slowing TUI input acceptance — known pattern; all are recovered by tui-recycle; no new admiral pattern types
|
|
290
|
+
- vLLM 400s: 0
|
|
291
|
+
- GH issues: 0 open
|
|
292
|
+
- Services: llm_balancer PID 24354 on :8001 healthy (curl returned model list), vLLM gemma4 container up 4 days, admiral_probe running; no orphan servers on unexpected ports
|
|
293
|
+
- Pending: 2 unreleased commits (a757616 write_file missing-path error, 30e3123 bash signal-kill hint) will ship as v2.7.16 at 17:00 UTC auto-release tick
|
|
294
|
+
- Action this tick: no action — system healthy; stress on track to complete in ~9 hours; skip-cluster pattern is session-log bloat at late stages, not a drydock bug
|
|
295
|
+
|
|
296
|
+
## 2026-04-28 15:35 UTC tick
|
|
297
|
+
- Stress: 1500/1658 (90%), PID 3993968 alive (1d18.5h elapsed), log `/tmp/stress_2000_v10_restart_1777237201.log`; session reset triggered at prompt 1500, harness continuing into final 158 prompts (Review:/Wrapup: section)
|
|
298
|
+
- Write rate: 38% last 92 prompts (Integrate: section — model answers cloud-platform knowledge questions with low code-write rate; consistent with prior 4 ticks, not a regression)
|
|
299
|
+
- Admiral last 30 min: repeated skip-cluster + tui-recycle-requested (14:50, 15:00, 15:12, 15:22 UTC) due to 1.86+ GB session log slowing TUI input acceptance; admiral auto-recycled TUI each time; no new pattern types beyond known model-behavior categories
|
|
300
|
+
- vLLM 400s: 0
|
|
301
|
+
- GH issues: 0 open
|
|
302
|
+
- Services: llm_balancer PID 24354 on :8001 healthy (curl OK, returned gemma4 model), vLLM gemma4 container up; no orphan servers on unexpected ports
|
|
303
|
+
- Pending commits: a757616 (write_file actionable error on missing path) + 30e3123 (bash signal-kill hint) — will ship as v2.7.16 at next 0/6/12/18 CDT auto-release tick
|
|
304
|
+
- Action this tick: no action — system healthy; skip-cluster pattern is session-log bloat at late-stage prompts, not a drydock bug; stress on track to complete in ~2-3 hours
|
|
305
|
+
|
|
306
|
+
## 2026-04-28 16:04 UTC tick
|
|
307
|
+
- Stress: 1514/1658 (91%), PID 3993968 alive (1d19h elapsed), log `/tmp/stress_2000_v10_restart_1777237201.log`; actively processing Integrate: section (Jenkins, CircleCI, etc.)
|
|
308
|
+
- Write rate: 41% last 93 prompts (Integrate: section — model explains integration patterns with low code-write rate; consistent with prior ticks, not a regression); overall SKIP rate 192/1372 = 14% due to session PTY log bloat late in run
|
|
309
|
+
- Admiral last 30 min: retry-spike + skip-clusters (14:50, 15:00, 15:12, 15:22 UTC) with tui-recycle-requested each time; all recovered; pattern categories: loop:read_file, loop:search_replace, retry_after_error:bash, empty_after_tool:web_search — all known model-behavior types; no new pattern
|
|
310
|
+
- vLLM 400s: 0
|
|
311
|
+
- GH issues: 0 open
|
|
312
|
+
- Services: llm_balancer PID 24354 on :8001 healthy (curl OK), vLLM gemma4 container up 4 days, admiral_probe running; no orphan servers on unexpected ports; PTY logfile at 1.9 GB driving skip clusters — admiral tui-recycle auto-recovering
|
|
313
|
+
- Pending: 2 unreleased commits (a757616 write_file missing-path error, 30e3123 bash signal-kill hint) will ship as v2.7.16 at 18:00 UTC auto-release tick
|
|
314
|
+
- Action this tick: no action — system healthy; stress on track to complete in ~1-2 hours; truncation already at KEEP_RECENT=4/SOFT_CAP=500 (aggressive); no new drydock bug found
|
|
315
|
+
|
|
316
|
+
## 2026-04-28 16:30 UTC tick
|
|
317
|
+
- Stress: 1538/1658 (93%), PID 3993968 alive (1d19.5h elapsed), log `/tmp/stress_2000_v10_restart_1777237201.log`; progressing through Integrate: webhook/CI prompts (Slack, Discord, GitHub Actions, GitLab CI)
|
|
318
|
+
- Write rate: 51% last 96 prompts (improvement over prior Integrate: section ticks at 38-41%; model writing webhook code rather than explaining)
|
|
319
|
+
- Admiral last 30 min: not checked explicitly; no anomalous activity observed in stress log tail
|
|
320
|
+
- vLLM 400s: 0
|
|
321
|
+
- GH issues: 0 open
|
|
322
|
+
- Services: llm_balancer PID 24354 on :8001 healthy, vLLM gemma4 container up 4 days, stress harness alive; 2 pending commits (a757616, 30e3123) ship as v2.7.16 at 18:00 UTC auto-release
|
|
323
|
+
- Action this tick: no action — system healthy; stress on track to complete in ~1 hour; no new drydock bug found
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
166653
|
|
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
|
|
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
|
{drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py
RENAMED
|
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
|
{drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/notifications/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/notifications/ports/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/banner/petit_chat.py
RENAMED
|
File without changes
|
{drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/braille_renderer.py
RENAMED
|
File without changes
|
{drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/chat_input/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/chat_input/container.py
RENAMED
|
File without changes
|
{drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/chat_input/text_area.py
RENAMED
|
File without changes
|
{drydock_cli-2.7.15 → drydock_cli-2.7.16}/drydock/cli/textual_ui/widgets/checkpoint_picker.py
RENAMED
|
File without changes
|
|
File without changes
|