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.
Files changed (75) hide show
  1. package/README.md +18 -3
  2. package/benchmarks/competitors/SYNTHESIS.md +66 -0
  3. package/dist/bin/cli.js +371 -66
  4. package/dist/bin/launcher.js +16 -1
  5. package/dist/src/agent-integration.js +82 -16
  6. package/dist/src/artifact-refresh.js +2 -1
  7. package/dist/src/cli-args.js +19 -1
  8. package/dist/src/cli-model.js +28 -2
  9. package/dist/src/codeflow-replay.js +2 -1
  10. package/dist/src/compare.js +39 -0
  11. package/dist/src/competitive-constraints.js +2 -1
  12. package/dist/src/competitive-runner.js +4 -4
  13. package/dist/src/context-export.js +3 -2
  14. package/dist/src/context.js +1 -1
  15. package/dist/src/deterministic-random.js +34 -0
  16. package/dist/src/diagnostics-write-helper.js +473 -0
  17. package/dist/src/diagnostics.js +1160 -133
  18. package/dist/src/doctor.js +3 -1
  19. package/dist/src/engine/ann-hnsw.js +2 -12
  20. package/dist/src/engine/file-walker.js +8 -2
  21. package/dist/src/engine/git-history.js +12 -12
  22. package/dist/src/engine/index.js +1174 -313
  23. package/dist/src/engine/sarif-import.js +341 -0
  24. package/dist/src/engine/scip-import.js +28 -13
  25. package/dist/src/engine/source-policy.js +16 -0
  26. package/dist/src/engine/state-paths.js +175 -0
  27. package/dist/src/execution-profile.js +15 -10
  28. package/dist/src/failure-diagnosis.js +7 -1
  29. package/dist/src/graph-layout.js +173 -0
  30. package/dist/src/index-activity.js +2 -1
  31. package/dist/src/init.js +86 -45
  32. package/dist/src/lifecycle-health.js +41 -9
  33. package/dist/src/mcp-graph-worker.js +69 -0
  34. package/dist/src/mcp-reliability.js +154 -0
  35. package/dist/src/mcp-worker-supervisor.js +350 -0
  36. package/dist/src/mirror.js +290 -0
  37. package/dist/src/node-runtime.js +157 -0
  38. package/dist/src/output-compression.js +2 -1
  39. package/dist/src/output-telemetry.js +16 -11
  40. package/dist/src/progressive-evidence.js +30 -26
  41. package/dist/src/pure-compression-cli.js +4 -3
  42. package/dist/src/relationship-adapters.js +15 -8
  43. package/dist/src/release-preflight.js +13 -10
  44. package/dist/src/repair-lease.js +85 -0
  45. package/dist/src/repository-init-process.js +13 -9
  46. package/dist/src/repository-management.js +34 -4
  47. package/dist/src/response-budget.js +8 -6
  48. package/dist/src/server.js +80 -35
  49. package/dist/src/structural-fast-path.js +16 -10
  50. package/dist/src/structural-snapshot.js +6 -2
  51. package/dist/src/system-config.js +25 -2
  52. package/dist/src/tools/knodin-tools.js +142 -31
  53. package/dist/src/update-ceremony.js +9 -5
  54. package/dist/src/update-trust.js +5 -4
  55. package/dist/src/visualization.js +372 -19
  56. package/dist/src/worktree-lifecycle.js +5 -2
  57. package/docs/BEHAVIORAL-CONTRACT.md +72 -0
  58. package/docs/CLI.md +20 -1
  59. package/docs/COMPARISON.md +403 -0
  60. package/docs/COMPETITIVE-LANDSCAPE-2026-08.md +267 -0
  61. package/docs/DIAGNOSTICS.md +46 -11
  62. package/docs/HANDOFF.md +180 -0
  63. package/docs/INSTALLATION.md +21 -2
  64. package/docs/MCP.md +59 -8
  65. package/docs/PT-ACCESS-RECOMMENDATION.md +5 -7
  66. package/docs/REPOSITORIES-AND-WORKTREES.md +18 -6
  67. package/docs/SCIP-IMPORT.md +5 -0
  68. package/docs/TOKEN-OPTIMIZER-SCORECARD.md +79 -0
  69. package/docs/releases/0.5.1.md +4 -4
  70. package/docs/releases/0.8.0.md +74 -0
  71. package/docs/releases/0.8.2.md +34 -0
  72. package/package.json +17 -4
  73. package/roadmap/competitive-roadmap.md +3801 -0
  74. package/schemas/release-attestation-v1.schema.json +1 -1
  75. 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 Claude Code, Codex, Gemini CLI, and
21
- Antigravity. A generic MCP handshake is release-gated. Named-client status is
22
- reported only when its adapter/configuration is detected; it is not proof of
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, sanitized failure envelope as the
107
- CLI. It never records request arguments, queries, source, or raw responses. Use
108
- the CLI `knodin diagnostics collect` and `inspect` workflow to review and share
109
- support evidence; no MCP failure is uploaded automatically.
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 planned as
4
- `github.docusignhq.com/Enterprise-Apps/knodin`, but this repository rename does
5
- not create or verify that external repository. Until the mirror is renamed and
6
- its knodin artifact is certified, P&T engineers must use the existing legacy
7
- mirror and its documented release asset. `Enterprise-Apps` is a legacy
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 with a 768 MiB RSS ceiling. A worker that exceeds the
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 50 ms RSS heartbeat is a bounded enforcement
63
- interval rather than a claim that transient allocation can never overshoot by
64
- one sample. Windows can terminate the worker process but cannot provide the
65
- same descendant process-group guarantee as macOS/Linux.
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
@@ -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.
@@ -5,13 +5,13 @@ distribution surface.
5
5
 
6
6
  ## Canonical identity
7
7
 
8
- - The GitHub organization and repository are `knodin/knodin`.
9
- - Package metadata, release attestations, documentation, and planned Homebrew
10
- paths no longer use the temporary `knowdin` organization spelling.
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.7.5",
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/knodin/knodin.git"
8
+ "url": "git+https://github.com/DTS-Productivity-Engineering/knodin.git"
9
9
  },
10
- "homepage": "https://github.com/knodin/knodin#readme",
10
+ "homepage": "https://github.com/DTS-Productivity-Engineering/knodin#readme",
11
11
  "bugs": {
12
- "url": "https://github.com/knodin/knodin/issues"
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",