sourcecode 1.31.7__tar.gz → 1.31.9__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.
Files changed (228) hide show
  1. sourcecode-1.31.9/.continue-here.md +180 -0
  2. sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-0911b79e.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-0911b79e.json +47 -47
  3. sourcecode-1.31.7/.sourcecode-cache/snapshot-265db75-37df4554.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-37df4554.json +4 -4
  4. sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-624321f3.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-624321f3.json +97 -20
  5. sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-776b4676.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-776b4676.json +2 -2
  6. sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-9770fba7.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-9770fba7.json +9 -5
  7. sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-37df4554.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-c4e3c102.json +16 -16
  8. sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-e8bc5fb4.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-e8bc5fb4.json +2 -2
  9. sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-e9801942.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-e9801942.json +7 -3
  10. sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-ee60e0cd.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-ee60e0cd.json +9 -5
  11. sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-fdd9d3f7.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-fdd9d3f7.json +2 -2
  12. {sourcecode-1.31.7 → sourcecode-1.31.9}/PKG-INFO +3 -3
  13. {sourcecode-1.31.7 → sourcecode-1.31.9}/README.md +2 -2
  14. {sourcecode-1.31.7 → sourcecode-1.31.9}/pyproject.toml +1 -1
  15. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/__init__.py +1 -1
  16. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/architecture_analyzer.py +1 -1
  17. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/cli.py +2868 -3204
  18. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/java.py +86 -2
  19. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/entrypoint_classifier.py +8 -1
  20. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/file_classifier.py +21 -2
  21. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/server.py +67 -8
  22. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/prepare_context.py +35 -0
  23. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/repository_ir.py +325 -28
  24. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/runtime_classifier.py +79 -1
  25. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/serializer.py +58 -0
  26. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_mcp_tools.py +106 -0
  27. sourcecode-1.31.7/.continue-here.md +0 -101
  28. sourcecode-1.31.7/.sourcecode-cache/snapshot-265db75-03952dbd.json +0 -550
  29. sourcecode-1.31.7/.sourcecode-cache/snapshot-265db75-26a1ddd0.json +0 -550
  30. sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-c4e3c102.json +0 -266
  31. {sourcecode-1.31.7 → sourcecode-1.31.9}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
  32. {sourcecode-1.31.7 → sourcecode-1.31.9}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
  33. {sourcecode-1.31.7 → sourcecode-1.31.9}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
  34. {sourcecode-1.31.7 → sourcecode-1.31.9}/.github/workflows/build-windows.yml +0 -0
  35. {sourcecode-1.31.7 → sourcecode-1.31.9}/.gitignore +0 -0
  36. {sourcecode-1.31.7 → sourcecode-1.31.9}/.ruff.toml +0 -0
  37. {sourcecode-1.31.7 → sourcecode-1.31.9}/CHANGELOG.md +0 -0
  38. {sourcecode-1.31.7 → sourcecode-1.31.9}/CONTRIBUTING.md +0 -0
  39. {sourcecode-1.31.7 → sourcecode-1.31.9}/LICENSE +0 -0
  40. {sourcecode-1.31.7 → sourcecode-1.31.9}/SECURITY.md +0 -0
  41. {sourcecode-1.31.7 → sourcecode-1.31.9}/docs/privacy.md +0 -0
  42. {sourcecode-1.31.7 → sourcecode-1.31.9}/docs/schema.md +0 -0
  43. {sourcecode-1.31.7 → sourcecode-1.31.9}/raw +0 -0
  44. {sourcecode-1.31.7 → sourcecode-1.31.9}/run_cli.py +0 -0
  45. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/adaptive_scanner.py +0 -0
  46. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/architecture_summary.py +0 -0
  47. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/ast_extractor.py +0 -0
  48. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/classifier.py +0 -0
  49. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/code_notes_analyzer.py +0 -0
  50. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/confidence_analyzer.py +0 -0
  51. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/context_scorer.py +0 -0
  52. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/context_summarizer.py +0 -0
  53. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/contract_model.py +0 -0
  54. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/contract_pipeline.py +0 -0
  55. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/coverage_parser.py +0 -0
  56. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/dependency_analyzer.py +0 -0
  57. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/__init__.py +0 -0
  58. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/base.py +0 -0
  59. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/csproj_parser.py +0 -0
  60. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/dart.py +0 -0
  61. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/dotnet.py +0 -0
  62. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/elixir.py +0 -0
  63. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/go.py +0 -0
  64. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/heuristic.py +0 -0
  65. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/hybrid.py +0 -0
  66. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/jvm_ext.py +0 -0
  67. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/nodejs.py +0 -0
  68. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/parsers.py +0 -0
  69. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/php.py +0 -0
  70. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/project.py +0 -0
  71. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/python.py +0 -0
  72. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/ruby.py +0 -0
  73. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/rust.py +0 -0
  74. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/systems.py +0 -0
  75. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/terraform.py +0 -0
  76. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/tooling.py +0 -0
  77. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/doc_analyzer.py +0 -0
  78. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/env_analyzer.py +0 -0
  79. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/flow_analyzer.py +0 -0
  80. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/git_analyzer.py +0 -0
  81. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/graph_analyzer.py +0 -0
  82. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/__init__.py +0 -0
  83. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  84. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  85. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  86. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  87. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  88. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/runner.py +0 -0
  89. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/metrics_analyzer.py +0 -0
  90. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/path_filters.py +0 -0
  91. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/pr_comment_renderer.py +0 -0
  92. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/progress.py +0 -0
  93. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/ranking_engine.py +0 -0
  94. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/redactor.py +0 -0
  95. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/relevance_scorer.py +0 -0
  96. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/repo_classifier.py +0 -0
  97. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/scanner.py +0 -0
  98. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/schema.py +0 -0
  99. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/semantic_analyzer.py +0 -0
  100. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/summarizer.py +0 -0
  101. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/__init__.py +0 -0
  102. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/config.py +0 -0
  103. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/consent.py +0 -0
  104. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/events.py +0 -0
  105. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/filters.py +0 -0
  106. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/transport.py +0 -0
  107. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/tree_utils.py +0 -0
  108. {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/workspace.py +0 -0
  109. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/__init__.py +0 -0
  110. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/conftest.py +0 -0
  111. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/coverage.xml +0 -0
  112. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
  113. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/fastapi_app/src/main.py +0 -0
  114. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/go_service/cmd/api/main.go +0 -0
  115. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/go_service/go.mod +0 -0
  116. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/jacoco.xml +0 -0
  117. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/latin1_sample.java +0 -0
  118. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/latin1_sample_iso.java +0 -0
  119. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/lcov.info +0 -0
  120. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
  121. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/nextjs_app/package.json +0 -0
  122. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
  123. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
  124. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
  125. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
  126. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
  127. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
  128. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
  129. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
  130. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
  131. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
  132. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
  133. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
  134. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
  135. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
  136. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
  137. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
  138. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
  139. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
  140. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
  141. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
  142. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
  143. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
  144. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
  145. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
  146. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
  147. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
  148. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
  149. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
  150. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
  151. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
  152. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
  153. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
  154. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
  155. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_architecture_analyzer.py +0 -0
  156. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_architecture_summary.py +0 -0
  157. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_ast_extractor.py +0 -0
  158. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_block1_reliability.py +0 -0
  159. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_block2_coverage.py +0 -0
  160. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_block5_quality.py +0 -0
  161. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_broadleaf_fixes.py +0 -0
  162. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_bug_fixes_v1302.py +0 -0
  163. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_bug_fixes_v1312.py +0 -0
  164. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_bug_fixes_v1313.py +0 -0
  165. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_bug_fixes_v16.py +0 -0
  166. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_bug_fixes_v2.py +0 -0
  167. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_classifier.py +0 -0
  168. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_cli.py +0 -0
  169. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_code_notes_analyzer.py +0 -0
  170. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_context_scorer.py +0 -0
  171. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_contract_pipeline.py +0 -0
  172. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_coverage_parser.py +0 -0
  173. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_cross_consistency.py +0 -0
  174. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_dependency_analyzer_node_python.py +0 -0
  175. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_dependency_analyzer_polyglot.py +0 -0
  176. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_dependency_schema.py +0 -0
  177. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_dotnet.py +0 -0
  178. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_go_rust_java.py +0 -0
  179. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_nodejs.py +0 -0
  180. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_php_ruby_dart.py +0 -0
  181. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_python.py +0 -0
  182. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_universal_managed.py +0 -0
  183. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_universal_systems.py +0 -0
  184. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detectors_base.py +0 -0
  185. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_doc_analyzer_jsdom.py +0 -0
  186. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_doc_analyzer_python.py +0 -0
  187. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_encoding_regression.py +0 -0
  188. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_graph_analyzer_polyglot.py +0 -0
  189. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_graph_analyzer_python_node.py +0 -0
  190. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_graph_schema.py +0 -0
  191. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_hybrid_inference.py +0 -0
  192. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration.py +0 -0
  193. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_dependencies.py +0 -0
  194. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_detection.py +0 -0
  195. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_docs.py +0 -0
  196. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_graph_modules.py +0 -0
  197. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_lqn.py +0 -0
  198. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_metrics.py +0 -0
  199. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_multistack.py +0 -0
  200. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_semantics.py +0 -0
  201. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_universal.py +0 -0
  202. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_java_spring_integration.py +0 -0
  203. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_mcp_runner.py +0 -0
  204. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_mcp_serve.py +0 -0
  205. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_metrics_analyzer.py +0 -0
  206. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_output_ux.py +0 -0
  207. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_packaging.py +0 -0
  208. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_phase1_improvements.py +0 -0
  209. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_pipeline_integrity.py +0 -0
  210. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_real_projects.py +0 -0
  211. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_redactor.py +0 -0
  212. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_repository_ir.py +0 -0
  213. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_scanner.py +0 -0
  214. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_schema.py +0 -0
  215. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_schema_normalization.py +0 -0
  216. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_scoring_calibration.py +0 -0
  217. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_semantic_analyzer_node.py +0 -0
  218. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_semantic_analyzer_python.py +0 -0
  219. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_semantic_import_resolution.py +0 -0
  220. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_semantic_schema.py +0 -0
  221. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_signal_hierarchy.py +0 -0
  222. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_summarizer.py +0 -0
  223. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_surface_honesty.py +0 -0
  224. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_task_differentiation.py +0 -0
  225. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_telemetry.py +0 -0
  226. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_v131_improvements.py +0 -0
  227. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_v1_10_regressions.py +0 -0
  228. {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_workspace_analyzer.py +0 -0
@@ -0,0 +1,180 @@
1
+ # Continue Here — atlas-cli sesión 17
2
+
3
+ **Paused:** 2026-05-21
4
+ **Repo:** `/Users/user/Downloads/atlas-cli`
5
+ **Branch:** master
6
+ **Working tree:** 6 archivos modificados, SIN commitear (user lo hará manualmente)
7
+
8
+ ---
9
+
10
+ ## Trabajo de esta sesión — Truth-Model Unification (IC-001..IC-006)
11
+
12
+ Benchmark completo de sourcecode contra BroadleafCommerce reveló 6 inconsistencias donde herramientas contradicen misma verdad del repo. Todos los fixes aplicados a `src/sourcecode/`.
13
+
14
+ ### Causa raíz crítica descubierta
15
+
16
+ `find_java_files(max_files=500)` truncaba repos grandes. BroadleafCommerce tiene 2762 Java files; `AdminBasicEntityController` estaba en posición 632 → excluido del IR → todo el análisis de herencia fallaba.
17
+
18
+ ### Fixes aplicados
19
+
20
+ | IC | Descripción | Archivo | Resultado |
21
+ |---|---|---|---|
22
+ | IC-001 | `max_files` 500→3000 | `repository_ir.py:1929` | AdminBasicEntityController incluido |
23
+ | IC-001 | `_build_route_surface` con Phase 1/2/3 inheritance projection | `repository_ir.py:1610` | route_surface 23→118 en Broadleaf |
24
+ | IC-002 | `extends_map` pasado desde `_assemble` a `_build_route_surface` | `repository_ir.py:1573` | declaring_class/effective_class/inheritance_depth |
25
+ | IC-003 | `graph_modules=True` en agent mode | `cli.py:839` | architecture.method: filesystem_inference→graph+structure |
26
+ | IC-003 | Mensaje "run with --graph-modules" eliminado | `architecture_analyzer.py:333` | No más phantom flag guidance |
27
+ | IC-004 | `_compute_maven_fan_in()` nuevo método | `runtime_classifier.py` | pom.xml cross-module deps como fan_in |
28
+ | IC-004 | `_classify_maven_module()` nuevo método | `runtime_classifier.py` | Java modules sin package.json clasificados |
29
+ | IC-004 | `_criticality()`: infrastructure_layer+fan_in≥3→high | `runtime_classifier.py` | common: unknown/low→infrastructure_layer/high |
30
+ | IC-005 | `spring_events` block en `_assemble` output | `repository_ir.py:1540` | repo-ir expone event flows |
31
+ | IC-005 | `_spring_event_signal()` + wire en `agent_view` | `serializer.py:382,2005` | agent signals.event_flows presente |
32
+ | IC-006 | `suspected_areas` recomputado post-ranking | `prepare_context.py:1215` | Usa RelevantFile.path/.reason, no dict |
33
+
34
+ ### Verificación contra BroadleafCommerce
35
+
36
+ ```
37
+ route_surface: 23 → 118 ✓
38
+ AdminCategoryController: 0 → 17 routes ✓
39
+ inherited routes: 0 → 51 (depth>0) ✓
40
+ event_flows: absent → flow_count=12 ✓
41
+ architecture.method: filesystem_inference → graph+structure ✓
42
+ common criticality: low → high ✓
43
+ suspected_areas: 2 files → 7 ranked results ✓
44
+ ```
45
+
46
+ ### Pendiente conocido (no bloqueante)
47
+
48
+ **Gap route_surface vs endpoints (118 vs 130 — 12 routes):**
49
+ Bug pre-existente en `_extract_symbols`: anotaciones multi-línea tipo:
50
+ ```java
51
+ @RequestMapping(value = "deletePhone", method = {
52
+ RequestMethod.GET, RequestMethod.POST
53
+ })
54
+ ```
55
+ El fallback en `repository_ir.py:611` (`pending_anns = []`) limpia la anotación antes
56
+ de llegar al método. Afecta `CustomerPhoneController` (4 ep) y 2 métodos de
57
+ `AdminBasicEntityController`. Fix: rastrear apertura/cierre de `()` además de `{}`.
58
+
59
+ **Architecture confidence sigue "low":**
60
+ `ArchitectureAnalyzer` requiere ≥3 strong_domains para confidence "medium".
61
+ BroadleafCommerce solo tiene 1 ("admin"). Domain clusterer no reconoce módulos Maven
62
+ como bounded contexts. Fix separado en architecture_analyzer.py domain detection.
63
+
64
+ ---
65
+
66
+ ## Estado de archivos modificados (sin commitear)
67
+
68
+ ```bash
69
+ git diff --stat
70
+ # src/sourcecode/architecture_analyzer.py | 2 +-
71
+ # src/sourcecode/cli.py | 1 +
72
+ # src/sourcecode/prepare_context.py | 35 ++
73
+ # src/sourcecode/repository_ir.py | 137 +++++++++++++++++---
74
+ # src/sourcecode/runtime_classifier.py | 80 +++++++++++++++++-
75
+ # src/sourcecode/serializer.py | 58 +++++++++++++
76
+ # 6 files changed, 295 insertions(+), 18 deletions(-)
77
+ ```
78
+
79
+ Mensaje de commit listo:
80
+ ```
81
+ fix(java): unify truth model across endpoint, IR, agent, and classifier pipelines
82
+
83
+ Fixes 6 consistency bugs where sourcecode produced contradictory outputs for the same repo state:
84
+
85
+ IC-001: find_java_files cap 500→3000 — AdminBasicEntityController was at position 632,
86
+ silently excluded from IR on BroadleafCommerce-scale repos.
87
+
88
+ IC-001/IC-002: _build_route_surface gains 3-phase inheritance projection. Subclasses
89
+ with class-level @RequestMapping but zero own methods now inherit parent endpoints.
90
+ Adds declaring_class, effective_class, inheritance_depth to route surface entries.
91
+ Result: 23→118 routes on BroadleafCommerce, AdminCategoryController 0→17 routes.
92
+
93
+ IC-003: agent mode forces graph_modules=True so ArchitectureAnalyzer receives import
94
+ graph instead of falling back to filesystem_inference. Removes phantom --graph-modules
95
+ guidance from limitation messages.
96
+
97
+ IC-004: RuntimeClassifier gains Maven pom.xml fallback (_compute_maven_fan_in,
98
+ _classify_maven_module). Java modules with no package.json no longer classified as
99
+ unknown/low. common module: unknown/low→infrastructure_layer/high when fan_in≥3.
100
+ _criticality: infrastructure_layer with fan_in≥3 now returns high.
101
+
102
+ IC-005: spring_events block added to repo-ir _assemble output. _spring_event_signal
103
+ helper added to serializer, wired into agent_view signals. @EventListener and
104
+ publishEvent flows now visible in both repo-ir and --agent outputs.
105
+
106
+ IC-006: fix-bug suspected_areas recomputed after relevant_files ranking completes.
107
+ Uses RelevantFile.path/.reason (dataclass), not dict. RankingEngine output is primary
108
+ signal; BUG/FIXME comment counts demoted to secondary.
109
+
110
+ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Heredados de sesión 16 (siguen vigentes)
116
+
117
+ 1. **CHANGELOG.md untracked** — quedó fuera del commit de sesión 16:
118
+ ```bash
119
+ git add CHANGELOG.md
120
+ git commit -m "docs: add CHANGELOG.md with BUG-1..5 and IMP-1 entries"
121
+ ```
122
+ Pero puede ir en el mismo commit que el de sesión 17.
123
+
124
+ 2. **Spring bean wiring graph** — `_build_relations` emite `injects` edges. Falta: trazar `@Configuration → @Bean → @Autowired` completo.
125
+
126
+ 3. **Transaction boundary edges** — `@Transactional` detectado en IR. Falta: emitir `transactional_boundary` edges entre service y DAO.
127
+
128
+ 4. **`_diff_routes` para class-level `@RequestMapping`** — class-level mapping change debería propagarse a todos los endpoints del controller.
129
+
130
+ 5. **Tests para symptom fix (sesión 15)** — `tests/test_prepare_context_symptom.py`.
131
+
132
+ 6. **Multi-línea annotation parser fix** — `_extract_symbols` pierde `@RequestMapping(method={...})` en líneas separadas.
133
+
134
+ ---
135
+
136
+ ## Estado de tests
137
+
138
+ Tests de sesión 17: no corridos formalmente (cambios son fixes de output, no de lógica de test coverage existente). Suite anterior: 1010 passed.
139
+
140
+ Pre-existing failures (no tocar):
141
+ - `tests/test_block2_coverage.py::TestDocAnalyzerLanguageCoverage::test_java_marked_unsupported`
142
+ - `tests/test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile_keeps_declared_versions`
143
+ - `tests/test_scoring_calibration.py` — varios
144
+
145
+ ---
146
+
147
+ ## Primera acción al retomar
148
+
149
+ ```bash
150
+ cd /Users/user/Downloads/atlas-cli
151
+
152
+ # 1. Revisar diff antes de commitear
153
+ git diff --stat
154
+
155
+ # 2. Correr tests rápidos para verificar no hay regresiones
156
+ python3 -m pytest tests/ \
157
+ --ignore=tests/test_block2_coverage.py \
158
+ --ignore=tests/test_scoring_calibration.py \
159
+ --deselect=tests/test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile_keeps_declared_versions \
160
+ -q -x
161
+
162
+ # 3. Si pasan, commitear sesión 17 + CHANGELOG.md pendiente
163
+ git add src/sourcecode/architecture_analyzer.py \
164
+ src/sourcecode/cli.py \
165
+ src/sourcecode/prepare_context.py \
166
+ src/sourcecode/repository_ir.py \
167
+ src/sourcecode/runtime_classifier.py \
168
+ src/sourcecode/serializer.py \
169
+ CHANGELOG.md
170
+ git commit -m "fix(java): unify truth model across endpoint, IR, agent, and classifier pipelines
171
+ ..."
172
+
173
+ # 4. Siguiente: fix multi-línea annotation parser en _extract_symbols
174
+ # Archivo: src/sourcecode/repository_ir.py ~línea 407-614
175
+ # Bug: pending_anns limpiado por líneas intermedias de args multi-línea
176
+ ```
177
+
178
+ ---
179
+
180
+ *Pausado 2026-05-21 — gsd:pause-work (sesión 17)*
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "metadata": {
3
3
  "schema_version": "1.0",
4
- "generated_at": "2026-05-21T11:38:37.362112+00:00",
5
- "sourcecode_version": "1.31.5",
4
+ "generated_at": "2026-05-21T20:28:43.266195+00:00",
5
+ "sourcecode_version": "1.31.8",
6
6
  "analyzed_path": "/Users/user/Downloads/atlas-cli",
7
7
  "analyzer_fingerprints": {
8
8
  "heuristic": "aa9738f3",
@@ -127,7 +127,7 @@
127
127
  "java",
128
128
  "python"
129
129
  ],
130
- "total_loc": 42704,
130
+ "total_loc": 43022,
131
131
  "coverage_records": [],
132
132
  "coverage_sources_found": [],
133
133
  "limitations": [],
@@ -324,15 +324,15 @@
324
324
  "language": "python",
325
325
  "is_test": false,
326
326
  "production_target": null,
327
- "total_lines": 3150,
328
- "code_lines": 2681,
329
- "blank_lines": 289,
330
- "comment_lines": 180,
327
+ "total_lines": 2868,
328
+ "code_lines": 2455,
329
+ "blank_lines": 262,
330
+ "comment_lines": 151,
331
331
  "loc_availability": "measured",
332
- "function_count": 42,
332
+ "function_count": 40,
333
333
  "class_count": 1,
334
334
  "symbol_availability": "measured",
335
- "cyclomatic_complexity": 14.095238095238095,
335
+ "cyclomatic_complexity": 12.975,
336
336
  "complexity_availability": "measured",
337
337
  "line_rate": null,
338
338
  "branch_rate": null,
@@ -1245,15 +1245,15 @@
1245
1245
  "language": "python",
1246
1246
  "is_test": false,
1247
1247
  "production_target": null,
1248
- "total_lines": 156,
1249
- "code_lines": 120,
1250
- "blank_lines": 36,
1248
+ "total_lines": 215,
1249
+ "code_lines": 165,
1250
+ "blank_lines": 50,
1251
1251
  "comment_lines": 0,
1252
1252
  "loc_availability": "measured",
1253
- "function_count": 11,
1253
+ "function_count": 15,
1254
1254
  "class_count": 0,
1255
1255
  "symbol_availability": "measured",
1256
- "cyclomatic_complexity": 2.727272727272727,
1256
+ "cyclomatic_complexity": 2.6666666666666665,
1257
1257
  "complexity_availability": "measured",
1258
1258
  "line_rate": null,
1259
1259
  "branch_rate": null,
@@ -1329,15 +1329,15 @@
1329
1329
  "language": "python",
1330
1330
  "is_test": false,
1331
1331
  "production_target": null,
1332
- "total_lines": 3840,
1333
- "code_lines": 3117,
1334
- "blank_lines": 406,
1335
- "comment_lines": 317,
1332
+ "total_lines": 3875,
1333
+ "code_lines": 3143,
1334
+ "blank_lines": 410,
1335
+ "comment_lines": 322,
1336
1336
  "loc_availability": "measured",
1337
1337
  "function_count": 42,
1338
1338
  "class_count": 6,
1339
1339
  "symbol_availability": "measured",
1340
- "cyclomatic_complexity": 20.38095238095238,
1340
+ "cyclomatic_complexity": 20.642857142857142,
1341
1341
  "complexity_availability": "measured",
1342
1342
  "line_rate": null,
1343
1343
  "branch_rate": null,
@@ -1455,15 +1455,15 @@
1455
1455
  "language": "python",
1456
1456
  "is_test": false,
1457
1457
  "production_target": null,
1458
- "total_lines": 1743,
1459
- "code_lines": 1386,
1460
- "blank_lines": 260,
1461
- "comment_lines": 97,
1458
+ "total_lines": 2041,
1459
+ "code_lines": 1630,
1460
+ "blank_lines": 296,
1461
+ "comment_lines": 115,
1462
1462
  "loc_availability": "measured",
1463
- "function_count": 46,
1463
+ "function_count": 49,
1464
1464
  "class_count": 4,
1465
1465
  "symbol_availability": "measured",
1466
- "cyclomatic_complexity": 7.782608695652174,
1466
+ "cyclomatic_complexity": 8.816326530612244,
1467
1467
  "complexity_availability": "measured",
1468
1468
  "line_rate": null,
1469
1469
  "branch_rate": null,
@@ -1476,15 +1476,15 @@
1476
1476
  "language": "python",
1477
1477
  "is_test": false,
1478
1478
  "production_target": null,
1479
- "total_lines": 331,
1480
- "code_lines": 261,
1481
- "blank_lines": 46,
1482
- "comment_lines": 24,
1479
+ "total_lines": 409,
1480
+ "code_lines": 323,
1481
+ "blank_lines": 59,
1482
+ "comment_lines": 27,
1483
1483
  "loc_availability": "measured",
1484
- "function_count": 8,
1484
+ "function_count": 10,
1485
1485
  "class_count": 1,
1486
1486
  "symbol_availability": "measured",
1487
- "cyclomatic_complexity": 9.25,
1487
+ "cyclomatic_complexity": 9.6,
1488
1488
  "complexity_availability": "measured",
1489
1489
  "line_rate": null,
1490
1490
  "branch_rate": null,
@@ -1560,15 +1560,15 @@
1560
1560
  "language": "python",
1561
1561
  "is_test": false,
1562
1562
  "production_target": null,
1563
- "total_lines": 2700,
1564
- "code_lines": 2214,
1565
- "blank_lines": 326,
1566
- "comment_lines": 160,
1563
+ "total_lines": 2758,
1564
+ "code_lines": 2262,
1565
+ "blank_lines": 335,
1566
+ "comment_lines": 161,
1567
1567
  "loc_availability": "measured",
1568
- "function_count": 49,
1568
+ "function_count": 50,
1569
1569
  "class_count": 0,
1570
1570
  "symbol_availability": "measured",
1571
- "cyclomatic_complexity": 16.877551020408163,
1571
+ "cyclomatic_complexity": 16.9,
1572
1572
  "complexity_availability": "measured",
1573
1573
  "line_rate": null,
1574
1574
  "branch_rate": null,
@@ -2861,15 +2861,15 @@
2861
2861
  "language": "python",
2862
2862
  "is_test": true,
2863
2863
  "production_target": null,
2864
- "total_lines": 232,
2865
- "code_lines": 159,
2866
- "blank_lines": 66,
2867
- "comment_lines": 7,
2864
+ "total_lines": 338,
2865
+ "code_lines": 229,
2866
+ "blank_lines": 98,
2867
+ "comment_lines": 11,
2868
2868
  "loc_availability": "measured",
2869
- "function_count": 26,
2869
+ "function_count": 40,
2870
2870
  "class_count": 0,
2871
2871
  "symbol_availability": "measured",
2872
- "cyclomatic_complexity": 3.1538461538461537,
2872
+ "cyclomatic_complexity": 2.975,
2873
2873
  "complexity_availability": "measured",
2874
2874
  "line_rate": null,
2875
2875
  "branch_rate": null,
@@ -3786,10 +3786,10 @@
3786
3786
  "language": "unknown",
3787
3787
  "is_test": false,
3788
3788
  "production_target": null,
3789
- "total_lines": 101,
3790
- "code_lines": 62,
3791
- "blank_lines": 30,
3792
- "comment_lines": 9,
3789
+ "total_lines": 180,
3790
+ "code_lines": 111,
3791
+ "blank_lines": 46,
3792
+ "comment_lines": 23,
3793
3793
  "loc_availability": "measured",
3794
3794
  "function_count": 0,
3795
3795
  "class_count": 0,
@@ -146,25 +146,25 @@
146
146
  {
147
147
  "kind": "BUG",
148
148
  "path": "src/sourcecode/cli.py",
149
- "line": 2655,
149
+ "line": 2664,
150
150
  "text": "#1A fix: track block comments and skip // lines before annotation checks."
151
151
  },
152
152
  {
153
153
  "kind": "BUG",
154
154
  "path": "src/sourcecode/cli.py",
155
- "line": 2711,
155
+ "line": 2722,
156
156
  "text": "#1B: one endpoint per class prefix"
157
157
  },
158
158
  {
159
159
  "kind": "BUG",
160
160
  "path": "src/sourcecode/prepare_context.py",
161
- "line": 1712,
161
+ "line": 1747,
162
162
  "text": "#4: LOW confidence + 0 content matches → clear suspected_areas,"
163
163
  },
164
164
  {
165
165
  "kind": "BUG",
166
166
  "path": "src/sourcecode/prepare_context.py",
167
- "line": 2321,
167
+ "line": 2356,
168
168
  "text": "#3: onboard must cover ≥3 arch layers (controllers/services/domain/repositories)."
169
169
  },
170
170
  {
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "metadata": {
3
3
  "schema_version": "1.0",
4
- "generated_at": "2026-05-21T11:38:35.184345+00:00",
5
- "sourcecode_version": "1.31.5",
4
+ "generated_at": "2026-05-21T20:28:42.011293+00:00",
5
+ "sourcecode_version": "1.31.8",
6
6
  "analyzed_path": "/Users/user/Downloads/atlas-cli",
7
7
  "analyzer_fingerprints": {
8
8
  "heuristic": "aa9738f3",
@@ -121,8 +121,8 @@
121
121
  ],
122
122
  "doc_summary": {
123
123
  "requested": true,
124
- "total_count": 1115,
125
- "symbol_count": 1060,
124
+ "total_count": 1122,
125
+ "symbol_count": 1067,
126
126
  "languages": [
127
127
  "python"
128
128
  ],
@@ -9064,17 +9064,6 @@
9064
9064
  "importance": "high",
9065
9065
  "workspace": null
9066
9066
  },
9067
- {
9068
- "symbol": "_extract_java_endpoints",
9069
- "kind": "function",
9070
- "language": "python",
9071
- "path": "src/sourcecode/cli.py",
9072
- "doc_text": "Extract REST endpoint surface from Java source files.\n\nScans all .java files for @RequestMapping/@GetMapping/@PostMapping/@PutMapping/\n@DeleteMapping/@PatchMapping and @M3FiltroSeguridad annotations.\nReturns JSON-serializable dict with endpoints list, total, and undocumented count.",
9073
- "signature": "def _extract_java_endpoints(root: 'Path') -> 'dict[str, Any]'",
9074
- "source": "docstring",
9075
- "importance": "high",
9076
- "workspace": null
9077
- },
9078
9067
  {
9079
9068
  "symbol": "endpoints_cmd",
9080
9069
  "kind": "function",
@@ -9779,6 +9768,17 @@
9779
9768
  "importance": "medium",
9780
9769
  "workspace": null
9781
9770
  },
9771
+ {
9772
+ "symbol": "_spring_event_signal",
9773
+ "kind": "function",
9774
+ "language": "python",
9775
+ "path": "src/sourcecode/serializer.py",
9776
+ "doc_text": "IC-005: Surface @EventListener and publishEvent from Java source files.\n\nScans sm.file_paths for Java files containing Spring event annotations.\nOnly runs on Java/Spring projects. Lightweight — path heuristics first,\nthen targeted content scan on candidate files only.",
9777
+ "signature": "def _spring_event_signal(sm: 'SourceMap') -> 'Optional[dict[str, Any]]'",
9778
+ "source": "docstring",
9779
+ "importance": "medium",
9780
+ "workspace": null
9781
+ },
9782
9782
  {
9783
9783
  "symbol": "_spring_profiles_context",
9784
9784
  "kind": "function",
@@ -10615,6 +10615,17 @@
10615
10615
  "importance": "medium",
10616
10616
  "workspace": null
10617
10617
  },
10618
+ {
10619
+ "symbol": "_parse_route_paths",
10620
+ "kind": "function",
10621
+ "language": "python",
10622
+ "path": "src/sourcecode/repository_ir.py",
10623
+ "doc_text": "Return all route paths from annotation args, including array syntax.\n\nHandles:\n @RequestMapping(\"/single\") → [\"/single\"]\n @RequestMapping({\"/v1/foo\", \"/v1/bar\"}) → [\"/v1/foo\", \"/v1/bar\"]\n @RequestMapping(value = \"/single\") → [\"/single\"]",
10624
+ "signature": "def _parse_route_paths(args_str: str) -> list[str]",
10625
+ "source": "docstring",
10626
+ "importance": "medium",
10627
+ "workspace": null
10628
+ },
10618
10629
  {
10619
10630
  "symbol": "_parse_route_http_method",
10620
10631
  "kind": "function",
@@ -10835,6 +10846,17 @@
10835
10846
  "importance": "medium",
10836
10847
  "workspace": null
10837
10848
  },
10849
+ {
10850
+ "symbol": "_build_route_surface",
10851
+ "kind": "function",
10852
+ "language": "python",
10853
+ "path": "src/sourcecode/repository_ir.py",
10854
+ "doc_text": "Return route surface with inheritance projection.\n\nextends_map: child_fqn → parent_simple_name derived from RelationEdge extends edges.\nProjects inherited endpoints onto subclasses that have a class-level @RequestMapping\nprefix but zero own method-level endpoints (IC-001 fix).\n\nroute_diffs semantics:\n None → build full route surface from symbols (used by build_repo_ir and\n extract_java_endpoints)\n [] → return empty (no baseline to diff against, e.g. extract_file_ir\n without old_source)\n [...] → return the pre-computed diffs from _diff_routes",
10855
+ "signature": "def _build_route_surface(symbols: list[SymbolRecord], route_diffs: Optional[list[dict]], extends_map: Optional[dict[str, str]]=None) -> list[dict]",
10856
+ "source": "docstring",
10857
+ "importance": "medium",
10858
+ "workspace": null
10859
+ },
10838
10860
  {
10839
10861
  "symbol": "extract_file_ir",
10840
10862
  "kind": "function",
@@ -10868,13 +10890,24 @@
10868
10890
  "importance": "medium",
10869
10891
  "workspace": null
10870
10892
  },
10893
+ {
10894
+ "symbol": "extract_java_endpoints",
10895
+ "kind": "function",
10896
+ "language": "python",
10897
+ "path": "src/sourcecode/repository_ir.py",
10898
+ "doc_text": "Extract REST endpoint surface from Java source files.\n\nCanonical endpoint extractor — uses IR symbol extraction + _build_route_surface().\nSingle source of truth for endpoint data; replaces the standalone regex extractor\nthat previously lived in cli.py.\n\nReturns JSON-serializable dict:\n {endpoints: [{method, path, controller, handler, required_permission?}], total, undocumented}",
10899
+ "signature": "def extract_java_endpoints(root: Path) -> 'dict[str, Any]'",
10900
+ "source": "docstring",
10901
+ "importance": "medium",
10902
+ "workspace": null
10903
+ },
10871
10904
  {
10872
10905
  "symbol": "find_java_files",
10873
10906
  "kind": "function",
10874
10907
  "language": "python",
10875
10908
  "path": "src/sourcecode/repository_ir.py",
10876
10909
  "doc_text": "Return relative paths to Java files under root, excluding test dirs and vendor.",
10877
- "signature": "def find_java_files(root: Path, *, max_files: int=500) -> list[str]",
10910
+ "signature": "def find_java_files(root: Path, *, max_files: int=3000) -> list[str]",
10878
10911
  "source": "docstring",
10879
10912
  "importance": "medium",
10880
10913
  "workspace": null
@@ -11456,8 +11489,8 @@
11456
11489
  "kind": "function",
11457
11490
  "language": "python",
11458
11491
  "path": "src/sourcecode/mcp/server.py",
11459
- "doc_text": "High-signal summary of a repository (~1000-3000 tokens).\n\nMaps to: sourcecode <repo_path> --compact\nReturns: stacks, entry points, dependency summary, confidence, gaps.\nrepo_path: absolute path to the repository (default: current working directory).",
11460
- "signature": "def get_compact_context(repo_path: str='.') -> dict",
11492
+ "doc_text": "High-signal summary of a repository (~1000-3000 tokens).\n\nMaps to: sourcecode <repo_path> --compact [--git-context]\nReturns: stacks, entry points, dependency summary, confidence, gaps.\nrepo_path: absolute path to the repository (default: current working directory).\ngit_context: include git log and branch context in the analysis.",
11493
+ "signature": "def get_compact_context(repo_path: str='.', git_context: bool=False) -> dict",
11461
11494
  "source": "docstring",
11462
11495
  "importance": "medium",
11463
11496
  "workspace": null
@@ -11467,8 +11500,8 @@
11467
11500
  "kind": "function",
11468
11501
  "language": "python",
11469
11502
  "path": "src/sourcecode/mcp/server.py",
11470
- "doc_text": "Agent-optimised analysis: identity, entry points, dependencies, gaps.\n\nMaps to: sourcecode <repo_path> --agent\nReturns: structured noise-free JSON for AI agents.\nrepo_path: absolute path to the repository (default: current working directory).",
11471
- "signature": "def get_agent_context(repo_path: str='.') -> dict",
11503
+ "doc_text": "Agent-optimised analysis: identity, entry points, dependencies, gaps.\n\nMaps to: sourcecode <repo_path> --agent [--git-context]\nReturns: structured noise-free JSON for AI agents.\nrepo_path: absolute path to the repository (default: current working directory).\ngit_context: include git log and branch context in the analysis.",
11504
+ "signature": "def get_agent_context(repo_path: str='.', git_context: bool=False) -> dict",
11472
11505
  "source": "docstring",
11473
11506
  "importance": "medium",
11474
11507
  "workspace": null
@@ -11539,6 +11572,50 @@
11539
11572
  "importance": "medium",
11540
11573
  "workspace": null
11541
11574
  },
11575
+ {
11576
+ "symbol": "onboard_context",
11577
+ "kind": "function",
11578
+ "language": "python",
11579
+ "path": "src/sourcecode/mcp/server.py",
11580
+ "doc_text": "Onboarding context: structured overview for new contributors.\n\nMaps to: sourcecode prepare-context onboard <repo_path>\nrepo_path: absolute path to the repository (default: current working directory).",
11581
+ "signature": "def onboard_context(repo_path: str='.') -> dict",
11582
+ "source": "docstring",
11583
+ "importance": "medium",
11584
+ "workspace": null
11585
+ },
11586
+ {
11587
+ "symbol": "version",
11588
+ "kind": "function",
11589
+ "language": "python",
11590
+ "path": "src/sourcecode/mcp/server.py",
11591
+ "doc_text": "Print sourcecode CLI version.\n\nMaps to: sourcecode version",
11592
+ "signature": "def version() -> dict",
11593
+ "source": "docstring",
11594
+ "importance": "medium",
11595
+ "workspace": null
11596
+ },
11597
+ {
11598
+ "symbol": "config",
11599
+ "kind": "function",
11600
+ "language": "python",
11601
+ "path": "src/sourcecode/mcp/server.py",
11602
+ "doc_text": "Show sourcecode CLI configuration.\n\nMaps to: sourcecode config",
11603
+ "signature": "def config() -> dict",
11604
+ "source": "docstring",
11605
+ "importance": "medium",
11606
+ "workspace": null
11607
+ },
11608
+ {
11609
+ "symbol": "telemetry",
11610
+ "kind": "function",
11611
+ "language": "python",
11612
+ "path": "src/sourcecode/mcp/server.py",
11613
+ "doc_text": "Manage telemetry settings.\n\nMaps to: sourcecode telemetry <status|enable|disable>\naction must be one of: status, enable, disable",
11614
+ "signature": "def telemetry(action: str) -> dict",
11615
+ "source": "docstring",
11616
+ "importance": "medium",
11617
+ "workspace": null
11618
+ },
11542
11619
  {
11543
11620
  "symbol": "src/sourcecode/mcp/__init__.py",
11544
11621
  "kind": "module",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "metadata": {
3
3
  "schema_version": "1.0",
4
- "generated_at": "2026-05-21T11:38:36.087486+00:00",
5
- "sourcecode_version": "1.31.5",
4
+ "generated_at": "2026-05-21T20:28:42.547472+00:00",
5
+ "sourcecode_version": "1.31.8",
6
6
  "analyzed_path": "/Users/user/Downloads/atlas-cli",
7
7
  "analyzer_fingerprints": {
8
8
  "heuristic": "aa9738f3",
@@ -85,16 +85,20 @@
85
85
  "path": "src/sourcecode/mcp/server.py",
86
86
  "role": "entrypoint",
87
87
  "fn": [
88
+ "config() -> dict",
88
89
  "fix_bug_context(repo_path: str, symptom: str) -> dict",
89
- "get_agent_context(repo_path: str) -> dict",
90
- "get_compact_context(repo_path: str) -> dict",
91
- "get_delta(repo_path: str, since: str) -> dict",
92
- "get_endpoints(repo_path: str) -> dict"
90
+ "get_agent_context(repo_path: str, git_context: bool) -> dict",
91
+ "get_compact_context(repo_path: str, git_context: bool) ->...",
92
+ "get_delta(repo_path: str, since: str) -> dict"
93
93
  ],
94
94
  "exports": [
95
+ "get_endpoints",
95
96
  "get_ir_summary",
96
97
  "get_module_context",
97
- "review_pr_context"
98
+ "onboard_context",
99
+ "review_pr_context",
100
+ "telemetry",
101
+ "version"
98
102
  ],
99
103
  "deps": [
100
104
  "mcp",