@mrclrchtr/supi-code-intelligence 6.2.0 → 6.4.0
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/README.md +2 -0
- package/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -1
- package/node_modules/@mrclrchtr/supi-core/package.json +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/README.md +2 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/ignore/README.md +52 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/ignore/index.js +785 -129
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/ignore/legacy.js +660 -98
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/ignore/package.json +10 -4
- package/node_modules/@mrclrchtr/supi-lsp/package.json +3 -3
- package/node_modules/@mrclrchtr/supi-lsp/src/api.ts +16 -2
- package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/workspace-sentinels.ts +4 -32
- package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/workspace-sources.ts +108 -0
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-process-crash-report.ts +106 -0
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-recovery.ts +4 -4
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +513 -113
- package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-diagnostics.ts +43 -15
- package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-registry.ts +40 -33
- package/node_modules/@mrclrchtr/supi-lsp/src/session/workspace-lsp-runtime.ts +36 -6
- package/node_modules/@mrclrchtr/supi-lsp/src/summary.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/src/workspace-path-policy.ts +18 -9
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +1 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/README.md +29 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.cjs +99 -19
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.cjs.map +4 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.js +94 -18
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.js.map +4 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.wasm.map +14 -14
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/package.json +13 -8
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.cjs +97 -19
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.cjs.map +4 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.cts +28 -8
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.cts.map +1 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.ts +28 -8
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.ts.map +1 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.js +92 -18
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.js.map +4 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.wasm.map +17 -17
- package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +7 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm.json +2 -2
- package/package.json +5 -5
- package/src/session/health-refresh.ts +19 -12
- package/src/session/health-types.ts +8 -3
- package/src/session/health-workflow.ts +7 -3
- package/src/session/session.ts +12 -5
- package/src/substrate/lsp/maintenance.ts +53 -47
- package/src/substrate/lsp/settings.ts +2 -1
- package/src/substrate/lsp/source-tracking.ts +247 -0
- package/src/tool/code_find/guidance.ts +3 -3
- package/src/tool/code_graph/guidance.ts +2 -2
- package/src/tool/code_health/guidance.ts +3 -3
- package/src/tool/code_health/markdown.ts +21 -5
- package/src/tool/code_health/refresh-outcome.ts +48 -7
- package/src/tool/code_health/refresh-status.ts +83 -16
- package/src/tool/code_health/tui.ts +4 -0
- package/src/tool/code_inspect/guidance.ts +5 -3
- package/src/tool/code_orientation/guidance.ts +3 -4
- package/src/tool/code_refactor_apply/guidance.ts +1 -1
- package/src/tool/code_refactor_plan/guidance.ts +3 -5
- package/src/tool/code_resolve/guidance.ts +3 -3
- package/src/tool/guidance.ts +11 -9
package/README.md
CHANGED
|
@@ -86,6 +86,8 @@ The package adds eight tools that Pi selects as needed:
|
|
|
86
86
|
|
|
87
87
|
Pi's built-in `grep` remains the right tool for literal or regular-expression searches; these tools add symbol and source-structure awareness.
|
|
88
88
|
|
|
89
|
+
`code_health({ refresh: true })` reports process-crash recovery as route-level data. It shows exact recovered, skipped, failed, and exhausted counts. It shows up to 16 server and workspace-relative root entries, plus the exact number of omitted entries. A skipped route gives the `use-exact-file` action. A failed or exhausted route gives the `reload-workspace` action. Markdown and expanded TUI output show route entries and bounded failure details. Compact TUI output shows the counts. Current and retained refresh results use the same outcome format.
|
|
90
|
+
|
|
89
91
|
## Install
|
|
90
92
|
|
|
91
93
|
```bash
|
|
@@ -60,6 +60,8 @@ Server readiness follows LSP work-done progress: a created progress token is pen
|
|
|
60
60
|
|
|
61
61
|
A workspace diagnostic refresh returns exact coverage counts for requested, confirmed, unconfirmed, failed, and removed tracked documents. `code_health` marks tracked-file diagnostics as complete when each requested document is confirmed or known to be removed. It shows non-empty tentative diagnostics as partial entries, reports the same coverage counts in summary and detailed views, and explains when a diagnostic republish is needed. A refresh attempt does not prove fresh evidence by itself. A removed file is reported by the refresh that finds it and is not retained in later tracked-file snapshots.
|
|
62
62
|
|
|
63
|
+
An explicit diagnostic refresh also returns a bounded process-crash report. It gives exact recovered, skipped, failed, and exhausted route counts, up to 16 route entries, and an omitted-entry count. Each entry names the server and workspace-relative root. A skipped route recommends an exact-file refresh; a failed or exhausted route recommends a workspace reload. A failed entry may include only the caught error message, limited to 512 characters. Broad refreshes select only routes whose root overlaps the requested directory and use retained tracked-file paths from the crash snapshot. Exact-file readiness reports only the file's route. Recovery does not cold-start routes, consume an attempt for a skip, or add a second attempt.
|
|
64
|
+
|
|
63
65
|
An explicit recovery pass restarts a push-only client only on a protocol-stall signal (a readiness stall, or repeated JSON-RPC request failures) — never on unconfirmed evidence alone, because the reopen-resync fallback recovers unconfirmed documents without discarding warm server state. It never restarts a pull-capable client because push evidence is absent, and it never restarts a client during passive health display. Each client route restarts at most once per workspace invalidation generation. The replacement process has a fixed startup bound of 5 seconds; exceeding the bound fails closed as start-failed without retry. Recovery telemetry records the outcome, elapsed time, attempted clients, restart count, the bounded server names involved, and the stall signal that triggered a restart, without changing the evidence semantics of the result.
|
|
64
66
|
|
|
65
67
|
### Optional diagnostic configuration
|
|
@@ -384,6 +384,58 @@ ignore({
|
|
|
384
384
|
|
|
385
385
|
# Upgrade Guide
|
|
386
386
|
|
|
387
|
+
## Known differences from `git`
|
|
388
|
+
|
|
389
|
+
`ignore` aims to behave exactly like `git check-ignore`, and its test suite
|
|
390
|
+
verifies every fixture against the real `git` binary. A few divergences are
|
|
391
|
+
deliberate or inherited from how JavaScript differs from C. They are listed
|
|
392
|
+
here so you do not have to discover them in production.
|
|
393
|
+
|
|
394
|
+
### Characters, not bytes
|
|
395
|
+
|
|
396
|
+
`git` matches patterns against the **UTF-8 bytes** of a path; JavaScript
|
|
397
|
+
strings are sequences of UTF-16 code units, and `ignore` matches those.
|
|
398
|
+
The two agree on ASCII and disagree on the width of everything else:
|
|
399
|
+
|
|
400
|
+
```js
|
|
401
|
+
// git needs two '?' to match 'é' (two bytes); ignore needs one:
|
|
402
|
+
ignore().add('x?y').ignores('xéy') // true; git: false
|
|
403
|
+
|
|
404
|
+
// a range cannot span multi-byte characters in git at all:
|
|
405
|
+
ignore().add('m[À-È]n').ignores('mÁn') // true; git: false
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
With `ignorecase` enabled, `git` folds case for ASCII only, while
|
|
409
|
+
JavaScript's `i` flag folds Unicode — so `É.txt` ignores `é.txt` here and
|
|
410
|
+
not in `git`. For ASCII paths and patterns there is no difference.
|
|
411
|
+
|
|
412
|
+
### `ignorecase` defaults to `true`
|
|
413
|
+
|
|
414
|
+
`git` on a case-sensitive filesystem (production Linux) is case-sensitive.
|
|
415
|
+
`ignore` is case-insensitive unless you pass `ignorecase: false`. If your
|
|
416
|
+
code runs against a real repository, pass the value of the repository's
|
|
417
|
+
`core.ignorecase` explicitly.
|
|
418
|
+
|
|
419
|
+
### `***` and friends follow the documentation, not the binary
|
|
420
|
+
|
|
421
|
+
gitignore(5) says a run of more than two asterisks is "considered regular
|
|
422
|
+
asterisks". The `git` binary, however, strips the literal prefix of a
|
|
423
|
+
pattern before matching, which makes patterns like `***/foo`, `a/***` and
|
|
424
|
+
`a**/b` behave as `**` globstars there. `ignore` follows the documented
|
|
425
|
+
behavior. If you need the globstar, write `**`.
|
|
426
|
+
|
|
427
|
+
### `checkIgnore()` and a directory passed with a trailing slash
|
|
428
|
+
|
|
429
|
+
`git check-ignore` treats its arguments as plain strings: handed `a/`, it
|
|
430
|
+
computes an empty basename, with surprising results — `a/**` matches `a/`
|
|
431
|
+
itself, and a negated basename pattern like `!a` fails to match it. During
|
|
432
|
+
an actual traversal git behaves differently: `a/**` does **not** exclude
|
|
433
|
+
the directory `a` (that is what allows it to descend and exclude the
|
|
434
|
+
contents), and `!a` negates it normally. `ignore` models the traversal
|
|
435
|
+
semantics: `'a/'` means *the directory a*, with its basename `a/`. Where
|
|
436
|
+
the two disagree, `ignore` sides with what `git status` actually does
|
|
437
|
+
rather than with the string-level quirks of `check-ignore`.
|
|
438
|
+
|
|
387
439
|
## Upgrade 4.x -> 5.x
|
|
388
440
|
|
|
389
441
|
Since `5.0.0`, if an invalid `Pathname` passed into `ig.ignores()`, an error will be thrown, unless `options.allowRelative = true` is passed to the `Ignore` factory.
|