sourcecode 1.30.4__tar.gz → 1.30.5__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 (192) hide show
  1. sourcecode-1.30.5/.continue-here.md +163 -0
  2. {sourcecode-1.30.4 → sourcecode-1.30.5}/PKG-INFO +3 -3
  3. {sourcecode-1.30.4 → sourcecode-1.30.5}/README.md +2 -2
  4. {sourcecode-1.30.4 → sourcecode-1.30.5}/pyproject.toml +1 -1
  5. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/__init__.py +1 -1
  6. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/cli.py +2 -0
  7. sourcecode-1.30.5/src/sourcecode/flow_analyzer.py +645 -0
  8. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/prepare_context.py +13 -3
  9. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_signal_hierarchy.py +8 -2
  10. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_v1_10_regressions.py +131 -1
  11. sourcecode-1.30.4/.continue-here.md +0 -177
  12. sourcecode-1.30.4/src/sourcecode/flow_analyzer.py +0 -310
  13. {sourcecode-1.30.4 → sourcecode-1.30.5}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
  14. {sourcecode-1.30.4 → sourcecode-1.30.5}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
  15. {sourcecode-1.30.4 → sourcecode-1.30.5}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
  16. {sourcecode-1.30.4 → sourcecode-1.30.5}/.github/workflows/build-windows.yml +0 -0
  17. {sourcecode-1.30.4 → sourcecode-1.30.5}/.gitignore +0 -0
  18. {sourcecode-1.30.4 → sourcecode-1.30.5}/.ruff.toml +0 -0
  19. {sourcecode-1.30.4 → sourcecode-1.30.5}/CONTRIBUTING.md +0 -0
  20. {sourcecode-1.30.4 → sourcecode-1.30.5}/LICENSE +0 -0
  21. {sourcecode-1.30.4 → sourcecode-1.30.5}/SECURITY.md +0 -0
  22. {sourcecode-1.30.4 → sourcecode-1.30.5}/docs/privacy.md +0 -0
  23. {sourcecode-1.30.4 → sourcecode-1.30.5}/docs/schema.md +0 -0
  24. {sourcecode-1.30.4 → sourcecode-1.30.5}/raw +0 -0
  25. {sourcecode-1.30.4 → sourcecode-1.30.5}/run_cli.py +0 -0
  26. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/adaptive_scanner.py +0 -0
  27. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/architecture_analyzer.py +0 -0
  28. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/architecture_summary.py +0 -0
  29. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/ast_extractor.py +0 -0
  30. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/classifier.py +0 -0
  31. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/code_notes_analyzer.py +0 -0
  32. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/confidence_analyzer.py +0 -0
  33. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/context_scorer.py +0 -0
  34. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/context_summarizer.py +0 -0
  35. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/contract_model.py +0 -0
  36. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/contract_pipeline.py +0 -0
  37. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/coverage_parser.py +0 -0
  38. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/dependency_analyzer.py +0 -0
  39. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/__init__.py +0 -0
  40. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/base.py +0 -0
  41. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/csproj_parser.py +0 -0
  42. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/dart.py +0 -0
  43. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/dotnet.py +0 -0
  44. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/elixir.py +0 -0
  45. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/go.py +0 -0
  46. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/heuristic.py +0 -0
  47. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/hybrid.py +0 -0
  48. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/java.py +0 -0
  49. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/jvm_ext.py +0 -0
  50. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/nodejs.py +0 -0
  51. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/parsers.py +0 -0
  52. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/php.py +0 -0
  53. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/project.py +0 -0
  54. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/python.py +0 -0
  55. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/ruby.py +0 -0
  56. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/rust.py +0 -0
  57. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/systems.py +0 -0
  58. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/terraform.py +0 -0
  59. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/detectors/tooling.py +0 -0
  60. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/doc_analyzer.py +0 -0
  61. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/entrypoint_classifier.py +0 -0
  62. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/env_analyzer.py +0 -0
  63. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/file_classifier.py +0 -0
  64. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/git_analyzer.py +0 -0
  65. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/graph_analyzer.py +0 -0
  66. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/metrics_analyzer.py +0 -0
  67. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/progress.py +0 -0
  68. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/ranking_engine.py +0 -0
  69. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/redactor.py +0 -0
  70. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/relevance_scorer.py +0 -0
  71. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/repo_classifier.py +0 -0
  72. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/runtime_classifier.py +0 -0
  73. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/scanner.py +0 -0
  74. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/schema.py +0 -0
  75. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/semantic_analyzer.py +0 -0
  76. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/serializer.py +0 -0
  77. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/summarizer.py +0 -0
  78. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/telemetry/__init__.py +0 -0
  79. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/telemetry/config.py +0 -0
  80. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/telemetry/consent.py +0 -0
  81. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/telemetry/events.py +0 -0
  82. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/telemetry/filters.py +0 -0
  83. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/telemetry/transport.py +0 -0
  84. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/tree_utils.py +0 -0
  85. {sourcecode-1.30.4 → sourcecode-1.30.5}/src/sourcecode/workspace.py +0 -0
  86. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/__init__.py +0 -0
  87. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/conftest.py +0 -0
  88. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/coverage.xml +0 -0
  89. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
  90. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/fastapi_app/src/main.py +0 -0
  91. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/go_service/cmd/api/main.go +0 -0
  92. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/go_service/go.mod +0 -0
  93. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/jacoco.xml +0 -0
  94. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/latin1_sample.java +0 -0
  95. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/latin1_sample_iso.java +0 -0
  96. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/lcov.info +0 -0
  97. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
  98. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/nextjs_app/package.json +0 -0
  99. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
  100. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
  101. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
  102. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
  103. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
  104. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
  105. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
  106. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
  107. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
  108. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
  109. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
  110. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
  111. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
  112. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
  113. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
  114. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
  115. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
  116. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
  117. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
  118. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
  119. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
  120. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
  121. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
  122. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
  123. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
  124. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
  125. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
  126. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
  127. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
  128. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
  129. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
  130. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
  131. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
  132. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_architecture_analyzer.py +0 -0
  133. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_architecture_summary.py +0 -0
  134. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_ast_extractor.py +0 -0
  135. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_block1_reliability.py +0 -0
  136. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_block2_coverage.py +0 -0
  137. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_block5_quality.py +0 -0
  138. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_bug_fixes_v16.py +0 -0
  139. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_classifier.py +0 -0
  140. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_cli.py +0 -0
  141. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_code_notes_analyzer.py +0 -0
  142. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_context_scorer.py +0 -0
  143. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_contract_pipeline.py +0 -0
  144. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_coverage_parser.py +0 -0
  145. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_cross_consistency.py +0 -0
  146. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_dependency_analyzer_node_python.py +0 -0
  147. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_dependency_analyzer_polyglot.py +0 -0
  148. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_dependency_schema.py +0 -0
  149. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_detector_dotnet.py +0 -0
  150. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_detector_go_rust_java.py +0 -0
  151. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_detector_nodejs.py +0 -0
  152. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_detector_php_ruby_dart.py +0 -0
  153. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_detector_python.py +0 -0
  154. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_detector_universal_managed.py +0 -0
  155. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_detector_universal_systems.py +0 -0
  156. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_detectors_base.py +0 -0
  157. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_doc_analyzer_jsdom.py +0 -0
  158. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_doc_analyzer_python.py +0 -0
  159. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_encoding_regression.py +0 -0
  160. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_graph_analyzer_polyglot.py +0 -0
  161. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_graph_analyzer_python_node.py +0 -0
  162. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_graph_schema.py +0 -0
  163. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_hybrid_inference.py +0 -0
  164. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_integration.py +0 -0
  165. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_integration_dependencies.py +0 -0
  166. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_integration_detection.py +0 -0
  167. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_integration_docs.py +0 -0
  168. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_integration_graph_modules.py +0 -0
  169. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_integration_lqn.py +0 -0
  170. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_integration_metrics.py +0 -0
  171. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_integration_multistack.py +0 -0
  172. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_integration_semantics.py +0 -0
  173. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_integration_universal.py +0 -0
  174. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_java_spring_integration.py +0 -0
  175. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_metrics_analyzer.py +0 -0
  176. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_packaging.py +0 -0
  177. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_phase1_improvements.py +0 -0
  178. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_pipeline_integrity.py +0 -0
  179. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_real_projects.py +0 -0
  180. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_redactor.py +0 -0
  181. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_scanner.py +0 -0
  182. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_schema.py +0 -0
  183. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_schema_normalization.py +0 -0
  184. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_semantic_analyzer_node.py +0 -0
  185. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_semantic_analyzer_python.py +0 -0
  186. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_semantic_import_resolution.py +0 -0
  187. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_semantic_schema.py +0 -0
  188. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_summarizer.py +0 -0
  189. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_surface_honesty.py +0 -0
  190. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_task_differentiation.py +0 -0
  191. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_telemetry.py +0 -0
  192. {sourcecode-1.30.4 → sourcecode-1.30.5}/tests/test_workspace_analyzer.py +0 -0
@@ -0,0 +1,163 @@
1
+ # Continue Here — atlas-cli sesión 9
2
+
3
+ **Paused:** 2026-05-16 (sesión 9)
4
+ **Repo:** `/Users/user/Downloads/atlas-cli`
5
+ **Branch:** master
6
+ **Último commit:** `88e1ebd` — Actualizando README
7
+ **Working tree:** DIRTY (sin commit — usuario pidió "no hagas commit" esta sesión)
8
+
9
+ ---
10
+
11
+ ## Lo que se hizo esta sesión
12
+
13
+ ### Fix: test regresivo stale en `test_signal_hierarchy.py`
14
+
15
+ `test_prepare_context_review_pr_task` esperaba exit_code 0 pero la nueva conducta (desde `7085e97`) devuelve exit_code 1 cuando no hay diff. El test corría contra atlas-cli (no tmp_project — el arg se consume por `_preprocess_args`), entonces era frágil: con cambios pendientes en atlas-cli → exit 0, sin cambios → exit 1.
16
+
17
+ **Fix:** test acepta ambos exit codes y verifica estructura JSON en cada caso.
18
+
19
+ ---
20
+
21
+ ### Feature: `behavioral_impact` para `review-pr`
22
+
23
+ Nueva capability: en vez de "archivos relacionados por heurística", modelar impacto causal del cambio.
24
+
25
+ **Nueva sección top-level en output de review-pr:**
26
+ ```json
27
+ {
28
+ "behavioral_impact": [{
29
+ "entry_point": "ArticleController.favoriteArticle",
30
+ "affected_path": ["ArticleFavoriteService.favorite", "ArticleFavoriteRepository.save"],
31
+ "impact": ["article favorite persistence affected"],
32
+ "end_state": "DB write"
33
+ }]
34
+ }
35
+ ```
36
+
37
+ **Dos traversals:**
38
+
39
+ | Archivo cambiado | Estrategia | entry_point |
40
+ |---|---|---|
41
+ | Controller | Forward: ctrl → svc → repo | El propio controller |
42
+ | Service/Repo/Domain | Reverse: buscar qué controller inyecta/llama la cadena | Controller que lo usa |
43
+
44
+ **Reverse lookup:** primero directo (ctrl usa clase directamente), luego indirecto (ctrl → svc mediador → clase cambiada).
45
+
46
+ **Impact generation:** basado en artifact_type + end_state + nombre de clase sin sufijo:
47
+ - Repository → `"X persistence affected"`
48
+ - Service + DB write → `"X data persistence behavior may change"`
49
+ - Service + event → `"X event emission affected"`
50
+ - + si hay `@PreAuthorize`/`@Secured` en controller → `"authorization check present on entry point"`
51
+
52
+ **Sin evidencia → no emitir path.** `_has_code_evidence` gate en cada paso.
53
+
54
+ ---
55
+
56
+ ## Archivos modificados (sin commit)
57
+
58
+ | Archivo | Cambio |
59
+ |---------|--------|
60
+ | `src/sourcecode/flow_analyzer.py` | `analyze_behavioral_impact()` + helpers `_domain_from_class`, `_impact_descriptions`, `_impact_descriptions_for_controller` (~205 líneas nuevas) |
61
+ | `src/sourcecode/prepare_context.py` | Campo `behavioral_impact` en `TaskOutput`, bloque 6d llama `analyze_behavioral_impact` |
62
+ | `src/sourcecode/cli.py` | Serializa `behavioral_impact` en output de review-pr |
63
+ | `tests/test_signal_hierarchy.py` | Fix stale test `test_prepare_context_review_pr_task` |
64
+ | `tests/test_v1_10_regressions.py` | Clase `TestBehavioralImpact` con 5 tests unitarios |
65
+
66
+ ---
67
+
68
+ ## Tests al pausar
69
+
70
+ ```
71
+ 777 passed, 3 skipped, 1 deselected
72
+ ```
73
+
74
+ Los 5 tests nuevos en `TestBehavioralImpact` pasan:
75
+ - `test_service_change_finds_controller_entry_point` ✓
76
+ - `test_repository_change_finds_controller_via_service` ✓
77
+ - `test_controller_change_forward_traversal` ✓
78
+ - `test_no_evidence_returns_empty` ✓
79
+ - `test_impact_strings_describe_behavior_not_files` ✓
80
+
81
+ ---
82
+
83
+ ## Pendiente de sesión anterior (sigue vigente)
84
+
85
+ 1. **Smoke test `delta`** — verificar Fix 1-3 (BFS module constraint) no afecta `delta`:
86
+ ```bash
87
+ cd ~/Documents/workspace/spring-boot-realworld-example-app
88
+ sourcecode prepare-context delta . --since HEAD~1 2>/dev/null | python3 -c "
89
+ import json,sys; d=json.load(sys.stdin)
90
+ print('relevant_files:', len(d.get('relevant_files', [])))
91
+ "
92
+ ```
93
+
94
+ 2. **Smoke test `security_change` path** — cambio real en auth logic debe expandir security chain.
95
+
96
+ 3. **Tests unitarios para `_classify_diff_severity`** — sin tests actualmente.
97
+
98
+ 4. **`User.java` clasificado como `"source"` no `"domain_model"`** — fix opcional en `_classify_changed_file`.
99
+
100
+ 5. **Smoke tests saint-server** — pendiente sesión 4/5.
101
+
102
+ ---
103
+
104
+ ## Pendiente de esta sesión (nuevo)
105
+
106
+ 1. **COMMIT** — toda la sesión sin commit. Hacer commit:
107
+ ```bash
108
+ git add src/sourcecode/flow_analyzer.py \
109
+ src/sourcecode/prepare_context.py \
110
+ src/sourcecode/cli.py \
111
+ tests/test_signal_hierarchy.py \
112
+ tests/test_v1_10_regressions.py
113
+ git commit -m "feat(review-pr): behavioral_impact — impacto causal de cambio, no expansión heurística"
114
+ ```
115
+
116
+ 2. **Smoke test `behavioral_impact`** en repo real:
117
+ ```bash
118
+ /Users/user/.local/pipx/venvs/sourcecode/bin/python -m pip install -e . -q
119
+ cd ~/Documents/workspace/spring-boot-realworld-example-app
120
+ # Modificar un service (ej. ArticleFavoriteService.java) sin commit y correr:
121
+ sourcecode prepare-context review-pr . 2>/dev/null | python3 -c "
122
+ import json, sys
123
+ d = json.load(sys.stdin)
124
+ for bi in d.get('behavioral_impact', []):
125
+ print('entry:', bi['entry_point'])
126
+ print('path:', bi['affected_path'])
127
+ print('impact:', bi['impact'])
128
+ print('end_state:', bi['end_state'])
129
+ print()
130
+ "
131
+ ```
132
+
133
+ 3. **Evaluar si `execution_paths` sigue siendo útil** o si `behavioral_impact` lo reemplaza completamente. Ambos coexisten ahora.
134
+
135
+ 4. **Impact generation refinement** — para service changes, `"X data persistence behavior may change"` es verbose. Podría simplificarse a `"X persistence affected"`.
136
+
137
+ ---
138
+
139
+ ## Para retomar
140
+
141
+ ```bash
142
+ cd /Users/user/Downloads/atlas-cli
143
+ git log --oneline -3
144
+ git diff --stat HEAD # verá los 5 archivos sin commit
145
+
146
+ # Verificar import
147
+ python3 -c "from sourcecode.flow_analyzer import analyze_behavioral_impact; print('OK')"
148
+
149
+ # Tests completos
150
+ python3 -m pytest tests/ \
151
+ --ignore=tests/test_block2_coverage.py \
152
+ --ignore=tests/test_packaging.py \
153
+ --deselect=tests/test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile_keeps_declared_versions \
154
+ -q
155
+ # Expected: 777 passed
156
+
157
+ # Tests nuevos específicamente
158
+ python3 -m pytest tests/test_v1_10_regressions.py::TestBehavioralImpact -v
159
+ ```
160
+
161
+ ---
162
+
163
+ *Pausado 2026-05-16 sesión 9 — gsd:pause-work*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 1.30.4
3
+ Version: 1.30.5
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
  **Deterministic, behavior-aware codebase context for AI agents and PR review.**
223
223
 
224
- ![Version](https://img.shields.io/badge/version-1.30.4-blue)
224
+ ![Version](https://img.shields.io/badge/version-1.30.5-blue)
225
225
  ![Python](https://img.shields.io/badge/python-3.10%2B-green)
226
226
 
227
227
  ---
@@ -257,7 +257,7 @@ pipx install sourcecode
257
257
 
258
258
  ```bash
259
259
  sourcecode version
260
- # sourcecode 1.30.4
260
+ # sourcecode 1.30.5
261
261
  ```
262
262
 
263
263
  ---
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Deterministic, behavior-aware codebase context for AI agents and PR review.**
4
4
 
5
- ![Version](https://img.shields.io/badge/version-1.30.4-blue)
5
+ ![Version](https://img.shields.io/badge/version-1.30.5-blue)
6
6
  ![Python](https://img.shields.io/badge/python-3.10%2B-green)
7
7
 
8
8
  ---
@@ -38,7 +38,7 @@ pipx install sourcecode
38
38
 
39
39
  ```bash
40
40
  sourcecode version
41
- # sourcecode 1.30.4
41
+ # sourcecode 1.30.5
42
42
  ```
43
43
 
44
44
  ---
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "1.30.4"
7
+ version = "1.30.5"
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.30.4"
3
+ __version__ = "1.30.5"
@@ -1868,6 +1868,8 @@ def prepare_context_cmd(
1868
1868
  out["suggested_review_order"] = output.suggested_review_order
1869
1869
  if output.execution_paths:
1870
1870
  out["execution_paths"] = output.execution_paths
1871
+ if output.behavioral_impact:
1872
+ out["behavioral_impact"] = output.behavioral_impact
1871
1873
  if output.impact_summary:
1872
1874
  out["impact_summary"] = output.impact_summary
1873
1875
  if output.why_these_files: