sourcecode 1.20.0__tar.gz → 1.22.0__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 (190) hide show
  1. sourcecode-1.22.0/.continue-here.md +173 -0
  2. {sourcecode-1.20.0 → sourcecode-1.22.0}/PKG-INFO +3 -3
  3. {sourcecode-1.20.0 → sourcecode-1.22.0}/README.md +2 -2
  4. {sourcecode-1.20.0 → sourcecode-1.22.0}/pyproject.toml +1 -1
  5. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/__init__.py +1 -1
  6. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/cli.py +14 -2
  7. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/prepare_context.py +567 -17
  8. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_signal_hierarchy.py +3 -1
  9. sourcecode-1.20.0/.continue-here.md +0 -178
  10. {sourcecode-1.20.0 → sourcecode-1.22.0}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
  11. {sourcecode-1.20.0 → sourcecode-1.22.0}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
  12. {sourcecode-1.20.0 → sourcecode-1.22.0}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
  13. {sourcecode-1.20.0 → sourcecode-1.22.0}/.github/workflows/build-windows.yml +0 -0
  14. {sourcecode-1.20.0 → sourcecode-1.22.0}/.gitignore +0 -0
  15. {sourcecode-1.20.0 → sourcecode-1.22.0}/.ruff.toml +0 -0
  16. {sourcecode-1.20.0 → sourcecode-1.22.0}/CONTRIBUTING.md +0 -0
  17. {sourcecode-1.20.0 → sourcecode-1.22.0}/LICENSE +0 -0
  18. {sourcecode-1.20.0 → sourcecode-1.22.0}/SECURITY.md +0 -0
  19. {sourcecode-1.20.0 → sourcecode-1.22.0}/docs/privacy.md +0 -0
  20. {sourcecode-1.20.0 → sourcecode-1.22.0}/docs/schema.md +0 -0
  21. {sourcecode-1.20.0 → sourcecode-1.22.0}/raw +0 -0
  22. {sourcecode-1.20.0 → sourcecode-1.22.0}/run_cli.py +0 -0
  23. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/adaptive_scanner.py +0 -0
  24. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/architecture_analyzer.py +0 -0
  25. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/architecture_summary.py +0 -0
  26. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/ast_extractor.py +0 -0
  27. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/classifier.py +0 -0
  28. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/code_notes_analyzer.py +0 -0
  29. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/confidence_analyzer.py +0 -0
  30. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/context_scorer.py +0 -0
  31. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/context_summarizer.py +0 -0
  32. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/contract_model.py +0 -0
  33. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/contract_pipeline.py +0 -0
  34. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/coverage_parser.py +0 -0
  35. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/dependency_analyzer.py +0 -0
  36. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/__init__.py +0 -0
  37. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/base.py +0 -0
  38. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
  39. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/dart.py +0 -0
  40. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/dotnet.py +0 -0
  41. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/elixir.py +0 -0
  42. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/go.py +0 -0
  43. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/heuristic.py +0 -0
  44. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/hybrid.py +0 -0
  45. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/java.py +0 -0
  46. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
  47. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/nodejs.py +0 -0
  48. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/parsers.py +0 -0
  49. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/php.py +0 -0
  50. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/project.py +0 -0
  51. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/python.py +0 -0
  52. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/ruby.py +0 -0
  53. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/rust.py +0 -0
  54. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/systems.py +0 -0
  55. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/terraform.py +0 -0
  56. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/detectors/tooling.py +0 -0
  57. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/doc_analyzer.py +0 -0
  58. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/entrypoint_classifier.py +0 -0
  59. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/env_analyzer.py +0 -0
  60. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/file_classifier.py +0 -0
  61. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/git_analyzer.py +0 -0
  62. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/graph_analyzer.py +0 -0
  63. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/metrics_analyzer.py +0 -0
  64. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/progress.py +0 -0
  65. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/ranking_engine.py +0 -0
  66. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/redactor.py +0 -0
  67. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/relevance_scorer.py +0 -0
  68. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/repo_classifier.py +0 -0
  69. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/runtime_classifier.py +0 -0
  70. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/scanner.py +0 -0
  71. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/schema.py +0 -0
  72. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/semantic_analyzer.py +0 -0
  73. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/serializer.py +0 -0
  74. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/summarizer.py +0 -0
  75. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/telemetry/__init__.py +0 -0
  76. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/telemetry/config.py +0 -0
  77. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/telemetry/consent.py +0 -0
  78. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/telemetry/events.py +0 -0
  79. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/telemetry/filters.py +0 -0
  80. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/telemetry/transport.py +0 -0
  81. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/tree_utils.py +0 -0
  82. {sourcecode-1.20.0 → sourcecode-1.22.0}/src/sourcecode/workspace.py +0 -0
  83. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/__init__.py +0 -0
  84. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/conftest.py +0 -0
  85. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/coverage.xml +0 -0
  86. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
  87. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/fastapi_app/src/main.py +0 -0
  88. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/go_service/cmd/api/main.go +0 -0
  89. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/go_service/go.mod +0 -0
  90. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/jacoco.xml +0 -0
  91. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/latin1_sample.java +0 -0
  92. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/latin1_sample_iso.java +0 -0
  93. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/lcov.info +0 -0
  94. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
  95. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/nextjs_app/package.json +0 -0
  96. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
  97. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
  98. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
  99. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
  100. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
  101. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
  102. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
  103. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
  104. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
  105. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
  106. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
  107. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
  108. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
  109. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
  110. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
  111. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
  112. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
  113. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
  114. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
  115. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
  116. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
  117. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
  118. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
  119. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
  120. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
  121. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
  122. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
  123. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
  124. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
  125. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
  126. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
  127. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
  128. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
  129. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_architecture_analyzer.py +0 -0
  130. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_architecture_summary.py +0 -0
  131. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_ast_extractor.py +0 -0
  132. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_block1_reliability.py +0 -0
  133. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_block2_coverage.py +0 -0
  134. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_block5_quality.py +0 -0
  135. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_bug_fixes_v16.py +0 -0
  136. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_classifier.py +0 -0
  137. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_cli.py +0 -0
  138. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_code_notes_analyzer.py +0 -0
  139. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_context_scorer.py +0 -0
  140. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_contract_pipeline.py +0 -0
  141. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_coverage_parser.py +0 -0
  142. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_cross_consistency.py +0 -0
  143. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_dependency_analyzer_node_python.py +0 -0
  144. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_dependency_analyzer_polyglot.py +0 -0
  145. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_dependency_schema.py +0 -0
  146. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_detector_dotnet.py +0 -0
  147. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_detector_go_rust_java.py +0 -0
  148. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_detector_nodejs.py +0 -0
  149. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_detector_php_ruby_dart.py +0 -0
  150. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_detector_python.py +0 -0
  151. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_detector_universal_managed.py +0 -0
  152. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_detector_universal_systems.py +0 -0
  153. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_detectors_base.py +0 -0
  154. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_doc_analyzer_jsdom.py +0 -0
  155. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_doc_analyzer_python.py +0 -0
  156. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_encoding_regression.py +0 -0
  157. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_graph_analyzer_polyglot.py +0 -0
  158. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_graph_analyzer_python_node.py +0 -0
  159. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_graph_schema.py +0 -0
  160. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_hybrid_inference.py +0 -0
  161. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_integration.py +0 -0
  162. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_integration_dependencies.py +0 -0
  163. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_integration_detection.py +0 -0
  164. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_integration_docs.py +0 -0
  165. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_integration_graph_modules.py +0 -0
  166. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_integration_lqn.py +0 -0
  167. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_integration_metrics.py +0 -0
  168. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_integration_multistack.py +0 -0
  169. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_integration_semantics.py +0 -0
  170. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_integration_universal.py +0 -0
  171. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_java_spring_integration.py +0 -0
  172. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_metrics_analyzer.py +0 -0
  173. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_packaging.py +0 -0
  174. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_phase1_improvements.py +0 -0
  175. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_pipeline_integrity.py +0 -0
  176. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_real_projects.py +0 -0
  177. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_redactor.py +0 -0
  178. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_scanner.py +0 -0
  179. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_schema.py +0 -0
  180. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_schema_normalization.py +0 -0
  181. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_semantic_analyzer_node.py +0 -0
  182. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_semantic_analyzer_python.py +0 -0
  183. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_semantic_import_resolution.py +0 -0
  184. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_semantic_schema.py +0 -0
  185. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_summarizer.py +0 -0
  186. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_surface_honesty.py +0 -0
  187. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_task_differentiation.py +0 -0
  188. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_telemetry.py +0 -0
  189. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_v1_10_regressions.py +0 -0
  190. {sourcecode-1.20.0 → sourcecode-1.22.0}/tests/test_workspace_analyzer.py +0 -0
@@ -0,0 +1,173 @@
1
+ # Continue Here — atlas-cli delta engine overhaul
2
+
3
+ **Paused:** 2026-05-13 (sesión 3)
4
+ **Repo:** `/Users/user/Downloads/atlas-cli`
5
+ **Branch:** master
6
+ **Commit:** `8258c4c implementando delta` (committed, pushed to origin/master)
7
+
8
+ ---
9
+
10
+ ## Estado actual
11
+
12
+ Sesión 3: `prepare-context delta` completamente reimplementado como motor de contexto incremental real. **Todo committed y pusheado.** Working tree limpio (solo este fichero untracked).
13
+
14
+ ---
15
+
16
+ ## Qué se implementó esta sesión
17
+
18
+ ### Motor delta real (`_build_delta_impact`)
19
+
20
+ Reemplaza el uso de `_rank_files` para la tarea `delta`. Nuevo flujo:
21
+
22
+ 1. **`_classify_changed_file(path)`** — clasificador estático determinista por ruta/nombre:
23
+ - Tipos: `security`, `api_endpoint`, `business_logic`, `data_access`, `mybatis_mapper`, `spring_config`, `spring_profile`, `configuration`, `build_manifest`, `db_migration`, `domain_model`, `dto`, `test`, `ide_noise`, `unknown_source`, `unknown_config`, `documentation`
24
+ - Impacto: `critical / high / medium / low / noise`
25
+ - Áreas de riesgo: `security`, `api`, `transactions`, `business_logic`, `persistence`, `config`, `dependencies`, `tests`
26
+ - `.idea/`, `.vscode/`, etc. → `ide_noise`, `is_noise=True`
27
+
28
+ 2. **`_build_delta_impact(changed_files, all_paths, entry_points, since)`** — análisis de impacto:
29
+ - Changed files siempre incluidos en `relevant_files` (nunca filtrados por score)
30
+ - Expansión a ficheros relacionados: mismo módulo DDD o mismo directorio padre
31
+ - Solo expande a stems de alto impacto (controller, service, repository, mapper, security, config)
32
+ - Límite: 10 ficheros relacionados máximo
33
+ - Returns: `(relevant_files, impact_summary, affected_modules, risk_areas, why, analysis_gaps)`
34
+
35
+ 3. **Nuevos campos en `TaskOutput`** (delta only):
36
+ - `impact_summary: str` — resumen textual del impacto global
37
+ - `affected_modules: list[str]` — módulos DDD afectados
38
+ - `risk_areas: list[dict]` — por área con severity y ficheros
39
+ - `since: str` — ref usada
40
+
41
+ 4. **Nuevo output delta** (cli.py):
42
+ - `project_summary` suprimido (change-focused, no snapshot)
43
+ - `gaps` habilitado (delta-specific gaps, no ConfidenceAnalyzer gaps)
44
+ - Serializa: `since`, `impact_summary`, `affected_modules`, `risk_areas`, `reasoning`
45
+
46
+ ### Bugs corregidos
47
+
48
+ | Bug | Fix |
49
+ |-----|-----|
50
+ | `relevant_files: []` con cambios reales | Changed files usan `_build_delta_impact`, no `_rank_files`. Nunca filtrados por score. |
51
+ | `.idea/vcs.xml` → `relevant_files: []` | Clasificado como `ide_noise`, score=0.1, role="noise". Aparece con mensaje explicativo. |
52
+ | Output idéntico a `--compact` | Delta ya no llama `_rank_files` — lógica completamente separada. |
53
+ | `relevant_files` genérico sin relación al diff | Ahora construye desde changed_files hacia afuera, no desde entrypoints hacia adentro. |
54
+
55
+ ---
56
+
57
+ ## Ficheros modificados esta sesión
58
+
59
+ ```
60
+ src/sourcecode/prepare_context.py +_classify_changed_file, +_build_delta_impact, +TaskOutput fields, build() delta branch
61
+ src/sourcecode/cli.py delta content filter: project_summary=False, gaps=True, new fields serialized
62
+ tests/test_signal_hierarchy.py test_delta_task_returns_valid_json: project_summary not in data, impact_summary in data
63
+ ```
64
+
65
+ ---
66
+
67
+ ## Tests
68
+
69
+ - **743 passed, 3 skipped** — sin regresiones nuevas
70
+ - Fallos pre-existentes (no relacionados):
71
+ - `test_block2_coverage.py::test_java_marked_unsupported`
72
+ - `test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile`
73
+ - `test_pipeline_integrity.py::TestBenchmarkContamination`
74
+
75
+ ---
76
+
77
+ ## Smoke tests pendientes (necesitan saint-server)
78
+
79
+ ### Smoke delta (nuevo)
80
+
81
+ ```bash
82
+ # Test básico: relevant_files no vacío con cambios reales
83
+ cd saint-server
84
+ git diff --name-only main | head -5 # confirmar hay cambios
85
+ sourcecode prepare-context delta . --since main --output /tmp/delta_test.json
86
+ python3 -c "
87
+ import json; d=json.load(open('/tmp/delta_test.json'))
88
+ assert d['task'] == 'delta'
89
+ assert len(d['relevant_files']) > 0, 'relevant_files is EMPTY — bug not fixed'
90
+ assert 'impact_summary' in d, 'missing impact_summary'
91
+ assert 'affected_modules' in d or 'risk_areas' in d, 'no impact fields'
92
+ assert 'project_summary' not in d, 'project_summary should be suppressed'
93
+ print('delta PASS:', d['impact_summary'])
94
+ print('changed_files:', d.get('changed_files', [])[:3])
95
+ print('affected_modules:', d.get('affected_modules', []))
96
+ "
97
+
98
+ # Test IDE noise: .idea change → baja prioridad
99
+ python3 -c "
100
+ from sourcecode.prepare_context import TaskContextBuilder
101
+ from pathlib import Path
102
+ b = TaskContextBuilder.__new__(TaskContextBuilder)
103
+ b.root = Path('.')
104
+ relevant, impact, modules, risks, why, gaps = b._build_delta_impact(
105
+ changed_files=['.idea/vcs.xml'],
106
+ all_paths=[],
107
+ entry_points=[],
108
+ since='main',
109
+ )
110
+ assert len(relevant) == 1
111
+ assert relevant[0].role == 'noise'
112
+ assert relevant[0].score == 0.1
113
+ assert 'no semantic impact' in impact
114
+ print('IDE noise PASS:', impact)
115
+ "
116
+
117
+ # Test seguridad: cambio en SecurityConfig → impacto critical
118
+ python3 -c "
119
+ from sourcecode.prepare_context import TaskContextBuilder
120
+ b = TaskContextBuilder.__new__(TaskContextBuilder)
121
+ cls = b._classify_changed_file('src/.../security/SecurityConfig.java')
122
+ assert cls['artifact_type'] == 'security'
123
+ assert cls['impact_level'] == 'critical'
124
+ assert 'security' in cls['risk_areas']
125
+ print('security PASS:', cls)
126
+ "
127
+ ```
128
+
129
+ ### Smoke tests sesión 2 (pendientes desde antes)
130
+
131
+ ```bash
132
+ # FIX-1: síntoma inyecta ficheros en fix-bug
133
+ sourcecode prepare-context fix-bug saint-server --symptom "ausencias contador" \
134
+ --output /tmp/fix_symptom.json
135
+
136
+ # FIX-2: resource_names resueltos en security_surface
137
+ sourcecode saint-server --compact --output /tmp/sec_test.json
138
+
139
+ # FIX-4: score presente en file_relevance
140
+ sourcecode saint-server --agent --output /tmp/agent_test.json
141
+
142
+ # (ver .continue-here.md sesión 2 para comandos completos de verificación)
143
+ ```
144
+
145
+ ---
146
+
147
+ ## Mejoras opcionales para sesión siguiente
148
+
149
+ 1. **`_classify_changed_file` con más patrones**: añadir `cli` (como `cli.py`) → `cli_entrypoint`, `interceptor` → `security`, `aspect` → `cross_cutting`
150
+ 2. **`--since` sin argumento**: en vez de default `HEAD~1`, inferir mejor (e.g., base del branch actual vs main)
151
+ 3. **Soporte para staged/untracked**: cuando `since` es None, incluir `git status --porcelain` para capturar staged + untracked (no solo `git diff --name-only --relative`)
152
+ 4. **Test unitario dedicado** para `_build_delta_impact` y `_classify_changed_file` en `tests/test_task_differentiation.py`
153
+
154
+ ---
155
+
156
+ ## Para retomar
157
+
158
+ ```bash
159
+ cd /Users/user/Downloads/atlas-cli
160
+ git log --oneline -3 # debe mostrar 8258c4c implementando delta
161
+ python3 -m pytest tests/ \
162
+ --ignore=tests/test_block2_coverage.py \
163
+ --ignore=tests/test_dependency_analyzer_node_python.py \
164
+ --ignore=tests/test_pipeline_integrity.py -q
165
+ # Expected: 743 passed, 3 skipped
166
+
167
+ # Smoke test rápido del delta
168
+ python3 run_cli.py prepare-context delta . --since HEAD~3 | python3 -m json.tool | head -30
169
+ ```
170
+
171
+ ---
172
+
173
+ *Pausado 2026-05-13 sesión 3 — gsd:pause-work*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 1.20.0
3
+ Version: 1.22.0
4
4
  Summary: Deterministic codebase context for AI coding agents
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
@@ -221,7 +221,7 @@ Description-Content-Type: text/markdown
221
221
 
222
222
  **Compressed AI-ready context for Java/Spring enterprise codebases.**
223
223
 
224
- ![Version](https://img.shields.io/badge/version-1.20.0-blue)
224
+ ![Version](https://img.shields.io/badge/version-1.22.0-blue)
225
225
  ![Python](https://img.shields.io/badge/python-3.10%2B-green)
226
226
 
227
227
  ---
@@ -255,7 +255,7 @@ pipx install sourcecode
255
255
 
256
256
  ```bash
257
257
  sourcecode version
258
- # sourcecode 1.20.0
258
+ # sourcecode 1.22.0
259
259
  ```
260
260
 
261
261
  ---
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Compressed AI-ready context for Java/Spring enterprise codebases.**
4
4
 
5
- ![Version](https://img.shields.io/badge/version-1.20.0-blue)
5
+ ![Version](https://img.shields.io/badge/version-1.22.0-blue)
6
6
  ![Python](https://img.shields.io/badge/python-3.10%2B-green)
7
7
 
8
8
  ---
@@ -36,7 +36,7 @@ pipx install sourcecode
36
36
 
37
37
  ```bash
38
38
  sourcecode version
39
- # sourcecode 1.20.0
39
+ # sourcecode 1.22.0
40
40
  ```
41
41
 
42
42
  ---
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "1.20.0"
7
+ version = "1.22.0"
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.20.0"
3
+ __version__ = "1.22.0"
@@ -1727,9 +1727,9 @@ def prepare_context_cmd(
1727
1727
  "changed_files": False, "affected_entry_points": False,
1728
1728
  },
1729
1729
  "delta": {
1730
- "project_summary": True, "architecture_summary": False,
1730
+ "project_summary": False, "architecture_summary": False,
1731
1731
  "relevant_files": True, "key_dependencies": False,
1732
- "gaps": False, "confidence": True,
1732
+ "gaps": True, "confidence": True,
1733
1733
  "suspected_areas": False, "improvement_opportunities": False,
1734
1734
  "test_gaps": False, "code_notes_summary": False,
1735
1735
  "changed_files": True, "affected_entry_points": True,
@@ -1771,6 +1771,18 @@ def prepare_context_cmd(
1771
1771
  out["changed_files"] = output.changed_files
1772
1772
  if _task_include("affected_entry_points") and output.affected_entry_points:
1773
1773
  out["affected_entry_points"] = output.affected_entry_points
1774
+ # Delta-specific impact fields
1775
+ if task == "delta":
1776
+ if output.since:
1777
+ out["since"] = output.since
1778
+ if output.impact_summary:
1779
+ out["impact_summary"] = output.impact_summary
1780
+ if output.affected_modules:
1781
+ out["affected_modules"] = output.affected_modules
1782
+ if output.risk_areas:
1783
+ out["risk_areas"] = output.risk_areas
1784
+ if output.why_these_files:
1785
+ out["reasoning"] = output.why_these_files
1774
1786
  if output.limitations:
1775
1787
  out["limitations"] = output.limitations
1776
1788
  if output.symptom: