@saptools/service-flow 0.1.2 โ†’ 0.1.3

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.3
4
+
5
+ - Propagated imported helper-returned `cds.connect.to(...)` bindings to caller-local service variables with helper-chain evidence.
6
+ - Changed operation resolution to prefer ambiguous/dynamic/unresolved graph edges over confident operation-path-only links.
7
+ - Improved chained CAP query entity extraction and table/JSON source-location evidence.
8
+ - Hardened trace traversal with repo-aware downstream scopes, stable visited keys, edge de-duplication, and cycle markers.
9
+ - Added safer clean behavior that only recursively removes marker-owned state directories.
10
+ - Added `doctor --strict` to separate entity-only service noise from action-oriented default diagnostics.
11
+
3
12
  ## 0.1.2
4
13
 
5
14
  - Hardened SQLite CLI access with busy timeouts, retries, and larger read buffers for large graph/link runs.
package/README.md CHANGED
@@ -107,7 +107,6 @@ service-flow index --workspace /path/to/workspace --repo identity-service --forc
107
107
  | `--workspace <path>` | Workspace root or a path that can load the saved workspace configuration |
108
108
  | `--repo <name>` | Index only one repository by discovered repository name |
109
109
  | `--force` | Re-index even when file hashes indicate nothing changed |
110
- | `--concurrency <n>` | Reserved for future parallel indexing; currently defaults to `1` |
111
110
 
112
111
  ### ๐Ÿ”— `service-flow link`
113
112
 
@@ -134,7 +133,8 @@ external destinations, and unresolved/dynamic candidates when edges exist.
134
133
  ```bash
135
134
  service-flow trace --workspace /path/to/workspace --repo facade-service --operation doWork
136
135
  service-flow trace --workspace /path/to/workspace --service /FacadeService --path /doWork --format json
137
- service-flow trace --workspace /path/to/workspace --handler EntryHandler --include-db --include-external --include-async
136
+ service-flow trace --workspace /path/to/workspace --handler EntryHandler --depth 1 --format json
137
+ service-flow trace --workspace /path/to/workspace --service /FacadeService --path /doWork --depth 2
138
138
  service-flow trace --workspace /path/to/workspace --repo facade-service --operation doWork --var objectCode=xx --var objectType=Thing
139
139
  ```
140
140
 
@@ -193,11 +193,11 @@ service-flow list calls --workspace /path/to/workspace --repo facade-service --o
193
193
 
194
194
  - If a remote edge is unresolved, run `service-flow list calls --operation <name>`
195
195
  and `service-flow inspect operation <name>` to compare the captured call path
196
- with indexed CDS operations.
196
+ with indexed CDS operations. Operation-path-only matches are shown as ambiguous/unresolved with candidate counts instead of high-confidence cross-repo links.
197
197
  - Service bindings are matched to outbound calls by repository, source file, and
198
198
  variable name to avoid false cross-file matches. If a helper-returned client is
199
- not linked, keep the helper local/exported and ensure it returns
200
- `cds.connect.to(...)` directly.
199
+ not linked, export the helper from a relative import target and ensure it returns
200
+ `cds.connect.to(...)` directly or through a simple wrapper. Trace evidence includes the caller variable, imported helper, source file, and exported symbol.
201
201
  - `SELECT.one.from(Entity)`, `SELECT.from(Entity)`, `INSERT.into(Entity)`,
202
202
  `UPDATE(Entity)`, and `DELETE.from(Entity)` are indexed as local database
203
203
  query entities when statically knowable.
@@ -221,10 +221,11 @@ service-flow inspect operation /doWork --workspace /path/to/workspace
221
221
 
222
222
  ### ๐Ÿฉบ `service-flow doctor`
223
223
 
224
- Print stored diagnostics. A clean workspace prints `No diagnostics recorded`.
224
+ Print stored diagnostics. Default output suppresses high-noise entity-only service checks; `--strict` includes them. A clean workspace prints `No diagnostics recorded`.
225
225
 
226
226
  ```bash
227
227
  service-flow doctor --workspace /path/to/workspace
228
+ service-flow doctor --workspace /path/to/workspace --strict
228
229
  ```
229
230
 
230
231
  ### ๐Ÿงน `service-flow clean`
@@ -239,7 +240,7 @@ service-flow clean --workspace /path/to/workspace
239
240
  | Flag | Description |
240
241
  | --- | --- |
241
242
  | `--db-only` | Remove only the configured SQLite database |
242
- | *(default)* | Remove the whole `.service-flow` state directory for the workspace |
243
+ | *(default)* | Remove the marker-owned `.service-flow` state directory; custom/unowned or dangerous parent directories are refused |
243
244
 
244
245
  ---
245
246
 
@@ -0,0 +1,7 @@
1
+ # Service Flow 0.1.3 Resolution Notes
2
+
3
+ - Imported helper bindings: TypeScript imports are resolved for relative modules. When a caller assigns `const client = await connectToService()`, the analyzer follows the imported symbol to an exported helper that returns `cds.connect.to(...)` and persists caller-variable evidence plus the helper source/export chain.
4
+ - Candidate ranking: operation-path matches start as weak candidates. A resolved operation edge requires a strong signal such as exact service path, CDS alias/destination context, or explicit dynamic variable overrides. Otherwise candidates are preserved in edge evidence as ambiguous or unresolved.
5
+ - Edge states: `REMOTE_CALL_RESOLVES_TO_OPERATION` is used only above the resolution threshold; `DYNAMIC_EDGE_CANDIDATE` preserves runtime-dependent service paths/destinations; `UNRESOLVED_EDGE` carries candidate counts and reasons when static evidence is insufficient.
6
+ - Trace cycle safety: trace queues carry repository IDs, visited scope keys are independent of depth, graph edge IDs are emitted once, and revisiting an already-seen downstream operation scope creates a cycle marker instead of recursive expansion.
7
+ - SQLite reliability: the package uses WAL, foreign keys, busy timeouts, and retries around the SQLite adapter. Statement failures throw before output rendering so commands do not report successful JSON/table/Mermaid results after an internal database failure.