sourcecode 1.31.24__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.24 → sourcecode-1.31.25}/PKG-INFO +3 -3
  3. {sourcecode-1.31.24 → sourcecode-1.31.25}/README.md +2 -2
  4. {sourcecode-1.31.24 → sourcecode-1.31.25}/pyproject.toml +1 -1
  5. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/__init__.py +1 -1
  6. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/cli.py +27 -0
  7. sourcecode-1.31.24/.continue-here.md +0 -37
  8. {sourcecode-1.31.24 → sourcecode-1.31.25}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
  9. {sourcecode-1.31.24 → sourcecode-1.31.25}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
  10. {sourcecode-1.31.24 → sourcecode-1.31.25}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
  11. {sourcecode-1.31.24 → sourcecode-1.31.25}/.github/workflows/build-windows.yml +0 -0
  12. {sourcecode-1.31.24 → sourcecode-1.31.25}/.gitignore +0 -0
  13. {sourcecode-1.31.24 → sourcecode-1.31.25}/.ruff.toml +0 -0
  14. {sourcecode-1.31.24 → sourcecode-1.31.25}/.sourcecode-cache/snapshot-3b5997a-fa5c742c.json +0 -0
  15. {sourcecode-1.31.24 → sourcecode-1.31.25}/AUDIT_REAL_REPOS.md +0 -0
  16. {sourcecode-1.31.24 → sourcecode-1.31.25}/AUDIT_v1.31.23.md +0 -0
  17. {sourcecode-1.31.24 → sourcecode-1.31.25}/CHANGELOG.md +0 -0
  18. {sourcecode-1.31.24 → sourcecode-1.31.25}/CONTRIBUTING.md +0 -0
  19. {sourcecode-1.31.24 → sourcecode-1.31.25}/LICENSE +0 -0
  20. {sourcecode-1.31.24 → sourcecode-1.31.25}/SECURITY.md +0 -0
  21. {sourcecode-1.31.24 → sourcecode-1.31.25}/docs/PRODUCT_TIERS.md +0 -0
  22. {sourcecode-1.31.24 → sourcecode-1.31.25}/docs/privacy.md +0 -0
  23. {sourcecode-1.31.24 → sourcecode-1.31.25}/docs/schema.md +0 -0
  24. {sourcecode-1.31.24 → sourcecode-1.31.25}/raw +0 -0
  25. {sourcecode-1.31.24 → sourcecode-1.31.25}/run_cli.py +0 -0
  26. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/adaptive_scanner.py +0 -0
  27. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/architecture_analyzer.py +0 -0
  28. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/architecture_summary.py +0 -0
  29. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/ast_extractor.py +0 -0
  30. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/cache.py +0 -0
  31. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/canonical_ir.py +0 -0
  32. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/classifier.py +0 -0
  33. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/code_notes_analyzer.py +0 -0
  34. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/confidence_analyzer.py +0 -0
  35. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/context_scorer.py +0 -0
  36. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/context_summarizer.py +0 -0
  37. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/contract_model.py +0 -0
  38. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/contract_pipeline.py +0 -0
  39. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/coverage_parser.py +0 -0
  40. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/dependency_analyzer.py +0 -0
  41. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/__init__.py +0 -0
  42. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/base.py +0 -0
  43. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/csproj_parser.py +0 -0
  44. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/dart.py +0 -0
  45. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/dotnet.py +0 -0
  46. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/elixir.py +0 -0
  47. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/go.py +0 -0
  48. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/heuristic.py +0 -0
  49. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/hybrid.py +0 -0
  50. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/java.py +0 -0
  51. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/jvm_ext.py +0 -0
  52. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/nodejs.py +0 -0
  53. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/parsers.py +0 -0
  54. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/php.py +0 -0
  55. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/project.py +0 -0
  56. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/python.py +0 -0
  57. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/ruby.py +0 -0
  58. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/rust.py +0 -0
  59. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/systems.py +0 -0
  60. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/terraform.py +0 -0
  61. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/detectors/tooling.py +0 -0
  62. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/doc_analyzer.py +0 -0
  63. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/entrypoint_classifier.py +0 -0
  64. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/env_analyzer.py +0 -0
  65. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/file_classifier.py +0 -0
  66. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/flow_analyzer.py +0 -0
  67. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/git_analyzer.py +0 -0
  68. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/graph_analyzer.py +0 -0
  69. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/mcp/__init__.py +0 -0
  70. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  71. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  72. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  73. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  74. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  75. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/mcp/runner.py +0 -0
  76. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/mcp/server.py +0 -0
  77. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/metrics_analyzer.py +0 -0
  78. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/output_budget.py +0 -0
  79. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/path_filters.py +0 -0
  80. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/pr_comment_renderer.py +0 -0
  81. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/prepare_context.py +0 -0
  82. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/progress.py +0 -0
  83. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/ranking_engine.py +0 -0
  84. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/redactor.py +0 -0
  85. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/relevance_scorer.py +0 -0
  86. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/repo_classifier.py +0 -0
  87. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/repository_ir.py +0 -0
  88. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/runtime_classifier.py +0 -0
  89. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/scanner.py +0 -0
  90. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/schema.py +0 -0
  91. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/semantic_analyzer.py +0 -0
  92. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/serializer.py +0 -0
  93. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/summarizer.py +0 -0
  94. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/telemetry/__init__.py +0 -0
  95. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/telemetry/config.py +0 -0
  96. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/telemetry/consent.py +0 -0
  97. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/telemetry/events.py +0 -0
  98. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/telemetry/filters.py +0 -0
  99. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/telemetry/transport.py +0 -0
  100. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/tree_utils.py +0 -0
  101. {sourcecode-1.31.24 → sourcecode-1.31.25}/src/sourcecode/workspace.py +0 -0
  102. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/__init__.py +0 -0
  103. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/conftest.py +0 -0
  104. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/coverage.xml +0 -0
  105. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
  106. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/fastapi_app/src/main.py +0 -0
  107. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/go_service/cmd/api/main.go +0 -0
  108. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/go_service/go.mod +0 -0
  109. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/jacoco.xml +0 -0
  110. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/latin1_sample.java +0 -0
  111. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/latin1_sample_iso.java +0 -0
  112. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/lcov.info +0 -0
  113. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
  114. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/nextjs_app/package.json +0 -0
  115. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
  116. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
  117. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
  118. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
  119. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
  120. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
  121. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
  122. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
  123. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
  124. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
  125. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
  126. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
  127. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
  128. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
  129. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
  130. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
  131. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
  132. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
  133. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
  134. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
  135. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
  136. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
  137. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
  138. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
  139. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
  140. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
  141. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
  142. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
  143. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
  144. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
  145. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
  146. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
  147. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
  148. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_architecture_analyzer.py +0 -0
  149. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_architecture_summary.py +0 -0
  150. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_ast_extractor.py +0 -0
  151. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_audit_fixes.py +0 -0
  152. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_audit_sas_v2.py +0 -0
  153. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_block1_reliability.py +0 -0
  154. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_block2_coverage.py +0 -0
  155. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_block5_quality.py +0 -0
  156. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_broadleaf_fixes.py +0 -0
  157. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_bug_fixes_v1302.py +0 -0
  158. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_bug_fixes_v13115.py +0 -0
  159. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_bug_fixes_v1312.py +0 -0
  160. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_bug_fixes_v13122.py +0 -0
  161. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_bug_fixes_v1313.py +0 -0
  162. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_bug_fixes_v1321.py +0 -0
  163. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_bug_fixes_v16.py +0 -0
  164. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_bug_fixes_v2.py +0 -0
  165. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_cache.py +0 -0
  166. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_canonical_ir.py +0 -0
  167. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_classifier.py +0 -0
  168. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_cli.py +0 -0
  169. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_code_notes_analyzer.py +0 -0
  170. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_context_scorer.py +0 -0
  171. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_contract_pipeline.py +0 -0
  172. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_coverage_parser.py +0 -0
  173. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_cross_consistency.py +0 -0
  174. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_dependency_analyzer_node_python.py +0 -0
  175. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_dependency_analyzer_polyglot.py +0 -0
  176. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_dependency_schema.py +0 -0
  177. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_detector_dotnet.py +0 -0
  178. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_detector_go_rust_java.py +0 -0
  179. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_detector_nodejs.py +0 -0
  180. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_detector_php_ruby_dart.py +0 -0
  181. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_detector_python.py +0 -0
  182. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_detector_universal_managed.py +0 -0
  183. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_detector_universal_systems.py +0 -0
  184. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_detectors_base.py +0 -0
  185. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_doc_analyzer_jsdom.py +0 -0
  186. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_doc_analyzer_python.py +0 -0
  187. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_encoding_regression.py +0 -0
  188. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_enterprise_benchmarks.py +0 -0
  189. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_graph_analyzer_polyglot.py +0 -0
  190. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_graph_analyzer_python_node.py +0 -0
  191. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_graph_schema.py +0 -0
  192. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_hybrid_inference.py +0 -0
  193. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_integration.py +0 -0
  194. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_integration_dependencies.py +0 -0
  195. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_integration_detection.py +0 -0
  196. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_integration_docs.py +0 -0
  197. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_integration_graph_modules.py +0 -0
  198. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_integration_lqn.py +0 -0
  199. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_integration_metrics.py +0 -0
  200. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_integration_multistack.py +0 -0
  201. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_integration_semantics.py +0 -0
  202. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_integration_universal.py +0 -0
  203. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_java_spring_integration.py +0 -0
  204. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_mcp_runner.py +0 -0
  205. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_mcp_serve.py +0 -0
  206. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_mcp_tools.py +0 -0
  207. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_metrics_analyzer.py +0 -0
  208. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_output_ux.py +0 -0
  209. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_packaging.py +0 -0
  210. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_phase1_improvements.py +0 -0
  211. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_pipeline_integrity.py +0 -0
  212. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_real_projects.py +0 -0
  213. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_redactor.py +0 -0
  214. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_repository_ir.py +0 -0
  215. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_scanner.py +0 -0
  216. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_schema.py +0 -0
  217. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_schema_normalization.py +0 -0
  218. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_scoring_calibration.py +0 -0
  219. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_semantic_analyzer_node.py +0 -0
  220. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_semantic_analyzer_python.py +0 -0
  221. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_semantic_import_resolution.py +0 -0
  222. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_semantic_schema.py +0 -0
  223. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_signal_hierarchy.py +0 -0
  224. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_summarizer.py +0 -0
  225. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_surface_honesty.py +0 -0
  226. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_task_differentiation.py +0 -0
  227. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_telemetry.py +0 -0
  228. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_v131_improvements.py +0 -0
  229. {sourcecode-1.31.24 → sourcecode-1.31.25}/tests/test_v1_10_regressions.py +0 -0
  230. {sourcecode-1.31.24 → 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`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 1.31.24
3
+ Version: 1.31.25
4
4
  Summary: Deterministic codebase context for AI coding agents
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
@@ -225,7 +225,7 @@ Description-Content-Type: text/markdown
225
225
 
226
226
  **AI-ready change intelligence for Java/Spring enterprise monoliths.**
227
227
 
228
- ![Version](https://img.shields.io/badge/version-1.31.24-blue)
228
+ ![Version](https://img.shields.io/badge/version-1.31.25-blue)
229
229
  ![Python](https://img.shields.io/badge/python-3.10%2B-green)
230
230
 
231
231
  ---
@@ -263,7 +263,7 @@ pipx install sourcecode
263
263
 
264
264
  ```bash
265
265
  sourcecode version
266
- # sourcecode 1.31.24
266
+ # sourcecode 1.31.25
267
267
  ```
268
268
 
269
269
  ---
@@ -2,7 +2,7 @@
2
2
 
3
3
  **AI-ready change intelligence for Java/Spring enterprise monoliths.**
4
4
 
5
- ![Version](https://img.shields.io/badge/version-1.31.24-blue)
5
+ ![Version](https://img.shields.io/badge/version-1.31.25-blue)
6
6
  ![Python](https://img.shields.io/badge/python-3.10%2B-green)
7
7
 
8
8
  ---
@@ -40,7 +40,7 @@ pipx install sourcecode
40
40
 
41
41
  ```bash
42
42
  sourcecode version
43
- # sourcecode 1.31.24
43
+ # sourcecode 1.31.25
44
44
  ```
45
45
 
46
46
  ---
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "1.31.24"
7
+ version = "1.31.25"
8
8
  description = "Deterministic codebase context for AI coding agents"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1,3 +1,3 @@
1
1
  """sourcecode — Deterministic codebase context maps for AI coding agents."""
2
2
 
3
- __version__ = "1.31.24"
3
+ __version__ = "1.31.25"
@@ -2655,6 +2655,12 @@ def repo_ir_cmd(
2655
2655
  help="Output format: json (default) or yaml.",
2656
2656
  show_default=True,
2657
2657
  ),
2658
+ copy: bool = typer.Option(
2659
+ False,
2660
+ "--copy",
2661
+ "-c",
2662
+ help="Copy output to system clipboard after a successful run. No-op when --output is used or clipboard is unavailable.",
2663
+ ),
2658
2664
  ) -> None:
2659
2665
  """Deterministic symbol-level IR for Java repositories.
2660
2666
 
@@ -2764,6 +2770,9 @@ def repo_ir_cmd(
2764
2770
  # Fallback for wrapped stdout without buffer (e.g. some test harnesses)
2765
2771
  _sys.stdout.write(output)
2766
2772
  _sys.stdout.write("\n")
2773
+ if copy:
2774
+ if _copy_to_clipboard(output):
2775
+ typer.echo("✓ copied to clipboard", err=True)
2767
2776
 
2768
2777
 
2769
2778
  # ── impact (blast-radius / change-impact analysis) ────────────────────────────
@@ -2799,6 +2808,12 @@ def impact_cmd(
2799
2808
  "--include-tests",
2800
2809
  help="Include test files in analysis (excluded by default).",
2801
2810
  ),
2811
+ copy: bool = typer.Option(
2812
+ False,
2813
+ "--copy",
2814
+ "-c",
2815
+ help="Copy output to system clipboard after a successful run. No-op when --output is used or clipboard is unavailable.",
2816
+ ),
2802
2817
  ) -> None:
2803
2818
  """Blast-radius analysis: who calls this class and what breaks if it changes?
2804
2819
 
@@ -2869,6 +2884,9 @@ def impact_cmd(
2869
2884
  _sys.stdout.buffer.flush()
2870
2885
  except AttributeError:
2871
2886
  _sys.stdout.write(output + "\n")
2887
+ if copy:
2888
+ if _copy_to_clipboard(output):
2889
+ typer.echo("✓ copied to clipboard", err=True)
2872
2890
 
2873
2891
  # Non-zero exit when target not found
2874
2892
  if result.get("resolution") == "not_found":
@@ -2899,6 +2917,12 @@ def endpoints_cmd(
2899
2917
  help="Output format: json (default) or yaml.",
2900
2918
  show_default=True,
2901
2919
  ),
2920
+ copy: bool = typer.Option(
2921
+ False,
2922
+ "--copy",
2923
+ "-c",
2924
+ help="Copy output to system clipboard after a successful run. No-op when --output is used or clipboard is unavailable.",
2925
+ ),
2902
2926
  ) -> None:
2903
2927
  """Extract REST API endpoint surface from Java source files.
2904
2928
 
@@ -2934,6 +2958,9 @@ def endpoints_cmd(
2934
2958
  _sys.stdout.buffer.write(output.encode("utf-8"))
2935
2959
  _sys.stdout.buffer.write(b"\n")
2936
2960
  _sys.stdout.buffer.flush()
2961
+ if copy:
2962
+ if _copy_to_clipboard(output):
2963
+ typer.echo("✓ copied to clipboard", err=True)
2937
2964
 
2938
2965
 
2939
2966
  # ── Enterprise Workflow Commands ──────────────────────────────────────────────
@@ -1,37 +0,0 @@
1
- # Handoff — Sesión 26
2
- **Fecha:** 2026-05-25 | **Versión:** 1.31.22 | **Rama:** master
3
-
4
- ## Trabajo realizado esta sesión
5
-
6
- Auditoría técnica v1.31.22 + corrección de bugs sobre BroadleafCommerce y keycloak.
7
-
8
- ### Fixes commiteados (208723b)
9
-
10
- | Bug | Severidad | Fix |
11
- |-----|-----------|-----|
12
- | FQN class-name paths en endpoints (Broadleaf: 20 paths garbage) | P0 | Filtro regex en extract_java_endpoints |
13
- | JAX-RS impl duplicates (keycloak: ClientApi 8→4 endpoints) | P0 | _resolve_jaxrs_prefixes: skip parents con prefix vacío sin @Path |
14
- | project_summary copia texto de licencia/marketing de README | P1 | _extract_first_useful_paragraph: scan hasta 6 párrafos, rechaza license notices |
15
- | angular_version null en monorepos Java+Angular | P2 | _angular_analysis: busca también subdirectory/package.json |
16
-
17
- ### Métricas post-fix
18
- - BroadleafCommerce endpoints: 130 → 110
19
- - Keycloak endpoints: 693 → 613
20
- - BC summary: license notice → "e-commerce framework written in Java"
21
- - KC summary: marketing text → "provides user federation, strong authentication"
22
-
23
- ## Próximos pasos sugeridos
24
- 1. Regression tests para los 4 fixes
25
- 2. project_type classification: BC="api", KC="fullstack" — ambos incorrectos
26
- 3. Colon-notation paths en Broadleaf (58, algunos legítimos {var:regex})
27
-
28
- ## Archivos modificados
29
- - src/sourcecode/repository_ir.py
30
- - src/sourcecode/serializer.py
31
- - src/sourcecode/summarizer.py
32
-
33
- ## Reanudar
34
- ```bash
35
- cd /Users/user/Documents/workspace/atlas-cli
36
- git log --oneline -3
37
- ```
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes