sourcecode 1.31.23__tar.gz → 1.31.25__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 (230) hide show
  1. sourcecode-1.31.25/.continue-here.md +99 -0
  2. sourcecode-1.31.25/AUDIT_v1.31.23.md +660 -0
  3. {sourcecode-1.31.23 → sourcecode-1.31.25}/PKG-INFO +3 -3
  4. {sourcecode-1.31.23 → sourcecode-1.31.25}/README.md +2 -2
  5. {sourcecode-1.31.23 → sourcecode-1.31.25}/pyproject.toml +1 -1
  6. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/__init__.py +1 -1
  7. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/architecture_analyzer.py +68 -1
  8. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/cli.py +103 -12
  9. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/repository_ir.py +130 -2
  10. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/serializer.py +1 -1
  11. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/summarizer.py +25 -0
  12. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_repository_ir.py +346 -0
  13. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_surface_honesty.py +1 -1
  14. sourcecode-1.31.23/.continue-here.md +0 -149
  15. {sourcecode-1.31.23 → sourcecode-1.31.25}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
  16. {sourcecode-1.31.23 → sourcecode-1.31.25}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
  17. {sourcecode-1.31.23 → sourcecode-1.31.25}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
  18. {sourcecode-1.31.23 → sourcecode-1.31.25}/.github/workflows/build-windows.yml +0 -0
  19. {sourcecode-1.31.23 → sourcecode-1.31.25}/.gitignore +0 -0
  20. {sourcecode-1.31.23 → sourcecode-1.31.25}/.ruff.toml +0 -0
  21. {sourcecode-1.31.23 → sourcecode-1.31.25}/.sourcecode-cache/snapshot-3b5997a-fa5c742c.json +0 -0
  22. {sourcecode-1.31.23 → sourcecode-1.31.25}/AUDIT_REAL_REPOS.md +0 -0
  23. {sourcecode-1.31.23 → sourcecode-1.31.25}/CHANGELOG.md +0 -0
  24. {sourcecode-1.31.23 → sourcecode-1.31.25}/CONTRIBUTING.md +0 -0
  25. {sourcecode-1.31.23 → sourcecode-1.31.25}/LICENSE +0 -0
  26. {sourcecode-1.31.23 → sourcecode-1.31.25}/SECURITY.md +0 -0
  27. {sourcecode-1.31.23 → sourcecode-1.31.25}/docs/PRODUCT_TIERS.md +0 -0
  28. {sourcecode-1.31.23 → sourcecode-1.31.25}/docs/privacy.md +0 -0
  29. {sourcecode-1.31.23 → sourcecode-1.31.25}/docs/schema.md +0 -0
  30. {sourcecode-1.31.23 → sourcecode-1.31.25}/raw +0 -0
  31. {sourcecode-1.31.23 → sourcecode-1.31.25}/run_cli.py +0 -0
  32. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/adaptive_scanner.py +0 -0
  33. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/architecture_summary.py +0 -0
  34. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/ast_extractor.py +0 -0
  35. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/cache.py +0 -0
  36. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/canonical_ir.py +0 -0
  37. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/classifier.py +0 -0
  38. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/code_notes_analyzer.py +0 -0
  39. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/confidence_analyzer.py +0 -0
  40. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/context_scorer.py +0 -0
  41. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/context_summarizer.py +0 -0
  42. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/contract_model.py +0 -0
  43. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/contract_pipeline.py +0 -0
  44. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/coverage_parser.py +0 -0
  45. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/dependency_analyzer.py +0 -0
  46. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/__init__.py +0 -0
  47. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/base.py +0 -0
  48. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/csproj_parser.py +0 -0
  49. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/dart.py +0 -0
  50. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/dotnet.py +0 -0
  51. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/elixir.py +0 -0
  52. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/go.py +0 -0
  53. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/heuristic.py +0 -0
  54. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/hybrid.py +0 -0
  55. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/java.py +0 -0
  56. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/jvm_ext.py +0 -0
  57. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/nodejs.py +0 -0
  58. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/parsers.py +0 -0
  59. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/php.py +0 -0
  60. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/project.py +0 -0
  61. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/python.py +0 -0
  62. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/ruby.py +0 -0
  63. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/rust.py +0 -0
  64. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/systems.py +0 -0
  65. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/terraform.py +0 -0
  66. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/detectors/tooling.py +0 -0
  67. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/doc_analyzer.py +0 -0
  68. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/entrypoint_classifier.py +0 -0
  69. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/env_analyzer.py +0 -0
  70. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/file_classifier.py +0 -0
  71. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/flow_analyzer.py +0 -0
  72. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/git_analyzer.py +0 -0
  73. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/graph_analyzer.py +0 -0
  74. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/mcp/__init__.py +0 -0
  75. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  76. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  77. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  78. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  79. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  80. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/mcp/runner.py +0 -0
  81. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/mcp/server.py +0 -0
  82. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/metrics_analyzer.py +0 -0
  83. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/output_budget.py +0 -0
  84. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/path_filters.py +0 -0
  85. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/pr_comment_renderer.py +0 -0
  86. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/prepare_context.py +0 -0
  87. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/progress.py +0 -0
  88. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/ranking_engine.py +0 -0
  89. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/redactor.py +0 -0
  90. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/relevance_scorer.py +0 -0
  91. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/repo_classifier.py +0 -0
  92. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/runtime_classifier.py +0 -0
  93. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/scanner.py +0 -0
  94. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/schema.py +0 -0
  95. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/semantic_analyzer.py +0 -0
  96. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/telemetry/__init__.py +0 -0
  97. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/telemetry/config.py +0 -0
  98. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/telemetry/consent.py +0 -0
  99. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/telemetry/events.py +0 -0
  100. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/telemetry/filters.py +0 -0
  101. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/telemetry/transport.py +0 -0
  102. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/tree_utils.py +0 -0
  103. {sourcecode-1.31.23 → sourcecode-1.31.25}/src/sourcecode/workspace.py +0 -0
  104. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/__init__.py +0 -0
  105. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/conftest.py +0 -0
  106. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/coverage.xml +0 -0
  107. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
  108. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/fastapi_app/src/main.py +0 -0
  109. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/go_service/cmd/api/main.go +0 -0
  110. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/go_service/go.mod +0 -0
  111. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/jacoco.xml +0 -0
  112. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/latin1_sample.java +0 -0
  113. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/latin1_sample_iso.java +0 -0
  114. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/lcov.info +0 -0
  115. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
  116. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/nextjs_app/package.json +0 -0
  117. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
  118. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
  119. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
  120. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
  121. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
  122. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
  123. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
  124. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
  125. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
  126. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
  127. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
  128. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
  129. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
  130. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
  131. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
  132. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
  133. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
  134. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
  135. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
  136. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
  137. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
  138. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
  139. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
  140. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
  141. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
  142. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
  143. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
  144. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
  145. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
  146. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
  147. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
  148. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
  149. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
  150. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_architecture_analyzer.py +0 -0
  151. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_architecture_summary.py +0 -0
  152. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_ast_extractor.py +0 -0
  153. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_audit_fixes.py +0 -0
  154. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_audit_sas_v2.py +0 -0
  155. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_block1_reliability.py +0 -0
  156. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_block2_coverage.py +0 -0
  157. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_block5_quality.py +0 -0
  158. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_broadleaf_fixes.py +0 -0
  159. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_bug_fixes_v1302.py +0 -0
  160. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_bug_fixes_v13115.py +0 -0
  161. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_bug_fixes_v1312.py +0 -0
  162. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_bug_fixes_v13122.py +0 -0
  163. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_bug_fixes_v1313.py +0 -0
  164. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_bug_fixes_v1321.py +0 -0
  165. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_bug_fixes_v16.py +0 -0
  166. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_bug_fixes_v2.py +0 -0
  167. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_cache.py +0 -0
  168. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_canonical_ir.py +0 -0
  169. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_classifier.py +0 -0
  170. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_cli.py +0 -0
  171. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_code_notes_analyzer.py +0 -0
  172. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_context_scorer.py +0 -0
  173. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_contract_pipeline.py +0 -0
  174. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_coverage_parser.py +0 -0
  175. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_cross_consistency.py +0 -0
  176. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_dependency_analyzer_node_python.py +0 -0
  177. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_dependency_analyzer_polyglot.py +0 -0
  178. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_dependency_schema.py +0 -0
  179. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_detector_dotnet.py +0 -0
  180. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_detector_go_rust_java.py +0 -0
  181. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_detector_nodejs.py +0 -0
  182. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_detector_php_ruby_dart.py +0 -0
  183. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_detector_python.py +0 -0
  184. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_detector_universal_managed.py +0 -0
  185. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_detector_universal_systems.py +0 -0
  186. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_detectors_base.py +0 -0
  187. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_doc_analyzer_jsdom.py +0 -0
  188. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_doc_analyzer_python.py +0 -0
  189. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_encoding_regression.py +0 -0
  190. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_enterprise_benchmarks.py +0 -0
  191. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_graph_analyzer_polyglot.py +0 -0
  192. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_graph_analyzer_python_node.py +0 -0
  193. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_graph_schema.py +0 -0
  194. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_hybrid_inference.py +0 -0
  195. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_integration.py +0 -0
  196. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_integration_dependencies.py +0 -0
  197. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_integration_detection.py +0 -0
  198. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_integration_docs.py +0 -0
  199. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_integration_graph_modules.py +0 -0
  200. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_integration_lqn.py +0 -0
  201. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_integration_metrics.py +0 -0
  202. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_integration_multistack.py +0 -0
  203. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_integration_semantics.py +0 -0
  204. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_integration_universal.py +0 -0
  205. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_java_spring_integration.py +0 -0
  206. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_mcp_runner.py +0 -0
  207. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_mcp_serve.py +0 -0
  208. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_mcp_tools.py +0 -0
  209. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_metrics_analyzer.py +0 -0
  210. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_output_ux.py +0 -0
  211. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_packaging.py +0 -0
  212. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_phase1_improvements.py +0 -0
  213. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_pipeline_integrity.py +0 -0
  214. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_real_projects.py +0 -0
  215. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_redactor.py +0 -0
  216. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_scanner.py +0 -0
  217. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_schema.py +0 -0
  218. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_schema_normalization.py +0 -0
  219. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_scoring_calibration.py +0 -0
  220. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_semantic_analyzer_node.py +0 -0
  221. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_semantic_analyzer_python.py +0 -0
  222. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_semantic_import_resolution.py +0 -0
  223. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_semantic_schema.py +0 -0
  224. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_signal_hierarchy.py +0 -0
  225. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_summarizer.py +0 -0
  226. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_task_differentiation.py +0 -0
  227. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_telemetry.py +0 -0
  228. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_v131_improvements.py +0 -0
  229. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_v1_10_regressions.py +0 -0
  230. {sourcecode-1.31.23 → sourcecode-1.31.25}/tests/test_workspace_analyzer.py +0 -0
@@ -0,0 +1,99 @@
1
+ # Handoff — Sesión 29 (2026-05-25)
2
+
3
+ ## Position
4
+
5
+ **Project:** sourcecode (atlas-cli)
6
+ **Activity:** Post-audit bug fixing — AUDIT_v1.31.23.md
7
+ **Branch:** master
8
+ **Last commit:** ee636c1 — fix(architecture): bounded_contexts from Maven module names
9
+ **Tests:** 1590 passed, 3 skipped ✅
10
+
11
+ ---
12
+
13
+ ## Work Done This Session
14
+
15
+ ### Session 28 (committed before this session started)
16
+ - **P0** BFS truncation transparency: `bfs_truncated`, `depth_reached` (actual), `indirect_callers_computed`
17
+ - **P0** Ghost `--deep` flag → fixed to `--full` in serializer.py
18
+ - **P1** `--format` validation in `prepare-context` (exit 2 on invalid)
19
+ - **P1** `relevant_files.score` exposed in output (round float, not popped)
20
+ - 182 tests in TestBfsTransparencyAndTruncation passing
21
+
22
+ ### Session 29 (this session)
23
+ 1. **Test fix**: `test_skips_image_only_lines` — description was 22 chars, below 30-char threshold → updated to realistic length
24
+ 2. **P1 BFS sampling** (`repository_ir.py`): hub classes (>500 direct callers) now run depth-2 BFS from 20 random seeds. `indirect_callers` contains sampled results. New fields: `indirect_callers_sampled: bool`, `indirect_callers_estimated_count: int`, `indirect_callers_sample_note`. `stats.indirect_callers_computed` now `true` when sampled. 3 new tests (16 total in class).
25
+ 3. **P1 project_summary** (`summarizer.py`): `_merge_description_with_structure` for Java stacks appends quantitative suffix: N Java classes, M transactional boundaries, K controller entry points when data in SourceMap.
26
+ 4. **P2 role classification** (`repository_ir.py`):
27
+ - `_JAVA_ROLE_MAP` expanded: `@Entity`, `@Table`, `@MappedSuperclass`, `@Stateless`, `@Stateful`, `@MessageDriven`, `@RegisterForReflection`, `@Aspect`, `@EnableWebSecurity`, `@EnableMethodSecurity`
28
+ - `_java_role_from_name()`: 14 name-suffix patterns as annotation fallback (OrderServiceImpl→service, CustomerDao→repository, PaymentResource→controller)
29
+ - `_assemble()`: applies name fallback when annotation role == "unknown"
30
+ 5. **P2 hotspot_candidates** (`cli.py` modernize_cmd):
31
+ - `_get_git_churn` called for all Java files (90-day window)
32
+ - `hotspot_score = in_degree×2 + (churn/max_churn)×5`
33
+ - `git_churn_90d` field on each hotspot entry
34
+ - Roles expanded to include `entity`; churn-active nodes (≥3 commits, in_degree≥1) included even below coupling threshold
35
+ 6. **P2 bounded_contexts** (`architecture_analyzer.py`):
36
+ - `_maven_module_bounded_contexts()`: scans `src/main/java/` markers, extracts module names, strips common prefix (broadleaf-*, keycloak-*), strips -api/-impl/-core suffixes
37
+ - Priority 0 in `_infer_bounded_contexts()` — fires before SCC and domain approaches
38
+ - BroadleafCommerce result: `["catalog", "cms", "customer", "framework", "order"]` (was `["dto", "file"]`)
39
+ - Requires ≥2 distinct modules
40
+
41
+ ---
42
+
43
+ ## Score Update
44
+
45
+ | Dimension | v1.31.23 | Projected now | Fix applied |
46
+ |---|---|---|---|
47
+ | Correctness impl classes | 8/10 | 8.5/10 | BFS sampling for hub classes |
48
+ | Onboarding context quality | 7/10 | 8/10 | project_summary quantitative + bounded_contexts |
49
+ | Modernize/dead code | 3/10 | 5.5/10 | hotspots with churn, roles classified |
50
+ | Java/Spring depth | 8/10 | 8.5/10 | bounded_contexts Maven modules |
51
+ | **TOTAL** | **6.5/10** | **~7.2/10** | |
52
+
53
+ ---
54
+
55
+ ## Remaining from AUDIT_v1.31.23.md
56
+
57
+ ### P2 unfixed (section 13, items 6–18)
58
+ | # | Issue | File | Effort |
59
+ |---|---|---|---|
60
+ | P2-06 | `subsystem_summary.member_count` always 0 | cli.py modernize_cmd | Medium |
61
+ | P2-07 | `no_security_signal` → detect filter-based security → `security_model: "filter_based"` | repository_ir.py | Medium |
62
+ | P2-10 | `architecture.confidence` inconsistent between `--compact` and `--agent` | serializer.py | Low |
63
+ | P2-13 | `--format`/`--no-cache` flags inconsistent across subcommands | cli.py | Medium |
64
+ | P2-14 | URLs in code_notes truncated (missing `https://bugs.` prefix) | code_notes_analyzer.py | Low (needs repro) |
65
+ | P2-16 | `entry_points.controllers.methods` mismatches `endpoints` count | cli.py | Medium |
66
+ | P2-17 | `--compact --help` token claim outdated | cli.py | Trivial |
67
+ | P2-18 | `impact` via file path: resolve to FQN before IR lookup | repository_ir.py | Low |
68
+
69
+ ### P2 highest impact remaining
70
+ **P2-06 member_count=0** — `subsystem_summary.member_count` always 0 in modernize output. `modernize_cmd` reads `len(s.get("members") or [])` but `_detect_subsystems()` returns subsystem dicts without `members` list populated. Fix: populate `members` in `_detect_subsystems`.
71
+
72
+ **P2-13 --format consistency** — `--format` and `--no-cache` not accepted by all subcommands. Need to audit which subcommands are missing them.
73
+
74
+ ---
75
+
76
+ ## Key Files Modified
77
+
78
+ ```
79
+ src/sourcecode/repository_ir.py — BFS sampling, role map, name classifier
80
+ src/sourcecode/summarizer.py — project_summary Java quantitative suffix
81
+ src/sourcecode/architecture_analyzer.py — Maven module bounded_contexts
82
+ src/sourcecode/cli.py — hotspot_candidates with git churn
83
+ tests/test_repository_ir.py — 3 new BFS sampling tests
84
+ tests/test_surface_honesty.py — test_skips_image_only_lines fix
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Next Session
90
+
91
+ **Recommended start:** Fix `subsystem_summary.member_count` (P2-06).
92
+
93
+ Root cause: `_detect_subsystems()` in `repository_ir.py` builds subsystems but doesn't populate the `members` list that `modernize_cmd` reads. Fix: ensure each subsystem dict includes the list of FQNs belonging to it.
94
+
95
+ Then: `--format`/`--no-cache` flag consistency audit (P2-13).
96
+
97
+ **Resume command:** `/gsd:resume-work`
98
+
99
+ **Test baseline:** `python3 -m pytest tests/ → 1590 passed, 3 skipped`