tunacode-cli 0.0.77.1__tar.gz → 0.0.77.2__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.
Potentially problematic release.
This version of tunacode-cli might be problematic. Click here for more details.
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/debug_history/debug_sessions.json +11 -0
- tunacode_cli-0.0.77.2/.claude/delta_summaries/2025-10-01-startup-banner-panel.md +14 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/api_change_logs.json +12 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/behavior_changes.json +45 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/reasoning_logs.json +23 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/memory_anchors/anchors.json +10 -1
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/metadata/file_classifications.json +5 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.pre-commit-config.yaml +2 -2
- tunacode_cli-0.0.77.2/AGENTS.md +147 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/PKG-INFO +2 -2
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/changelog/CHANGELOG.md +5 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/publishing-workflow.md +10 -10
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-10-01_11-15-38_model_validation_error.md +1 -1
- tunacode_cli-0.0.77.2/memory-bank/research/2025-10-02_12-19-05_startup_performance_analysis.md +183 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/pyproject.toml +3 -3
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/check-file-length.sh +1 -0
- tunacode_cli-0.0.77.2/scripts/run-dead-imports.sh +81 -0
- tunacode_cli-0.0.77.2/scripts/ui_import_timer.py +199 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/constants.py +1 -1
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/console.py +61 -11
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/output.py +31 -4
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/panels.py +69 -32
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_console_output.py +5 -2
- tunacode_cli-0.0.77.2/tests/characterization/version/test_version_metadata.py +29 -0
- tunacode_cli-0.0.77.2/tests/ui/test_lazy_rich_loading.py +96 -0
- tunacode_cli-0.0.77.1/AGENTS.md +0 -161
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/README.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/debug_history/2025-09-21-rag-search-hyphen-gotcha.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/2025-01-05-baseline.yml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/2025-09-21-models_registry-pydantic-conversion.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/2025-09-21-models_registry-validation-tests.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/2025-09-21-test-update-model-command-characterization.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/fix-text-alignment-layout-task3.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/prompt_system_xml_migration.json +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/task4_ui_formatting_fix.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/v0.0.53_to_v0.0.54.diff +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/always-on-display-implementation.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/cli-json-recovery-incident.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/directory-caching-optimization.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/esc-investigation/ESC_KEY_INVESTIGATION.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/esc-investigation/ESC_KEY_STREAMING_ANALYSIS.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/hatch-commands.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/model-updates-2025.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/onboarding-improvements.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/openai_tool_calling_evaluation.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/phase5-prompt-injection-system.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/slash-commands.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/uv-hatch-setup.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/uv-installer-updates.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/version-management.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/docs_model_friendly/component_purpose.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/docs_model_friendly/component_relationships.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/docs_model_friendly/rag_modules_overview.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/kv/github-actions-release-fix.json +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/metadata/components.yml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/metadata/hotspots.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/patterns/canonical_patterns/backward_compatibility_refactor.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/patterns/json_retry_implementation.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/latest_session.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/main-agent-integration-20250917-123100/commits.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/main-agent-integration-20250917-123100/diffstat.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/main-agent-integration-20250917-123100/files.json +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/main-agent-integration-20250917-123100/hunks.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/main-agent-integration-20250917-141518/commits.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/main-agent-integration-20250917-141518/diffstat.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/main-agent-integration-20250917-141518/files.json +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/main-agent-integration-20250917-141518/hunks.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/react-tool-session-20250120-000002/summary.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/smart-git-20250917-122934/commits.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/smart-git-20250917-122934/diffstat.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/smart-git-20250917-122934/files.json +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/fix-agent-errors.yml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/fix-publish-script.yml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/fix-runtime-warnings.yml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/reasoning_docs/main-agent-integration-20250917-123100.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/reasoning_docs/main-agent-integration-20250917-141518.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/reasoning_docs/simplified-agent-handoff-20250929.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/reasoning_docs/smart-git-20250917-122934.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/rag_knowledge.db +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/semantic_index/function_call_graphs.json +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/semantic_index/intent_mappings.json +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/semantic_index/prompt_system_changes.json +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/semantic_index/type_relationships.json +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.github/pull_request_template.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.github/scripts/check_file_size.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.github/workflows/lint.yml +0 -0
- /tunacode_cli-0.0.77.1/.github/workflows/publish-release-v2.yml → /tunacode_cli-0.0.77.2/.github/workflows/publish-release.yml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.gitignore +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/CLAUDE.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/LICENSE +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/MANIFEST.in +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/README.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/TODO.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/assets/tunacode_example.png +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reports/subagent_analysis/code-synthesis-analyzer_report.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reports/subagent_analysis/codebase-analyzer_report.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/FAGAN_PLAN.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/agent_seams.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/fagan_inspection_defects.json +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/fagan_inspection_summary.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/main_agent_refactor_issues.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/main_agent_refactor_plan.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/README.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/TOOLS_WORKFLOW.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/agent-flow.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/agent-inspo.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/how-tunacode-agent-works.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/main-agent-architecture.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/main-agent.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/swepmini-example.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/tunacode-tool-system.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent-tools/ReAct-vs-ReWoo.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent-tools/tools-architecture.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/.env.example +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/config-file-example.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/config-flow-diagram.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/config-touch-points.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/environment-variables.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/local-models.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/logging-configuration.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/tunacode-json-example.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/tunacode.json.example +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/codebase-hygiene.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/command-system-architecture.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/creating-custom-commands.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/hatch-build-system.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/performance-optimizations.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/prompt-principles.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/streaming-text-prefix-fix.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/tests/README.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/tests/characterization-testing.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/tests/mocking-strategies.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/tests/troubleshooting.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/ui/ui-architecture.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/user/commands.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/user/getting-started.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/user/tools.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/.gitignore +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/README.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/kb_synch/Cargo.lock +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/kb_synch/Cargo.toml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/kb_synch/anchor_drop.rs +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/rag_modules/README.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/rag_modules/indexer.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/rag_modules/rag-cli.sh +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/rag_modules/search.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/rag_modules/stats.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/execute/2025-09-12_15-20-00_model_selection_config_persistence_fix.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/execute/2025-09-15_12-30-00_configuration_dashboard_implementation.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/execute/2025-09-15_configuration_dashboard_ux_improvements.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/execute/2025-09-29_12-15-00_git_safety_branch_removal_log.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/plan/2025-09-11_13-30-00_agent_loop_architecture_enhancement.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/plan/2025-09-11_14-00-00_enum_state_machine_implementation.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/plan/2025-09-11_14-15-00_automated_cli_tool_testing_framework.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/plan/2025-09-12_12-20-00_global_graceful_error_handling_implementation.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/plan/2025-09-12_15-08-14_model_selection_config_persistence_fix.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/plan/2025-09-15_12-29-04_configuration_dashboard_implementation.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/plan/2025-09-17_15-30-00_main-agent-refactor_plan.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/plan/2025-09-19_11-30-00_tunacode_md_to_agents_md_migration.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/plan/2025-09-24_cli_prompt_toolkit_fuzzy_plan.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/plan/2025-09-29_11-15-30_simplified_agent_implementation.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/plan/2025-09-29_11-45-00_git_safety_branch_removal_plan.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-01-19_react-shim-analysis.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-07_21-13-37_agent_loop_architecture.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-11_13-14-06_agent_loop_enhancement_analysis.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-12_12-15-48_global_graceful_error_handling_analysis.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-12_14-54-43_model_configuration_crash_analysis.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-12_15-06-58_model_selection_config_update_issue.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-12_ai-agent-tools-architecture.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-15_12-19-00_configuration_system_and_dashboard.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-15_13-54-11_first-chunk_character_loss_investigation.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-16_11-12-45_setup_py_usage_and_location_analysis.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-19_11-25-00_tunacode_md_to_agents_md_migration.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-21_models-registry-pydantic-conversion.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-24_fuzzy_logic_implementation_analysis.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-26_10-56-29_main_agent_architecture.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-29_11-08-14_state_and_task_logic.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-09-29_11-41-39_git_safety_branch_removal_analysis.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/main_agent_refactor_plan.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/plan-models.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/pytest.ini +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/reports/dead_code_vulture.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/reports/unused_imports.txt +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/download_ripgrep.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/install_linux.sh +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/playwright_cache.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/setup_dev_env.sh +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/startup_timer.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/uninstall.sh +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/utils/vulture_whitelist.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/verify_dev_env.sh +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/README.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/base.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/command_reload.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/conversation.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/debug.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/development.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/model.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/plan.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/quickstart.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/system.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/template.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/todo.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/registry.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/command.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/loader.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/processor.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/types.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/validator.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/template_shortcut.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/main.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl_components/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl_components/command_parser.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl_components/error_recovery.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl_components/output_display.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl_components/tool_executor.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/configuration/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/configuration/defaults.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/configuration/key_descriptions.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/configuration/models.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/configuration/settings.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/context.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/agent_config.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/agent_helpers.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/json_tool_parser.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/message_handler.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/node_processor.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/response_state.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/result_wrapper.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/state_transition.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/streaming.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/task_completion.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/tool_buffer.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/tool_executor.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/truncation_checker.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/main.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/utils.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/background/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/background/manager.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/code_index.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/llm/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/logging/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/logging/config.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/logging/formatters.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/logging/handlers.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/logging/logger.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/agent_setup.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/base.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/config_setup.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/config_wizard.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/coordinator.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/environment_setup.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/template_setup.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/state.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/token_usage/api_response_parser.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/token_usage/cost_calculator.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/token_usage/usage_tracker.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/tool_handler.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/exceptions.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/prompts/system.md.bak +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/prompts/system.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/py.typed +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/services/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/services/mcp.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/setup.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/templates/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/templates/loader.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/base.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/bash.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/exit_plan_mode.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/glob.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep_components/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep_components/file_filter.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep_components/pattern_matcher.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep_components/result_formatter.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep_components/search_result.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/list_dir.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/present_plan.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/bash_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/exit_plan_mode_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/glob_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/grep_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/list_dir_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/present_plan_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/react_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/read_file_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/run_command_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/todo_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/update_file_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/write_file_prompt.xml +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/react.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/read_file.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/run_command.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/schema_assembler.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/todo.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/update_file.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/write_file.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/xml_helper.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tutorial/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tutorial/content.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tutorial/manager.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tutorial/steps.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/types.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/completers.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/config_dashboard.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/constants.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/decorators.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/input.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/keybindings.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/lexers.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/logging_compat.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/model_selector.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/path_heuristics.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/prompt_manager.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/tool_descriptions.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/tool_ui.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/utils.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/validators.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/api_key_validation.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/bm25.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/config_comparator.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/diff_utils.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/file_utils.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/import_cache.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/json_utils.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/message_utils.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/models_registry.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/retry.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/ripgrep.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/security.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/system.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/text_utils.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/token_counter.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/user_configuration.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/CHARACTERIZATION_README.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/CHARACTERIZATION_TEST_PLAN.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/CHARACTERIZATION_TEST_PLAN_AGENT_MAIN.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/CHARACTERIZATION_TEST_PLAN_COMMANDS.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/FILE_OPERATIONS_TEST_GUIDE.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/conftest.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/test_agent_creation.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/test_json_tool_parsing.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/test_process_node.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/test_process_request.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/test_tool_message_patching.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/background/test_background_edge_cases.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/background/test_cleanup.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/background/test_task_cancellation.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/background/test_task_creation.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/background/test_task_execution.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/code_index/test_cache_management.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/code_index/test_file_scanning.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/code_index/test_index_building.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/code_index/test_search_operations.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/code_index/test_symbol_extraction.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/commands/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/commands/test_init_command.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/commands/test_model_selection_persistence.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/conftest.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/README.md +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/__init__.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/test_context_acceptance.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/test_context_integration.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/test_context_loading.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/test_tunacode_logging.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_command_parsing.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_error_handling.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_escape_key_behavior.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_input_handling.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_keyboard_interrupts.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_multiline_input.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_output_display_logic.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_repl_initialization.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_session_flow.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/services/test_error_recovery.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/services/test_llm_routing.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/services/test_mcp_integration.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/services/test_service_lifecycle.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_agent_tracking.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_message_history.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_permissions.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_session_management.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_state_initialization.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_user_config.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_characterization_commands.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_characterization_grep.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_characterization_main.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_characterization_repl.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_cli_fuzzy_matching.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_setup_flow.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_async_ui.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_diff_display.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_prompt_rendering.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_spinner_messages.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_tool_confirmations.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/utils/test_expand_file_refs.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/utils/test_file_operations.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/utils/test_token_counting.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/utils/test_utils_edge_cases.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/conftest.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/integration/test_startup_dashboard.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_agent_output_formatting.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_command_parser_retry.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_completion_detection.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_glob_phase3.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_json_concatenation_recovery.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_json_retry.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_logging_config.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_onboarding_features.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_phase2_type_hints.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_plan_mode.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_prompt_changes_validation.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_prompt_injection.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_security.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_slash_commands_comprehensive.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_slash_commands_functional.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_slash_commands_integration.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_slash_commands_isolated.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_spinner_updates.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_tool_batching_retry.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/ui/test_config_dashboard.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/commands/test_model_selection_persistence_new.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/config/test_user_configuration_permissions.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/test_constants_enums.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/test_react_tool.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/utils/test_models_registry.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/utils/test_models_registry_validation.py +0 -0
- {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/utils/test_config_comparator.py +0 -0
|
@@ -18,6 +18,17 @@
|
|
|
18
18
|
],
|
|
19
19
|
"notes": "Release pipeline fix: renamed publish workflow to publish-release.yml, added memory anchor, synced docs, and pinned Python 3.12 so Hatch test runs avoid the 3.13 --filter sentinel bug."
|
|
20
20
|
},
|
|
21
|
+
{
|
|
22
|
+
"id": "version-metadata-test-fallback-20251002-000004",
|
|
23
|
+
"time": "2025-10-02T00:00:04Z",
|
|
24
|
+
"branch": "master",
|
|
25
|
+
"base": "current",
|
|
26
|
+
"head": "current",
|
|
27
|
+
"changed_files": [
|
|
28
|
+
"tests/characterization/version/test_version_metadata.py"
|
|
29
|
+
],
|
|
30
|
+
"notes": "Pytest run failed on Python 3.10 because tomllib is 3.11+. Added tomli fallback import in new characterization test to restore compatibility."
|
|
31
|
+
},
|
|
21
32
|
{
|
|
22
33
|
"id": "smart-git-20250917-122934",
|
|
23
34
|
"time": "2025-09-17T12:29:34",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Startup Banner Panel Refresh
|
|
2
|
+
|
|
3
|
+
**Date**: 2025-10-01
|
|
4
|
+
**Component**: `src/tunacode/ui/output.py`
|
|
5
|
+
|
|
6
|
+
## Change
|
|
7
|
+
- Replaced the multiline ASCII banner padding with a Rich `Panel` helper using a rounded box and themed border color.
|
|
8
|
+
- Centered the TunaCode fish art within the panel and added explicit padding constants for consistent spacing.
|
|
9
|
+
|
|
10
|
+
## Impact
|
|
11
|
+
- CLI startup now presents a framed, easier-to-read banner without altering downstream messaging behavior.
|
|
12
|
+
|
|
13
|
+
## Verification
|
|
14
|
+
- `ruff check --fix .`
|
{tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/api_change_logs.json
RENAMED
|
@@ -79,6 +79,18 @@
|
|
|
79
79
|
"EXTENDED StateManager API with react_scratchpad helpers",
|
|
80
80
|
"REMOVED react from registered tool list; process_request now issues up to five auto snapshots every two iterations"
|
|
81
81
|
]
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "version-bump-0.0.77.2-20251002-000002",
|
|
85
|
+
"time": "2025-10-02T00:00:02",
|
|
86
|
+
"branch": "master",
|
|
87
|
+
"base": "current",
|
|
88
|
+
"head": "current",
|
|
89
|
+
"bullets": [
|
|
90
|
+
"BUMPED project metadata and APP_VERSION to 0.0.77.2 for next PyPI release",
|
|
91
|
+
"RENAMED publish workflow file back to publish-release.yml so docs and automation match",
|
|
92
|
+
"ADDED version characterization test ensuring pyproject and constants stay synchronized"
|
|
93
|
+
]
|
|
82
94
|
}
|
|
83
95
|
]
|
|
84
96
|
}
|
{tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/behavior_changes.json
RENAMED
|
@@ -1,6 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
3
|
"sessions": [
|
|
4
|
+
{
|
|
5
|
+
"id": "check-file-length-cache-exclusion-20251005-000001",
|
|
6
|
+
"time": "2025-10-05T00:00:01Z",
|
|
7
|
+
"branch": "current",
|
|
8
|
+
"base": "current",
|
|
9
|
+
"head": "current",
|
|
10
|
+
"bullets": [
|
|
11
|
+
"Updated scripts/check-file-length.sh to prune .uv_cache artifacts from max-line scan.",
|
|
12
|
+
"Pre-commit check-file-length hook now ignores uv package caches to avoid false positives."
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "ui-rich-typing-fix-20251005-000002",
|
|
17
|
+
"time": "2025-10-05T00:00:02Z",
|
|
18
|
+
"branch": "current",
|
|
19
|
+
"base": "current",
|
|
20
|
+
"head": "current",
|
|
21
|
+
"bullets": [
|
|
22
|
+
"Reworked Rich console typing to rely on TYPE_CHECKING-only imports while preserving lazy runtime loading.",
|
|
23
|
+
"Introduced RenderableContent alias so StreamingAgentPanel stays mypy-safe without importing Rich eagerly."
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "dead-imports-runner-fallback-20251005-000003",
|
|
28
|
+
"time": "2025-10-05T00:00:03Z",
|
|
29
|
+
"branch": "current",
|
|
30
|
+
"base": "current",
|
|
31
|
+
"head": "current",
|
|
32
|
+
"bullets": [
|
|
33
|
+
"Swapped dead-imports pre-commit entry to scripts/run-dead-imports.sh for portable execution.",
|
|
34
|
+
"Script detects uv run/tool support via help output and falls back to .venv python while ignoring cache directories, preventing legacy uv noise."
|
|
35
|
+
]
|
|
36
|
+
},
|
|
4
37
|
{
|
|
5
38
|
"id": "publish-workflow-slim-20251001-195201",
|
|
6
39
|
"time": "2025-10-01T19:52:01Z",
|
|
@@ -13,6 +46,18 @@
|
|
|
13
46
|
"Documentation updated to explain the streamlined release pipeline and emphasize manual testing before tagging."
|
|
14
47
|
]
|
|
15
48
|
},
|
|
49
|
+
{
|
|
50
|
+
"id": "version-metadata-guard-20251002-000003",
|
|
51
|
+
"time": "2025-10-02T00:00:03Z",
|
|
52
|
+
"branch": "master",
|
|
53
|
+
"base": "current",
|
|
54
|
+
"head": "current",
|
|
55
|
+
"bullets": [
|
|
56
|
+
"Bumped release metadata to 0.0.77.2 across pyproject and runtime constants.",
|
|
57
|
+
"Renamed publish-release workflow file so GitHub Actions tracks the documented path.",
|
|
58
|
+
"Added characterization test asserting APP_VERSION stays aligned with both pyproject version declarations."
|
|
59
|
+
]
|
|
60
|
+
},
|
|
16
61
|
{
|
|
17
62
|
"id": "version-bump-0.0.77-20251001-190636",
|
|
18
63
|
"time": "2025-10-01T19:06:36Z",
|
|
@@ -24,6 +24,29 @@
|
|
|
24
24
|
]
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
|
+
{
|
|
28
|
+
"id": "version-bump-0.0.77.2-20251002-000001",
|
|
29
|
+
"time": "2025-10-02T00:00:01Z",
|
|
30
|
+
"branch": "master",
|
|
31
|
+
"base": "current",
|
|
32
|
+
"head": "current",
|
|
33
|
+
"reasoning": {
|
|
34
|
+
"problem": "Project metadata and runtime constant still reported 0.0.77.1, causing upcoming release tags to fail workflow version checks.",
|
|
35
|
+
"why_change": "Shipping v0.0.77.2 requires pyproject metadata, Hatch scripts, constants, and release docs to agree on the new patch version.",
|
|
36
|
+
"solution": "Bump pyproject version fields and src/tunacode/constants.APP_VERSION to 0.0.77.2, update publishing documentation, rename the workflow back to publish-release.yml, and add a characterization test locking the version contract.",
|
|
37
|
+
"benefits": [
|
|
38
|
+
"Prevents publish workflow from rejecting v0.0.77.2 tags",
|
|
39
|
+
"Keeps maintainers aligned on release commands and version files",
|
|
40
|
+
"Provides regression coverage so future bumps fail fast if a file is missed"
|
|
41
|
+
],
|
|
42
|
+
"risks": [
|
|
43
|
+
"New version test could become brittle if metadata layout changes"
|
|
44
|
+
],
|
|
45
|
+
"mitigations": [
|
|
46
|
+
"Characterization test reads TOML structure instead of relying on sed, and .claude anchors document the dependency"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
},
|
|
27
50
|
{
|
|
28
51
|
"id": "version-bump-0.0.77-20251001-190642",
|
|
29
52
|
"time": "2025-10-01T19:06:42Z",
|
|
@@ -16,9 +16,18 @@
|
|
|
16
16
|
"path": "src/tunacode/constants.py",
|
|
17
17
|
"line": 12,
|
|
18
18
|
"kind": "line",
|
|
19
|
-
"description": "APP_VERSION updated to 0.0.77; keep in sync with pyproject metadata for releases.",
|
|
19
|
+
"description": "APP_VERSION updated to 0.0.77.2; keep in sync with pyproject metadata for releases.",
|
|
20
20
|
"status": "active",
|
|
21
21
|
"created": "2025-10-01T19:06:50Z"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"key": "9e2d3a1c",
|
|
25
|
+
"path": "tests/characterization/version/test_version_metadata.py",
|
|
26
|
+
"line": 1,
|
|
27
|
+
"kind": "file",
|
|
28
|
+
"description": "Golden characterization test pinning APP_VERSION to pyproject metadata to guard release workflow failures.",
|
|
29
|
+
"status": "active",
|
|
30
|
+
"created": "2025-10-02T00:00:00Z"
|
|
22
31
|
}
|
|
23
32
|
]
|
|
24
33
|
}
|
|
@@ -150,6 +150,11 @@
|
|
|
150
150
|
"classification": "test",
|
|
151
151
|
"type": "test"
|
|
152
152
|
},
|
|
153
|
+
"tests/characterization/version/test_version_metadata.py": {
|
|
154
|
+
"category": "version",
|
|
155
|
+
"classification": "test",
|
|
156
|
+
"type": "test"
|
|
157
|
+
},
|
|
153
158
|
"tests/unit/test_react_tool.py": {
|
|
154
159
|
"category": "tools",
|
|
155
160
|
"classification": "test",
|
|
@@ -75,8 +75,8 @@ repos:
|
|
|
75
75
|
# UV-managed standalone tools (not in hatch environments)
|
|
76
76
|
- id: dead-imports
|
|
77
77
|
name: Check for unused imports in changed files
|
|
78
|
-
entry:
|
|
79
|
-
language:
|
|
78
|
+
entry: scripts/run-dead-imports.sh
|
|
79
|
+
language: script
|
|
80
80
|
files: \.py$
|
|
81
81
|
stages: [pre-commit]
|
|
82
82
|
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Instruction
|
|
2
|
+
|
|
3
|
+
Your task is to optimize and extend this repository following explicit coding, testing, and documentation workflows.
|
|
4
|
+
|
|
5
|
+
Example of ReAct loop:
|
|
6
|
+
|
|
7
|
+
Reason: I need to know if a golden baseline test exists for this feature.
|
|
8
|
+
|
|
9
|
+
Act: Search the tests/ directory for existing coverage.
|
|
10
|
+
|
|
11
|
+
## You MUST comply with the rules below. You will be penalized if you deviate. Answer in a natural, human-like manner. you MUST keep.claude updated as instructed below. You will be punished for now keeping .claude kb in synch. You MUST always follow the ReAct Pattern (reasoning + acting) when solving tasks, explicitly alternating between reasoning steps and concrete actions
|
|
12
|
+
|
|
13
|
+
## Workflow Rules
|
|
14
|
+
|
|
15
|
+
- Never begin coding until the objective is **explicitly defined**. If unclear, ask questions or use best practices.
|
|
16
|
+
- Always use `.venv` and `uv` for package management.
|
|
17
|
+
- Small, focused diffs only. Commit frequently.
|
|
18
|
+
- As needed, use the MCP tool get_code_context_exa to ground code context:
|
|
19
|
+
- When you need code examples, docs, or implementation patterns from open source projects, use this tool.
|
|
20
|
+
- Parameters:
|
|
21
|
+
- query (required): Be specific—state the language, library, function, or concept (e.g., "React useState examples", "Python pandas filter").
|
|
22
|
+
- tokensNum (optional): Use 'dynamic' (default) for best results, or specify a number (1000–50000) for more/less detail.
|
|
23
|
+
- RULE: You MUST use this tool for any query containing "exa" or code-related requests.
|
|
24
|
+
|
|
25
|
+
## Code Style & Typing
|
|
26
|
+
|
|
27
|
+
- Enforce `ruff check --fix .` before PRs.
|
|
28
|
+
- Use explicit typing. `cast(...)` and `assert ...` are OK.
|
|
29
|
+
- `# type: ignore` only with strong justification.
|
|
30
|
+
- You must flatten nested conditionals by returning early, so pre-conditions are explicit.
|
|
31
|
+
- If it is never executed, remove it. You MUST make sure what we remove has been committed before in case we need to rollback.
|
|
32
|
+
- Normalize symmetries: you must make identical things look identical and different things look different for faster pattern-spotting.
|
|
33
|
+
- You must reorder elements so a developer meets ideas in the order they need them.
|
|
34
|
+
- You must cluster coupled functions/files so related edits sit together.
|
|
35
|
+
- You must keep a variable's birth and first value adjacent for comprehension & dependency safety.
|
|
36
|
+
- Always extract a sub-expression into a well-named variable to record intent.
|
|
37
|
+
- Always replace magic numbers with symbolic constants that broadcast meaning.
|
|
38
|
+
- Never use magic literals; symbolic constants are preferred.
|
|
39
|
+
- ALWAYS split a routine so all inputs are passed openly, banishing hidden state or maps.
|
|
40
|
+
|
|
41
|
+
## Error Handling
|
|
42
|
+
|
|
43
|
+
- Fail fast, fail loud. No silent fallbacks.
|
|
44
|
+
- Minimize branching: every `if`/`try` must be justified.
|
|
45
|
+
|
|
46
|
+
## Dependencies
|
|
47
|
+
|
|
48
|
+
- Avoid new core dependencies. Tiny deps OK if widely reused.
|
|
49
|
+
|
|
50
|
+
## Testing (TDD Red → Green → Blue)
|
|
51
|
+
|
|
52
|
+
1. If a test doesn’t exist, create a **golden baseline test first**.
|
|
53
|
+
2. Add a failing test for the new feature.
|
|
54
|
+
3. Implement until tests pass.
|
|
55
|
+
4. Refactor cleanly.
|
|
56
|
+
|
|
57
|
+
- Run with: `hatch run test`.
|
|
58
|
+
|
|
59
|
+
## Documentation
|
|
60
|
+
|
|
61
|
+
- Keep concise and actionable.
|
|
62
|
+
- Update when behavior changes.
|
|
63
|
+
- Avoid duplication.
|
|
64
|
+
|
|
65
|
+
## Scope & Maintenance
|
|
66
|
+
|
|
67
|
+
- Backward compatibility only if low maintenance cost.
|
|
68
|
+
- Delete dead code (never guard it).
|
|
69
|
+
- Always run `ruff .`.
|
|
70
|
+
- Use `git commit -n` if pre-commit hooks block rollback.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Claude-Specific Repository Optimization
|
|
75
|
+
|
|
76
|
+
Maintain .claude/ with the following structure:
|
|
77
|
+
|
|
78
|
+
claude/
|
|
79
|
+
├── metadata/ # Dependency graphs, file vs interface, intent classification
|
|
80
|
+
├── semantic_index/ # Call graphs, type relationships, intent mappings
|
|
81
|
+
├── debug_history/ # Error→solution pairs, context, versions
|
|
82
|
+
├── patterns/ # Canonical + empirical interface patterns, reliability metrics
|
|
83
|
+
├── qa/ # Solved Qs, reasoning docs, context logs
|
|
84
|
+
├── docs_model_friendly/ # Component purpose & relationships
|
|
85
|
+
├── delta_summaries/ # API & behavior change logs, reasoning logs
|
|
86
|
+
└── memory_anchors/ # UUID-anchored semantic references
|
|
87
|
+
Rules:
|
|
88
|
+
|
|
89
|
+
Metadata → normalize file types, dependencies, and intents.
|
|
90
|
+
|
|
91
|
+
Semantic Index → map function calls, type relationships, and intent flows.
|
|
92
|
+
|
|
93
|
+
Debug History → log all sessions with error→solution pairs and context.
|
|
94
|
+
|
|
95
|
+
Patterns → keep canonical patterns + empirical usage. Add reliability metrics.
|
|
96
|
+
|
|
97
|
+
QA Database → solved queries indexed by file/component/error type.
|
|
98
|
+
|
|
99
|
+
Docs → model-friendly explanations of purposes & relationships.
|
|
100
|
+
|
|
101
|
+
Delta Summaries → record API/behavior shifts with reasoning.
|
|
102
|
+
|
|
103
|
+
## Memory Anchors → embed UUID-tagged semantic anchors in code
|
|
104
|
+
|
|
105
|
+
## Example
|
|
106
|
+
|
|
107
|
+
You are asked to implement a new API client.
|
|
108
|
+
|
|
109
|
+
1. Create a baseline golden test to capture current client behavior.
|
|
110
|
+
2. Write a failing test for the new endpoint.
|
|
111
|
+
3. Implement minimal code to pass the test.
|
|
112
|
+
4. Refactor with strict typing, `ruff` formatting, and fail-fast error handling.
|
|
113
|
+
5. Update `.claude/semantic_index/function_call_graphs.json` to reflect new call paths.
|
|
114
|
+
6. Add a `delta_summaries/api_change_logs.json` entry documenting the new endpoint.
|
|
115
|
+
7. Commit with a focused diff.
|
|
116
|
+
|
|
117
|
+
## RAG-TOOL
|
|
118
|
+
|
|
119
|
+
In /llm-agent-tools/rag_modules/ a tool exists to search the .claude/ directory via RAG
|
|
120
|
+
|
|
121
|
+
/llm-agent-tools/rag_modules/rag-cli.sh index # Index .claude/ directory
|
|
122
|
+
/llm-agent-tools/rag_modules/rag-cli.sh index --full # Full reindex
|
|
123
|
+
/llm-agent-tools/rag_modules/rag-cli.sh search "query" # Search across .claude/
|
|
124
|
+
/llm-agent-tools/rag_modules/rag-cli.sh stats # Show index stats
|
|
125
|
+
|
|
126
|
+
## Filtered / formatted search
|
|
127
|
+
|
|
128
|
+
/llm-agent-tools/rag_modules/rag-cli.sh search "query" --category dev --format json --limit 5
|
|
129
|
+
You MUST call this tool at least once per session to ground context.
|
|
130
|
+
Use it heuristically before answering tasks that require repo knowledge. You will be punished for not using it to find relevant context before answering questions.
|
|
131
|
+
|
|
132
|
+
**Problem**: Search for "query regarding issue " in the .claude knowledge base to find relevant context about CLI query regarding issue matching implementation.
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# First index the .claude directory
|
|
136
|
+
./rag-cli.sh index --dir .claude
|
|
137
|
+
|
|
138
|
+
# Search for specific content
|
|
139
|
+
# Use your own query
|
|
140
|
+
./rag-cli.sh search " " --format text
|
|
141
|
+
|
|
142
|
+
# Results found:
|
|
143
|
+
# 1. behavior_changes.json - CLI query regarding issue matching enhancement details
|
|
144
|
+
# 2. file_classifications.json - Test file classification for query regarding issue matching
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tunacode-cli
|
|
3
|
-
Version: 0.0.77.
|
|
3
|
+
Version: 0.0.77.2
|
|
4
4
|
Summary: Your agentic CLI developer.
|
|
5
5
|
Project-URL: Homepage, https://tunacode.xyz/
|
|
6
6
|
Project-URL: Repository, https://github.com/alchemiststudiosDOTai/tunacode
|
|
@@ -23,7 +23,7 @@ Requires-Python: <3.14,>=3.10
|
|
|
23
23
|
Requires-Dist: click<8.2.0,>=8.0.0
|
|
24
24
|
Requires-Dist: defusedxml
|
|
25
25
|
Requires-Dist: prompt-toolkit==3.0.51
|
|
26
|
-
Requires-Dist: pydantic-ai
|
|
26
|
+
Requires-Dist: pydantic-ai==0.2.6
|
|
27
27
|
Requires-Dist: pygments==2.19.1
|
|
28
28
|
Requires-Dist: rich==14.0.0
|
|
29
29
|
Requires-Dist: tiktoken>=0.5.2
|
|
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.0.77.2] - 2025-10-02
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- Align project metadata, runtime constant, and release docs to version 0.0.77.2
|
|
12
|
+
|
|
8
13
|
## [0.0.77] - 2025-10-01
|
|
9
14
|
|
|
10
15
|
### Changed
|
{tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/publishing-workflow.md
RENAMED
|
@@ -25,12 +25,12 @@ The project uses GitHub Actions to automatically publish releases to PyPI when a
|
|
|
25
25
|
2. **Commit Changes**: Commit the version updates to the master branch
|
|
26
26
|
3. **Create Tag**: Create and push a version tag:
|
|
27
27
|
```bash
|
|
28
|
-
git tag v0.0.77
|
|
29
|
-
git push origin v0.0.77
|
|
28
|
+
git tag v0.0.77.2
|
|
29
|
+
git push origin v0.0.77.2
|
|
30
30
|
```
|
|
31
31
|
4. **Create Release**: Create a GitHub release:
|
|
32
32
|
```bash
|
|
33
|
-
gh release create v0.0.77 --generate-notes
|
|
33
|
+
gh release create v0.0.77.2 --generate-notes
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
### Workflow Steps
|
|
@@ -97,19 +97,19 @@ The workflow is configured in `.github/workflows/publish-release.yml` and:
|
|
|
97
97
|
## Example Release Commands
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
|
-
# Update version to 0.0.77
|
|
101
|
-
sed -i 's/version = "0.0.
|
|
102
|
-
sed -i 's/APP_VERSION = "0.0.
|
|
100
|
+
# Update version to 0.0.77.2
|
|
101
|
+
sed -i 's/version = "0.0.77.1"/version = "0.0.77.2"/g' pyproject.toml
|
|
102
|
+
sed -i 's/APP_VERSION = "0.0.77.1"/APP_VERSION = "0.0.77.2"/' src/tunacode/constants.py
|
|
103
103
|
|
|
104
104
|
# Commit and tag
|
|
105
105
|
git add pyproject.toml src/tunacode/constants.py
|
|
106
|
-
git commit -m "chore: bump version to 0.0.77"
|
|
107
|
-
git tag v0.0.77
|
|
106
|
+
git commit -m "chore: bump version to 0.0.77.2"
|
|
107
|
+
git tag v0.0.77.2
|
|
108
108
|
git push origin master
|
|
109
|
-
git push origin v0.0.77
|
|
109
|
+
git push origin v0.0.77.2
|
|
110
110
|
|
|
111
111
|
# Create release
|
|
112
|
-
gh release create v0.0.77 --generate-notes
|
|
112
|
+
gh release create v0.0.77.2 --generate-notes
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
## Related Documentation
|
|
@@ -39,4 +39,4 @@ Summarize all *existing knowledge* about the `/model` command validation error w
|
|
|
39
39
|
- **src/tunacode/cli/commands/implementations/model.py** → Model command implementation
|
|
40
40
|
- **tests/unit/utils/test_models_registry_validation.py** → Validation tests showing expected behavior
|
|
41
41
|
- **GitHub Permalink**: https://github.com/alchemiststudiosDOTai/tunacode/blob/bbbf6fdc4be2da943d7f10c277a621a8feb78447/src/tunacode/utils/models_registry.py#L61
|
|
42
|
-
- **GitHub Permalink**: https://github.com/alchemiststudiosDOTai/tunacode/blob/bbbf6fdc4be2da943d7f10c277a621a8feb78447/tests/unit/utils/test_models_registry_validation.py#L48
|
|
42
|
+
- **GitHub Permalink**: https://github.com/alchemiststudiosDOTai/tunacode/blob/bbbf6fdc4be2da943d7f10c277a621a8feb78447/tests/unit/utils/test_models_registry_validation.py#L48
|
tunacode_cli-0.0.77.2/memory-bank/research/2025-10-02_12-19-05_startup_performance_analysis.md
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# Research – Startup Performance Analysis
|
|
2
|
+
**Date:** 2025-10-02
|
|
3
|
+
**Owner:** Claude Code
|
|
4
|
+
**Phase:** Research
|
|
5
|
+
**Last Updated:** 2025-10-02
|
|
6
|
+
**Last Updated By:** Claude Code
|
|
7
|
+
**Git Commit:** 83e26ccdd454095063c09dd04e3b6b3241aea278
|
|
8
|
+
**Tags:** [startup, performance, bottlenecks, optimization]
|
|
9
|
+
|
|
10
|
+
## Goal
|
|
11
|
+
Identify and analyze all factors contributing to slow startup times in the TunaCode CLI application.
|
|
12
|
+
|
|
13
|
+
## Additional Search
|
|
14
|
+
- `grep -ri "startup\|init\|bootstrap" .claude/`
|
|
15
|
+
|
|
16
|
+
## Findings
|
|
17
|
+
|
|
18
|
+
### Primary Entry Points & Startup Sequence
|
|
19
|
+
- **Main CLI entry**: `src/tunacode/cli/main.py` - Primary startup point with Typer CLI framework
|
|
20
|
+
- **Package initialization**: `src/tunacode/__init__.py:2-4` - Triggers logging setup immediately on import
|
|
21
|
+
- **Configuration loading**: `src/tunacode/core/setup/config_setup.py:50` - Synchronous config loading blocks startup
|
|
22
|
+
- **REPL startup**: `src/tunacode/cli/repl.py:345-350` - Background CodeIndex pre-warming
|
|
23
|
+
|
|
24
|
+
### Critical Performance Bottlenecks
|
|
25
|
+
|
|
26
|
+
#### 1. **Heavy UI Framework Imports** (`src/tunacode/ui/console.py:6-13`)
|
|
27
|
+
- **Issue**: Immediate import of entire Rich UI framework
|
|
28
|
+
- **Impact**: Loads 15+ Rich components (Console, Markdown, Live, Panel, Table, etc.)
|
|
29
|
+
- **Files affected**: All CLI operations trigger this import chain
|
|
30
|
+
- **Priority**: HIGH - UI components used in every CLI session
|
|
31
|
+
|
|
32
|
+
#### 2. **Synchronous Network Operations**
|
|
33
|
+
- **Models.dev API**: `src/tunacode/utils/models_registry.py:188-193` - Blocking HTTP request with 10s timeout
|
|
34
|
+
- **Version checking**: `src/tunacode/utils/system.py:257-259` - Subprocess call to PyPI for update checks
|
|
35
|
+
- **Impact**: Network latency directly affects startup time
|
|
36
|
+
- **Current mitigation**: Update check moved to background thread
|
|
37
|
+
|
|
38
|
+
#### 3. **AI/ML Library Imports** (`src/tunacode/core/agents/agent_components/agent_config.py`)
|
|
39
|
+
- **Issue**: pydantic_ai and all tools imported immediately
|
|
40
|
+
- **Impact**: Heavy ML framework initialization at startup
|
|
41
|
+
- **Files affected**: All agent operations
|
|
42
|
+
- **Priority**: HIGH - Core functionality
|
|
43
|
+
|
|
44
|
+
#### 4. **Synchronous File I/O Operations**
|
|
45
|
+
- **Configuration loading**: `src/tunacode/utils/user_configuration.py:38-39` - Blocking JSON parsing
|
|
46
|
+
- **Template loading**: `src/tunacode/templates/loader.py:58-59` - Synchronous template file reads
|
|
47
|
+
- **Cache operations**: `src/tunacode/utils/models_registry.py:178-179` - Cache file reads/writes
|
|
48
|
+
- **Impact**: File system operations block main thread
|
|
49
|
+
|
|
50
|
+
#### 5. **Database Operations**
|
|
51
|
+
- **RAG indexer**: `llm-agent-tools/rag_modules/indexer.py:27` - SQLite connection setup
|
|
52
|
+
- **Connection pattern**: New connection for each operation (no connection pooling)
|
|
53
|
+
- **Schema setup**: FTS5 table creation and optimization
|
|
54
|
+
- **Impact**: Database setup adds overhead during first use
|
|
55
|
+
|
|
56
|
+
### Key Patterns Identified
|
|
57
|
+
|
|
58
|
+
#### **Eager Loading Pattern**
|
|
59
|
+
- UI components loaded immediately regardless of usage
|
|
60
|
+
- All agent tools imported at agent creation time
|
|
61
|
+
- Configuration parsed synchronously at startup
|
|
62
|
+
- No lazy loading for heavy dependencies
|
|
63
|
+
|
|
64
|
+
#### **Network at Import Time**
|
|
65
|
+
- Models.dev API calls during registry initialization
|
|
66
|
+
- Version checking via subprocess to PyPI
|
|
67
|
+
- MCP server connections established during agent creation
|
|
68
|
+
|
|
69
|
+
#### **Synchronous I/O Chain**
|
|
70
|
+
1. Package import → logging setup
|
|
71
|
+
2. Main entry → configuration loading
|
|
72
|
+
3. Agent creation → tool registration
|
|
73
|
+
4. Models registry → HTTP request
|
|
74
|
+
5. REPL start → directory scanning
|
|
75
|
+
|
|
76
|
+
### Current Optimizations in Place
|
|
77
|
+
|
|
78
|
+
#### **Background Processing**
|
|
79
|
+
- CodeIndex pre-warming in `repl.py:412-418` using `asyncio.create_task()`
|
|
80
|
+
- Update check moved to background thread in `main.py:65`
|
|
81
|
+
- Non-blocking directory caching
|
|
82
|
+
|
|
83
|
+
#### **Caching Strategies**
|
|
84
|
+
- Configuration fingerprinting in `config_setup.py:59-76` using SHA1 hashes
|
|
85
|
+
- Models registry cache with 24-hour TTL
|
|
86
|
+
- Directory listing cache with 5-second TTL
|
|
87
|
+
- Fast path caching to avoid reprocessing unchanged data
|
|
88
|
+
|
|
89
|
+
#### **Singleton Patterns**
|
|
90
|
+
- Global CodeIndex instance for directory caching
|
|
91
|
+
- Centralized logging configuration
|
|
92
|
+
- Shared models registry
|
|
93
|
+
|
|
94
|
+
### Performance Impact by Component
|
|
95
|
+
|
|
96
|
+
| Component | Startup Impact | Current Mitigation | Optimization Potential |
|
|
97
|
+
|-----------|----------------|-------------------|-----------------------|
|
|
98
|
+
| Rich UI Framework | High | None | Lazy loading, conditional imports |
|
|
99
|
+
| pydantic_ai | High | None | Deferred agent creation |
|
|
100
|
+
| Configuration Loading | Medium | Fingerprint caching | Async loading, memory caching |
|
|
101
|
+
| Models.dev API | Medium | 24hr cache | Background refresh, fallbacks |
|
|
102
|
+
| Database Operations | Low | Connection cleanup | Connection pooling |
|
|
103
|
+
| File System I/O | Low | Background processing | aiofiles, selective scanning |
|
|
104
|
+
|
|
105
|
+
### Root Cause Analysis
|
|
106
|
+
|
|
107
|
+
The startup performance issues stem from three architectural patterns:
|
|
108
|
+
|
|
109
|
+
1. **Import-time side effects**: Heavy operations performed during module import rather than explicit initialization
|
|
110
|
+
2. **Synchronous blocking operations**: File I/O, network requests, and parsing that block the main thread
|
|
111
|
+
3. **Eager dependency loading**: Loading entire frameworks and toolsets regardless of actual usage
|
|
112
|
+
|
|
113
|
+
### Data Flow During Startup
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
tunacode command
|
|
117
|
+
↓
|
|
118
|
+
cli/main.py (package import)
|
|
119
|
+
↓
|
|
120
|
+
__init__.py → setup_logging() (synchronous)
|
|
121
|
+
↓
|
|
122
|
+
load_config() (blocking file I/O)
|
|
123
|
+
↓
|
|
124
|
+
main() → ApplicationSettings (instantiation)
|
|
125
|
+
↓
|
|
126
|
+
StateManager, ToolHandler creation
|
|
127
|
+
↓
|
|
128
|
+
Rich UI components import
|
|
129
|
+
↓
|
|
130
|
+
Agent creation → pydantic_ai + tools import
|
|
131
|
+
↓
|
|
132
|
+
REPL start → background CodeIndex pre-warming
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Key Patterns / Solutions Found
|
|
136
|
+
|
|
137
|
+
- **Configuration fingerprinting**: SHA1 hash-based cache invalidation avoids unnecessary reloads
|
|
138
|
+
- **Background pre-warming**: CodeIndex builds in separate thread to avoid blocking startup
|
|
139
|
+
- **Singleton caching**: Global instances for expensive-to-create objects
|
|
140
|
+
- **Timeout-based fallbacks**: Network operations have timeouts and graceful degradation
|
|
141
|
+
|
|
142
|
+
## Knowledge Gaps
|
|
143
|
+
|
|
144
|
+
- **Actual timing measurements**: Need startup_timer.py results to quantify bottlenecks
|
|
145
|
+
- **User environment variance**: Performance impact on different systems/networks
|
|
146
|
+
- **Cache hit rates**: Effectiveness of current caching strategies
|
|
147
|
+
- **Memory usage impact**: Trade-offs between caching and memory consumption
|
|
148
|
+
|
|
149
|
+
## Recommendations for Optimization (Priority Order)
|
|
150
|
+
|
|
151
|
+
### HIGH PRIORITY
|
|
152
|
+
1. **Lazy load Rich UI components**: Only import when console operations are needed
|
|
153
|
+
2. **Defer pydantic_ai import**: Initialize AI framework only when agents are used
|
|
154
|
+
3. **Async configuration loading**: Move config parsing to background with graceful fallback
|
|
155
|
+
|
|
156
|
+
### MEDIUM PRIORITY
|
|
157
|
+
4. **Background models registry refresh**: Update cache in background, use stale data if needed
|
|
158
|
+
5. **Selective tool loading**: Import agent tools only when specific functionality is used
|
|
159
|
+
6. **Connection pooling**: Reuse database connections for RAG operations
|
|
160
|
+
|
|
161
|
+
### LOW PRIORITY
|
|
162
|
+
7. **File system optimization**: Use aiofiles for asynchronous file operations
|
|
163
|
+
8. **Template caching**: Pre-compile and cache templates
|
|
164
|
+
9. **Directory scanning optimization**: More selective file system scanning
|
|
165
|
+
|
|
166
|
+
## References
|
|
167
|
+
|
|
168
|
+
### Critical Files to Review
|
|
169
|
+
- **Primary entry point**: https://github.com/alchemiststudiosDOTai/tunacode/blob/83e26cc/src/tunacode/cli/main.py
|
|
170
|
+
- **UI framework loading**: https://github.com/alchemiststudiosDOTai/tunacode/blob/83e26cc/src/tunacode/ui/console.py
|
|
171
|
+
- **Configuration system**: https://github.com/alchemiststudiosDOTai/tunacode/blob/83e26cc/src/tunacode/core/setup/config_setup.py
|
|
172
|
+
- **Agent initialization**: https://github.com/alchemiststudiosDOTai/tunacode/blob/83e26cc/src/tunacode/core/agents/agent_components/agent_config.py
|
|
173
|
+
- **Models registry**: https://github.com/alchemiststudiosDOTai/tunacode/blob/83e26cc/src/tunacode/utils/models_registry.py
|
|
174
|
+
- **RAG indexer**: https://github.com/alchemiststudiosDOTai/tunacode/blob/83e26cc/llm-agent-tools/rag_modules/indexer.py
|
|
175
|
+
- **Startup timing utility**: https://github.com/alchemiststudiosDOTai/tunacode/blob/83e26cc/scripts/startup_timer.py
|
|
176
|
+
|
|
177
|
+
### Performance Scripts
|
|
178
|
+
- **Startup timing**: `scripts/startup_timer.py` - Use to measure current baseline
|
|
179
|
+
- **Environment verification**: `scripts/verify_dev_env.sh` - Check system configuration
|
|
180
|
+
|
|
181
|
+
### Configuration Files
|
|
182
|
+
- **Project settings**: `pyproject.toml` - Entry point configuration
|
|
183
|
+
- **Package structure**: Various `__init__.py` files controlling import behavior
|
|
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "tunacode-cli"
|
|
7
7
|
|
|
8
|
-
version = "0.0.77.
|
|
8
|
+
version = "0.0.77.2"
|
|
9
9
|
description = "Your agentic CLI developer."
|
|
10
10
|
keywords = ["cli", "agent", "development", "automation"]
|
|
11
11
|
readme = "README.md"
|
|
@@ -29,7 +29,7 @@ dependencies = [
|
|
|
29
29
|
"typer>=0.9.0,<0.10.0",
|
|
30
30
|
"click>=8.0.0,<8.2.0",
|
|
31
31
|
"prompt_toolkit==3.0.51",
|
|
32
|
-
"pydantic-ai
|
|
32
|
+
"pydantic-ai==0.2.6",
|
|
33
33
|
"pygments==2.19.1",
|
|
34
34
|
"rich==14.0.0",
|
|
35
35
|
"tiktoken>=0.5.2",
|
|
@@ -170,7 +170,7 @@ typecheck = "mypy src/"
|
|
|
170
170
|
security = "bandit -r src/ -ll"
|
|
171
171
|
|
|
172
172
|
# Version management
|
|
173
|
-
version = "0.0.77.
|
|
173
|
+
version = "0.0.77.2"
|
|
174
174
|
|
|
175
175
|
# Release workflow
|
|
176
176
|
release = [
|