ai-codeindex 0.23.0__tar.gz → 0.23.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.
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/workflows/ci.yml +7 -3
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/project.yml +5 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/CHANGELOG.md +35 -0
- ai_codeindex-0.23.2/CLAUDE.md +186 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/Makefile +5 -4
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/PKG-INFO +72 -31
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/README.md +70 -30
- ai_codeindex-0.23.2/README_zh.md +478 -0
- ai_codeindex-0.23.2/RELEASE_NOTES_v0.23.1.md +28 -0
- ai_codeindex-0.23.2/RELEASE_NOTES_v0.23.2.md +20 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/git-hooks-integration.md +1 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/README.md +1 -1
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/ROADMAP.md +2 -2
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/pyproject.toml +16 -2
- ai_codeindex-0.23.2/scripts/hooks/hook-common.sh +121 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/README_AI.md +32 -37
- ai_codeindex-0.23.2/src/codeindex/claude_md.py +153 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli.py +6 -1
- ai_codeindex-0.23.2/src/codeindex/cli_claude_md.py +91 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_config.py +2 -2
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_hooks.py +26 -60
- ai_codeindex-0.23.2/src/codeindex/hooks.py +13 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/init_wizard.py +5 -41
- ai_codeindex-0.23.2/src/codeindex/templates/claude_md_core.md +22 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/README_AI.md +54 -53
- ai_codeindex-0.23.2/tests/test_claude_md.py +216 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_claude_md_injection.py +7 -11
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_hooks.py +22 -2
- ai_codeindex-0.23.2/tests/test_hooks.py +23 -0
- ai_codeindex-0.23.2/tests/test_hooks_integration.py +125 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_init_wizard_bdd.py +2 -2
- ai_codeindex-0.23.0/CLAUDE.md +0 -805
- ai_codeindex-0.23.0/src/codeindex/hooks.py +0 -180
- ai_codeindex-0.23.0/src/codeindex/templates/claude_md_core.md +0 -129
- ai_codeindex-0.23.0/tests/test_hooks.py +0 -218
- ai_codeindex-0.23.0/tests/test_hooks_integration.py +0 -144
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.claude/skills/mo-arch/SKILL.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.claude/skills/mo-hooks/SKILL.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.claude/skills/mo-index/SKILL.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.editorconfig +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/ISSUE_TEMPLATE/bug.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/ISSUE_TEMPLATE/enhancement.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/ISSUE_TEMPLATE/epic.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/ISSUE_TEMPLATE/feature.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/workflows/publish.yml +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.gitignore +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/.gitignore +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/memories/design_philosophy.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/memories/development_workflow.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/memories/project_overview.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/memories/release_automation.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/memories/suggested_commands.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/CODE_OF_CONDUCT.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/CONTRIBUTING.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/FOR_LOOMGRAPH.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/LICENSE +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/PROJECT_SYMBOLS.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/README_AI.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.12.1.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.14.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.15.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.17.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.17.2.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.17.3.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.18.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.19.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.20.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/SECURITY.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/DOCS_REORGANIZATION_PLAN.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/adr/001-use-tree-sitter-for-parsing.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/adr/002-external-ai-cli-integration.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/adr/003-add-swift-objc-support.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/adr/004-automatic-claude-md-update.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/design/document-aggregation.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/design/initial-design.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/design/kiss-universal-description.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/design/parallel-strategy.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/design-philosophy.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/planning/BRANCH_STATUS.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/planning/IMPROVEMENT_PLAN.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/project-index/PROJECT_INDEX.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/project-index/PROJECT_INDEX_KISS.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/project-index/PROJECT_INDEX_TEST.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/releases/RELEASE_v0.7.0_COMPLETE.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/releases/RELEASE_v0.7.0_STATUS.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/summaries/DEVELOPMENT_PLAN_SUMMARY.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/summaries/DOCUMENTATION_REORGANIZATION.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/summaries/DOCUMENTATION_REVIEW.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/summaries/DOCUMENTATION_SUMMARY.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/summaries/DOCUMENTATION_UPDATE_SUMMARY.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/QUICK_START_RELEASE.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/cleanup-complete-summary.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/git-hooks-async-mode.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/git-hooks-design-analysis.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/git-hooks-venv-fix-2026-02-07.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/gitflow-workflow.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/github-issue-quick-reference.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/QUICK_START.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/ai-enhancement-issues.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/ai-enhancement-ultimate-solution.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/php-parser.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/symbol-overload-detection.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/tech-debt-detection.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/tiered-ai-enhancement-strategy.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/issue-cleanup-log.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/multi-language-support-workflow.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/path-fix-impact-analysis-2026-02-08.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/phase1-cleanup-report.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/phase2-cleanup-report.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/phase3-cleanup-report.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/pypi-release-guide.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/release-workflow.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/requirements-workflow.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/root-directory-analysis.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/setup.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/test-architecture.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/windows-bugs-analysis-2026-02-08.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/windows-encoding-fix-summary.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/windows-path-analysis-2026-02-08.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/windows-path-fix-summary-2026-02-08.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/before-after/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/case-studies/php-payment-project.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/epic12-story12.1-validation.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/framework.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/loomgraph-efficiency-comparison.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/php-project-validation.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/advanced-usage.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/claude-code-integration.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/configuration.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/contributing.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/getting-started.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/json-output-integration.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/loomgraph-integration.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/internal/git-commit-guide.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/internal/package-naming.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/internal/pypi-quickstart.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/migration/epic18_retrospective.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/migration/python_migration_report.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/migration/python_test_analysis.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/IMPLEMENTATION_GUIDE.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/PLANNING_COMPLETE.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/ROADMAP-update-proposal.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/active/epic22-multi-agent-onboarding.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic-json-output/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic10-loomgraph-integration/part1-python-plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic10-loomgraph-integration/part2-php-plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic10-loomgraph-integration/part3-java/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-call-relationships/design-decisions.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-call-relationships/discussion.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-call-relationships/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-completion-report.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-final-summary.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-story11.1-completion.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-story11.3-completion.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic12-single-file-parse/epic12-development-checklist.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic12-single-file-parse/epic12-single-file-parse.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic12-single-file-parse/epic12-task-summary.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic13-parser-refactoring/epic13-parser-refactoring.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic13-parser-refactoring/epic13-progress.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic15-user-onboarding/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic16-test-suite-refactoring/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic16-test-suite-refactoring/summary.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic18-test-migration/TODO.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic18-test-migration/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic19-cli-ux-restructuring/TODO.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic19-cli-ux-restructuring/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic2-adaptive-symbols/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic2-adaptive-symbols/validation-report.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic23-swift-objc-support/epic23-slock-app-validation.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic23-swift-objc-support/epic23-tech-debt-validation.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic23-swift-objc-support/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic3-ai-enhancement/optimization.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic3-ai-enhancement/refactoring-analysis.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic3-ai-enhancement/removal-notes.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic4-refactoring/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic4-refactoring/story-4.3-cli-split.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic4-refactoring/story-4.4-validation.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic4-refactoring/story-4.4.5-kiss-validation.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic4-refactoring/story-4.4.5-kiss.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic6-framework-routes/git-hooks-ux.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic6-framework-routes/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_CURRENT_STATUS.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_DESIGN_PHILOSOPHY_RETHINK.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_GREEN_COMPLETE.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_JAVA_ROADMAP.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_PERFORMANCE_CORRECTION.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_REFACTOR_COMPLETE.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_STORY_7.1.2-7.1.4_DESIGN.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_STORY_7.1.4_PERFORMANCE_RETHINK.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_TEST_STRATEGY.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/story-breakdown.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic9-docstring-extraction/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/sprints/sprint-1/DAILY_LOG.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/sprints/sprint-1/STARTED.txt +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/ROADMAP_UPDATE_v0.6.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/development-history-stats.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/development-roadmap-2026-q1-q2.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/improvement-plan-archive.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/improvement-proposals.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/improvement-roadmap.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/phase1-agile-plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/phase1-quick-start.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/phase1-story-cards.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/phase1-story-planning-epic5.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/v0.4.0-execution-plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.18.0-enriched-overview/story.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/deferred/epic5-intelligent-branch/plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/deferred/epic5-intelligent-branch/summary.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/deferred/epic6-multiagent-orchestrator.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/executive-summary.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/roadmap/2025-Q1.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/roadmap/dependency-graph-update.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/project-cleanup-plan.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.10.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.12.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.2.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.3.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.3.1.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.3.2.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.4.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.5.0-beta1.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.7.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.8.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.9.0.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/CLAUDE.md.php-project +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/CLAUDE.md.template +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/README_AI.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/ai-integration-guide.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/frameworks/README_AI.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/frameworks/template/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/frameworks/template/README_AI.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/frameworks/template/test_template_extractor.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/frameworks/template/yourframework_extractor.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/loomgraph_output.json +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/loomgraph_php_output.json +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/loomgraph_sample.php +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/loomgraph_sample.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/parse_integration_example.sh +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/print_env.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/hooks/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/hooks/templates/post-commit-update-logic.sh +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/hooks/templates/post-commit-v4 +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/swift-objc-support-analysis.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/swift-poc-summary.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/tech-debt-codeindex-v2.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/tech-debt-codeindex.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/tech-debt-loomgraph-v2.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/tech-debt-loomgraph.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/workflow-comparison.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/README_AI.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/bump_version.sh +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/check_docs_release.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/check_version_consistency.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/close-epic9-issues.sh +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/diagnose_ai_failures.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/hooks/pre-push +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/legacy/PROJECT_INDEX.json +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/legacy/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/legacy/hierarchical_strategy.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/release.sh +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/test_hook_e2e.sh +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validate_php_project.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validate_real_projects.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validation/baselines/.gitkeep +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validation/baselines/baseline_v0.17.3_20260214_025335.json +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validation/projects.yaml +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validation/reports/.gitkeep +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/skills/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/skills/create.sh +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/skills/install.sh +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/skills/src/mo-arch/SKILL.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/skills/src/mo-index/SKILL.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/README_AI.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/adaptive_config.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/adaptive_selector.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/ai_helper.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_common.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_config_commands.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_docs.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_parse.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_scan.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_symbols.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_tech_debt.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/config.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/config_help.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/directory_tree.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/docstring_processor.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/enricher.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/errors.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/extractors/README_AI.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/extractors/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/extractors/spring.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/extractors/thinkphp.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/file_classifier.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/framework_detect.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/hierarchical.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/incremental.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/invoker.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/objc_association.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parallel.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parser.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/README_AI.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/base.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java/calls.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java/imports.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java/inheritance.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java/symbols.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java_parser.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/objc/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/objc/calls.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/objc/imports.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/objc/inheritance.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/objc/symbols.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/php/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/php/calls.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/php/imports.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/php/inheritance.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/php/symbols.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/python/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/python/calls.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/python/imports.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/python/inheritance.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/python/symbols.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/swift/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/swift/calls.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/swift/imports.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/swift/inheritance.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/swift/symbols.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/typescript/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/typescript/calls.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/typescript/imports.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/typescript/inheritance.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/typescript/symbols.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/utils.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/route_extractor.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/route_registry.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/scanner.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/semantic_extractor.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/skill_helpers.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/smart_writer.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/symbol_index.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/symbol_scorer.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/tech_debt.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/tech_debt_formatters.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/templates/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/test_smells.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writer.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/core.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/detailed_generator.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/navigation_generator.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/overview_generator.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/utils.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/generator.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/scripts/analyze_legacy_tests.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/scripts/compare_coverage.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/scripts/compare_test_results.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/specs/java.yaml +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/specs/php.yaml +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/specs/python.yaml +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/templates/inheritance_test.py.j2 +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/conftest.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/extractors/README_AI.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/extractors/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/extractors/test_spring.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/extractors/test_thinkphp.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/extractors/test_thinkphp_description.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/cli_scan_defaults.feature +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/help_system.feature +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/init_wizard.feature +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/symbol_overload_detection.feature +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/tech_debt_detection.feature +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/tech_debt_reporting.feature +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/Controller.php +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/Service.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/Simple.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/broken.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/complete.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/service.ts +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/simple.php +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/simple.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/unsupported.txt +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/enum.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/generics.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/imports.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/interface.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/record.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/sealed_class.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/simple_class.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring/Application.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring/User.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring/UserController.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring/UserRepository.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring/UserService.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring_controller.java +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/typescript/app.js +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/typescript/component.tsx +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/typescript/service.ts +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/README.md +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/test_hierarchical_test/level1/file1.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/test_hierarchical_test/level1/level2a/file2.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/test_hierarchical_test/level1/level2a/level3/file4.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/test_hierarchical_test/level1/level2b/file3.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/test_hierarchy_simple.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_adaptive_config.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_adaptive_selector.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_ai_helper.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_backward_compatibility.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_call_integration.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_debt_scan.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_docstring_options.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_json.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_parse.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_scan_defaults_bdd.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_tech_debt.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_config_adaptive.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_dataclass_structure.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_directory_tree.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_docstring_config.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_docstring_processor.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_enricher.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_enricher_integration.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_error_handling.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_file_classifier.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_help_system_bdd.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_hook_post_commit.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_hooks_config.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_integration_swift_objc.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_annotations.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_calls.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_edge_cases.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_error_recovery.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_generic_bounds.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_inheritance.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_lambda.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_lombok.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_module.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_parser.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_spring.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_throws.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_json_output.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_lazy_loading.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_loomgraph_integration.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_objc_association_utils.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parallel_scan.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_detection.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_objc_association.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_objc_basic.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_objc_bridging.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_objc_categories.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_docstrings.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_extensions.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_generics.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_inheritance.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_integration.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_poc.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_properties.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_property_wrappers.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_protocols.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_signatures.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_calls.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_comment_extraction.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_docstring_extraction.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_import_alias.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_inheritance.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_loomgraph_integration.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_project_index_semantic.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_python_calls.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_python_docstring_description.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_python_import_alias.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_python_inheritance.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_route_extractor.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_route_info.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_route_registry.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_route_table_description.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_route_table_display.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_scanall_auto_ai.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_scanner_passthrough.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_semantic_extractor.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_skill_helpers.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer_adaptive.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer_docstring.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer_enriched.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer_integration.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer_semantic.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_story_4_4_integration.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_symbol_overload.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_symbol_scorer.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_bdd.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_detector.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_formatters.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_ios.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_java.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_reporter.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_test_smells.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_thinkphp_route_extractor.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_typescript_integration.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_typescript_parser.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_windows_path_optimization.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/writers/__init__.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/writers/test_generators.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/writers/test_utils.py +0 -0
- {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/uv.lock +0 -0
|
@@ -41,7 +41,7 @@ jobs:
|
|
|
41
41
|
|
|
42
42
|
- name: Run tests with coverage
|
|
43
43
|
run: |
|
|
44
|
-
pytest -v --cov=src/codeindex --cov-report=term-missing --cov-report=xml
|
|
44
|
+
pytest -v --cov=src/codeindex --cov-report=term-missing --cov-report=xml --cov-fail-under=78
|
|
45
45
|
|
|
46
46
|
- name: Upload coverage to Codecov (Ubuntu Python 3.11 only)
|
|
47
47
|
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
|
|
@@ -60,12 +60,16 @@ jobs:
|
|
|
60
60
|
with:
|
|
61
61
|
python-version: '3.11'
|
|
62
62
|
|
|
63
|
-
- name: Install
|
|
64
|
-
run: pip install ruff
|
|
63
|
+
- name: Install lint tools
|
|
64
|
+
run: pip install ruff mypy
|
|
65
65
|
|
|
66
66
|
- name: Run ruff check
|
|
67
67
|
run: ruff check src/ tests/ test_generator/
|
|
68
68
|
|
|
69
|
+
- name: Run mypy type check (informational)
|
|
70
|
+
run: mypy src/codeindex/parser.py src/codeindex/scanner.py src/codeindex/config.py
|
|
71
|
+
continue-on-error: true
|
|
72
|
+
|
|
69
73
|
build-check:
|
|
70
74
|
runs-on: ubuntu-latest
|
|
71
75
|
steps:
|
|
@@ -123,3 +123,8 @@ language_backend:
|
|
|
123
123
|
# list of regex patterns which, when matched, mark a memory entry as read‑only.
|
|
124
124
|
# Extends the list from the global configuration, merging the two lists.
|
|
125
125
|
read_only_memory_patterns: []
|
|
126
|
+
|
|
127
|
+
# line ending convention to use when writing source files.
|
|
128
|
+
# Possible values: unset (use global setting), "lf", "crlf", or "native" (platform default)
|
|
129
|
+
# This does not affect Serena's own files (e.g. memories and configuration files), which always use native line endings.
|
|
130
|
+
line_ending:
|
|
@@ -7,6 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.23.2] - 2026-04-14
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **Hook shebangs**: `#!/bin/zsh` → `#!/usr/bin/env bash` for cross-platform portability.
|
|
15
|
+
- **Unified hook install**: `make install-hooks` now delegates to `codeindex hooks install --all`.
|
|
16
|
+
- **Post-commit logging**: stderr redirected to `~/.codeindex/hooks/post-commit.log` instead of `/dev/null`.
|
|
17
|
+
- **Debug detection**: Replaced ~50 lines of regex-based L2 check with ruff `T201`/`T100` rules.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- **`hook-common.sh` versioned**: Added to `scripts/hooks/` and auto-copied on `codeindex hooks install`.
|
|
22
|
+
- **mypy**: Added as dev dependency with baseline config; CI runs informational type check on core modules.
|
|
23
|
+
- **Coverage gate**: CI enforces `--cov-fail-under=78` to prevent coverage regression.
|
|
24
|
+
- **`make typecheck`**: New Makefile target for mypy on core modules.
|
|
25
|
+
|
|
26
|
+
## [0.23.1] - 2026-03-15
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- **`codeindex claude-md update/status` CLI commands**: Manage codeindex section in project CLAUDE.md with version tracking.
|
|
31
|
+
- **Startup version-outdated hint**: Every `codeindex` CLI invocation checks if CLAUDE.md section is outdated and prints a reminder.
|
|
32
|
+
- **Unified `claude_md.py` module**: Single source of truth for CLAUDE.md injection, replacing fragmented hooks.py + init_wizard.py logic.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- **CLAUDE.md template simplified**: 130 lines → 22 lines. Removed hardcoded paths, language support table, and verbose configuration examples.
|
|
37
|
+
- **Unified marker format**: `<!-- codeindex:start v{version} -->` with backward compatibility for old markers without version.
|
|
38
|
+
- **`init_wizard.py` injection**: Now delegates to `claude_md.py` module instead of inline template.
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- **Dead code cleanup**: Removed `hooks.py` `post_install_update_guide()` (181 lines) that was never wired to pip entry points.
|
|
43
|
+
- **Dead import fix**: `cli_config.py` referenced non-existent `install_hooks` from `hooks.py`, now uses correct `install_hook` from `cli_hooks.py`.
|
|
44
|
+
|
|
10
45
|
## [0.23.0] - 2026-03-12
|
|
11
46
|
|
|
12
47
|
### Added
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
**For**: Claude Code working with this repository
|
|
4
|
+
**Version**: v0.23.1
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Part 1: Understanding & Navigating
|
|
9
|
+
|
|
10
|
+
### Code Navigation Priority
|
|
11
|
+
|
|
12
|
+
1. `/README_AI.md` → Project overview
|
|
13
|
+
2. Serena `find_symbol()` → Precise symbol location
|
|
14
|
+
3. `/src/codeindex/README_AI.md` → Core module details
|
|
15
|
+
4. Serena `find_referencing_symbols()` → Call relationships
|
|
16
|
+
|
|
17
|
+
### Key Files
|
|
18
|
+
|
|
19
|
+
| File | Purpose |
|
|
20
|
+
|------|---------|
|
|
21
|
+
| `README_AI.md` | AI-generated directory docs |
|
|
22
|
+
| `PROJECT_SYMBOLS.md` | Global symbol index |
|
|
23
|
+
| `.codeindex.yaml` | Scan configuration |
|
|
24
|
+
| `CHANGELOG.md` | Version history |
|
|
25
|
+
| `docs/planning/*.md` | Epic/Story design decisions |
|
|
26
|
+
| `docs/architecture/design-philosophy.md` | Core design principles |
|
|
27
|
+
|
|
28
|
+
### Serena MCP Quick Reference
|
|
29
|
+
|
|
30
|
+
```python
|
|
31
|
+
find_symbol(name_path_pattern="SmartWriter/write_readme")
|
|
32
|
+
find_referencing_symbols(name_path="calculate_limit", relative_path="src/codeindex/adaptive_selector.py")
|
|
33
|
+
get_symbols_overview(relative_path="src/codeindex/parser.py", depth=1)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Part 2: Development Workflow
|
|
39
|
+
|
|
40
|
+
### Virtual Environment (REQUIRED)
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
source .venv/bin/activate
|
|
44
|
+
which python3 # Must show .venv path
|
|
45
|
+
pip install -e ".[dev,all]"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Without venv: pip fails (PEP 668), pre-push hooks fail (`ModuleNotFoundError`), `make release` fails.
|
|
49
|
+
|
|
50
|
+
### Quick Start Commands
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Development
|
|
54
|
+
pytest -v # Run tests
|
|
55
|
+
ruff check src/ # Lint
|
|
56
|
+
pytest --cov=src/codeindex # Coverage
|
|
57
|
+
|
|
58
|
+
# codeindex usage
|
|
59
|
+
codeindex scan-all --fallback # Generate all indexes
|
|
60
|
+
codeindex parse src/myfile.py # Parse single file
|
|
61
|
+
codeindex symbols # Global symbol index
|
|
62
|
+
codeindex tech-debt ./src # Code quality analysis
|
|
63
|
+
codeindex hooks status # Git hooks status
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Commit Message Format
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
feat(scope): add new feature
|
|
70
|
+
fix(scope): fix bug
|
|
71
|
+
docs(scope): update documentation
|
|
72
|
+
test(scope): add tests
|
|
73
|
+
refactor(scope): refactor code
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Documentation Update Rules
|
|
77
|
+
|
|
78
|
+
| Change Type | Documents to Update |
|
|
79
|
+
|-------------|---------------------|
|
|
80
|
+
| New feature | CHANGELOG.md, README.md, relevant README_AI.md |
|
|
81
|
+
| Bug fix | CHANGELOG.md |
|
|
82
|
+
| Config change | .codeindex.yaml example, CHANGELOG.md |
|
|
83
|
+
| Major release | CHANGELOG.md, RELEASE_NOTES_vX.X.X.md |
|
|
84
|
+
|
|
85
|
+
After code changes: `codeindex scan-all --fallback`
|
|
86
|
+
|
|
87
|
+
### Epic Completion Workflow
|
|
88
|
+
|
|
89
|
+
1. Update `docs/planning/ROADMAP.md` (version + epic status)
|
|
90
|
+
2. Archive: `docs/planning/active/ → docs/planning/completed/`
|
|
91
|
+
3. Update `docs/planning/README.md` index
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Part 2.5: Design Philosophy
|
|
96
|
+
|
|
97
|
+
Read `docs/architecture/design-philosophy.md` when:
|
|
98
|
+
- Adding new language support
|
|
99
|
+
- Implementing features involving ParseResult
|
|
100
|
+
- Making architectural decisions (AI vs programmatic, parallelization)
|
|
101
|
+
|
|
102
|
+
**Core principles**:
|
|
103
|
+
- We extract structure (What), AI understands semantics (Why)
|
|
104
|
+
- 3 layers: Structure Extraction (tree-sitter) → Automated Analysis → AI Enhancement
|
|
105
|
+
- AI invocation is the bottleneck (99%), not parsing
|
|
106
|
+
- ThreadPool for all languages (I/O bound)
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Part 3: Architecture Reference
|
|
111
|
+
|
|
112
|
+
### Three-Repo Architecture
|
|
113
|
+
|
|
114
|
+
> codeindex **sees** (AST parsing), LoomGraph **thinks** (pipeline + skills), LightRAG **remembers** (storage + retrieval)
|
|
115
|
+
|
|
116
|
+
| Repo | Role | Local Path |
|
|
117
|
+
|------|------|------------|
|
|
118
|
+
| **codeindex** | AST parsing, Symbol/Call/Inheritance extraction | `/Users/dreamlinx/Projects/codeindex` |
|
|
119
|
+
| **LoomGraph** | Pipeline dispatch, Embedding, CLI/Skill | `/Users/dreamlinx/Projects/LoomGraph` |
|
|
120
|
+
| **LightRAG** | Graph storage, vector retrieval | `/Users/dreamlinx/Projects/LightRAG` |
|
|
121
|
+
|
|
122
|
+
Data flow: `codeindex scan` → ParseResult → `LoomGraph embed/inject` → LightRAG API → PostgreSQL
|
|
123
|
+
|
|
124
|
+
### Core Pipeline
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
Directory → Scanner → [files] → Parser (tree-sitter) → [ParseResult]
|
|
128
|
+
→ SmartWriter → Writer → Invoker (AI CLI) → README_AI.md
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Key Data Types
|
|
132
|
+
|
|
133
|
+
- `ScanResult`: path, files, subdirs
|
|
134
|
+
- `ParseResult`: path, symbols, imports, module_docstring, error
|
|
135
|
+
- `Symbol`: name, kind, signature, docstring, line_start, line_end
|
|
136
|
+
- `Import`: module, names, is_from
|
|
137
|
+
- `Config`: Loaded from `.codeindex.yaml`
|
|
138
|
+
|
|
139
|
+
### Configuration
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
version: 1
|
|
143
|
+
ai_command: 'claude -p "{prompt}" --allowedTools "Read"'
|
|
144
|
+
include: [src/]
|
|
145
|
+
exclude: ["**/__pycache__/**"]
|
|
146
|
+
languages: [python, php, java, typescript, javascript, swift, objc]
|
|
147
|
+
output_file: README_AI.md
|
|
148
|
+
|
|
149
|
+
symbols:
|
|
150
|
+
adaptive_symbols:
|
|
151
|
+
enabled: true
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Full config: `examples/.codeindex.yaml` | Help: `codeindex config explain <param>`
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Part 4: Extension Development
|
|
159
|
+
|
|
160
|
+
### Adding Language/Framework Support
|
|
161
|
+
|
|
162
|
+
1. Write tests: `tests/extractors/test_myframework.py`
|
|
163
|
+
2. Implement: `src/codeindex/extractors/myframework.py`
|
|
164
|
+
3. Auto-registered via `extractors/__init__.py`
|
|
165
|
+
|
|
166
|
+
Reference: `src/codeindex/extractors/thinkphp.py`
|
|
167
|
+
|
|
168
|
+
### Git Hooks
|
|
169
|
+
|
|
170
|
+
- pre-commit: lint + debug checks
|
|
171
|
+
- post-commit: auto README updates
|
|
172
|
+
- pre-push: test validation
|
|
173
|
+
|
|
174
|
+
Management: `codeindex hooks install/uninstall/status`
|
|
175
|
+
Guide: `docs/guides/git-hooks-integration.md`
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Common Mistakes
|
|
180
|
+
|
|
181
|
+
1. **Directly modify README_AI.md** → It gets overwritten. Modify source docstrings instead.
|
|
182
|
+
2. **Skip tests** → TDD required. Write tests first.
|
|
183
|
+
3. **Glob/Grep for exploration** → Use Serena MCP tools.
|
|
184
|
+
4. **Ignore README_AI.md** → Always read it first.
|
|
185
|
+
5. **Commit to develop/master directly** → Use feature branches.
|
|
186
|
+
6. **Forget venv** → Always `source .venv/bin/activate` first.
|
|
@@ -39,11 +39,9 @@ install: ## Install package in editable mode
|
|
|
39
39
|
install-dev: ## Install with dev dependencies
|
|
40
40
|
pip install -e ".[dev,all]"
|
|
41
41
|
|
|
42
|
-
install-hooks: ## Install Git hooks
|
|
42
|
+
install-hooks: ## Install Git hooks via codeindex CLI
|
|
43
43
|
@echo "$(CYAN)Installing Git hooks...$(RESET)"
|
|
44
|
-
@
|
|
45
|
-
@cp scripts/hooks/pre-push .git/hooks/pre-push
|
|
46
|
-
@chmod +x .git/hooks/pre-push
|
|
44
|
+
@codeindex hooks install --all --force
|
|
47
45
|
@echo "$(GREEN)✓ Git hooks installed$(RESET)"
|
|
48
46
|
|
|
49
47
|
# ============================================================================
|
|
@@ -65,6 +63,9 @@ lint: ## Run linter (ruff)
|
|
|
65
63
|
lint-fix: ## Auto-fix linting issues
|
|
66
64
|
ruff check --fix src/ tests/
|
|
67
65
|
|
|
66
|
+
typecheck: ## Run mypy type check on core modules
|
|
67
|
+
mypy src/codeindex/parser.py src/codeindex/scanner.py src/codeindex/config.py
|
|
68
|
+
|
|
68
69
|
format: ## Format code with ruff
|
|
69
70
|
ruff format src/ tests/
|
|
70
71
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ai-codeindex
|
|
3
|
-
Version: 0.23.
|
|
3
|
+
Version: 0.23.2
|
|
4
4
|
Summary: AI-native code indexing tool for large codebases
|
|
5
5
|
Project-URL: Homepage, https://github.com/dreamlx/codeindex
|
|
6
6
|
Project-URL: Documentation, https://github.com/dreamlx/codeindex
|
|
@@ -32,6 +32,7 @@ Requires-Dist: tree-sitter-python>=0.21; extra == 'all'
|
|
|
32
32
|
Requires-Dist: tree-sitter-swift>=0.0.1; extra == 'all'
|
|
33
33
|
Requires-Dist: tree-sitter-typescript>=0.23.2; extra == 'all'
|
|
34
34
|
Provides-Extra: dev
|
|
35
|
+
Requires-Dist: mypy>=1.0; extra == 'dev'
|
|
35
36
|
Requires-Dist: pytest-bdd>=7.0; extra == 'dev'
|
|
36
37
|
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
|
|
37
38
|
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
@@ -56,14 +57,16 @@ Description-Content-Type: text/markdown
|
|
|
56
57
|
|
|
57
58
|
# codeindex
|
|
58
59
|
|
|
60
|
+
[🇬🇧 English](README.md) | [🇨🇳 中文](README_zh.md)
|
|
61
|
+
|
|
59
62
|
[](https://badge.fury.io/py/ai-codeindex)
|
|
60
63
|
[](https://www.python.org/downloads/)
|
|
61
64
|
[](https://opensource.org/licenses/MIT)
|
|
62
65
|
[](https://github.com/dreamlx/codeindex/actions)
|
|
63
66
|
|
|
64
|
-
**Enterprise-grade Code Intelligence Platform —
|
|
67
|
+
**Enterprise-grade Code Intelligence Platform — Make AI agents understand your codebase through semantic navigation, not grep.**
|
|
65
68
|
|
|
66
|
-
codeindex
|
|
69
|
+
codeindex generates AI-readable documentation with **two-phase pipeline**: structural indexing (AST parsing via tree-sitter) + AI-powered module descriptions. AI agents can browse README_AI.md hierarchy, see module purposes at a glance, and navigate directly to the right code — across Python, PHP, Java, TypeScript, JavaScript, Swift, and Objective-C. Designed for **enterprise environments** with intranet isolation.
|
|
67
70
|
|
|
68
71
|
**🏢 Enterprise Ready**: ✅ Intranet compatible ✅ Self-contained ✅ Version stable ✅ Data sovereignty
|
|
69
72
|
|
|
@@ -75,18 +78,28 @@ codeindex extracts symbols, inheritance relationships, call graphs, and imports
|
|
|
75
78
|
|
|
76
79
|
## Features
|
|
77
80
|
|
|
81
|
+
### Core: Code Understanding for AI Agents
|
|
82
|
+
|
|
83
|
+
- **Two-phase documentation pipeline** (v0.23.0) — Phase 1: structural README_AI.md via SmartWriter; Phase 2: AI generates one-line functional descriptions per module. AI agents can browse README_AI.md hierarchy and find the right module **without grep**.
|
|
84
|
+
- **Smart indexing** — Tiered documentation (overview → navigation → detailed) optimized for AI agents, ≤50KB per file
|
|
85
|
+
- **Auto-AI enrichment** — When `ai_command` is configured, `scan-all` automatically enables AI module descriptions. Use `--no-ai` to opt out
|
|
86
|
+
- **Auto-update hooks** — Post-commit hook automatically regenerates README_AI.md for changed directories. Thin wrapper pattern: `pip upgrade` auto-updates hook logic
|
|
87
|
+
|
|
88
|
+
### Parsing & Analysis
|
|
89
|
+
|
|
78
90
|
- **Multi-language AST parsing** — Python, PHP, Java, TypeScript, JavaScript, Swift, Objective-C via tree-sitter (Go, Rust, C# planned)
|
|
79
|
-
- **AI-powered documentation** — Generate README files using Claude, GPT, or any AI CLI
|
|
80
|
-
- **Single file parse** — `codeindex parse <file>` with JSON output for tool integration
|
|
81
|
-
- **Structured JSON output** — `--output json` for CI/CD, knowledge graphs, and downstream tools
|
|
82
91
|
- **Call relationship extraction** — Function/method call graphs across Python, Java, PHP, TypeScript, JavaScript
|
|
83
92
|
- **Inheritance extraction** — Class hierarchy and interface relationships
|
|
84
93
|
- **Framework route extraction** — ThinkPHP and Spring Boot route tables (more planned)
|
|
85
|
-
- **Technical debt analysis** — Detect large files, god classes, symbol overload
|
|
86
|
-
- **
|
|
94
|
+
- **Technical debt analysis** — Detect large files, god classes, symbol overload, test smells
|
|
95
|
+
- **Single file parse** — `codeindex parse <file>` with JSON output for tool integration
|
|
96
|
+
- **Structured JSON output** — `--output json` for CI/CD, knowledge graphs, and downstream tools
|
|
97
|
+
|
|
98
|
+
### Developer Experience
|
|
99
|
+
|
|
87
100
|
- **Adaptive symbol extraction** — Dynamic 5–150 symbols per file based on size
|
|
88
|
-
- **CLAUDE.md injection** — `codeindex init` auto-configures Claude Code integration
|
|
89
|
-
- **Auto-update guide** — Post-install hook automatically updates `~/.claude/CLAUDE.md` after `pip upgrade`
|
|
101
|
+
- **CLAUDE.md injection** — `codeindex init` auto-configures Claude Code integration
|
|
102
|
+
- **Auto-update guide** — Post-install hook automatically updates `~/.claude/CLAUDE.md` after `pip upgrade`
|
|
90
103
|
- **Template-based test generation** — YAML + Jinja2 for rapid language support (88–91% time savings)
|
|
91
104
|
- **Parallel scanning** — Concurrent directory processing with configurable workers
|
|
92
105
|
|
|
@@ -101,18 +114,19 @@ codeindex extracts symbols, inheritance relationships, call graphs, and imports
|
|
|
101
114
|
```bash
|
|
102
115
|
# Enterprise developer workflow
|
|
103
116
|
git clone <internal-repo>
|
|
104
|
-
codeindex
|
|
105
|
-
#
|
|
106
|
-
#
|
|
117
|
+
codeindex init # Configure project
|
|
118
|
+
codeindex scan-all # Structural + AI descriptions (auto)
|
|
119
|
+
# AI agent reads README_AI.md → sees module purposes → navigates directly
|
|
120
|
+
# No grep needed for code discovery
|
|
107
121
|
codeindex tech-debt src/ --output review.md # Code quality analysis
|
|
108
122
|
```
|
|
109
123
|
|
|
110
124
|
**Why enterprises choose codeindex**:
|
|
125
|
+
- ✅ **Semantic navigation** — AI agents understand module purposes from README_AI.md hierarchy
|
|
111
126
|
- ✅ **Intranet compatible** — no external dependencies, fully offline
|
|
112
127
|
- ✅ **Self-contained** — no upstream MCP servers required
|
|
113
128
|
- ✅ **Version stable** — enterprise-controlled release cycle
|
|
114
129
|
- ✅ **Data sovereignty** — code never leaves internal network
|
|
115
|
-
- ✅ **Customizable** — extensible for internal languages/frameworks
|
|
116
130
|
|
|
117
131
|
---
|
|
118
132
|
|
|
@@ -142,18 +156,18 @@ Without codeindex, LoomGraph cannot function. See [LoomGraph Integration Guide](
|
|
|
142
156
|
|
|
143
157
|
**With Serena MCP**: For individual developers using Claude Code + Serena MCP, codeindex provides **complementary value**:
|
|
144
158
|
|
|
159
|
+
- **codeindex** (build-time): Semantic architecture map (README_AI.md with module descriptions) + quality analysis
|
|
145
160
|
- **Serena** (real-time): Precise symbol navigation (`find_symbol`, `find_referencing_symbols`)
|
|
146
|
-
- **codeindex** (build-time): Architecture overview (README_AI.md) + quality analysis (tech-debt)
|
|
147
161
|
|
|
148
162
|
```bash
|
|
149
163
|
# Personal developer workflow
|
|
150
164
|
codeindex init # Setup CLAUDE.md integration
|
|
151
|
-
codeindex scan-all
|
|
152
|
-
|
|
153
|
-
|
|
165
|
+
codeindex scan-all # Structural + AI descriptions (auto)
|
|
166
|
+
codeindex hooks install post-commit # Auto-update on commit
|
|
167
|
+
# Claude Code reads README_AI.md → understands module purpose → uses Serena for details
|
|
154
168
|
```
|
|
155
169
|
|
|
156
|
-
**Relationship**: codeindex
|
|
170
|
+
**Relationship**: codeindex provides the "map with labels," Serena provides the "GPS navigation."
|
|
157
171
|
|
|
158
172
|
---
|
|
159
173
|
|
|
@@ -210,18 +224,17 @@ This creates:
|
|
|
210
224
|
### 2. Scan Your Codebase
|
|
211
225
|
|
|
212
226
|
```bash
|
|
213
|
-
# Scan all directories
|
|
227
|
+
# Scan all directories
|
|
228
|
+
# When ai_command is configured → auto Phase 1 (structural) + Phase 2 (AI descriptions)
|
|
229
|
+
# Without ai_command → Phase 1 only (structural)
|
|
214
230
|
codeindex scan-all
|
|
215
231
|
|
|
232
|
+
# Structural only (skip AI enrichment)
|
|
233
|
+
codeindex scan-all --no-ai
|
|
234
|
+
|
|
216
235
|
# Scan a single directory
|
|
217
236
|
codeindex scan ./src/auth
|
|
218
237
|
|
|
219
|
-
# When ai_command is configured, auto-enables AI module descriptions
|
|
220
|
-
codeindex scan-all
|
|
221
|
-
|
|
222
|
-
# Disable AI enrichment (structural only)
|
|
223
|
-
codeindex scan-all --no-ai
|
|
224
|
-
|
|
225
238
|
# Full AI-generated README for a single directory
|
|
226
239
|
codeindex scan ./src/auth --ai
|
|
227
240
|
|
|
@@ -388,17 +401,45 @@ codeindex debt-scan ./src --format json
|
|
|
388
401
|
|
|
389
402
|
## How It Works
|
|
390
403
|
|
|
391
|
-
###
|
|
404
|
+
### Two-Phase Pipeline (v0.23.0)
|
|
392
405
|
|
|
393
406
|
```
|
|
394
|
-
|
|
407
|
+
Phase 1 (Structural):
|
|
408
|
+
Directory → Scanner → Parser (tree-sitter) → SmartWriter → README_AI.md
|
|
409
|
+
|
|
410
|
+
Phase 2 (AI Enrichment, automatic when ai_command configured):
|
|
411
|
+
README_AI.md → symbol names + file names → AI → one-line description → blockquote injection
|
|
395
412
|
```
|
|
396
413
|
|
|
414
|
+
**Phase 1: Structural generation** (always runs)
|
|
397
415
|
1. **Scanner** — walks directories, filters by config patterns
|
|
398
416
|
2. **Parser** — extracts symbols (classes, functions, imports, calls, inheritance) via tree-sitter
|
|
399
|
-
3. **
|
|
417
|
+
3. **SmartWriter** — generates tiered documentation with size limits (≤50KB)
|
|
400
418
|
4. **Output** — `README_AI.md` optimized for AI consumption, or JSON for tool integration
|
|
401
419
|
|
|
420
|
+
**Phase 2: AI enrichment** (auto-enabled when `ai_command` configured)
|
|
421
|
+
- Generates a one-line functional description for each non-leaf module
|
|
422
|
+
- Writes as blockquote: `> 会员等级管理、积分兑换、权益卡券`
|
|
423
|
+
- ~200-400 tokens per directory, 10-20x cheaper than full AI generation
|
|
424
|
+
- Parent directories read child descriptions for hierarchical navigation
|
|
425
|
+
|
|
426
|
+
### Before vs After: Code Navigation
|
|
427
|
+
|
|
428
|
+
```
|
|
429
|
+
Before (structural only):
|
|
430
|
+
└── Application/
|
|
431
|
+
├── Vip/ — 48 files | 386 symbols ← AI agent cannot determine purpose
|
|
432
|
+
├── Pay/ — 23 files | 178 symbols
|
|
433
|
+
└── SmallProgramApi/ — 31 files | 245 symbols
|
|
434
|
+
|
|
435
|
+
After (structural + AI enrichment):
|
|
436
|
+
└── Application/
|
|
437
|
+
├── Vip/ — 会员等级管理、积分兑换、权益卡券 | 48 files
|
|
438
|
+
├── Pay/ — 支付网关(支付宝/微信/退款) | 23 files
|
|
439
|
+
└── SmallProgramApi/ — 小程序端API(登录、头像、商品) | 31 files
|
|
440
|
+
↑ AI agent can navigate directly
|
|
441
|
+
```
|
|
442
|
+
|
|
402
443
|
### Three-Repo Architecture (Enterprise Knowledge Graph)
|
|
403
444
|
|
|
404
445
|
```
|
|
@@ -490,14 +531,14 @@ See [Release Automation Guide](docs/development/QUICK_START_RELEASE.md) for deta
|
|
|
490
531
|
|
|
491
532
|
## Roadmap
|
|
492
533
|
|
|
493
|
-
**Current version**: v0.23.
|
|
534
|
+
**Current version**: v0.23.2
|
|
494
535
|
|
|
495
536
|
**Recent milestones**:
|
|
537
|
+
- v0.23.0 — **AI-Enhanced Module Descriptions**: two-phase pipeline, auto-AI enrichment, post-commit thin wrapper
|
|
496
538
|
- v0.22.2 — Auto-update CLAUDE.md on `pip upgrade`, `/codeindex-update-guide` skill
|
|
497
539
|
- v0.22.0 — Unified tech-debt + test smells analysis
|
|
498
540
|
- v0.21.0 — Swift & Objective-C language support
|
|
499
541
|
- v0.19.0 — TypeScript/JavaScript support with call extraction
|
|
500
|
-
- v0.17.0 — CLAUDE.md injection via `codeindex init`
|
|
501
542
|
|
|
502
543
|
**Next**:
|
|
503
544
|
- Framework routes expansion: Express, Laravel, FastAPI, Django (Epic 17)
|