knodin 0.7.5 → 0.8.2
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 +18 -3
- package/benchmarks/competitors/SYNTHESIS.md +66 -0
- package/dist/bin/cli.js +371 -66
- package/dist/bin/launcher.js +16 -1
- package/dist/src/agent-integration.js +82 -16
- package/dist/src/artifact-refresh.js +2 -1
- package/dist/src/cli-args.js +19 -1
- package/dist/src/cli-model.js +28 -2
- package/dist/src/codeflow-replay.js +2 -1
- package/dist/src/compare.js +39 -0
- package/dist/src/competitive-constraints.js +2 -1
- package/dist/src/competitive-runner.js +4 -4
- package/dist/src/context-export.js +3 -2
- package/dist/src/context.js +1 -1
- package/dist/src/deterministic-random.js +34 -0
- package/dist/src/diagnostics-write-helper.js +473 -0
- package/dist/src/diagnostics.js +1160 -133
- package/dist/src/doctor.js +3 -1
- package/dist/src/engine/ann-hnsw.js +2 -12
- package/dist/src/engine/file-walker.js +8 -2
- package/dist/src/engine/git-history.js +12 -12
- package/dist/src/engine/index.js +1174 -313
- package/dist/src/engine/sarif-import.js +341 -0
- package/dist/src/engine/scip-import.js +28 -13
- package/dist/src/engine/source-policy.js +16 -0
- package/dist/src/engine/state-paths.js +175 -0
- package/dist/src/execution-profile.js +15 -10
- package/dist/src/failure-diagnosis.js +7 -1
- package/dist/src/graph-layout.js +173 -0
- package/dist/src/index-activity.js +2 -1
- package/dist/src/init.js +86 -45
- package/dist/src/lifecycle-health.js +41 -9
- package/dist/src/mcp-graph-worker.js +69 -0
- package/dist/src/mcp-reliability.js +154 -0
- package/dist/src/mcp-worker-supervisor.js +350 -0
- package/dist/src/mirror.js +290 -0
- package/dist/src/node-runtime.js +157 -0
- package/dist/src/output-compression.js +2 -1
- package/dist/src/output-telemetry.js +16 -11
- package/dist/src/progressive-evidence.js +30 -26
- package/dist/src/pure-compression-cli.js +4 -3
- package/dist/src/relationship-adapters.js +15 -8
- package/dist/src/release-preflight.js +13 -10
- package/dist/src/repair-lease.js +85 -0
- package/dist/src/repository-init-process.js +13 -9
- package/dist/src/repository-management.js +34 -4
- package/dist/src/response-budget.js +8 -6
- package/dist/src/server.js +80 -35
- package/dist/src/structural-fast-path.js +16 -10
- package/dist/src/structural-snapshot.js +6 -2
- package/dist/src/system-config.js +25 -2
- package/dist/src/tools/knodin-tools.js +142 -31
- package/dist/src/update-ceremony.js +9 -5
- package/dist/src/update-trust.js +5 -4
- package/dist/src/visualization.js +372 -19
- package/dist/src/worktree-lifecycle.js +5 -2
- package/docs/BEHAVIORAL-CONTRACT.md +72 -0
- package/docs/CLI.md +20 -1
- package/docs/COMPARISON.md +403 -0
- package/docs/COMPETITIVE-LANDSCAPE-2026-08.md +267 -0
- package/docs/DIAGNOSTICS.md +46 -11
- package/docs/HANDOFF.md +180 -0
- package/docs/INSTALLATION.md +21 -2
- package/docs/MCP.md +59 -8
- package/docs/PT-ACCESS-RECOMMENDATION.md +5 -7
- package/docs/REPOSITORIES-AND-WORKTREES.md +18 -6
- package/docs/SCIP-IMPORT.md +5 -0
- package/docs/TOKEN-OPTIMIZER-SCORECARD.md +79 -0
- package/docs/releases/0.5.1.md +4 -4
- package/docs/releases/0.8.0.md +74 -0
- package/docs/releases/0.8.2.md +34 -0
- package/package.json +17 -4
- package/roadmap/competitive-roadmap.md +3801 -0
- package/schemas/release-attestation-v1.schema.json +1 -1
- package/schemas/support-bundle-v2.schema.json +212 -0
package/docs/MCP.md
CHANGED
|
@@ -17,10 +17,13 @@ recoverable hard-budget continuations. See `docs/PROGRESSIVE-EVIDENCE.md`.
|
|
|
17
17
|
- **CLI-only:** `knodin init --scope cli-only` keeps the local graph and Git
|
|
18
18
|
refresh behavior without MCP registration.
|
|
19
19
|
|
|
20
|
-
knodin supports project adapters for
|
|
21
|
-
Antigravity. A generic MCP handshake is release-gated.
|
|
22
|
-
reported only when its adapter/configuration is
|
|
23
|
-
every client version or platform.
|
|
20
|
+
knodin supports project adapters for GitHub Copilot in VS Code, Claude Code,
|
|
21
|
+
Codex, Gemini CLI, and Antigravity. A generic MCP handshake is release-gated.
|
|
22
|
+
Named-client status is reported only when its adapter/configuration is
|
|
23
|
+
detected; it is not proof of every client version or platform. Personal-scope
|
|
24
|
+
Copilot detection requires the VS Code CLI and an installed `GitHub.copilot`
|
|
25
|
+
or `GitHub.copilot-chat` extension; team scope can write the adapter without
|
|
26
|
+
claiming that the local client is installed.
|
|
24
27
|
|
|
25
28
|
## Canonical command
|
|
26
29
|
|
|
@@ -48,6 +51,21 @@ Manual JSON configuration:
|
|
|
48
51
|
}
|
|
49
52
|
```
|
|
50
53
|
|
|
54
|
+
GitHub Copilot in VS Code uses `.vscode/mcp.json` and the VS Code `servers`
|
|
55
|
+
shape:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"servers": {
|
|
60
|
+
"knodin": {
|
|
61
|
+
"type": "stdio",
|
|
62
|
+
"command": "knodin",
|
|
63
|
+
"args": ["serve"]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
51
69
|
Codex TOML:
|
|
52
70
|
|
|
53
71
|
```toml
|
|
@@ -103,10 +121,43 @@ If the handshake fails:
|
|
|
103
121
|
MCP requests never trigger update-network checks. Cached update state is
|
|
104
122
|
available through the `doctor` operation without changing stdio framing.
|
|
105
123
|
When local diagnostics have been explicitly enabled for the repository, an MCP
|
|
106
|
-
operation failure records the same bounded
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
124
|
+
operation failure records the same bounded failure envelope as the CLI. It
|
|
125
|
+
never records request arguments, queries, source, or raw responses. The single
|
|
126
|
+
gateway also exposes `operation: "diagnostics"` with `telemetryAction: "report"`
|
|
127
|
+
for preview or `"export"` for archive. It uses the exact schema-v2 explicit-allowlist builder
|
|
128
|
+
as `knodin diagnostics preview|archive`; no failure or archive is uploaded
|
|
129
|
+
automatically. See `docs/DIAGNOSTICS.md`.
|
|
130
|
+
|
|
131
|
+
## Request reliability and recovery
|
|
132
|
+
|
|
133
|
+
Every tool call has a client request ID and generated trace ID. Graph operations
|
|
134
|
+
are serialized inside one warm child process per repository/worktree; no engine
|
|
135
|
+
or database handle is shared across those workers. The gateway owns deadlines,
|
|
136
|
+
cancellation, a 250 ms cooperative cleanup grace, hard termination, and a
|
|
137
|
+
bounded three-start-per-minute restart policy. The graph-independent `docs`
|
|
138
|
+
operation remains available in the gateway while a worker is being replaced.
|
|
139
|
+
`KNODIN_MCP_DEADLINE_MS` may be set to a positive value up to 300000 for local
|
|
140
|
+
testing of the cooperative repair path.
|
|
141
|
+
|
|
142
|
+
Checked-in process replays prove a real SQLite held lock, abrupt worker exit,
|
|
143
|
+
disconnect/cancellation race against a stuck worker, hard kill, bounded restart,
|
|
144
|
+
warm-worker reuse, worktree isolation, and the next independent success. The
|
|
145
|
+
raw CLI stdio replay also executes a real MCP status call through the child
|
|
146
|
+
boundary. Memory and deadline diagnoses remain bounded signals, not proof of an
|
|
147
|
+
operating-system root cause.
|
|
148
|
+
|
|
149
|
+
The gateway appends metadata-only lifecycle records to
|
|
150
|
+
`.knodin/mcp-reliability.jsonl`. Synchronously appended complete JSONL records
|
|
151
|
+
are retained after ordinary or abrupt worker exit, rotate at 256 KiB or
|
|
152
|
+
seven days (one prior generation), and contain only operation, correlation,
|
|
153
|
+
timing, progress sequence, and classified state. Restart and recovery records
|
|
154
|
+
link the failed predecessor trace to the next successful request.
|
|
155
|
+
They never include request arguments, queries, source, responses, environment,
|
|
156
|
+
credentials, remotes, or repository paths. Progress is advisory, emitted only
|
|
157
|
+
when the client supplies a progress token, and bounded to the request deadline;
|
|
158
|
+
the journal retains at most 64 progress records per request. Each linked
|
|
159
|
+
worktree writes only inside its own `.knodin` directory. Power-loss durability
|
|
160
|
+
beyond complete synchronous records is not claimed.
|
|
110
161
|
|
|
111
162
|
The `review` operation serializes graph impact, test gaps, structural
|
|
112
163
|
centrality, and bounded Git-history facts separately. Churn, co-change, and
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
# P&T access through Docusign GitHub Enterprise Server
|
|
2
2
|
|
|
3
|
-
The knodin GHES path is
|
|
4
|
-
`github.docusignhq.com/Enterprise-Apps/knodin
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
namespace; product changes must continue to originate in the authoritative
|
|
9
|
-
GitHub SaaS repository, not the downstream mirror.
|
|
3
|
+
The knodin GHES path is
|
|
4
|
+
`github.docusignhq.com/Enterprise-Apps/knodin`. It is a read-only downstream
|
|
5
|
+
mirror of the authoritative GitHub SaaS repository
|
|
6
|
+
`DTS-Productivity-Engineering/knodin`; product changes must originate in
|
|
7
|
+
that source repository, never in the mirror or the `knodin/knodin` Homebrew tap.
|
|
10
8
|
|
|
11
9
|
The legacy `v0.3.0` release and its original artifact digest were verified on
|
|
12
10
|
2026-08-01. That evidence does not certify a renamed knodin artifact or path.
|
|
@@ -55,14 +55,26 @@ doctor` and the single MCP gateway are unchanged.
|
|
|
55
55
|
|
|
56
56
|
Sibling location never establishes system membership or a relationship.
|
|
57
57
|
`repos init` works sequentially and performs each live repository operation in
|
|
58
|
-
a disposable process
|
|
58
|
+
a disposable process. Memory is uncapped by default so a legitimate large
|
|
59
|
+
repository is not killed by a product-wide guess. Operators can set an explicit
|
|
60
|
+
per-repository RSS ceiling for one run with `--memory-limit-mib <mib>` or for a
|
|
61
|
+
configured portfolio in `knodin.yaml`; the CLI value takes precedence:
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
schemaVersion: 1
|
|
65
|
+
repositoryInitialization:
|
|
66
|
+
memoryLimitMiB: 1024
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The minimum explicit ceiling is 128 MiB. A worker that exceeds a configured
|
|
59
70
|
ceiling or its deadline has its process group terminated, produces a
|
|
60
71
|
repository-scoped failure, and does not prevent later repositories from being
|
|
61
|
-
processed. JSON records the observed per-repository peak, enforced ceiling
|
|
62
|
-
and count of ceiling failures. The
|
|
63
|
-
interval rather than a claim that transient
|
|
64
|
-
one sample. Windows can terminate the worker
|
|
65
|
-
same descendant process-group guarantee as
|
|
72
|
+
processed. JSON records the observed per-repository peak, the enforced ceiling
|
|
73
|
+
or `null` when uncapped, and the count of ceiling failures. The 250 ms RSS
|
|
74
|
+
heartbeat is a bounded enforcement interval rather than a claim that transient
|
|
75
|
+
allocation can never overshoot by one sample. Windows can terminate the worker
|
|
76
|
+
process but cannot provide the same descendant process-group guarantee as
|
|
77
|
+
macOS/Linux.
|
|
66
78
|
|
|
67
79
|
Initialization supports `--dry-run` and preserves a healthy graph when only
|
|
68
80
|
managed integration needs refreshing. Dry-run never starts a worker, opens a
|
package/docs/SCIP-IMPORT.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Optional SCIP import
|
|
2
2
|
|
|
3
|
+
> **Bounds are overridable.** Every limit below can be raised with a flag, and
|
|
4
|
+
> each refusal names the flag and a value that would admit the file:
|
|
5
|
+
> `--scip-max-bytes`, `--scip-max-files`, `--scip-max-facts`,
|
|
6
|
+
> `--scip-timeout-ms`. A ceiling the operator cannot move is just a failure.
|
|
7
|
+
|
|
3
8
|
knodin can add compiler-produced SCIP facts to its local graph without running a
|
|
4
9
|
language server. The tier is deliberately opt-in:
|
|
5
10
|
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Reckon vs Token Optimizer — evidence-linked scorecard
|
|
2
|
+
|
|
3
|
+
This scorecard evaluates Token Optimizer at immutable commit
|
|
4
|
+
`a2b9cef5efdfcf0393e9e7a5ded229ffd9f613d7`. The machine-auditable
|
|
5
|
+
[scorecard manifest](../benchmarks/evaluations/token-optimizer-20260730/scorecard.json)
|
|
6
|
+
links every disposition to implementation, verification source/test paths, benchmark
|
|
7
|
+
evidence, and a limitation. The [methodology](../benchmarks/evaluations/token-optimizer-20260730/methodology.md)
|
|
8
|
+
and [raw replay](../benchmarks/evaluations/token-optimizer-20260730/raw-behavior-replay-20260730.json)
|
|
9
|
+
are the authority for measured values.
|
|
10
|
+
|
|
11
|
+
## Executive result
|
|
12
|
+
|
|
13
|
+
Reckon passes the pinned operation-level oracle for all five safe structural
|
|
14
|
+
workflows and is smaller in real tokens and faster at warm p50/p95 for each. The
|
|
15
|
+
oracles are deliberately narrow: three Python names, one byte-exact Python
|
|
16
|
+
method body, two exact file sets, and one eligible-file count. They do not prove
|
|
17
|
+
signature, nesting, kind, or construct accuracy across all seven languages.
|
|
18
|
+
Reckon has the stronger
|
|
19
|
+
verified compression budget/recovery contract, local opt-in real-token
|
|
20
|
+
telemetry, graph-backed failure diagnosis, freshness evidence, lifecycle
|
|
21
|
+
automation, and implemented signed-update machinery. These are bounded results,
|
|
22
|
+
not proof that Reckon is better in every repository or environment.
|
|
23
|
+
|
|
24
|
+
Knodin does not copy the competitor's unrestricted shell command runner. C58's
|
|
25
|
+
portable prototype remains rejected. C88 instead ships immutable, doubly
|
|
26
|
+
enabled repository profiles on the certified macOS boundary; Linux and Windows
|
|
27
|
+
fail closed as `containment-unavailable` pending native adapters.
|
|
28
|
+
Reckon's onboarding readiness remains incomplete because native Windows
|
|
29
|
+
named-client and timed two-minute trials are missing. Trusted distribution is implemented but
|
|
30
|
+
not production-complete: the root ceremony, five-channel signed release,
|
|
31
|
+
sandbox/manager drills, and adversarial live exercises remain C62–C67 gates.
|
|
32
|
+
|
|
33
|
+
| Dimension | Comparative disposition | Readiness | Reproducible result and boundary |
|
|
34
|
+
|---|---|---|---|
|
|
35
|
+
| File outline | Stronger on pinned oracle | Implemented/verified | Three Python names pass; 56 vs 64 tokens and 0.203 vs 0.478 ms warm p50; cold startup is slower |
|
|
36
|
+
| Exact symbol source | Stronger on pinned oracle | Implemented/verified | One Python body is byte-exact; 33 vs 37 tokens and 0.258 vs 0.419 ms warm p50 |
|
|
37
|
+
| Symbol search | Stronger on pinned oracle | Implemented/verified | Exact seven-file set; 76 vs 84 tokens and 0.227 vs 1.112 ms warm p50 |
|
|
38
|
+
| Batch outline | Stronger on pinned oracle | Implemented/verified | Exact seven-file set; 331 vs 377 tokens and 0.184 vs 1.387 ms warm p50; Reckon bytes are larger |
|
|
39
|
+
| Project overview | Stronger on pinned oracle | Implemented/verified | Exact eligible-file count; 14 vs 127 tokens and 0.135 vs 0.589 ms warm p50 |
|
|
40
|
+
| Parser/language fidelity | Not comparatively verified | Implemented with limitations | Seven languages participate, but no shared construct-accuracy oracle exists |
|
|
41
|
+
| Output compression | Stronger on pinned oracle | Implemented/verified | 7/7 signals in 14/20 lines with hard recovery; competitor is faster warm, and Reckon's full envelope is 18 tokens larger |
|
|
42
|
+
| Command execution | Stronger control contract; portability limited | Implemented on certified macOS boundary | No shell/caller argv, double opt-in, sanitized environment, network/user-data/fork denial, hard time/output bounds, compression + diagnosis; Linux/Windows fail closed |
|
|
43
|
+
| Telemetry/privacy | Stronger source contract | Implemented/verified | Reckon is opt-in with real tokens; competitor defaults on and records sensitive paths/command text |
|
|
44
|
+
| Dashboard UX | Not comparatively verified | Implemented/verified | Both have local HTML; only Reckon's rendering/data contract is exercised here |
|
|
45
|
+
| Structural depth/freshness | Additional capability | Implemented/verified | Stable identity, relationships, and commit freshness; no comparative production study |
|
|
46
|
+
| Failure-to-code intelligence | Additional capability | Implemented/verified | Retained diagnostics map to code/tests/impact; static relations are not runtime proof |
|
|
47
|
+
| Cross-platform onboarding | Not comparatively verified | Implemented with limitations | macOS/Linux gates exist; timed and native Windows named-client trials are absent |
|
|
48
|
+
| Lifecycle/portfolio | Additional capability | Implemented with limitations | Live 61-repository bounded certification; async refresh can still require repair |
|
|
49
|
+
| Installation/maintenance | Stronger source contract | Implemented with limitations | Packaged install/uninstall versus competitor clone/venv/manual registration; Windows certification remains open |
|
|
50
|
+
| Trusted distribution | Stronger source contract | Production incomplete | Competitor has no trust mechanism; Reckon ceremony, drills, and five-channel release remain open |
|
|
51
|
+
| Natural routing | Claim not reproducible | Unverified claim | Neither product has a controlled versioned routing-frequency dataset |
|
|
52
|
+
| Claimed savings | Claim not reproducible | Unverified claim | Competitor percentages lack equivalent-case raw production data |
|
|
53
|
+
|
|
54
|
+
## What is factual to say
|
|
55
|
+
|
|
56
|
+
It is factual to say that Reckon is a more complete local code-intelligence
|
|
57
|
+
system than the pinned Token Optimizer implementation: it passes the pinned
|
|
58
|
+
operation-level structural and compression oracles and adds graph
|
|
59
|
+
relationships, impact/review context, failure diagnosis, freshness, lifecycle,
|
|
60
|
+
portfolio, private measurement, and update-trust machinery.
|
|
61
|
+
|
|
62
|
+
It is not yet factual to say “better across all dimensions” or “production
|
|
63
|
+
supply-chain complete.” Contained execution is macOS-only, onboarding
|
|
64
|
+
certification has named gaps, and the production trust
|
|
65
|
+
and distribution exercises remain open. Release-facing language must retain
|
|
66
|
+
those qualifications until C60, C62–C67 close with live evidence.
|
|
67
|
+
|
|
68
|
+
## Reproduce
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
npm run audit:token-optimizer
|
|
72
|
+
REPLAY_OUTPUT="$(mktemp -t reckon-token-optimizer-replay.XXXXXX.json)"
|
|
73
|
+
npm run bench:token-optimizer -- "$REPLAY_OUTPUT"
|
|
74
|
+
npx vitest run src/__tests__/unit/docs-integrity.spec.ts
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
The source audit requires authenticated GHES access. The replay is pinned to
|
|
78
|
+
immutable competitor blobs and records cold/warm latency, serialized bytes,
|
|
79
|
+
real `o200k_base` tokens, shared correctness oracles, and explicit gaps.
|
package/docs/releases/0.5.1.md
CHANGED
|
@@ -5,13 +5,13 @@ distribution surface.
|
|
|
5
5
|
|
|
6
6
|
## Canonical identity
|
|
7
7
|
|
|
8
|
-
- The
|
|
9
|
-
-
|
|
10
|
-
|
|
8
|
+
- The product and npm package use the `knodin` name.
|
|
9
|
+
- Correction: `knodin/knodin` is the Homebrew-tap repository. The authoritative
|
|
10
|
+
source repository remains `DTS-Productivity-Engineering/reckon-graph` until a
|
|
11
|
+
separately authorized GitHub repository rename occurs.
|
|
11
12
|
|
|
12
13
|
## npm branding
|
|
13
14
|
|
|
14
15
|
- The caret-beak SVG is included in the published package.
|
|
15
16
|
- The README loads the logo through the public npm CDN, so it renders on npm
|
|
16
17
|
even while the source repository remains private.
|
|
17
|
-
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# knodin 0.8.0
|
|
2
|
+
|
|
3
|
+
This release makes repository-wide setup more dependable, strengthens the
|
|
4
|
+
one-tool MCP gateway, adds a whole-repository architecture visualization, and
|
|
5
|
+
completes the move to knodin's authoritative source repository.
|
|
6
|
+
|
|
7
|
+
It is a minor rather than a patch release because `knodin visualize` and
|
|
8
|
+
`knodin index` each gain a new user-facing capability. Note that npm published
|
|
9
|
+
0.7.6 from the previous source repository; 0.7.7 was prepared but never
|
|
10
|
+
released, and its changes are included here.
|
|
11
|
+
|
|
12
|
+
- Repository initialization is uncapped by default, preventing large checkouts
|
|
13
|
+
from being terminated at the former 768 MiB ceiling. Teams that need a bound
|
|
14
|
+
can set `repositoryInitialization.memoryLimitMiB` or pass
|
|
15
|
+
`--memory-limit-mib`; the minimum configured limit is 128 MiB.
|
|
16
|
+
- Multi-repository initialization reports bounded progress and per-repository
|
|
17
|
+
outcomes while continuing to skip linked worktrees by default.
|
|
18
|
+
- `knodin visualize --scope repo` draws the repository's dependency graph as a
|
|
19
|
+
self-contained SVG artifact, with `--granularity file` or `symbol`. It reads
|
|
20
|
+
every recorded dependency rather than a ranked summary, states how much the
|
|
21
|
+
node, edge, and byte budgets withheld, and distinguishes edges backed by a
|
|
22
|
+
narrow source declaration from heuristic or inferred ones. Coordinates are
|
|
23
|
+
computed when the artifact is written, so it contains no script, makes no
|
|
24
|
+
network request, and reproduces byte-identical output from identical
|
|
25
|
+
evidence. The `--max-bytes` ceiling rises to 2097152 to accommodate it.
|
|
26
|
+
- `knodin index --sarif <file>` imports another analyzer's findings from a SARIF
|
|
27
|
+
log. SARIF rather than a specific tool means one importer covers Salesforce
|
|
28
|
+
Code Analyzer, ESLint, Semgrep, CodeQL, PMD and Trivy. Findings are stored
|
|
29
|
+
separately from symbols and references and never merged into them: knodin
|
|
30
|
+
resolves references from source, while a finding is another tool's judgement
|
|
31
|
+
about a location. What the graph adds is ranking, since an analyzer reports
|
|
32
|
+
findings file by file and cannot know which files matter. Locations resolve
|
|
33
|
+
through symlinks, and a finding that cannot be placed inside the repository is
|
|
34
|
+
counted rather than attached to a guessed path.
|
|
35
|
+
- Every import bound is now overridable, for both SARIF and SCIP, and each
|
|
36
|
+
refusal names the flag and a value that would admit the input. A ceiling the
|
|
37
|
+
operator cannot move is just a failure. Two limits remain outside knodin's
|
|
38
|
+
control and are reported as such: a SARIF log is parsed whole, so one beyond
|
|
39
|
+
roughly 512 MiB cannot be read by this runtime at all, and a smaller log can
|
|
40
|
+
still exhaust the default heap.
|
|
41
|
+
- `knodin index --scip <file>` no longer treats the SCIP index itself as a
|
|
42
|
+
source file to index. Command-scoped flag values were being mistaken for
|
|
43
|
+
positional paths.
|
|
44
|
+
- Indexing no longer overflows the call stack on large repositories. Appending
|
|
45
|
+
the file list by spreading it as arguments exceeded the runtime's argument
|
|
46
|
+
limit; observed on a 40,000-file checkout.
|
|
47
|
+
- Independent CLI or MCP processes can no longer run repair concurrently
|
|
48
|
+
against one worktree. A second repair reports the holding process and its
|
|
49
|
+
start time, and a lease left by a crashed process recovers automatically.
|
|
50
|
+
- Invoking knodin from a Node.js 20 project no longer fails. The launcher
|
|
51
|
+
locates a supported Node.js 24 or newer runtime and relaunches into it,
|
|
52
|
+
exiting with that runtime's status or signal. The Node.js 20-to-24 handoff
|
|
53
|
+
is covered by unit tests; the packaged smoke test certifies it on Node.js 26
|
|
54
|
+
only.
|
|
55
|
+
- The MCP gateway enforces documented freshness and diagnostics bounds at the
|
|
56
|
+
schema boundary and resolves Git only from trusted installation locations.
|
|
57
|
+
- Diagnostics documentation now uses `sinceHours` consistently, and repository
|
|
58
|
+
documentation accurately describes the 250 ms memory-enforcement interval.
|
|
59
|
+
- Package metadata, release verification, and mirror policy now point to the
|
|
60
|
+
authoritative `DTS-Productivity-Engineering/knodin` repository. Homebrew
|
|
61
|
+
installs from the `knodin/homebrew-tap` formula, which consumes the published
|
|
62
|
+
npm tarball, and the Enterprise Apps GHES repository remains a read-only
|
|
63
|
+
mirror.
|
|
64
|
+
- Competitive outcome and behavior-contract evaluations remain reproducible
|
|
65
|
+
from checked-in fixtures without turning narrow results into unsupported
|
|
66
|
+
superiority claims.
|
|
67
|
+
|
|
68
|
+
Knodin remains local-first: indexing and diagnostics do not require a hosted
|
|
69
|
+
service, authentication, or source-code upload. Diagnostics bundles are created
|
|
70
|
+
only on explicit request and are never uploaded automatically.
|
|
71
|
+
|
|
72
|
+
This is an ordinary 0.x release, not a GA declaration. External certification
|
|
73
|
+
and enterprise-governance evidence remain outside this release and are not
|
|
74
|
+
claimed by it.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# knodin 0.8.2
|
|
2
|
+
|
|
3
|
+
This patch release makes command startup resilient to a deleted working
|
|
4
|
+
directory and completes a full-baseline Sonar audit of the repository.
|
|
5
|
+
|
|
6
|
+
- `knodin --version` no longer crashes with `uv_cwd` when the directory inherited
|
|
7
|
+
by the process has been removed. Cold structural and compression fast paths now
|
|
8
|
+
resolve the working directory only when the selected command actually needs a
|
|
9
|
+
repository. The built launcher is exercised from a deleted directory as part
|
|
10
|
+
of release verification.
|
|
11
|
+
- Fixes inert Terraform indexing code that prepared reference and dependency
|
|
12
|
+
inserts from collections that could only be empty.
|
|
13
|
+
- Makes the impact-query test-file regular expression's alternation explicit,
|
|
14
|
+
preserving its intended matching precedence.
|
|
15
|
+
- Records the disposition of the complete Sonar baseline: 1,351 retained issue
|
|
16
|
+
records were inspected, including 375 that were open at the start. Correctness
|
|
17
|
+
findings were fixed; security and maintainability findings rejected after
|
|
18
|
+
validation now have checked-in, rule-scoped exclusions and rationale.
|
|
19
|
+
- The post-remediation SonarQube scan passes its quality gate with zero open and
|
|
20
|
+
zero unresolved issues. The exclusions do not disable unreviewed rules,
|
|
21
|
+
coverage, duplication analysis, or the quality gate.
|
|
22
|
+
|
|
23
|
+
If Homebrew is invoked from a directory that has already been deleted, change
|
|
24
|
+
to an existing directory before upgrading because Homebrew itself requires a
|
|
25
|
+
valid working directory:
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
cd /
|
|
29
|
+
brew update
|
|
30
|
+
brew upgrade knodin/tap/knodin
|
|
31
|
+
knodin --version
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
This remains an ordinary 0.x release, not a dogfood-only build and not GA.
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "knodin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.2",
|
|
4
4
|
"description": "knodin — source-evidenced local code intelligence with known bounds. Stable identity, fresh evidence, truthful budgets, and recoverable bounded views.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/
|
|
8
|
+
"url": "git+https://github.com/DTS-Productivity-Engineering/knodin.git"
|
|
9
9
|
},
|
|
10
|
-
"homepage": "https://github.com/
|
|
10
|
+
"homepage": "https://github.com/DTS-Productivity-Engineering/knodin#readme",
|
|
11
11
|
"bugs": {
|
|
12
|
-
"url": "https://github.com/
|
|
12
|
+
"url": "https://github.com/DTS-Productivity-Engineering/knodin/issues"
|
|
13
13
|
},
|
|
14
14
|
"publishConfig": {
|
|
15
15
|
"access": "public",
|
|
@@ -24,7 +24,11 @@
|
|
|
24
24
|
"docs/DEAD-CODE-AND-IMPACT.md",
|
|
25
25
|
"docs/DOCTOR-AND-UPDATES.md",
|
|
26
26
|
"docs/DIAGNOSTICS.md",
|
|
27
|
+
"docs/BEHAVIORAL-CONTRACT.md",
|
|
28
|
+
"docs/COMPARISON.md",
|
|
29
|
+
"docs/COMPETITIVE-LANDSCAPE-2026-08.md",
|
|
27
30
|
"docs/INDEXING-POLICY-AND-PROVENANCE.md",
|
|
31
|
+
"docs/HANDOFF.md",
|
|
28
32
|
"docs/INSTALLATION.md",
|
|
29
33
|
"docs/MCP.md",
|
|
30
34
|
"docs/COMMAND-OUTPUT-COMPRESSION.md",
|
|
@@ -51,10 +55,16 @@
|
|
|
51
55
|
"docs/releases/0.7.3.md",
|
|
52
56
|
"docs/releases/0.7.4.md",
|
|
53
57
|
"docs/releases/0.7.5.md",
|
|
58
|
+
"docs/releases/0.8.0.md",
|
|
59
|
+
"docs/releases/0.8.2.md",
|
|
54
60
|
"docs/assets/knodin-favicon.svg",
|
|
55
61
|
"docs/SYSTEMS-AND-RELATIONSHIPS.md",
|
|
56
62
|
"docs/TELEMETRY.md",
|
|
63
|
+
"docs/TOKEN-OPTIMIZER-SCORECARD.md",
|
|
64
|
+
"benchmarks/competitors/SYNTHESIS.md",
|
|
65
|
+
"roadmap/competitive-roadmap.md",
|
|
57
66
|
"schemas/release-attestation-v1.schema.json",
|
|
67
|
+
"schemas/support-bundle-v2.schema.json",
|
|
58
68
|
"*.wasm"
|
|
59
69
|
],
|
|
60
70
|
"engines": {
|
|
@@ -101,6 +111,9 @@
|
|
|
101
111
|
"verify:c87": "tsx scripts/verify-c87.ts",
|
|
102
112
|
"bench:c88": "tsx benchmarks/evaluations/c88-contained-execution/runner.ts",
|
|
103
113
|
"verify:c88": "tsx scripts/verify-c88.ts",
|
|
114
|
+
"bench:c93": "tsx benchmarks/evaluations/c93-engineering-outcomes/runner.ts",
|
|
115
|
+
"verify:c93": "tsx scripts/verify-c93.ts",
|
|
116
|
+
"verify:c95": "tsx scripts/verify-c95.ts && vitest run src/__tests__/unit/behavior-contract.spec.ts src/__tests__/unit/failure-diagnosis.spec.ts src/__tests__/unit/impact.spec.ts src/__tests__/unit/freshness.spec.ts",
|
|
104
117
|
"bench:ann": "bun scripts/ann-bench.ts",
|
|
105
118
|
"bench:perf": "tsx scripts/perf-bench.ts",
|
|
106
119
|
"bench:competitive": "tsx scripts/competitive-bakeoff.ts",
|