knodin 0.5.1 → 0.6.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 +167 -535
- package/dist/bin/cli.js +5 -5
- package/dist/src/agent-integration.js +1 -15
- package/dist/src/artifact-refresh.js +1 -1
- package/dist/src/competitive-sandbox.js +4 -4
- package/dist/src/context-export.js +1 -1
- package/dist/src/docs-sections.js +5 -5
- package/dist/src/engine/ann-hnsw.js +5 -5
- package/dist/src/engine/embeddings.js +4 -4
- package/dist/src/engine/index.js +33 -33
- package/dist/src/engine/prune.js +2 -2
- package/dist/src/engine/symbol-delete.js +1 -1
- package/dist/src/index-activity.js +1 -1
- package/dist/src/init-progress-worker.js +1 -1
- package/dist/src/init.js +42 -59
- package/dist/src/lifecycle-health.js +10 -11
- package/dist/src/lsp-readonly.js +1 -1
- package/dist/src/output-compression.js +1 -1
- package/dist/src/output-telemetry.js +4 -4
- package/dist/src/pr-triage.js +2 -2
- package/dist/src/repair-progress-worker.js +1 -1
- package/dist/src/repository-init-process.js +1 -1
- package/dist/src/repository-management.js +3 -3
- package/dist/src/server.js +1 -1
- package/dist/src/system-config.js +7 -7
- package/dist/src/tools/knodin-tools.js +2 -2
- package/dist/src/update-policy.js +4 -4
- package/dist/src/wait-for-fresh.js +2 -2
- package/dist/src/worktree-lifecycle.js +2 -2
- package/docs/COMMAND-OUTPUT-COMPRESSION.md +1 -1
- package/docs/DOCTOR-AND-UPDATES.md +2 -2
- package/docs/INSTALLATION.md +1 -1
- package/docs/REPOSITORIES-AND-WORKTREES.md +1 -1
- package/docs/SYSTEMS-AND-RELATIONSHIPS.md +2 -2
- package/docs/TELEMETRY.md +2 -2
- package/docs/releases/0.6.0.md +18 -0
- package/package.json +3 -3
- package/dist/src/tools/reckon-tools.js +0 -5
|
@@ -6,7 +6,7 @@ const delay = (milliseconds) => new Promise((resolve) => setTimeout(resolve, mil
|
|
|
6
6
|
const PROCESSOR_RETRY_MS = 500;
|
|
7
7
|
function installedProcessorIsRunning(repo) {
|
|
8
8
|
try {
|
|
9
|
-
const pid = Number(fs.readFileSync(path.join(repo, ".
|
|
9
|
+
const pid = Number(fs.readFileSync(path.join(repo, ".knodin", "hooks", "refresh.lock", "pid"), "utf-8"));
|
|
10
10
|
if (!Number.isInteger(pid) || pid <= 0)
|
|
11
11
|
return false;
|
|
12
12
|
process.kill(pid, 0);
|
|
@@ -17,7 +17,7 @@ function installedProcessorIsRunning(repo) {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
export function launchInstalledLifecycleProcessor(repo) {
|
|
20
|
-
const processor = path.join(repo, ".
|
|
20
|
+
const processor = path.join(repo, ".knodin", "hooks", "background-index.sh");
|
|
21
21
|
if (fs.statSync(processor).mode & 0o111) {
|
|
22
22
|
const child = childProcess.spawn(processor, [], {
|
|
23
23
|
cwd: repo,
|
|
@@ -124,7 +124,7 @@ export async function inspectWorktrees(repoPath, status) {
|
|
|
124
124
|
for (const worktree of current) {
|
|
125
125
|
const identity = identityFor(repo, worktree.path, worktree.classification);
|
|
126
126
|
const registered = registry.entries.some((entry) => entry.identity === identity);
|
|
127
|
-
const graphInitialized = fs.existsSync(path.join(worktree.path, ".
|
|
127
|
+
const graphInitialized = fs.existsSync(path.join(worktree.path, ".knodin", "db.sqlite"));
|
|
128
128
|
let indexedHead = null;
|
|
129
129
|
if (graphInitialized) {
|
|
130
130
|
try {
|
|
@@ -160,7 +160,7 @@ export async function inspectWorktrees(repoPath, status) {
|
|
|
160
160
|
locked: false,
|
|
161
161
|
prunable: "registered worktree is absent from Git's worktree inventory",
|
|
162
162
|
registered: true,
|
|
163
|
-
graphInitialized: fs.existsSync(path.join(entry.path, ".
|
|
163
|
+
graphInitialized: fs.existsSync(path.join(entry.path, ".knodin", "db.sqlite")),
|
|
164
164
|
indexedHead: null,
|
|
165
165
|
freshness: "removed",
|
|
166
166
|
removedAt: entry.removedAt ?? null,
|
|
@@ -152,7 +152,7 @@ runtime evidence.
|
|
|
152
152
|
|
|
153
153
|
## Local retention and redaction
|
|
154
154
|
|
|
155
|
-
Artifacts are stored beneath `.
|
|
155
|
+
Artifacts are stored beneath `.knodin/output/` with a private directory mode
|
|
156
156
|
and `0600` files. The default returned content and bounded reads redact common
|
|
157
157
|
credential forms and remove ANSI/control bytes. `--raw` is an explicit local
|
|
158
158
|
request and can reveal the original secrets. Redaction is defense in depth,
|
|
@@ -41,8 +41,8 @@ timeout, no redirects, and remain within one approved HTTPS origin and path.
|
|
|
41
41
|
Disable checks or all network access with:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
KNODIN_UPDATE_CHECK=0 knodin doctor
|
|
45
|
+
KNODIN_OFFLINE=1 knodin update check
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
Requests contain fixed metadata or signed target paths only. They never contain
|
package/docs/INSTALLATION.md
CHANGED
|
@@ -28,7 +28,7 @@ actually run.
|
|
|
28
28
|
|
|
29
29
|
The executable harness is `npm run test:package-managers -- npm pnpm bun`.
|
|
30
30
|
Registry-backed release checks use
|
|
31
|
-
`
|
|
31
|
+
`KNODIN_SMOKE_PUBLISHED_VERSION=<version> npm run test:package-managers -- mise volta`;
|
|
32
32
|
they intentionally refuse to substitute a local tarball for a published
|
|
33
33
|
manager-owned tool.
|
|
34
34
|
|
|
@@ -51,7 +51,7 @@ the manifest. The single MCP gateway exposes equivalent `dryRun` and
|
|
|
51
51
|
Its warning is written only for human output, never JSON/JSONL or MCP stdio.
|
|
52
52
|
|
|
53
53
|
Repository inventory is portfolio health, not semantic federation. Configure
|
|
54
|
-
cooperating components explicitly in `
|
|
54
|
+
cooperating components explicitly in `knodin.yaml`; use
|
|
55
55
|
`knodin system validate` before system-scoped queries.
|
|
56
56
|
|
|
57
57
|
## Independent repository search
|
|
@@ -5,7 +5,7 @@ may represent APIs, resources, repositories, or artifacts. Unrelated
|
|
|
5
5
|
repositories remain separate even when they share a parent directory or match
|
|
6
6
|
the same search query.
|
|
7
7
|
|
|
8
|
-
Team configuration belongs in repository-root `
|
|
8
|
+
Team configuration belongs in repository-root `knodin.yaml` and contains stable
|
|
9
9
|
identities without local absolute paths. Personal checkout paths belong in:
|
|
10
10
|
|
|
11
11
|
```text
|
|
@@ -36,7 +36,7 @@ matches remain labeled and cannot silently create system membership. Optional
|
|
|
36
36
|
runtime evidence corroborates static evidence; it does not replace canonical
|
|
37
37
|
source.
|
|
38
38
|
|
|
39
|
-
`.
|
|
39
|
+
`.knodin/federation.json` remains a compatibility input and is never silently
|
|
40
40
|
discarded. Loaded entries are labeled `legacy-federation` until migrated to
|
|
41
41
|
stable identities.
|
|
42
42
|
|
package/docs/TELEMETRY.md
CHANGED
|
@@ -29,10 +29,10 @@ knodin telemetry clear
|
|
|
29
29
|
`--output` accept only repository-contained, non-symlink paths. `clear` is the
|
|
30
30
|
only command that deletes the private JSONL file; report and export never do.
|
|
31
31
|
|
|
32
|
-
The default report is `.
|
|
32
|
+
The default report is `.knodin/telemetry-report.html`. It includes summary,
|
|
33
33
|
operation, time-series, private repository, indexing-cost, latency, freshness,
|
|
34
34
|
and fidelity views with light/dark styling. The default machine-readable export
|
|
35
|
-
is `.
|
|
35
|
+
is `.knodin/telemetry-export.json` and labels measured, modeled, and unknown
|
|
36
36
|
baselines explicitly. Neither artifact needs a daemon, hosted service,
|
|
37
37
|
authentication, or source egress.
|
|
38
38
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# knodin 0.6.0
|
|
2
|
+
|
|
3
|
+
This release completes the operational product rename.
|
|
4
|
+
|
|
5
|
+
- Repository-local graph, hook, lifecycle, telemetry, and generated state now
|
|
6
|
+
lives under `.knodin/`.
|
|
7
|
+
- Team system configuration is now `knodin.yaml`.
|
|
8
|
+
- Runtime environment variables use the `KNODIN_` prefix.
|
|
9
|
+
- Managed Git hooks, agent instructions, MCP registrations, and configuration
|
|
10
|
+
markers use only `knodin` identifiers.
|
|
11
|
+
- The package installs only the `knodin` executable; the former command alias
|
|
12
|
+
has been removed.
|
|
13
|
+
- The npm README is reorganized around product value, measured competitive
|
|
14
|
+
results, installation, first use, and capability reference.
|
|
15
|
+
|
|
16
|
+
Existing local graph directories must be renamed from the former hidden-state
|
|
17
|
+
path to `.knodin` before using this release. Re-run `knodin init` afterward to
|
|
18
|
+
refresh managed hooks and agent configuration.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "knodin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
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": {
|
|
@@ -17,8 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"type": "module",
|
|
19
19
|
"bin": {
|
|
20
|
-
"knodin": "
|
|
21
|
-
"reckon": "./dist/bin/cli.js"
|
|
20
|
+
"knodin": "dist/bin/cli.js"
|
|
22
21
|
},
|
|
23
22
|
"files": [
|
|
24
23
|
"dist",
|
|
@@ -40,6 +39,7 @@
|
|
|
40
39
|
"docs/releases/0.4.3.md",
|
|
41
40
|
"docs/releases/0.5.0.md",
|
|
42
41
|
"docs/releases/0.5.1.md",
|
|
42
|
+
"docs/releases/0.6.0.md",
|
|
43
43
|
"docs/assets/knodin-favicon.svg",
|
|
44
44
|
"docs/SYSTEMS-AND-RELATIONSHIPS.md",
|
|
45
45
|
"docs/TELEMETRY.md",
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Legacy source compatibility for pinned replay runners and downstream imports.
|
|
3
|
-
* New code must import the canonical knodin names from `knodin-tools.ts`.
|
|
4
|
-
*/
|
|
5
|
-
export { closeKnodinToolEngine as closeReckonToolEngine, getDocumentedKnodinToolsForSchemaProof as getDocumentedReckonToolsForSchemaProof, getKnodinTools as getReckonTools, handleKnodinTool as handleReckonTool, } from "./knodin-tools.js";
|