sourcecode 1.29.0__tar.gz → 1.30.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.
- sourcecode-1.30.0/.continue-here.md +118 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/PKG-INFO +3 -3
- {sourcecode-1.29.0 → sourcecode-1.30.0}/README.md +2 -2
- {sourcecode-1.29.0 → sourcecode-1.30.0}/pyproject.toml +1 -1
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/prepare_context.py +26 -1
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_v1_10_regressions.py +5 -5
- sourcecode-1.29.0/.continue-here.md +0 -108
- {sourcecode-1.29.0 → sourcecode-1.30.0}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/.gitignore +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/.ruff.toml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/CONTRIBUTING.md +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/LICENSE +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/SECURITY.md +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/docs/privacy.md +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/docs/schema.md +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/raw +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/run_cli.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/cli.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/serializer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/__init__.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/conftest.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/coverage.xml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/fastapi_app/src/main.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/go_service/cmd/api/main.go +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/go_service/go.mod +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/jacoco.xml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/latin1_sample.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/latin1_sample_iso.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/lcov.info +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/nextjs_app/package.json +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_architecture_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_architecture_summary.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_ast_extractor.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_block1_reliability.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_block2_coverage.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_block5_quality.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_bug_fixes_v16.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_classifier.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_cli.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_code_notes_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_context_scorer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_contract_pipeline.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_coverage_parser.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_cross_consistency.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_dependency_analyzer_node_python.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_dependency_analyzer_polyglot.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_dependency_schema.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_detector_dotnet.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_detector_go_rust_java.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_detector_nodejs.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_detector_php_ruby_dart.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_detector_python.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_detector_universal_managed.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_detector_universal_systems.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_detectors_base.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_doc_analyzer_jsdom.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_doc_analyzer_python.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_encoding_regression.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_graph_analyzer_polyglot.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_graph_analyzer_python_node.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_graph_schema.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_hybrid_inference.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_integration.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_integration_dependencies.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_integration_detection.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_integration_docs.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_integration_graph_modules.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_integration_lqn.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_integration_metrics.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_integration_multistack.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_integration_semantics.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_integration_universal.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_java_spring_integration.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_metrics_analyzer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_packaging.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_phase1_improvements.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_pipeline_integrity.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_real_projects.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_redactor.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_scanner.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_schema.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_schema_normalization.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_semantic_analyzer_node.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_semantic_analyzer_python.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_semantic_import_resolution.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_semantic_schema.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_signal_hierarchy.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_summarizer.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_surface_honesty.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_task_differentiation.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_telemetry.py +0 -0
- {sourcecode-1.29.0 → sourcecode-1.30.0}/tests/test_workspace_analyzer.py +0 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Continue Here — atlas-cli session 5
|
|
2
|
+
|
|
3
|
+
**Paused:** 2026-05-16 (sesión 5)
|
|
4
|
+
**Repo:** `/Users/user/Downloads/atlas-cli`
|
|
5
|
+
**Branch:** master
|
|
6
|
+
**Commits esta sesión:** `e5a1a05` + `5c06ef3` (ambos committed, working tree limpio)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Lo que se hizo esta sesión
|
|
11
|
+
|
|
12
|
+
### Fix 1 — Windows encoding crash en `--since` (`e5a1a05`)
|
|
13
|
+
|
|
14
|
+
**Root cause:** `_get_available_refs()` en `prepare_context.py` llamaba `subprocess.run(text=True)` sin `encoding=` — usaba cp1252 en Windows. Byte 0x8d → `UnicodeDecodeError` no capturado. Además `r.stdout.splitlines()` sin guard → `AttributeError` si stdout fuera None.
|
|
15
|
+
|
|
16
|
+
**Fix:** dos líneas en `prepare_context.py:2309-2315`:
|
|
17
|
+
```python
|
|
18
|
+
encoding="utf-8", errors="replace", # añadido
|
|
19
|
+
(r.stdout or "").splitlines() # guard añadido
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Tests añadidos:** `tests/test_encoding_regression.py` — clase `TestGetAvailableRefsWindowsEncoding` (4 casos: stdout=None, bytes inválidos, ref inexistente, returncode!=0).
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
### Fix 2 — `review-pr` reescrito como pipeline delta-first (`5c06ef3`)
|
|
27
|
+
|
|
28
|
+
**Problema:** `review-pr` devolvía output genérico de repo completo sin diff real. Inútil para CI/PR review.
|
|
29
|
+
|
|
30
|
+
**Cambios:**
|
|
31
|
+
|
|
32
|
+
| Archivo | Qué cambió |
|
|
33
|
+
|---------|-----------|
|
|
34
|
+
| `prepare_context.py` | Gate 5d: 3 errores tempranos (no_git_repo, no_diff, git_ref_not_found). Reutiliza `_build_delta_impact`. Deriva security_impact/transactional_impact/test_coverage_risk del análisis delta. 7 nuevos campos en TaskOutput. |
|
|
35
|
+
| `cli.py` | Content map review-pr. Bloque output PR-específico. Error JSON + exit(1). Help text. |
|
|
36
|
+
| `test_v1_10_regressions.py` | 3 tests viejos (comportamiento genérico) reemplazados por 4 nuevos (gate git + mocks). |
|
|
37
|
+
|
|
38
|
+
**Nuevos campos en output:**
|
|
39
|
+
```json
|
|
40
|
+
{
|
|
41
|
+
"review_type": "pull_request",
|
|
42
|
+
"ci_decision": "analysis_success",
|
|
43
|
+
"base_ref": "origin/main",
|
|
44
|
+
"changed_files": [...],
|
|
45
|
+
"affected_modules": [...],
|
|
46
|
+
"security_impact": {"affected_resources": [...], "risk_level": "high"},
|
|
47
|
+
"transactional_impact": {"affected_transactions": [...], "risk": "..."},
|
|
48
|
+
"test_coverage_risk": {"changed_files_without_tests": [...], "risk_level": "medium"},
|
|
49
|
+
"review_hotspots": [...],
|
|
50
|
+
"suggested_review_order": [...]
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**GitHub Actions ready:**
|
|
55
|
+
```yaml
|
|
56
|
+
- run: sourcecode prepare-context review-pr . --since origin/main --output review.json
|
|
57
|
+
# exit 1 si no hay diff o ref no existe
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Estado de tests al pausar
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
770 passed, 3 skipped
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Fallos pre-existentes (no relacionados, ya presentes antes de esta sesión):
|
|
69
|
+
- `test_block2_coverage.py::test_java_marked_unsupported` — `DocRecord.__init__` bug en `doc_analyzer.py`
|
|
70
|
+
- `test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile` — typer version mismatch
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Pendiente / próximos pasos opcionales
|
|
75
|
+
|
|
76
|
+
1. **Smoke test review-pr en saint-server real con diff:**
|
|
77
|
+
```bash
|
|
78
|
+
cd saint-server
|
|
79
|
+
git checkout -b test-review-pr
|
|
80
|
+
# modificar un controller
|
|
81
|
+
sourcecode prepare-context review-pr . --since main --output /tmp/review.json
|
|
82
|
+
cat /tmp/review.json | python3 -c "import json,sys; d=json.load(sys.stdin); print('sections:', list(d.keys()))"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
2. **Verificar `security_impact` detecta correctamente:** cambiar un `SecurityConfig.java` y comprobar que aparece en `security_impact.affected_resources`.
|
|
86
|
+
|
|
87
|
+
3. **`suggested_review_order` calidad:** verificar que el orden security→controller→service es correcto en PR reales con múltiples tipos de archivos.
|
|
88
|
+
|
|
89
|
+
4. **`test_coverage_risk` stem matching sin normalización:** el gap entre `generate-tests` (normaliza `TestFoo→Foo`) y `review-pr` (stem directo). Si da falsos "untested", añadir normalización.
|
|
90
|
+
|
|
91
|
+
5. **Agent token reduction** (trabajo sesiones anteriores): smoke test pendiente en saint-server — ver handoff sesión 4 para comandos.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Para retomar
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
cd /Users/user/Downloads/atlas-cli
|
|
99
|
+
git log --oneline -3
|
|
100
|
+
# debe mostrar:
|
|
101
|
+
# 5c06ef3 (feature) implementando mejoras significativas en prepare-context review-pr...
|
|
102
|
+
# e5a1a05 corrigiendo bug en delta --since en windows
|
|
103
|
+
# f1cb001 corrigiendo bug --agent que duplicaba tokens sin justificación
|
|
104
|
+
|
|
105
|
+
python3 -m pytest tests/ \
|
|
106
|
+
--ignore=tests/test_block2_coverage.py \
|
|
107
|
+
--deselect=tests/test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile_keeps_declared_versions \
|
|
108
|
+
-q
|
|
109
|
+
# Expected: 770 passed, 3 skipped
|
|
110
|
+
|
|
111
|
+
# Smoke test review-pr
|
|
112
|
+
sourcecode prepare-context review-pr . --since HEAD~1 --output /tmp/review.json
|
|
113
|
+
python3 -c "import json; d=json.load(open('/tmp/review.json')); print(list(d.keys()))"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
*Pausado 2026-05-16 sesión 5 — gsd:pause-work*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.30.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
|
-

|
|
225
225
|

|
|
226
226
|
|
|
227
227
|
---
|
|
@@ -255,7 +255,7 @@ pipx install sourcecode
|
|
|
255
255
|
|
|
256
256
|
```bash
|
|
257
257
|
sourcecode version
|
|
258
|
-
# sourcecode 1.
|
|
258
|
+
# sourcecode 1.30.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
|
-

|
|
6
6
|

|
|
7
7
|
|
|
8
8
|
---
|
|
@@ -36,7 +36,7 @@ pipx install sourcecode
|
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
38
|
sourcecode version
|
|
39
|
-
# sourcecode 1.
|
|
39
|
+
# sourcecode 1.30.0
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
---
|
|
@@ -681,7 +681,13 @@ class TaskContextBuilder:
|
|
|
681
681
|
error_message="review-pr requires a git repository.",
|
|
682
682
|
ci_decision="no_git_repo",
|
|
683
683
|
)
|
|
684
|
-
|
|
684
|
+
if since is None:
|
|
685
|
+
# review-pr with no --since: check only uncommitted changes.
|
|
686
|
+
# _get_git_changed_files(since=None) defaults to HEAD~1 which
|
|
687
|
+
# returns the last *committed* diff — a false positive here.
|
|
688
|
+
_pr_raw: Optional[list[str]] = self._get_uncommitted_changed_files()
|
|
689
|
+
else:
|
|
690
|
+
_pr_raw = self._get_git_changed_files(since=since)
|
|
685
691
|
if _pr_raw is None:
|
|
686
692
|
_avail_pr, _sug_pr = self._get_available_refs(since or "")
|
|
687
693
|
_pr_hints: list[str] = []
|
|
@@ -2410,6 +2416,25 @@ class TaskContextBuilder:
|
|
|
2410
2416
|
"error": True,
|
|
2411
2417
|
}
|
|
2412
2418
|
|
|
2419
|
+
def _get_uncommitted_changed_files(self) -> list[str]:
|
|
2420
|
+
"""Return files with uncommitted working-tree changes (unstaged only).
|
|
2421
|
+
|
|
2422
|
+
Used by review-pr when no --since ref is given, so we don't confuse
|
|
2423
|
+
the last *committed* diff (HEAD~1 vs HEAD) with an actual PR diff.
|
|
2424
|
+
"""
|
|
2425
|
+
import subprocess
|
|
2426
|
+
try:
|
|
2427
|
+
result = subprocess.run(
|
|
2428
|
+
["git", "diff", "--name-only", "--relative"],
|
|
2429
|
+
cwd=str(self.root), capture_output=True, text=True,
|
|
2430
|
+
encoding="utf-8", errors="replace", timeout=10,
|
|
2431
|
+
)
|
|
2432
|
+
if result.returncode == 0:
|
|
2433
|
+
return [l.strip() for l in (result.stdout or "").splitlines() if l.strip()]
|
|
2434
|
+
except (subprocess.TimeoutExpired, FileNotFoundError):
|
|
2435
|
+
pass
|
|
2436
|
+
return []
|
|
2437
|
+
|
|
2413
2438
|
def _get_git_changed_files(self, since: Optional[str] = None) -> Optional[list[str]]:
|
|
2414
2439
|
"""Get files changed since a git ref (default: HEAD~1) relative to self.root.
|
|
2415
2440
|
|
|
@@ -552,10 +552,10 @@ class TestReviewPrSuspectedAreas:
|
|
|
552
552
|
assert "ci_decision" in data
|
|
553
553
|
|
|
554
554
|
def test_review_pr_no_diff_error_when_git_but_no_changes(self, monkeypatch):
|
|
555
|
-
# Simulate: is_git_repo=True but no
|
|
555
|
+
# Simulate: is_git_repo=True but no uncommitted changes
|
|
556
556
|
from sourcecode import prepare_context as _pc
|
|
557
557
|
monkeypatch.setattr(_pc.TaskContextBuilder, "_is_git_repo", lambda self: True)
|
|
558
|
-
monkeypatch.setattr(_pc.TaskContextBuilder, "
|
|
558
|
+
monkeypatch.setattr(_pc.TaskContextBuilder, "_get_uncommitted_changed_files", lambda self: [])
|
|
559
559
|
result = _invoke("prepare-context", "review-pr", str(FIXTURE))
|
|
560
560
|
assert result.exit_code == 1
|
|
561
561
|
data = _json(result)
|
|
@@ -563,12 +563,12 @@ class TestReviewPrSuspectedAreas:
|
|
|
563
563
|
assert data.get("ci_decision") == "no_changes"
|
|
564
564
|
|
|
565
565
|
def test_review_pr_with_mocked_diff_returns_pr_fields(self, monkeypatch):
|
|
566
|
-
# Simulate: valid git repo with one changed controller file
|
|
566
|
+
# Simulate: valid git repo with one changed controller file (no --since → uncommitted path)
|
|
567
567
|
from sourcecode import prepare_context as _pc
|
|
568
568
|
monkeypatch.setattr(_pc.TaskContextBuilder, "_is_git_repo", lambda self: True)
|
|
569
569
|
monkeypatch.setattr(
|
|
570
|
-
_pc.TaskContextBuilder, "
|
|
571
|
-
lambda self
|
|
570
|
+
_pc.TaskContextBuilder, "_get_uncommitted_changed_files",
|
|
571
|
+
lambda self: ["src/main/java/com/example/UserController.java"],
|
|
572
572
|
)
|
|
573
573
|
result = _invoke("prepare-context", "review-pr", str(FIXTURE))
|
|
574
574
|
assert result.exit_code == 0, result.output
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
# Continue Here — atlas-cli --agent token reduction
|
|
2
|
-
|
|
3
|
-
**Paused:** 2026-05-16 (sesión 4)
|
|
4
|
-
**Repo:** `/Users/user/Downloads/atlas-cli`
|
|
5
|
-
**Branch:** master
|
|
6
|
-
**Commit:** `f1cb001 corrigiendo bug --agent que duplicaba tokens sin justificación` (committed)
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Estado actual
|
|
11
|
-
|
|
12
|
-
Sesión 4: refactorización de `agent_view()` en `serializer.py` completada. **Todo committed.** Working tree limpio.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Qué se hizo esta sesión
|
|
17
|
-
|
|
18
|
-
### Problema resuelto
|
|
19
|
-
|
|
20
|
-
`--agent` producía ~11.337 tokens en SAS vs ~5.885 de `--compact`, con contenido casi idéntico. Objetivo: reducir tokens significativamente manteniendo solo lo que diferencia `--agent`.
|
|
21
|
-
|
|
22
|
-
### Cambios en `agent_view()` (`src/sourcecode/serializer.py`)
|
|
23
|
-
|
|
24
|
-
| Cambio | Impacto |
|
|
25
|
-
|--------|---------|
|
|
26
|
-
| Elimina `production_dependencies` / `dev_tools` / `test_utilities` / `build_tooling` (dep_groups asdict completo) | Mayor fuente de bloat: -3.000-5.000 tokens en repos grandes |
|
|
27
|
-
| `key_dependencies`: de asdict+50 items → `name+version+role+risk_flags` solo, cap 20 | -500-1.500 tokens |
|
|
28
|
-
| Elimina `confidence_summary.hard_signals` / `soft_signals` / `ignored_signals` | -500-1.000 tokens |
|
|
29
|
-
| Elimina bloque `agent_mode` (contenido estático sin señal) | -80 tokens siempre |
|
|
30
|
-
| Elimina `signals.env_vars.keys[]` (duplica compact `env_map`) | -300-500 tokens |
|
|
31
|
-
| `signals.code_notes.top` cap 10→5, strip a `kind+path+line+text` | -200 tokens |
|
|
32
|
-
| Entry points (no-bootstrap): strip a `path+kind+confidence` (como compact) | reducción moderada |
|
|
33
|
-
| Elimina `development_entry_points` (noise para agentes de producción) | pequeña |
|
|
34
|
-
| `architecture.layers` capado a 5 | pequeña |
|
|
35
|
-
|
|
36
|
-
**Reducción estimada para SAS:** −40–60% tokens vs `--agent` anterior.
|
|
37
|
-
|
|
38
|
-
### Campos que permanecen únicos de `--agent`
|
|
39
|
-
|
|
40
|
-
| Campo | Por qué justifica tokens extra vs `--compact` |
|
|
41
|
-
|-------|----------------------------------------------|
|
|
42
|
-
| `file_relevance` (top-20 scored) | Compact no tiene equivalente. Agente sabe qué leer sin explorar. |
|
|
43
|
-
| `architecture.layers` | Compact solo tiene `architecture_summary` string. |
|
|
44
|
-
| `suspicious_dependencies` | Deps declarados sin import observado. Compact no lo tiene. |
|
|
45
|
-
| `confidence_reasons` | Explicación accionable de secciones low-confidence. Compact no lo tiene. |
|
|
46
|
-
|
|
47
|
-
### Tests actualizados
|
|
48
|
-
|
|
49
|
-
- `tests/test_block5_quality.py` — 5 tests de `agent_mode` reemplazados por tests de las nuevas garantías (no `agent_mode`, no `hard_signals`, no `env_vars.keys`, no dep_groups)
|
|
50
|
-
- `tests/test_pipeline_integrity.py` — `test_agent_splits_development_and_auxiliary_eps` → verifica que dev/aux EPs NO aparecen
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Tests al pausar
|
|
55
|
-
|
|
56
|
-
Suite completa (sin fallos pre-existentes): **todo verde**
|
|
57
|
-
|
|
58
|
-
Fallos pre-existentes (no relacionados, ya presentes antes):
|
|
59
|
-
- `test_block2_coverage.py::test_java_marked_unsupported` — DocRecord bug en doc_analyzer.py
|
|
60
|
-
- `test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile` — versión typer mismatch
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Pendiente / próximos pasos opcionales
|
|
65
|
-
|
|
66
|
-
1. **Smoke test en saint-server** para medir tokens reales antes/después:
|
|
67
|
-
```bash
|
|
68
|
-
sourcecode saint-server --agent --output /tmp/agent_new.json
|
|
69
|
-
python3 -c "import json,sys; d=json.load(open('/tmp/agent_new.json')); print('agent tokens (est):', len(json.dumps(d))//4)"
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
2. **Verificar que `suspicious_dependencies` es útil en repos reales** — en repos Python/JS (no JVM, donde el index de imports no funciona). En JVM siempre vacío por diseño.
|
|
73
|
-
|
|
74
|
-
3. **Ajustar caps según medición real**: si `file_relevance` (20 files) sigue siendo el mayor contribuyente de tokens, considerar reducir a 15. Medir con `--full` vs default.
|
|
75
|
-
|
|
76
|
-
4. **Smoke tests delta pendientes** de sesión anterior — ver sección "Smoke tests sesión 3" en historial de commits.
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Para retomar
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
cd /Users/user/Downloads/atlas-cli
|
|
84
|
-
git log --oneline -3
|
|
85
|
-
# debe mostrar: f1cb001 corrigiendo bug --agent que duplicaba tokens sin justificación
|
|
86
|
-
|
|
87
|
-
python3 -m pytest tests/ \
|
|
88
|
-
--ignore=tests/test_block2_coverage.py \
|
|
89
|
-
--deselect=tests/test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile_keeps_declared_versions \
|
|
90
|
-
-q
|
|
91
|
-
# Expected: todo verde
|
|
92
|
-
|
|
93
|
-
# Verificación rápida agent_view
|
|
94
|
-
python3 -c "
|
|
95
|
-
from sourcecode.serializer import agent_view
|
|
96
|
-
from sourcecode.schema import SourceMap, StackInfo, SourceMapMetadata
|
|
97
|
-
sm = SourceMap(stacks=[StackInfo(stack='python', primary=True)], project_type='python', project_summary='test')
|
|
98
|
-
r = agent_view(sm)
|
|
99
|
-
assert 'agent_mode' not in r
|
|
100
|
-
assert 'production_dependencies' not in r
|
|
101
|
-
assert 'hard_signals' not in r.get('confidence_summary', {})
|
|
102
|
-
print('OK — agent_mode/dep_groups/hard_signals all absent')
|
|
103
|
-
"
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
*Pausado 2026-05-16 sesión 4 — gsd:pause-work*
|
{sourcecode-1.29.0 → sourcecode-1.30.0}/.agents/skills/source-command-gsd-join-discord/SKILL.md
RENAMED
|
File without changes
|
{sourcecode-1.29.0 → sourcecode-1.30.0}/.agents/skills/source-command-gsd-review-backlog/SKILL.md
RENAMED
|
File without changes
|
{sourcecode-1.29.0 → sourcecode-1.30.0}/.agents/skills/source-command-gsd-workstreams/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sourcecode-1.29.0 → sourcecode-1.30.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|