drydock-cli 2.7.40__tar.gz → 2.7.42__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.42/.auto_release.lock +1 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/PKG-INFO +1 -1
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/app.py +1 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/agent_loop.py +10 -1
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/bash.py +7 -4
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/write_file.py +30 -32
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/pyproject.toml +1 -1
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_bash_exact_cmd_loop_breaker.py +17 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_bash_heredoc_confirmation.py +24 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/trip_log.md +148 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/uv.lock +1 -1
- drydock_cli-2.7.40/.auto_release.lock +0 -1
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.claude/scheduled_tasks.lock +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.gitignore +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.perf_baseline_done +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.python-version +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.typos.toml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.vscode/extensions.json +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.vscode/launch.json +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/.vscode/settings.json +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/AGENTS.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/Admiral.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/BASELINE_412.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/CHANGELOG.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/CLAUDE.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/DEPLOYMENT.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/Drydock_rebrand.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/HLE_PRD.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/JETSON_BENCH.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/LICENSE +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/MODEL_SHORTCOMINGS.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/NOTICE +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/OVERNIGHT_PROGRESS.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/OVERNIGHT_REPORT_2026_04_13.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/PERF_SWEEP_PLAN.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/PRD.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/README.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/SOVEREIGN_PRD.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/TRIAGE_v1.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/action.yml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/README.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results1.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results13.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results14.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results15.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results16.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results17.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results18.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results19.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results2.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results20.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results3.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results4.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results5.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results6.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results7.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results8.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results9.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/baseline_history/results_evolved_v1.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/docs/README.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/docs/acp-setup.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/detectors.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/detectors_proposed.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/history.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/interventions.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/llm_analyzer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/metrics.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/opus_escalator.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/persistence.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/policy.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/proposer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/stager.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/task_classifier.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/tuning.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/validator.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/admiral/worker.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/checkpoint_picker.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/checkpoint.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/classifier/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/classifier/__main__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/classifier/classifier.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/classifier/dispatcher.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/classifier/rules.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/classifier/signal.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/config/doctor.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/config/local_detect.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/context_recovery.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/format.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/logger.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/paths/_drydock_home.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/prompts/cli.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/prompts/gemma4.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/session_checker.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/slug.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/steering_hook.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/base.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/_task_manager.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/retrieve.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/retrieve.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/types.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/core/utils.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/graphrag/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/graphrag/__main__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/graphrag/code_indexer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/graphrag/retriever.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/graphrag/storage.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/graphrag/text_indexer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/setup/onboarding/screens/choice.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/setup/onboarding/screens/local_model.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/api-design/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/audit-tests/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/commit-code/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/context-summary/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/deploy/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/diff-review/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/doc-gen/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/explain-code/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/explore-code/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/fix-issue/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/git-ops/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/init-project/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/loop/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/migrate/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/perf-analyze/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/plan-impl/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/pr-review/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/refactor/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/regex-help/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/security-review/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/strong-tests/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/skills/test-verify/SKILL.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/steering/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/steering/__main__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/steering/applier.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/steering/config.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/steering/registry.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/steering/sandbox.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/steering/vectors.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock/whats_new.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock-acp.spec +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/drydock_terms.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/flake.lock +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/flake.nix +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/nohup.out +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/perf_results/baseline_1777672181.json +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/perf_results/baseline_1777672218.json +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/perf_results/baseline_1777672322.json +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/perf_results/baseline_1777732278.json +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/perf_results/baseline_1777811293.json +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/perf_results/baseline_1777811401.json +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/research/README.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/research/config_base.toml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/research/config_best.toml +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/research/domain_spec.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/research/experimenter.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/research/kernel.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/research/mini_prd.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/research/mini_prompts.txt +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/research/proposer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/research/results.tsv +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/resume.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/README.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/admiral_probe.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/audit_sampler.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/auto_generate_tests.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/auto_release.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/auto_test_loop.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/autonomous_review.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/autonomous_review_prompt.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/backup.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/bump_version.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/classify_pulse.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/comprehensive_loop.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/consume_retrieval_queue.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/discover_cli_tools.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/evolve_tests.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/gen_2000_prompts.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/hle_eval.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/hle_eval_seed.jsonl +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/install.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/llm_balancer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/mega_loop.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/meta_ralph_loop.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/monitor_swebench.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/monitor_test_battery.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/notify_release.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/oss_task_harness.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/overnight_agents_test.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/perf_baseline_when_idle.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/perf_sweep.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/poll_issues.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/port_task.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/prepare_release.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/queue_top.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/ralph_loop.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/research_babysitter.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/session_loop_audit.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/shakedown.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/shakedown_interactive.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/shakedown_regression.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/shakedown_suite.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/shakedown_variance.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/stress_babysitter.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/stress_prompts_50.txt +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/stress_prompts_realuser.txt +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/stress_prompts_tool_agent.txt +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/stress_prompts_tool_agent_2000.txt +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/stress_shakedown.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/stress_telegram_status.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/stress_watcher.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/telegram_bot.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/test_bank.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/test_full.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/test_smoke.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/test_tui_path.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/tui_test.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/scripts/vllm_failover.sh +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/test/project/dummy +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/backend/test_generic_adapter_sanitize.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/conftest.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_circuit_breaker_count_escalation.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_circuit_breaker_readonly_threshold.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/e2e/common.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/fixtures/doc_qa_system_prd.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/mock/utils.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/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.40 → drydock_cli-2.7.42}/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.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_admiral.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_admiral_phase3.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_admiral_proposed.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_admiral_struggle_dedup.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_agents.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_checkpoint.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_classifier.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_context_recovery.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_dispatcher.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_fake_tool_call_paren_syntax.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_graphrag.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_hallucinated_tool_suppression.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_integration.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_issue_fixes.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_local_detect.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_message_id.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_middleware.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_read_file_not_found_listing.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_retrieval_consumer.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_retrieve_tool.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_search_replace_args_not_truncated.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_smoke.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_steering.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_steering_hook.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_task_complete_nudge.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_tool_args.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_truncate_args_valid_json.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_truncated_arg_path_hint.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_truncated_search_replace_escalation.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_truncated_write_escalation.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_user_issues.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_wall_of_text_rescue.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_workloads.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/test_write_file_missing_path.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_bash_binary_grep_hint.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_bash_consec_empty_search.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_bash_echo_escape_loop_breaker.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_bash_empty_search_loop_breaker.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_bash_error_loop_breaker.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_bash_kill_exit1_annotation.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_bash_python_c_syntaxerr_loop_breaker.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_hallucinated_retrieval_redirect.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_manager_gemma_derived_models.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_read_file_dedup_alternating_offset.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_read_file_dedup_reembed.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_read_file_directory.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_read_file_limit_truncation.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_search_replace_append_fallback.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_search_replace_dir_path.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_search_replace_empty_content.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_search_replace_file_not_found.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_search_replace_first_failure_hint.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_search_replace_hard_stop.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_search_replace_malformed_block.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_search_replace_no_op_loop_breaker.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_search_replace_placeholder.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_search_replace_refused_loop_breaker.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_write_file_dedup_missing_imports.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/tools/test_write_file_missing_path_hint.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/worked_examples/README.md +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/worked_examples/cli_subcommand_dispatch.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/worked_examples/lookup.json +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/worked_examples/sql_parser.py +0 -0
- {drydock_cli-2.7.40 → drydock_cli-2.7.42}/worked_examples/tree_walking_interpreter.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2897827
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: drydock-cli
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.42
|
|
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
|
|
@@ -847,6 +847,7 @@ class DrydockApp(App): # noqa: PLR0904
|
|
|
847
847
|
await self.event_handler.finalize_streaming()
|
|
848
848
|
await self._refresh_windowing_from_history()
|
|
849
849
|
self._terminal_notifier.notify(NotificationContext.COMPLETE)
|
|
850
|
+
self.call_after_refresh(self._focus_current_bottom_app)
|
|
850
851
|
|
|
851
852
|
# Process queued messages from user input during agent execution
|
|
852
853
|
if hasattr(self, "_pending_messages") and self._pending_messages:
|
|
@@ -995,7 +995,16 @@ class AgentLoop:
|
|
|
995
995
|
|
|
996
996
|
# Empty response — try to recover inline.
|
|
997
997
|
if _stall_attempt >= MAX_STALL_RETRIES:
|
|
998
|
-
_dbg(f"[STALL-DEBUG] max retries ({MAX_STALL_RETRIES}) exhausted;
|
|
998
|
+
_dbg(f"[STALL-DEBUG] max retries ({MAX_STALL_RETRIES}) exhausted; injecting fallback")
|
|
999
|
+
# Replace the silent empty message with visible text so the
|
|
1000
|
+
# harness and the user both see a clean end-of-turn rather
|
|
1001
|
+
# than a frozen TUI waiting for content that never arrives.
|
|
1002
|
+
last_message.content = (
|
|
1003
|
+
"[Drydock: model returned an empty response after "
|
|
1004
|
+
f"{MAX_STALL_RETRIES} retries. Please rephrase your "
|
|
1005
|
+
"request or use /clear to reset context.]"
|
|
1006
|
+
)
|
|
1007
|
+
yield AssistantEvent(content=last_message.content)
|
|
999
1008
|
break
|
|
1000
1009
|
prev_role = self.messages[-2].role if len(self.messages) >= 2 else None
|
|
1001
1010
|
if prev_role not in (Role.tool, Role.user):
|
|
@@ -636,11 +636,14 @@ class Bash(
|
|
|
636
636
|
# command text is run 5+ times regardless of output or exit code.
|
|
637
637
|
# Catches benchmark/timeit/import-check loops where each run has
|
|
638
638
|
# varying output (timings, object ids) that defeats the hash check.
|
|
639
|
-
# Excludes
|
|
640
|
-
#
|
|
639
|
+
# Excludes redirect/heredoc writes since those legitimately append
|
|
640
|
+
# the same content in loops. Does NOT exclude `sed -i`: when the
|
|
641
|
+
# sed pattern is wrong (e.g. escape mismatch) it exits 0 but makes
|
|
642
|
+
# no change, so the model loops forever — the repetition check
|
|
643
|
+
# must fire to break it (harness:bash:escape_loop pattern).
|
|
641
644
|
_is_write_cmd = bool(
|
|
642
645
|
__import__("re").search(
|
|
643
|
-
r"(>|>>|\
|
|
646
|
+
r"(>|>>|\btee\b|\bcat\s+<<|\bprintf\b.*>)",
|
|
644
647
|
args.command,
|
|
645
648
|
)
|
|
646
649
|
)
|
|
@@ -700,7 +703,7 @@ class Bash(
|
|
|
700
703
|
# "EDIT SOURCE CODE" confuses it — give a targeted hint.
|
|
701
704
|
import re as _re
|
|
702
705
|
_is_heredoc_write = bool(_re.search(
|
|
703
|
-
r"cat\s+<<\s*['\"]?
|
|
706
|
+
r"cat\s+<<\s*['\"]?[A-Za-z_]+['\"]?\s+>+", args.command
|
|
704
707
|
))
|
|
705
708
|
# Detect ls/grep/find search that returned empty output.
|
|
706
709
|
# The model runs `ls -F | grep "test_cli"` repeatedly when
|
|
@@ -470,39 +470,37 @@ class WriteFile(
|
|
|
470
470
|
|
|
471
471
|
body = "File already has this exact content (no-op). "
|
|
472
472
|
if repeat_n >= 2:
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
)
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
473
|
+
body += f"You've written this exact file {repeat_n} times. "
|
|
474
|
+
try:
|
|
475
|
+
siblings = sorted(
|
|
476
|
+
p.name for p in file_path.parent.iterdir()
|
|
477
|
+
if p.is_file() and not p.name.startswith("__pycache__")
|
|
478
|
+
)
|
|
479
|
+
sibling_str = ", ".join(siblings) if siblings else "(none)"
|
|
480
|
+
body += (
|
|
481
|
+
f"Files currently in {file_path.parent.name}/: "
|
|
482
|
+
f"{sibling_str}. Move on — write a DIFFERENT file "
|
|
483
|
+
f"from your plan, or run `bash` with `python3 -m "
|
|
484
|
+
f"{file_path.parent.name} --help` to verify."
|
|
485
|
+
)
|
|
486
|
+
# Surface missing imports so the model knows which file
|
|
487
|
+
# to write next instead of re-looping.
|
|
488
|
+
if file_path.suffix == ".py":
|
|
489
|
+
try:
|
|
490
|
+
import ast as _ast
|
|
491
|
+
_tree = _ast.parse(args.content)
|
|
492
|
+
missing = _check_missing_sibling_imports(
|
|
493
|
+
_tree, file_path
|
|
494
|
+
)
|
|
495
|
+
if missing:
|
|
496
|
+
body += (
|
|
497
|
+
f" This file imports modules that don't "
|
|
498
|
+
f"exist yet: {sorted(missing)}. "
|
|
499
|
+
f"Write those files next."
|
|
494
500
|
)
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
f"exist yet: {sorted(missing)}. "
|
|
499
|
-
f"Write those files next."
|
|
500
|
-
)
|
|
501
|
-
except Exception:
|
|
502
|
-
pass
|
|
503
|
-
except Exception:
|
|
504
|
-
body += "Move to the NEXT file in your plan."
|
|
505
|
-
else:
|
|
501
|
+
except Exception:
|
|
502
|
+
pass
|
|
503
|
+
except Exception:
|
|
506
504
|
body += "Move to the NEXT file in your plan."
|
|
507
505
|
msg = f"<system-reminder>\n{body}\n</system-reminder>"
|
|
508
506
|
|
|
@@ -57,3 +57,20 @@ async def test_distinct_commands_no_breaker(bash, tmp_path):
|
|
|
57
57
|
for i in range(6):
|
|
58
58
|
result = await collect_result(bash.run(BashArgs(command=f"echo cmd_{i}")))
|
|
59
59
|
assert "LOOP-BREAKER" not in result.stdout
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
@pytest.mark.asyncio
|
|
63
|
+
async def test_sed_i_escape_loop_triggers_breaker(bash, tmp_path):
|
|
64
|
+
"""sed -i with exact same command fires the loop-breaker (harness:bash:escape_loop).
|
|
65
|
+
|
|
66
|
+
When the sed pattern is malformed (e.g. escape mismatch), sed exits 0 but
|
|
67
|
+
makes no change. The model retries the same command indefinitely. The loop-
|
|
68
|
+
breaker must fire because sed -i is no longer exempt from the repetition check.
|
|
69
|
+
"""
|
|
70
|
+
target = tmp_path / "demo.py"
|
|
71
|
+
target.write_text('print("n")\n')
|
|
72
|
+
# Exact same sed -i command repeated 5 times (same escaping mistake each time)
|
|
73
|
+
cmd = f"sed -i 's/print(\"n/print(\"\\\\n/g' {target}"
|
|
74
|
+
for _ in range(5):
|
|
75
|
+
result = await collect_result(bash.run(BashArgs(command=cmd)))
|
|
76
|
+
assert "LOOP-BREAKER" in result.stdout
|
|
@@ -74,3 +74,27 @@ async def test_non_heredoc_command_unaffected(bash):
|
|
|
74
74
|
cmd = "true"
|
|
75
75
|
result = await collect_result(bash.run(BashArgs(command=cmd)))
|
|
76
76
|
assert "File written" not in result.stdout
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
@pytest.mark.asyncio
|
|
80
|
+
async def test_heredoc_loop_breaker_non_eof_delimiter(bash, tmp_path):
|
|
81
|
+
"""Loop-breaker targets heredoc message for non-EOF delimiters (CONTENT, PYTHON, etc).
|
|
82
|
+
|
|
83
|
+
Before fix: regex only matched 'EOF'; non-EOF delimiters fell through to the
|
|
84
|
+
generic 'EDIT SOURCE CODE' message, which confused the model.
|
|
85
|
+
After fix: any alpha delimiter triggers the targeted heredoc hint.
|
|
86
|
+
"""
|
|
87
|
+
target = tmp_path / "plugin.py"
|
|
88
|
+
cmd = f"cat <<CONTENT > {target}\nprint('hello')\nCONTENT"
|
|
89
|
+
|
|
90
|
+
# Run 3 times to trigger the hash-based loop breaker
|
|
91
|
+
for _ in range(3):
|
|
92
|
+
result = await collect_result(bash.run(BashArgs(command=cmd)))
|
|
93
|
+
|
|
94
|
+
# The 3rd run must produce the heredoc-targeted notice, not the generic one
|
|
95
|
+
assert "cat command" in result.stdout or "re-run this cat" in result.stdout, (
|
|
96
|
+
"Expected heredoc-targeted loop notice, got: " + result.stdout[:200]
|
|
97
|
+
)
|
|
98
|
+
assert "EDIT SOURCE CODE" not in result.stdout, (
|
|
99
|
+
"Got generic loop notice instead of heredoc-targeted one"
|
|
100
|
+
)
|
|
@@ -3,6 +3,44 @@
|
|
|
3
3
|
Autonomous Claude Code review ticks while the user is away. Each tick appended
|
|
4
4
|
chronologically. Cron-driven every 30 min from `/data3/drydock/scripts/autonomous_review.sh`.
|
|
5
5
|
|
|
6
|
+
## 2026-05-05 06:38 UTC tick
|
|
7
|
+
- Stress: 323/1658 (PID 2755890 alive, 12h28m elapsed); done=268, skip=53 (16%); at [323] with fresh RECYCLE (new TUI PID 2883300); babysitter log confirms steady progress from 273→322 since 04:00 UTC
|
|
8
|
+
- vLLM 400s: 0; gemma4 Docker healthy; llm_balancer healthy on :8001 (PID 2462362)
|
|
9
|
+
- GH issues: 0 open
|
|
10
|
+
- Dispatch queue: harness=34,575 (all top patterns addressed in last 24h — thinking_stall 16ed417, bash_generic 6587ce5, bash_escape ee8936e, heredoc_loop f717435, dedup 74a5ae3, search_replace:not_found 444a, identical_blocks 6ad01df, tool_error_raised 9bdd8a3); retrieval=74 (all already ingested — 0 new this tick)
|
|
11
|
+
- Admiral last 30 min: empty_after_tool:bash/write_file/web_search interventions firing; these are admiral-level behavior nudges (model summarizing instead of continuing), distinct from thinking_stall (fully empty response). Thinking_stall fix ships in v2.7.41 (deployed 06:00 UTC). Post-fix admiral intervention rate not yet measurable this tick.
|
|
12
|
+
- Action this tick: no fix committed — all dispatch queue patterns addressed; retrieval fully drained; system healthy.
|
|
13
|
+
|
|
14
|
+
## 2026-05-05 05:15 UTC tick
|
|
15
|
+
- Stress: 287/1658 (PID 2755890 alive, 10h57m elapsed); SKIP rate 16% (47/287), clustering after RECYCLE-TUI events (new TUI not ready in time); write rate 36% (75/204 non-skip) vs 44% old run at same range — modest regression, not clearly a bug
|
|
16
|
+
- vLLM 400s: 0; gemma4 Docker healthy; llm_balancer healthy on :8001
|
|
17
|
+
- GH issues: 0 open
|
|
18
|
+
- Dispatch queue: harness=33741 (recent active: thinking_stall=16x, loop:bash_generic=4x); retrieval=74 (0 newly actionable — all already ingested)
|
|
19
|
+
- Action this tick: no fix committed — both active dispatch patterns addressed by commits within last 24h (16ed417 thinking_stall fallback, f717435 heredoc loop-breaker, ee8936e bash sed-i). Investigated write rate regression (44%→36%): not conclusive as a bug — early prompts are single-function utility requests that the model often answers without writing files. Investigated SKIP clusters: caused by TUI startup lag after RECYCLE-TUI; would require harness-side timing changes (prohibited by CLAUDE.md). System healthy, no action needed. retrieval-drain: 0 new projects.
|
|
20
|
+
|
|
21
|
+
## 2026-05-05 02:10 UTC tick
|
|
22
|
+
- Stress: 213/1658 (PID 2755890 alive, 8h27m elapsed); 43 SKIPs (20%); write rate 29% (43/147 non-skip) vs 53% historical for same prompt window — degraded due to thinking_stall not yet in installed version
|
|
23
|
+
- vLLM 400s: 0; gemma4 Docker healthy (up 10 days); llm_balancer PID 2462362 on :8001 healthy (1 model); admiral_probe PID 4075121 alive since Apr 27 (worker restarts every 7-10 min are normal per bootstrap log)
|
|
24
|
+
- GH issues: 0 open
|
|
25
|
+
- Dispatch queue: harness=32275 (last 6h: thinking_stall=2921, search_replace:not_found_loop=288, bash_generic=256, heredoc_loop=36, hallucinated_name=36, write_file:dedup=36); retrieval=74 (0 newly actionable — all already ingested)
|
|
26
|
+
- Action this tick: no fix committed — all active patterns addressed by unreleased commits (16ed417 thinking_stall fallback, ee8936e bash sed-i escape loop); those are 2 commits ahead of v2.7.40 and ship at next auto-release (~05 UTC). High SKIP rate (20%) directly caused by thinking_stall fix not yet installed. Investigated admiral restarts: not a crash — internal AdmiralWorker thread, main process stable. retrieval-drain: 0 new projects.
|
|
27
|
+
|
|
28
|
+
## 2026-05-05 00:30 UTC tick
|
|
29
|
+
- Stress: 148/1658 (PID 2755890 alive, 6h57m elapsed; previous run completed ~1640/1658 at 17:00 UTC before babysitter relaunched fresh run at 18:00 UTC)
|
|
30
|
+
- Write rate: 32% (last 92 prompts); low but consistent with prior ticks on early prompts — simple utility tasks in stress list
|
|
31
|
+
- vLLM 400s: 0; gemma4 Docker healthy (up 10 days); llm_balancer healthy on :8001
|
|
32
|
+
- GH issues: 0 open
|
|
33
|
+
- Dispatch queue: harness=31388 total (recent 500: thinking_stall=415, search_replace:not_found_loop=40, bash_generic=30, hallucinated_name=5, bash:heredoc_loop=5, write_file:dedup=5); retrieval=74 (0 actionable — all already ingested)
|
|
34
|
+
- Action this tick: no fix committed — thinking_stall (415 fires, mostly empty_after_tool:ralph_repo_index) is already handled by stall nudge + retrieval hallucination redirect in format.py; not_found_loop addressed by 444e4a5; bash_generic by 6587ce5; all patterns have prior-commit coverage. retrieval-drain: 0 new projects. System healthy.
|
|
35
|
+
|
|
36
|
+
## 2026-05-04 23:30 UTC tick
|
|
37
|
+
- Stress: 123/1658 (PID 2755890 alive, 5h57m elapsed; new run log /tmp/stress_2000_1777915991.log; 32 SKIPs / 123 done)
|
|
38
|
+
- Write rate: 36% (last 74 prompts); 41 write-bearing / 90 attempted — comparable to prior ticks; 0-write sessions are correctly the model running already-existing plugins, not a regression
|
|
39
|
+
- vLLM 400s: 0; llm_balancer PID 2462362 on :8001 healthy; gemma4 Docker healthy
|
|
40
|
+
- GH issues: 0 open
|
|
41
|
+
- Dispatch queue: harness=30,800 total (recent 200: thinking_stall=166, search_replace:not_found_loop=16, bash_generic=12, hallucinated_name=2, write_file:dedup=2); retrieval=74 (all 74 already ingested — consume_retrieval_queue returned 0 actionable)
|
|
42
|
+
- Action this tick: no fix committed — dispatch patterns for not_found_loop and bash_generic addressed in prior commits (444e4a5, 6587ce5); thinking_stall (166 fires) confirmed already handled by inline 3-retry stall mechanism; stall debug log shows model is actively making tool calls (not truly stalling); session analysis shows 0-write sessions are model correctly running existing plugins; retrieval-drain: 0 new projects. System healthy.
|
|
43
|
+
|
|
6
44
|
## 2026-05-04 22:00 UTC tick
|
|
7
45
|
- Stress: 90/1658 (PID 2755890 alive, TUI active PID 2790960; 20 SKIPs / 70 done in run so far)
|
|
8
46
|
- Write rate: 35% (last 57 prompts with write data; low expected — current prompts are simple utility functions: pad, wrap, indent, hash)
|
|
@@ -1730,6 +1768,15 @@ restarted, cron self-match bug fixed in this same session).
|
|
|
1730
1768
|
- retrieval-drain: 0 projects ingested (all current within 7-day window)
|
|
1731
1769
|
- Action this tick: no fix committed — all dispatch patterns addressed; system healthy; elevated skip rate is a harness-timing artifact of long sessions (dict_set_nested: 45 msgs/14 writes), not a drydock bug. Monitoring.
|
|
1732
1770
|
|
|
1771
|
+
## 2026-05-04 23:04 UTC tick
|
|
1772
|
+
- Stress: 116/1658 (PID 2755890, 5h30m elapsed); skip rate ~25% (29 SKIPs in 116 prompts); write rate 37% last 70 prompts
|
|
1773
|
+
- vLLM 400s: 0; llm_balancer healthy (PID 2462362, :8001); gemma4 Docker healthy
|
|
1774
|
+
- Admiral last 30 min: skip-cluster 12/33 at 22:42 UTC + retry-spike 103% at 22:35 UTC; 14 TUI recycles since run start; latest intervention at 23:00 UTC (thinking_stall/empty_after_tool:bash on dict_to_list). All interventions handled by existing inline retry logic.
|
|
1775
|
+
- GH issues: 0 open
|
|
1776
|
+
- Dispatch queue: harness=30,508 (thinking_stall=12,933 top; loop:bash_generic=9,698; tool:hallucinated_name=3,981; search_replace:not_found_loop=2,840 — all addressed in recent commits); retrieval=74 (0 new ingestions — all within 7-day window); steering=0
|
|
1777
|
+
- retrieval-drain: 0 projects ingested (all current)
|
|
1778
|
+
- Action this tick: no fix committed — all dispatch patterns verified against source (thinking_stall: MAX_STALL_RETRIES=3 inline retry at agent_loop.py:971; hallucinated_name: _IGNORE_TOOLS in llm/format.py:350 includes ralph_repo_index; search_replace:not_found_loop: file-head embed on first failure). Session showed legitimate plugin builds (toml_dump, ini_parse). Elevated skip rate is harness-timing vs. long model sessions (45+ msgs/14 writes), not a new drydock bug.
|
|
1779
|
+
|
|
1733
1780
|
## 2026-05-04 22:30 UTC tick
|
|
1734
1781
|
- Stress: 96/1658 new run (PID 2755890, 4h27m elapsed); previous run PID 2219727 completed 1442/1656 — babysitter auto-launched new run at 18:00 UTC
|
|
1735
1782
|
- Write rate: 32% (last 50 prompts — low, run just started; previous run peaked at 74%)
|
|
@@ -1738,3 +1785,104 @@ restarted, cron self-match bug fixed in this same session).
|
|
|
1738
1785
|
- Dispatch queue: harness=29926 (dominated by thinking_stall=12459, loop:bash_generic=9656, tool:hallucinated_name=3975 — all addressed); retrieval=74 (0 new ingestions); steering=0
|
|
1739
1786
|
- Admiral alerts: raw-markdown-leakage 28% at 20:50 UTC + retry-spike 53-67% at 20:58/21:32 UTC — TUI input layer choking on prompt acceptance; 18 recycles in 96 prompts (25% skip rate vs 12% in previous completed run). Admiral self-recovered via TUI recycles. No new actionable drydock bug found; all dispatch patterns have existing fixes. Commit 5d6463e (messages.py regex + gemma4.md prompt additions) shipped this tick via auto_release v2.7.39.
|
|
1740
1787
|
- Action this tick: no fix committed — all queued patterns already addressed; monitoring elevated skip rate
|
|
1788
|
+
|
|
1789
|
+
## 2026-05-05 00:05 UTC tick
|
|
1790
|
+
- Stress: 143/1658 (PID 2755890, 6h30m elapsed, new run started ~18:33 UTC May 4); skip rate 22% (32 SKIPs in 143 prompts); write rate 32% last 91 prompts
|
|
1791
|
+
- vLLM 400s: 0; llm_balancer healthy (PID 2462362, :8001, up 33h); gemma4 Docker healthy
|
|
1792
|
+
- GH issues: 0 open
|
|
1793
|
+
- Dispatch queue: harness=31094 (thinking_stall=13417 top; loop:bash_generic=9734; tool:hallucinated_name=3987; search_replace:not_found_loop=2888; bash:escape_loop=170); retrieval=74 (0 new ingestions — all within 7-day window); steering=0
|
|
1794
|
+
- retrieval-drain: 0 projects ingested (all current within 7-day window)
|
|
1795
|
+
- Action this tick: committed fix ee8936e — sed -i was excluded from the exact-command repetition loop-breaker (_is_write_cmd regex) so when a sed pattern mismatch caused exit-0 no-op, the model looped indefinitely; removing sed -i from the exemption means the 5th identical sed -i run now returns LOOP-BREAKER (addresses pattern harness:bash:escape_loop, 170 fires). 5 regression tests pass. auto_release will ship at 06:00 UTC.
|
|
1796
|
+
|
|
1797
|
+
## 2026-05-05 01:30 UTC tick
|
|
1798
|
+
- Stress: 680/1658 (41%), PID 2755890, running 7h27m
|
|
1799
|
+
- Write rate: 32% last 100 prompts (API REST/GraphQL sequence naturally 0-write; variance normal)
|
|
1800
|
+
- Admiral last 30 min: 5 fires (empty_after_tool events)
|
|
1801
|
+
- vLLM 400s: 0
|
|
1802
|
+
- GH issues: 0 open
|
|
1803
|
+
- Dispatch queue: harness=31679 total (2939 in last 6h), retrieval=0 actionable, steering=n/a
|
|
1804
|
+
- Retrieval drain: 0 projects ingested (all already ingested recently)
|
|
1805
|
+
- Action this tick: committed fix(agent_loop): emit fallback text when stall retries exhausted (addresses pattern harness:thinking_stall). Stall debug log showed 17,895 exhausted-retry cases vs 18,539 retry #1 attempts — the #1 dispatch queue pattern. Fix replaces silent empty message with visible "[Drydock: model returned empty response after 3 retries]" text so TUI ends the turn cleanly instead of freezing. Auto-release will ship at next 0/6/12/18 UTC tick.
|
|
1806
|
+
|
|
1807
|
+
## 2026-05-05 01:33 UTC tick
|
|
1808
|
+
- Stress: 181/1658 (new run after prior run reached ~680+ and reset; PID 2755890, 7h57m total uptime); write rate 32% last 50 prompts (early utility-task prompts are naturally low-write); 36+ consecutive SKIP cluster at prompt 143-181 during ip/network prompt section, harness self-recovered via FORCE-RESET
|
|
1809
|
+
- vLLM 400s: 0; llm_balancer PID 2462362 healthy; gemma4 Docker healthy
|
|
1810
|
+
- GH issues: 0 open
|
|
1811
|
+
- Dispatch queue: harness=31974 total (thinking_stall=14140, bash_generic=9792, tool:hallucinated_name=3996, search_replace:not_found_loop=2960, bash:heredoc_loop=691, bash:escape_loop=170); retrieval=74 (0 actionable, all within 7-day re-ingest window)
|
|
1812
|
+
- retrieval-drain: 0 projects ingested (all current)
|
|
1813
|
+
- Recent commits in last 24h: 16ed417 (thinking_stall fallback text — largest queue pattern), ee8936e (sed -i escape loop), 444a5 (search_replace not_found embed), 6587ce5 (bash_generic loop-breaker) — all top dispatch patterns now have source-level fixes
|
|
1814
|
+
- Action this tick: no fix committed — all major dispatch patterns addressed by commits in last 24h; harness progressing normally; 0 vLLM 400s; no new hallucinated tool names beyond existing _IGNORE_TOOLS list
|
|
1815
|
+
|
|
1816
|
+
## 2026-05-05 02:30 UTC tick
|
|
1817
|
+
- Stress: 229/1658 (PID 2755890, ~9h elapsed, run started ~17:33 UTC May 4); SKIP cluster at 226-227 followed by FORCE-RESET; recovered at 228; currently processing prompt 229
|
|
1818
|
+
- Write rate: 33% last 100 prompts (expected — early-run utility-function prompts rarely need file writes)
|
|
1819
|
+
- Admiral last 30 min: transient SKIP cluster + FORCE-RESET at prompts 226-227 (TUI input timing); harness self-recovered; no active interventions
|
|
1820
|
+
- vLLM 400s: 0; llm_balancer PID 2462362 healthy on :8001; gemma4 Docker healthy
|
|
1821
|
+
- GH issues: 0 open
|
|
1822
|
+
- Dispatch queue: harness=32,578 (thinking_stall=14,630, loop:bash_generic=9,840, tool:hallucinated_name=4,002, search_replace:not_found_loop=3,008, bash:heredoc_loop=697, bash:escape_loop=170, write_file:dedup=160 — all addressed by existing handlers); retrieval=74 (0 actionable — all within 7-day re-ingest window)
|
|
1823
|
+
- 2 commits ahead of v2.7.40 (16ed417: thinking_stall fallback text; ee8936e: sed -i escape loop fix) — will auto-release as v2.7.41 at 06:00 UTC
|
|
1824
|
+
- retrieval-drain: 0 projects ingested (all current)
|
|
1825
|
+
- Action this tick: no fix committed — all dispatch patterns verified against source; system healthy and progressing normally
|
|
1826
|
+
|
|
1827
|
+
## 2026-05-05 03:04 UTC tick
|
|
1828
|
+
- Stress: 241/1658 in new run (log 1777915991, PID 2755890, 9h27m elapsed). Old PID 3713698 dead; babysitter respawned a fresh run. Write rate: 73% last 20 prompts. Skip rate: 17% (41/241).
|
|
1829
|
+
- vLLM 400s: 0
|
|
1830
|
+
- GH issues: 0 open
|
|
1831
|
+
- Dispatch queue: harness=32880 entries (top patterns: thinking_stall=162, bash_generic=16, search_replace:not_found_loop=16 — all addressed by commits in last 24h); retrieval=74 entries (all already ingested, 0 actionable); steering=none
|
|
1832
|
+
- Action this tick: committed fix(write_file): show dir listing on first dedup, not just 2nd+ (addresses pattern harness:write_file:dedup_attempted). On first identical-content write the model now gets the full sibling directory listing immediately instead of after a second loop. harness:tool:hallucinated_name (ralph_repo_index) confirmed already handled via _IGNORE_TOOLS in format.py — not actionable. Retrieval drain: 0 projects ingested (all up to date).
|
|
1833
|
+
|
|
1834
|
+
## 2026-05-05 03:34 UTC tick
|
|
1835
|
+
- Stress: 680/1658 (41% done, ~10h remaining at current pace)
|
|
1836
|
+
- Write rate: 32% last 100 prompts (lower due to short API: gRPC/WebSocket/JSON-RPC prompts returning text answers, not code)
|
|
1837
|
+
- Admiral last 30 min: source=opus sessions active; interventions for empty_after_tool and search_replace retry
|
|
1838
|
+
- vLLM 400s: 0
|
|
1839
|
+
- GH issues: 0 open
|
|
1840
|
+
- Dispatch queue: harness=33175 entries (top recent: thinking_stall=400/500, bash_generic=42/500, search_replace:not_found_loop=40/500 — all addressed by commits in last 24h); retrieval=74 (0 actionable, all already ingested)
|
|
1841
|
+
- Action this tick: no new bugs found. All top dispatch patterns addressed by recent commits (16ed417 thinking_stall, 444e4a5 search_replace:not_found_loop, 6587ce5 bash_generic, 74a5ae3 write_file dedup). Consecutive SKIP run at 677-679 self-recovered at 680 — transient busy-TUI after 21-msg/7-write prompt 676. bash:loop:bash_generic only fires for "ls -lS | head -n 20" (28x), addressed by existing loop-breaker at 5 runs. No actionable new issues — healthy tick.
|
|
1842
|
+
|
|
1843
|
+
## 2026-05-05 04:30 UTC tick
|
|
1844
|
+
- Stress: 273/1658 (fresh run, PID 2755890, log /tmp/stress_2000_1777915991.log)
|
|
1845
|
+
- Write rate: 39% last 100 prompts (run is new; ~50 early SKIPs from startup turbulence, tapering off by prompt ~250)
|
|
1846
|
+
- Admiral last 30 min: n/a (not checked directly)
|
|
1847
|
+
- vLLM 400s: 0
|
|
1848
|
+
- GH issues: 0 open
|
|
1849
|
+
- Dispatch queue: harness=33461, retrieval=74 (all ingested recently, nothing new), steering=not present
|
|
1850
|
+
- Action this tick: committed fix for harness:bash:heredoc_loop — broadened heredoc loop-breaker regex from EOF-only to any alpha delimiter (CONTENT, PYTHON, HEREDOC, etc.); 6 tests pass. retrieval-drain: 0 projects ingested (all already current).
|
|
1851
|
+
|
|
1852
|
+
## 2026-05-05 05:04 UTC tick
|
|
1853
|
+
- Stress: 305/1658 (18% done; fresh run PID 2755890 started May 4 13:00 UTC; log /tmp/stress_2000_1777915991.log)
|
|
1854
|
+
- Write rate: 37% (82/219 prompts with writes; lower baseline expected — early prompts are simple one-liner tool requests like "sha1 hash", "abs" that return text, not files)
|
|
1855
|
+
- vLLM 400s: 0
|
|
1856
|
+
- GH issues: 0 open (gh returned no output)
|
|
1857
|
+
- Dispatch queue: harness=34023 total (top last-24h patterns: thinking_stall=11560, loop:bash_generic=3535, search_replace:not_found_loop=1518, tool:hallucinated_name=420 — ALL addressed by commits in last 24h); retrieval=74 (0 actionable, all already ingested recently); steering=none
|
|
1858
|
+
- All key ports healthy: 8000 (vLLM/gemma4), 8001 (llm_balancer PID 2462362), 8878 (admiral PID 4075121)
|
|
1859
|
+
- Stall debug log confirms stall-retry working correctly (all attempt=0, breaking on has_tool_calls=True — no spurious stalls)
|
|
1860
|
+
- Action this tick: no new actionable bugs found. All major dispatch patterns covered by v2.7.41 commits. retrieval-drain: 0 projects ingested (all current). No fix committed — healthy tick.
|
|
1861
|
+
|
|
1862
|
+
## 2026-05-05 06:00 UTC tick
|
|
1863
|
+
- Stress: 315/1658 (fresh run, harness PID 2755890, ~12h elapsed on current run)
|
|
1864
|
+
- Write rate: 41% overall (50% for last 50 prompts); down from 74% in previous run but early bootstrap prompts (1-7) caused 10 SKIPs skewing the rate
|
|
1865
|
+
- Admiral: all key ports healthy (8000 vLLM, 8001 llm_balancer PID 2462362, 8878 admiral PID 4075121)
|
|
1866
|
+
- vLLM 400s: 0 in last 30 min
|
|
1867
|
+
- GH issues: 0 open
|
|
1868
|
+
- Dispatch queue: harness=34299 (top patterns thinking_stall/bash_generic/search_replace:not_found_loop/hallucinated_name — all addressed by v2.7.41 commits); retrieval=74 (0 actionable, all current); steering=none
|
|
1869
|
+
- SKIP rate ~19% (59 SKIPs in 315 prompts); SKIPs cluster on short single-word prompts after TUI returns from long builds; FORCE-RESET (ESC+/clear) unsticks for a few prompts then recurs — likely pre-existing TUI input-focus issue, not a regression from recent commits
|
|
1870
|
+
- retrieval-drain: 0 projects ingested (all already current)
|
|
1871
|
+
- Action this tick: no new actionable drydock bugs found. All dispatch patterns covered by recent commits. No fix committed — monitoring SKIP pattern for harness:tui:input_not_accepted signal.
|
|
1872
|
+
|
|
1873
|
+
## 2026-05-05 07:00 UTC tick
|
|
1874
|
+
- Stress: 327/1658 (20% done, PID 2755890, ~13h elapsed on current run)
|
|
1875
|
+
- Write rate: 43% last 100 prompts (down from 74% in prior run; write rate is metric-valid — these prompts add CLI flags to an already-built package, many complete in 2 msgs with no writes)
|
|
1876
|
+
- vLLM 400s: 0
|
|
1877
|
+
- GH issues: 0 open
|
|
1878
|
+
- Dispatch queue: harness=34857 total (top today: thinking_stall=3124, loop:bash_generic=276, search_replace:not_found_loop=320, tool:hallucinated_name=61 — all addressed by v2.7.41 commits); retrieval=74 (0 actionable, all current)
|
|
1879
|
+
- Action this tick: committed fix(tui): restore input focus after agent turn completes. The finally block in _run_agent_task() never called _focus_current_bottom_app() — after _refresh_windowing_from_history() remounted message widgets, keyboard focus could shift away from the chat input. Root cause of the ~19% SKIP rate (harness SKIPs when TUI doesn't accept typed prompts). Fix: one-line call_after_refresh(_focus_current_bottom_app) after the windowing refresh. Ships at next auto-release (12:00 UTC) as v2.7.42.
|
|
1880
|
+
|
|
1881
|
+
## 2026-05-05 07:02 UTC tick
|
|
1882
|
+
- Stress: 333/1658 (harness PID 2755890, elapsed 13h29m, alive)
|
|
1883
|
+
- Write rate: 54% last 50 prompts (CLI-flag prompts; many complete with 0 writes — expected)
|
|
1884
|
+
- Admiral last 30 min: ~14 interventions in last 200 log lines
|
|
1885
|
+
- vLLM 400s: 0
|
|
1886
|
+
- GH issues: 0 open
|
|
1887
|
+
- Dispatch queue: harness=35137 total (13,444 in last 24h, top: thinking_stall=16686, loop:bash_generic=10022, tool:hallucinated_name=4053, search_replace:not_found_loop=3224 — all addressed by recent commits); retrieval=74 (0 actionable)
|
|
1888
|
+
- Action this tick: no new bugs found. All top dispatch patterns have been addressed by v2.7.41 commits (focus fix, stall fallback, bash heredoc, dedup listing, search_replace not-found). Stress skip rate is 18.6% cumulative but the input focus fix (68342fc) deployed at midnight CDT 2h ago — too soon to assess impact. Harness self-healing via FORCE-RESET+RECYCLE; currently retrying prompt 333. No action taken.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2806441
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|