sourcecode 1.72.0__tar.gz → 2.0.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.72.0 → sourcecode-2.0.0}/.gitignore +4 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/CHANGELOG.md +97 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/CONTRIBUTING.md +3 -3
- {sourcecode-1.72.0 → sourcecode-2.0.0}/PKG-INFO +125 -110
- {sourcecode-1.72.0 → sourcecode-2.0.0}/README.md +124 -109
- {sourcecode-1.72.0 → sourcecode-2.0.0}/pyproject.toml +3 -2
- sourcecode-2.0.0/scripts/compare_integration_engines.py +62 -0
- sourcecode-2.0.0/scripts/customer_smoke_test.sh +87 -0
- sourcecode-2.0.0/src/sourcecode/__init__.py +7 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/architecture_analyzer.py +63 -55
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/ast_extractor.py +130 -135
- sourcecode-2.0.0/src/sourcecode/call_surface.py +112 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/canonical_ir.py +62 -1
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/cli.py +254 -198
- sourcecode-2.0.0/src/sourcecode/context_graph.py +1022 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/contract_pipeline.py +16 -1
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/java.py +99 -8
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/parsers.py +23 -0
- sourcecode-2.0.0/src/sourcecode/dynamic_argument_surface.py +54 -0
- sourcecode-2.0.0/src/sourcecode/endpoint_literals.py +71 -0
- sourcecode-2.0.0/src/sourcecode/evidence_provider.py +90 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/explain.py +28 -13
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/graph_analyzer.py +82 -8
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/license.py +42 -13
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/onboarding/applier.py +14 -6
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/registry.py +22 -22
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/runner.py +2 -2
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/server.py +24 -24
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp_nudge.py +1 -1
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/migrate_check.py +4 -12
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/pr_comment_renderer.py +7 -6
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/prepare_context.py +10 -13
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/repository_ir.py +917 -141
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/ris.py +1 -1
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/semantic_analyzer.py +146 -9
- sourcecode-2.0.0/src/sourcecode/semantic_impact_engine.py +403 -0
- sourcecode-2.0.0/src/sourcecode/semantic_integration_engine.py +299 -0
- sourcecode-2.0.0/src/sourcecode/semantic_services.py +229 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/serializer.py +30 -33
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/consent.py +1 -1
- sourcecode-2.0.0/src/sourcecode/type_usage_surface.py +101 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/validation_surface.py +173 -205
- {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/functions/README.md +1 -1
- sourcecode-2.0.0/supabase/sql/licensing_schema.sql +108 -0
- sourcecode-1.72.0/src/sourcecode/__init__.py +0 -3
- sourcecode-1.72.0/src/sourcecode/flow_analyzer.py +0 -671
- sourcecode-1.72.0/src/sourcecode/integration_detector.py +0 -392
- {sourcecode-1.72.0 → sourcecode-2.0.0}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/.ruff.toml +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/LICENSE +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/SECURITY.md +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/raw +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/cache.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/security_config.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/version_check.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -35,6 +35,10 @@ Thumbs.db
|
|
|
35
35
|
|
|
36
36
|
.planning
|
|
37
37
|
|
|
38
|
+
# ContextGraph baseline — full canonical outputs (multi-MB, from external repos).
|
|
39
|
+
# The light oracle (index.json) and convergence.json ARE committed.
|
|
40
|
+
tests/contextgraph_baseline/baseline/artifacts/
|
|
41
|
+
|
|
38
42
|
# Supabase local temp
|
|
39
43
|
supabase/.temp/
|
|
40
44
|
# Internal agent playbook (not distributed)
|
|
@@ -1,5 +1,102 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.0.0] — 2026-07-06
|
|
4
|
+
|
|
5
|
+
**ASK Engine 2.0** — the product identity is now final. The engine is unchanged;
|
|
6
|
+
this major marks the CLI/product rename and is fully backward compatible.
|
|
7
|
+
|
|
8
|
+
### Changed — canonical command is now `ask`
|
|
9
|
+
|
|
10
|
+
- **`ask` is the canonical CLI command.** `ask impact`, `ask migrate-check`,
|
|
11
|
+
`ask review-pr`, `ask mcp init`, `ask activate …` — one short verb that matches
|
|
12
|
+
the product name (ASK Engine).
|
|
13
|
+
- **`sourcecode` becomes a deprecated compatibility alias.** It keeps working
|
|
14
|
+
(same single implementation, `prog_name` pinned to `ask`), prints a one-line
|
|
15
|
+
deprecation notice **only on an interactive terminal**, and forwards to `ask`.
|
|
16
|
+
Pipes and agents that still call `sourcecode` get byte-identical stdout **and**
|
|
17
|
+
clean (JSON-only) stderr — the machine contract is unchanged. The alias will be
|
|
18
|
+
removed in a future major.
|
|
19
|
+
- **New welcome wordmark**: a large `ASK` block with an `E N G I N E` label
|
|
20
|
+
replaces the old `SOURCE`/`CODE` banner. Help and banners read `CLI: ask`.
|
|
21
|
+
- **Config home moved to `~/.ask`** (canonical writes); the legacy `~/.sourcecode`
|
|
22
|
+
is still read as a fallback, so **no existing user loses their license or config**.
|
|
23
|
+
Cache dir (`.sourcecode-cache/`) and `SOURCECODE_*` env vars are unchanged.
|
|
24
|
+
- **MCP**: `ask mcp init` registers the client entry under `ask`; a pre-existing
|
|
25
|
+
`sourcecode` entry is recognized and migrated (and both are removed on
|
|
26
|
+
`mcp remove`).
|
|
27
|
+
- **Docs**: README, user guide, manual, tiers, demo and onboarding now say
|
|
28
|
+
**ASK Engine** and use `ask …` in every example. Package/install/config and
|
|
29
|
+
compatibility references are preserved and the compatibility strategy is
|
|
30
|
+
documented in `docs/PRODUCT_IDENTITY.md` (normative).
|
|
31
|
+
|
|
32
|
+
### Compatibility
|
|
33
|
+
|
|
34
|
+
- **PyPI/Homebrew distribution stays `sourcecode` this release**; installing it
|
|
35
|
+
provides both the `ask` and `sourcecode` commands. Renaming the distribution to
|
|
36
|
+
`ask-engine` is a separate, explicitly-breaking future change.
|
|
37
|
+
- Python package/import name (`sourcecode`), MCP protocol identity, cache format,
|
|
38
|
+
and all serialized/JSON outputs are unchanged.
|
|
39
|
+
|
|
40
|
+
### Also in this line (identity + precision, pre-2.0 increments)
|
|
41
|
+
|
|
42
|
+
- **Impact/`review-pr`**: a changed repository/service now surfaces **every**
|
|
43
|
+
affected entry point (controller) instead of collapsing an N-controller blast
|
|
44
|
+
radius to one — bounded by `max_impacts`, no new semantic fact, hash-neutral.
|
|
45
|
+
- **Product identity consolidation**: audited every `sourcecode` occurrence and
|
|
46
|
+
established `docs/PRODUCT_IDENTITY.md` as the normative product↔CLI mapping.
|
|
47
|
+
|
|
48
|
+
## [1.73.0] — 2026-07-01
|
|
49
|
+
|
|
50
|
+
### Fixed — audit reliability on a large non-Boot Spring monolith (Alfresco Community Repo field test)
|
|
51
|
+
|
|
52
|
+
A real architecture audit of **alfresco-community-repo** (`fe6dd26c3f`; 6,549
|
|
53
|
+
classes, 24 Maven modules, Spring 7 **without Spring Boot**, iBatis persistence,
|
|
54
|
+
Camel/ActiveMQ messaging, Acegi-derived security, WebScript REST surface)
|
|
55
|
+
surfaced seven defects — each capable of leading an automated consultant to a
|
|
56
|
+
false conclusion. All fixed at root cause with regression coverage and
|
|
57
|
+
re-verified on the live repo.
|
|
58
|
+
|
|
59
|
+
- **`--compact` did not resolve `language_version` from a Maven property (BUG #1).**
|
|
60
|
+
Alfresco declares `<maven.compiler.source>${java.version}</...>` chained to
|
|
61
|
+
`<java.version>21</java.version>`; the Java-stack detector picked the first key
|
|
62
|
+
and emitted the literal `${java.version}` while `migrate-check` resolved it. A
|
|
63
|
+
shared `substitute_maven_properties` resolver (in `detectors/parsers.py`) now
|
|
64
|
+
backs BOTH paths — `--compact` reports `21`.
|
|
65
|
+
- **`explain --output` wrote Markdown to a `.json` file with no warning (BUG #2).**
|
|
66
|
+
Broke any consumer assuming JSON parity across subcommands. `explain` now infers
|
|
67
|
+
JSON from a `.json` output extension (an explicit `--format` always wins), and
|
|
68
|
+
`--help` documents that its default output is human-readable text/Markdown.
|
|
69
|
+
- **`entry_points.bootstrap` false positives on `*Application.java` by name (BUG #3).**
|
|
70
|
+
Alfresco's XSD/JAXB-generated `Application.java` model classes (no `main()`, no
|
|
71
|
+
bootstrap annotation, in a WAR) were listed as application entry points. A file
|
|
72
|
+
now qualifies only with a real `main(String[])` or a bootstrap annotation
|
|
73
|
+
(`@SpringBootApplication` / WAR `SpringBootServletInitializer` / `@QuarkusMain`
|
|
74
|
+
/ …); the serializer's name-based bootstrap fallback was removed.
|
|
75
|
+
- **"MyBatis" framework declared against the tool's own zero evidence (BUG #4).**
|
|
76
|
+
A `org.mybatis:mybatis` pom coordinate alone produced a "MyBatis" framework label
|
|
77
|
+
while the `mybatis` block reported `mapper_interfaces: 0, xml_files: 0` (Alfresco's
|
|
78
|
+
SQL layer is iBatis-style `*-SqlMap.xml`, surfaced separately). MyBatis is now
|
|
79
|
+
emitted only with real usage evidence — an `@Mapper` interface or a `*Mapper.xml`.
|
|
80
|
+
- **`export --integrations` missed ActiveMQ/Camel messaging (BUG #5).**
|
|
81
|
+
JMS detection recognized little beyond a direct `JmsTemplate`, reporting 1
|
|
82
|
+
integration on a repo with an ActiveMQ connection-factory config and Camel routes.
|
|
83
|
+
Added `ActiveMQSslConnectionFactory` / pooled / caching connection-factory tokens
|
|
84
|
+
and an Apache Camel route pass (literal `activemq:`/`jms:` endpoint URIs, plus
|
|
85
|
+
variable-URI `from()/to()` routes inside a `RouteBuilder` as honest low-confidence
|
|
86
|
+
`camel-route` messaging records). Alfresco JMS/messaging surface: 1 → 5.
|
|
87
|
+
- **`readiness_score` Hibernate false-positive — regression test (BUG #6).**
|
|
88
|
+
v1.63.0 once scored this Hibernate-free repo 42/100 with a phantom
|
|
89
|
+
`hibernate_rewrite` headline (~46 days). Already fixed by v1.72.0; added an
|
|
90
|
+
explicit regression test (`no Hibernate/JPA imports → hibernate.detected False,
|
|
91
|
+
headline_blocker never hibernate_rewrite`) so a future detector refactor cannot
|
|
92
|
+
reintroduce it.
|
|
93
|
+
- **`endpoints` / C4 `api_surface` returned 0 with no explanation (BUG #7).**
|
|
94
|
+
On an obvious API server (WebScripts: XML descriptor + handler class, not
|
|
95
|
+
`@RestController`), a bare `total: 0` reads as "no public API". `endpoints` now
|
|
96
|
+
emits a first-class `zero_result_reason` naming the routing patterns searched and
|
|
97
|
+
any non-Spring surface detected (Alfresco: 482 WebScript descriptors / 901 handler
|
|
98
|
+
classes), and the C4 export's `api_surface` carries the same explanation.
|
|
99
|
+
|
|
3
100
|
## [1.72.0] — 2026-07-01
|
|
4
101
|
|
|
5
102
|
### Fixed — correctness on a large real-world Spring Boot 3 monolith (Broadleaf Commerce CE field test)
|
|
@@ -30,8 +30,8 @@ This installs `sourcecode` in editable mode with all development dependencies (`
|
|
|
30
30
|
### Run the CLI locally
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
ask . --agent
|
|
34
|
+
ask . prepare-context explain
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
### Run tests
|
|
@@ -150,7 +150,7 @@ Keep commits atomic. One logical change per commit.
|
|
|
150
150
|
## Reporting bugs
|
|
151
151
|
|
|
152
152
|
Open an issue with:
|
|
153
|
-
- `
|
|
153
|
+
- `ask --version` output
|
|
154
154
|
- Command you ran
|
|
155
155
|
- Expected behavior
|
|
156
156
|
- Actual behavior / error output
|