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.

Files changed (445) hide show
  1. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/debug_history/debug_sessions.json +11 -0
  2. tunacode_cli-0.0.77.2/.claude/delta_summaries/2025-10-01-startup-banner-panel.md +14 -0
  3. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/api_change_logs.json +12 -0
  4. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/behavior_changes.json +45 -0
  5. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/reasoning_logs.json +23 -0
  6. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/memory_anchors/anchors.json +10 -1
  7. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/metadata/file_classifications.json +5 -0
  8. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.pre-commit-config.yaml +2 -2
  9. tunacode_cli-0.0.77.2/AGENTS.md +147 -0
  10. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/PKG-INFO +2 -2
  11. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/changelog/CHANGELOG.md +5 -0
  12. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/publishing-workflow.md +10 -10
  13. {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
  14. tunacode_cli-0.0.77.2/memory-bank/research/2025-10-02_12-19-05_startup_performance_analysis.md +183 -0
  15. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/pyproject.toml +3 -3
  16. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/check-file-length.sh +1 -0
  17. tunacode_cli-0.0.77.2/scripts/run-dead-imports.sh +81 -0
  18. tunacode_cli-0.0.77.2/scripts/ui_import_timer.py +199 -0
  19. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/constants.py +1 -1
  20. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/console.py +61 -11
  21. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/output.py +31 -4
  22. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/panels.py +69 -32
  23. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_console_output.py +5 -2
  24. tunacode_cli-0.0.77.2/tests/characterization/version/test_version_metadata.py +29 -0
  25. tunacode_cli-0.0.77.2/tests/ui/test_lazy_rich_loading.py +96 -0
  26. tunacode_cli-0.0.77.1/AGENTS.md +0 -161
  27. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/README.md +0 -0
  28. {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
  29. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/2025-01-05-baseline.yml +0 -0
  30. {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
  31. {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
  32. {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
  33. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/fix-text-alignment-layout-task3.md +0 -0
  34. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/prompt_system_xml_migration.json +0 -0
  35. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/delta_summaries/task4_ui_formatting_fix.md +0 -0
  36. {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
  37. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/always-on-display-implementation.md +0 -0
  38. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/cli-json-recovery-incident.md +0 -0
  39. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/directory-caching-optimization.md +0 -0
  40. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/esc-investigation/ESC_KEY_INVESTIGATION.md +0 -0
  41. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/esc-investigation/ESC_KEY_STREAMING_ANALYSIS.md +0 -0
  42. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/hatch-commands.md +0 -0
  43. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/model-updates-2025.md +0 -0
  44. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/onboarding-improvements.md +0 -0
  45. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/openai_tool_calling_evaluation.md +0 -0
  46. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/phase5-prompt-injection-system.md +0 -0
  47. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/slash-commands.md +0 -0
  48. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/uv-hatch-setup.md +0 -0
  49. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/uv-installer-updates.md +0 -0
  50. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/development/version-management.md +0 -0
  51. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/docs_model_friendly/component_purpose.md +0 -0
  52. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/docs_model_friendly/component_relationships.md +0 -0
  53. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/docs_model_friendly/rag_modules_overview.md +0 -0
  54. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/kv/github-actions-release-fix.json +0 -0
  55. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/metadata/components.yml +0 -0
  56. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/metadata/hotspots.txt +0 -0
  57. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/patterns/canonical_patterns/backward_compatibility_refactor.md +0 -0
  58. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/patterns/json_retry_implementation.md +0 -0
  59. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/latest_session.txt +0 -0
  60. {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
  61. {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
  62. {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
  63. {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
  64. {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
  65. {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
  66. {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
  67. {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
  68. {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
  69. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/smart-git-20250917-122934/commits.txt +0 -0
  70. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/smart-git-20250917-122934/diffstat.txt +0 -0
  71. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/context_logs/smart-git-20250917-122934/files.json +0 -0
  72. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/fix-agent-errors.yml +0 -0
  73. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/fix-publish-script.yml +0 -0
  74. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/fix-runtime-warnings.yml +0 -0
  75. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/reasoning_docs/main-agent-integration-20250917-123100.md +0 -0
  76. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/reasoning_docs/main-agent-integration-20250917-141518.md +0 -0
  77. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/reasoning_docs/simplified-agent-handoff-20250929.md +0 -0
  78. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/qa/reasoning_docs/smart-git-20250917-122934.md +0 -0
  79. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/rag_knowledge.db +0 -0
  80. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/semantic_index/function_call_graphs.json +0 -0
  81. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/semantic_index/intent_mappings.json +0 -0
  82. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/semantic_index/prompt_system_changes.json +0 -0
  83. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.claude/semantic_index/type_relationships.json +0 -0
  84. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.github/pull_request_template.md +0 -0
  85. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.github/scripts/check_file_size.py +0 -0
  86. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.github/workflows/lint.yml +0 -0
  87. /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
  88. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/.gitignore +0 -0
  89. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/CLAUDE.md +0 -0
  90. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/LICENSE +0 -0
  91. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/MANIFEST.in +0 -0
  92. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/README.md +0 -0
  93. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/TODO.md +0 -0
  94. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/assets/tunacode_example.png +0 -0
  95. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reports/subagent_analysis/code-synthesis-analyzer_report.md +0 -0
  96. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reports/subagent_analysis/codebase-analyzer_report.md +0 -0
  97. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/FAGAN_PLAN.md +0 -0
  98. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/agent_seams.md +0 -0
  99. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/fagan_inspection_defects.json +0 -0
  100. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/fagan_inspection_summary.md +0 -0
  101. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/main_agent_refactor_issues.md +0 -0
  102. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/docs/reviews/main_agent_refactor_plan.md +0 -0
  103. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/README.md +0 -0
  104. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/TOOLS_WORKFLOW.md +0 -0
  105. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/agent-flow.md +0 -0
  106. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/agent-inspo.md +0 -0
  107. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/how-tunacode-agent-works.md +0 -0
  108. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/main-agent-architecture.md +0 -0
  109. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/main-agent.md +0 -0
  110. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/swepmini-example.md +0 -0
  111. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent/tunacode-tool-system.md +0 -0
  112. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent-tools/ReAct-vs-ReWoo.md +0 -0
  113. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/agent-tools/tools-architecture.md +0 -0
  114. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/.env.example +0 -0
  115. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/config-file-example.md +0 -0
  116. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/config-flow-diagram.md +0 -0
  117. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/config-touch-points.md +0 -0
  118. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/environment-variables.md +0 -0
  119. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/local-models.md +0 -0
  120. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/logging-configuration.md +0 -0
  121. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/tunacode-json-example.md +0 -0
  122. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/configuration/tunacode.json.example +0 -0
  123. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/codebase-hygiene.md +0 -0
  124. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/command-system-architecture.md +0 -0
  125. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/creating-custom-commands.md +0 -0
  126. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/hatch-build-system.md +0 -0
  127. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/performance-optimizations.md +0 -0
  128. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/prompt-principles.md +0 -0
  129. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/development/streaming-text-prefix-fix.md +0 -0
  130. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/tests/README.md +0 -0
  131. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/tests/characterization-testing.md +0 -0
  132. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/tests/mocking-strategies.md +0 -0
  133. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/tests/troubleshooting.md +0 -0
  134. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/ui/ui-architecture.md +0 -0
  135. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/user/commands.md +0 -0
  136. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/user/getting-started.md +0 -0
  137. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/documentation/user/tools.md +0 -0
  138. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/.gitignore +0 -0
  139. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/README.md +0 -0
  140. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/kb_synch/Cargo.lock +0 -0
  141. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/kb_synch/Cargo.toml +0 -0
  142. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/kb_synch/anchor_drop.rs +0 -0
  143. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/rag_modules/README.md +0 -0
  144. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/rag_modules/indexer.py +0 -0
  145. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/rag_modules/rag-cli.sh +0 -0
  146. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/rag_modules/search.py +0 -0
  147. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/llm-agent-tools/rag_modules/stats.py +0 -0
  148. {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
  149. {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
  150. {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
  151. {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
  152. {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
  153. {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
  154. {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
  155. {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
  156. {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
  157. {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
  158. {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
  159. {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
  160. {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
  161. {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
  162. {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
  163. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/2025-01-19_react-shim-analysis.md +0 -0
  164. {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
  165. {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
  166. {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
  167. {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
  168. {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
  169. {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
  170. {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
  171. {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
  172. {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
  173. {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
  174. {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
  175. {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
  176. {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
  177. {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
  178. {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
  179. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/memory-bank/research/main_agent_refactor_plan.md +0 -0
  180. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/plan-models.md +0 -0
  181. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/pytest.ini +0 -0
  182. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/reports/dead_code_vulture.txt +0 -0
  183. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/reports/unused_imports.txt +0 -0
  184. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/download_ripgrep.py +0 -0
  185. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/install_linux.sh +0 -0
  186. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/playwright_cache.py +0 -0
  187. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/setup_dev_env.sh +0 -0
  188. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/startup_timer.py +0 -0
  189. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/uninstall.sh +0 -0
  190. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/utils/vulture_whitelist.py +0 -0
  191. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/scripts/verify_dev_env.sh +0 -0
  192. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/README.md +0 -0
  193. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/__init__.py +0 -0
  194. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/__init__.py +0 -0
  195. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/__init__.py +0 -0
  196. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/__init__.py +0 -0
  197. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/base.py +0 -0
  198. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/__init__.py +0 -0
  199. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/command_reload.py +0 -0
  200. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/conversation.py +0 -0
  201. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/debug.py +0 -0
  202. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/development.py +0 -0
  203. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/model.py +0 -0
  204. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/plan.py +0 -0
  205. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/quickstart.py +0 -0
  206. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/system.py +0 -0
  207. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/template.py +0 -0
  208. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/implementations/todo.py +0 -0
  209. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/registry.py +0 -0
  210. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/__init__.py +0 -0
  211. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/command.py +0 -0
  212. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/loader.py +0 -0
  213. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/processor.py +0 -0
  214. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/types.py +0 -0
  215. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/slash/validator.py +0 -0
  216. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/commands/template_shortcut.py +0 -0
  217. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/main.py +0 -0
  218. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl.py +0 -0
  219. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl_components/__init__.py +0 -0
  220. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl_components/command_parser.py +0 -0
  221. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl_components/error_recovery.py +0 -0
  222. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl_components/output_display.py +0 -0
  223. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/cli/repl_components/tool_executor.py +0 -0
  224. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/configuration/__init__.py +0 -0
  225. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/configuration/defaults.py +0 -0
  226. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/configuration/key_descriptions.py +0 -0
  227. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/configuration/models.py +0 -0
  228. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/configuration/settings.py +0 -0
  229. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/context.py +0 -0
  230. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/__init__.py +0 -0
  231. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/__init__.py +0 -0
  232. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/__init__.py +0 -0
  233. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/agent_config.py +0 -0
  234. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/agent_helpers.py +0 -0
  235. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/json_tool_parser.py +0 -0
  236. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/message_handler.py +0 -0
  237. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/node_processor.py +0 -0
  238. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/response_state.py +0 -0
  239. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/result_wrapper.py +0 -0
  240. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/state_transition.py +0 -0
  241. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/streaming.py +0 -0
  242. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/task_completion.py +0 -0
  243. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/tool_buffer.py +0 -0
  244. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/tool_executor.py +0 -0
  245. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/agent_components/truncation_checker.py +0 -0
  246. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/main.py +0 -0
  247. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/agents/utils.py +0 -0
  248. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/background/__init__.py +0 -0
  249. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/background/manager.py +0 -0
  250. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/code_index.py +0 -0
  251. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/llm/__init__.py +0 -0
  252. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/logging/__init__.py +0 -0
  253. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/logging/config.py +0 -0
  254. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/logging/formatters.py +0 -0
  255. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/logging/handlers.py +0 -0
  256. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/logging/logger.py +0 -0
  257. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/__init__.py +0 -0
  258. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/agent_setup.py +0 -0
  259. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/base.py +0 -0
  260. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/config_setup.py +0 -0
  261. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/config_wizard.py +0 -0
  262. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/coordinator.py +0 -0
  263. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/environment_setup.py +0 -0
  264. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/setup/template_setup.py +0 -0
  265. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/state.py +0 -0
  266. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/token_usage/api_response_parser.py +0 -0
  267. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/token_usage/cost_calculator.py +0 -0
  268. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/token_usage/usage_tracker.py +0 -0
  269. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/core/tool_handler.py +0 -0
  270. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/exceptions.py +0 -0
  271. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/prompts/system.md.bak +0 -0
  272. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/prompts/system.xml +0 -0
  273. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/py.typed +0 -0
  274. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/services/__init__.py +0 -0
  275. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/services/mcp.py +0 -0
  276. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/setup.py +0 -0
  277. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/templates/__init__.py +0 -0
  278. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/templates/loader.py +0 -0
  279. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/__init__.py +0 -0
  280. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/base.py +0 -0
  281. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/bash.py +0 -0
  282. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/exit_plan_mode.py +0 -0
  283. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/glob.py +0 -0
  284. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep.py +0 -0
  285. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep_components/__init__.py +0 -0
  286. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep_components/file_filter.py +0 -0
  287. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep_components/pattern_matcher.py +0 -0
  288. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep_components/result_formatter.py +0 -0
  289. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/grep_components/search_result.py +0 -0
  290. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/list_dir.py +0 -0
  291. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/present_plan.py +0 -0
  292. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/bash_prompt.xml +0 -0
  293. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/exit_plan_mode_prompt.xml +0 -0
  294. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/glob_prompt.xml +0 -0
  295. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/grep_prompt.xml +0 -0
  296. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/list_dir_prompt.xml +0 -0
  297. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/present_plan_prompt.xml +0 -0
  298. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/react_prompt.xml +0 -0
  299. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/read_file_prompt.xml +0 -0
  300. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/run_command_prompt.xml +0 -0
  301. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/todo_prompt.xml +0 -0
  302. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/update_file_prompt.xml +0 -0
  303. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/prompts/write_file_prompt.xml +0 -0
  304. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/react.py +0 -0
  305. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/read_file.py +0 -0
  306. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/run_command.py +0 -0
  307. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/schema_assembler.py +0 -0
  308. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/todo.py +0 -0
  309. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/update_file.py +0 -0
  310. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/write_file.py +0 -0
  311. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tools/xml_helper.py +0 -0
  312. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tutorial/__init__.py +0 -0
  313. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tutorial/content.py +0 -0
  314. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tutorial/manager.py +0 -0
  315. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/tutorial/steps.py +0 -0
  316. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/types.py +0 -0
  317. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/__init__.py +0 -0
  318. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/completers.py +0 -0
  319. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/config_dashboard.py +0 -0
  320. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/constants.py +0 -0
  321. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/decorators.py +0 -0
  322. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/input.py +0 -0
  323. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/keybindings.py +0 -0
  324. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/lexers.py +0 -0
  325. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/logging_compat.py +0 -0
  326. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/model_selector.py +0 -0
  327. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/path_heuristics.py +0 -0
  328. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/prompt_manager.py +0 -0
  329. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/tool_descriptions.py +0 -0
  330. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/tool_ui.py +0 -0
  331. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/utils.py +0 -0
  332. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/ui/validators.py +0 -0
  333. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/__init__.py +0 -0
  334. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/api_key_validation.py +0 -0
  335. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/bm25.py +0 -0
  336. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/config_comparator.py +0 -0
  337. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/diff_utils.py +0 -0
  338. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/file_utils.py +0 -0
  339. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/import_cache.py +0 -0
  340. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/json_utils.py +0 -0
  341. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/message_utils.py +0 -0
  342. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/models_registry.py +0 -0
  343. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/retry.py +0 -0
  344. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/ripgrep.py +0 -0
  345. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/security.py +0 -0
  346. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/system.py +0 -0
  347. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/text_utils.py +0 -0
  348. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/token_counter.py +0 -0
  349. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/src/tunacode/utils/user_configuration.py +0 -0
  350. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/CHARACTERIZATION_README.md +0 -0
  351. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/CHARACTERIZATION_TEST_PLAN.md +0 -0
  352. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/CHARACTERIZATION_TEST_PLAN_AGENT_MAIN.md +0 -0
  353. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/CHARACTERIZATION_TEST_PLAN_COMMANDS.md +0 -0
  354. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/FILE_OPERATIONS_TEST_GUIDE.md +0 -0
  355. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/__init__.py +0 -0
  356. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/__init__.py +0 -0
  357. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/conftest.py +0 -0
  358. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/test_agent_creation.py +0 -0
  359. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/test_json_tool_parsing.py +0 -0
  360. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/test_process_node.py +0 -0
  361. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/test_process_request.py +0 -0
  362. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/agent/test_tool_message_patching.py +0 -0
  363. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/background/test_background_edge_cases.py +0 -0
  364. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/background/test_cleanup.py +0 -0
  365. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/background/test_task_cancellation.py +0 -0
  366. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/background/test_task_creation.py +0 -0
  367. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/background/test_task_execution.py +0 -0
  368. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/code_index/test_cache_management.py +0 -0
  369. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/code_index/test_file_scanning.py +0 -0
  370. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/code_index/test_index_building.py +0 -0
  371. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/code_index/test_search_operations.py +0 -0
  372. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/code_index/test_symbol_extraction.py +0 -0
  373. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/commands/__init__.py +0 -0
  374. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/commands/test_init_command.py +0 -0
  375. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/commands/test_model_selection_persistence.py +0 -0
  376. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/conftest.py +0 -0
  377. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/README.md +0 -0
  378. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/__init__.py +0 -0
  379. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/test_context_acceptance.py +0 -0
  380. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/test_context_integration.py +0 -0
  381. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/test_context_loading.py +0 -0
  382. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/context/test_tunacode_logging.py +0 -0
  383. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_command_parsing.py +0 -0
  384. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_error_handling.py +0 -0
  385. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_escape_key_behavior.py +0 -0
  386. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_input_handling.py +0 -0
  387. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_keyboard_interrupts.py +0 -0
  388. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_multiline_input.py +0 -0
  389. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_output_display_logic.py +0 -0
  390. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_repl_initialization.py +0 -0
  391. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/repl/test_session_flow.py +0 -0
  392. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/services/test_error_recovery.py +0 -0
  393. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/services/test_llm_routing.py +0 -0
  394. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/services/test_mcp_integration.py +0 -0
  395. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/services/test_service_lifecycle.py +0 -0
  396. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_agent_tracking.py +0 -0
  397. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_message_history.py +0 -0
  398. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_permissions.py +0 -0
  399. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_session_management.py +0 -0
  400. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_state_initialization.py +0 -0
  401. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/state/test_user_config.py +0 -0
  402. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_characterization_commands.py +0 -0
  403. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_characterization_grep.py +0 -0
  404. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_characterization_main.py +0 -0
  405. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_characterization_repl.py +0 -0
  406. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_cli_fuzzy_matching.py +0 -0
  407. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/test_setup_flow.py +0 -0
  408. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_async_ui.py +0 -0
  409. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_diff_display.py +0 -0
  410. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_prompt_rendering.py +0 -0
  411. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_spinner_messages.py +0 -0
  412. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/ui/test_tool_confirmations.py +0 -0
  413. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/utils/test_expand_file_refs.py +0 -0
  414. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/utils/test_file_operations.py +0 -0
  415. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/utils/test_token_counting.py +0 -0
  416. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/characterization/utils/test_utils_edge_cases.py +0 -0
  417. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/conftest.py +0 -0
  418. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/integration/test_startup_dashboard.py +0 -0
  419. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_agent_output_formatting.py +0 -0
  420. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_command_parser_retry.py +0 -0
  421. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_completion_detection.py +0 -0
  422. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_glob_phase3.py +0 -0
  423. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_json_concatenation_recovery.py +0 -0
  424. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_json_retry.py +0 -0
  425. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_logging_config.py +0 -0
  426. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_onboarding_features.py +0 -0
  427. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_phase2_type_hints.py +0 -0
  428. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_plan_mode.py +0 -0
  429. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_prompt_changes_validation.py +0 -0
  430. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_prompt_injection.py +0 -0
  431. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_security.py +0 -0
  432. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_slash_commands_comprehensive.py +0 -0
  433. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_slash_commands_functional.py +0 -0
  434. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_slash_commands_integration.py +0 -0
  435. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_slash_commands_isolated.py +0 -0
  436. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_spinner_updates.py +0 -0
  437. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/test_tool_batching_retry.py +0 -0
  438. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/ui/test_config_dashboard.py +0 -0
  439. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/commands/test_model_selection_persistence_new.py +0 -0
  440. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/config/test_user_configuration_permissions.py +0 -0
  441. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/test_constants_enums.py +0 -0
  442. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/test_react_tool.py +0 -0
  443. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/utils/test_models_registry.py +0 -0
  444. {tunacode_cli-0.0.77.1 → tunacode_cli-0.0.77.2}/tests/unit/utils/test_models_registry_validation.py +0 -0
  445. {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 .`
@@ -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
  }
@@ -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: uv run unimport --check --diff --exclude "venv/*" --gitignore
79
- language: system
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.1
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[logfire]==0.2.6
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
@@ -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.76"/version = "0.0.77"/g' pyproject.toml
102
- sed -i 's/APP_VERSION = "0.0.76"/APP_VERSION = "0.0.77"/' src/tunacode/constants.py
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
@@ -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.1"
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[logfire]==0.2.6",
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.1"
173
+ version = "0.0.77.2"
174
174
 
175
175
  # Release workflow
176
176
  release = [
@@ -38,6 +38,7 @@ done < <(find . -type f \
38
38
  -not -path "./.pytest_cache/*" \
39
39
  -not -path "./.mypy_cache/*" \
40
40
  -not -path "./.ruff_cache/*" \
41
+ -not -path "./.uv_cache/*" \
41
42
  -not -path "./htmlcov/*" \
42
43
  -not -path "./reports/*" \
43
44
  -not -path "./node_modules/*" \