knodin 0.8.2 → 0.8.4

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.
@@ -132,6 +132,85 @@ new items or strengthen existing ones; they do not reopen the archived roadmap.
132
132
  | C94 | P1 | parked-external-evidence — 2026-08-06 (previous: blocked) | Make first use self-explanatory and demonstrable | C89, C90, C91 |
133
133
  | C95 | P1 | implemented | Codify and replay the defensible behavioral contract | C3, C24, C83 |
134
134
  | C96 | P2 | evaluated — deferred | Gate every new capability on a narrow outcome replay | C24, C93, C95 |
135
+ | C97 | P1 | evaluated — retained existing design | Reclaim idle semantic memory without changing one-process architecture | C46, C51, C80, C87 |
136
+ | C98 | P1 | implemented | Add bounded source-to-sink resource reachability | C2, C3, C8, C24, C78, C95 |
137
+ | C99 | P1 | implemented | Resolve bounded TypeScript dependency-injection wiring | C2, C3, C24, C95 |
138
+ | C100 | P1 | implemented | Prove bounded Salesforce Flow-to-Apex paths | C2, C3, C20, C23, C95, C96 |
139
+ | C101 | P1 | implemented | Strengthen contract-led positioning | C95, C97, C98, C99, C100 |
140
+ | C102 | P1 | implemented — opt-in observational evidence only | Add bounded Claude session context and adoption evidence | C3, C16, C61, C93, C95 |
141
+
142
+ ### C98 — Bounded source-to-sink resource reachability
143
+
144
+ - Status: implemented
145
+ - Evidence: `benchmarks/evaluations/c98-resource-reachability/` freezes the strengthened eight-path C78 oracle and records 100% precision, 100% recall, deterministic ordering, and historical cold/warm/RSS measurements across three local repositories. The verifier independently replays correctness and its current sub-1-GB memory gate; portfolio timings remain descriptive rather than acceptance gates.
146
+ - Implementation: `query resource_reachability` performs cached, on-demand TS/JS analysis without persisted resource-flow tables. It recognizes literal `process.env` and `fs.readFileSync` sources, `console.log`, `fetch`, and `db.query` sinks, plus assignment, argument, return, and bounded recursive handoff.
147
+ - Bounds: maximum depth 6 and 100 paths. Results are static heuristics, never runtime reachability or exploitability proof; dynamic names, reflection, computed aliases, unsupported languages, cycles, truncation, continuation, coverage, and freshness remain explicit.
148
+ - Locality: no hosted service, authentication, credentials, source egress, network access, or production model is required.
149
+
150
+ ### C99 — Bounded TypeScript dependency-injection wiring
151
+
152
+ - Status: implemented
153
+ - Evidence: `benchmarks/evaluations/c99-typescript-di/` records 100% precision and recall on its declared Inversify/tsyringe oracle, including an explicit ambiguous-token omission; `npm run verify:c99` rejects stale evidence or any missed/extra edge.
154
+ - Implementation: exact source-only `di_binding` and `di_resolution` references cover `bind().to`, `toSelf`, `register(useClass)`, `registerSingleton`, `@inject`, `get`, and `resolve`. Existing explain, impact, traversal, shortest-path, review, and architecture consumers reuse the persisted relationships.
155
+ - Known bounds: only source-proven framework imports, receivers, token declarations, and uniquely resolved implementations qualify. Multiple bindings, computed tokens, aliases, factories, runtime container modules, conditionals, and reflection remain explicit omissions rather than inferred edges.
156
+
157
+ ### C100 — Bounded Salesforce Flow-to-Apex paths
158
+
159
+ - Status: implemented
160
+ - Evidence: `benchmarks/evaluations/c100-flow-apex-path/` records 100% precision and recall for one preregistered Salesforce DX Flow `actionCalls` to uniquely declared Apex `@InvocableMethod` boundary, including unannotated, missing, and overloaded negative cases. The paired missed-dependency replay improves from an imprecise file answer to a stable method identity with exact XML and Apex evidence.
161
+ - Implementation: Flow indexing persists an exact `flow_apex_action` method reference in addition to its compatible file topology. `query cross_substrate_path <from> <to>` requires both endpoints and returns only that supported substrate transition with stable identities, per-step substrates, extracted provenance, confidence, freshness, exact source evidence, truthful truncation/continuation, and explicit omissions.
162
+ - Known bounds: this is not a general path engine and does not support Terraform, dbt, arbitrary Salesforce metadata, runtime dispatch, namespaced packages, factories, aliases, or ambiguous/multiple Apex methods. One passing boundary and paired task do not establish broad cross-substrate or competitor superiority.
163
+ - Locality: the replay requires no Salesforce org, hosted service, authentication, credentials, network access, or source egress.
164
+
165
+ ### C101 — Contract-led positioning closure
166
+
167
+ - Status: implemented
168
+ - Evidence: `benchmarks/evaluations/c101-contract-positioning/` and
169
+ `scripts/verify-c101.ts` source-bind the C97–C100 decisions, the behavioral
170
+ contract, public CLI/MCP declarations, positioning documents, and repository
171
+ stewardship instructions.
172
+ - Contract: eight adversarial mutations of actual production responses reject
173
+ resource/path stale evidence, continuation-free truncation, a truncated
174
+ response presented as complete, heuristic-to-exact promotion, DI source
175
+ removal, DI ambiguity, and a path omission retained beside a supported step.
176
+ Fixture-backed CLI and one-tool MCP calls return the same bounded resource and
177
+ Flow-to-Apex envelopes; DI reuses
178
+ existing explain/query/review/map surfaces rather than adding a discriminator.
179
+ - Positioning: value is less manual context assembly and fewer missed
180
+ dependencies; ROI's intended mechanism is fewer corrective round trips
181
+ without hosted-service, authentication, or source-egress overhead, while
182
+ C93's null two-task result authorizes no measured productivity claim;
183
+ tomorrow is `knodin init` plus the local CLI or single gateway; the secret
184
+ sauce is stable identity, source evidence, freshness, and truthful budgets
185
+ composed under one contract.
186
+ - Known bounds: C98 is a static TS/JS heuristic, C99 covers only its declared
187
+ Inversify/tsyringe patterns, C100 proves one Flow-to-Apex boundary, and C97
188
+ does not reclaim idle semantic RSS. The closure proves checked fixtures, not
189
+ runtime causality, arbitrary cross-substrate paths, broad framework coverage,
190
+ client/platform certification, or competitor superiority.
191
+ - Stewardship: pull requests invoke the full test matrix and Sonar analysis and
192
+ are therefore long and resource intensive. Related dependency-compatible
193
+ commits normally form one reasonably sized shared PR; assistants do not
194
+ auto-open per-item PRs, and unrelated changes are not bundled for size.
195
+
196
+ ### C102 — Bounded Claude session context and adoption evidence
197
+
198
+ - Status: implemented — opt-in observational evidence only
199
+ - Priority: P1
200
+ - DependsOn: C3, C16, C61, C93, C95
201
+ - Evidence: `src/agent-hooks.ts`, `src/agent-events.ts`,
202
+ `src/session-telemetry.ts`, focused unit/CLI tests, and
203
+ `benchmarks/evaluations/c102-session-adoption/README.md`.
204
+ - Implementation: an explicit user-global Claude hook installer atomically
205
+ preserves unrelated settings and supports status, dry-run, and targeted
206
+ uninstall. SessionStart injects cached, freshness-aware orientation under
207
+ 600 tokens, 8 KiB, and 12 items. Separate repository-local telemetry opt-in
208
+ records private lifecycle categories and extends the existing local report.
209
+ - Bounds: ordinary hooks prove neither task success nor why a follow-up turn
210
+ occurred. The dashboard labels corrective round trips unavailable, stores no
211
+ prompt/source/command/transcript/tool-output bodies, and authorizes no
212
+ productivity or superiority claim. Claude is the only supported client for
213
+ this adapter; the event model remains client-neutral for later evaluation.
135
214
 
136
215
  ## Roadmap completion contract
137
216
 
@@ -3709,6 +3788,42 @@ Evidence: `benchmarks/evaluations/c93-engineering-outcomes/verification.json`,
3709
3788
  `contracts/behavior-contract-v1.json`, and
3710
3789
  `benchmarks/evaluations/c95-behavior-contract/runner.ts`.
3711
3790
 
3791
+ ### C97 — One-process semantic residency reclamation
3792
+
3793
+ - Status: evaluated — retained existing design
3794
+ - Priority: P1
3795
+ - Disposition: Evaluate
3796
+ - DependsOn: C46, C51, C80, C87
3797
+ - Touches: evaluation and decision evidence only; no runtime, status, API, or
3798
+ storage change.
3799
+ - What: test whether idle model/vector/HNSW eviction can make a repeatable OS-RSS
3800
+ guarantee while preserving Knodin's one-local-process architecture.
3801
+ - Evidence: `benchmarks/evaluations/c97-one-process-semantic-residency/` and
3802
+ `scripts/verify-c97.ts` bind 10-trial fresh-process measurements to the runner,
3803
+ engine, package, and embedding-test sources.
3804
+
3805
+ Decision: retain the current lazy local model and bounded generation-scoped
3806
+ caches. No in-process candidate repeatedly reclaimed both 32 MiB and 15% of its
3807
+ attributable semantic increment across two corpus tiers. ONNX disposal and
3808
+ allocator behavior were nondeterministic; `worker_threads` retained the shared
3809
+ native address space; q8 lacks the required C28 retrieval-equivalence replay;
3810
+ fp16 failed to initialize. Child-process isolation is explicitly rejected
3811
+ because it would violate the one-local-process product contract. Do not claim
3812
+ idle RSS reclamation from model disposal or cache clearing on this evidence.
3813
+
3814
+ Known limitations: resident semantic search retains a measurable one-process
3815
+ RSS cost after first use. Structural-first routing still avoids loading the model
3816
+ when evidence is sufficient, and decoded-vector/HNSW caches remain bounded and
3817
+ generation-invalidated. Reopen only with a portable allocator/runtime mechanism
3818
+ that passes the unchanged absolute, percentage, p95, retrieval, and 20-cycle
3819
+ gates.
3820
+
3821
+ Final-stack refresh: C101 reran the full C97 measurement after C98–C100 changed
3822
+ the shared engine. Some individual cache/ONNX trials crossed the memory
3823
+ threshold, but no production candidate passed all 10 trials; the retained
3824
+ one-process decision therefore remains unchanged. The refreshed raw artifact
3825
+ replaces the mutable C97 measurement file and `verify:c97` recomputes this gate.
3826
+
3712
3827
  ## Explicit non-goals from the GitNexus comparison
3713
3828
 
3714
3829
  - Do not split knodin's gateway into one MCP schema per capability; the one-tool