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.
Files changed (38) hide show
  1. package/README.md +167 -535
  2. package/dist/bin/cli.js +5 -5
  3. package/dist/src/agent-integration.js +1 -15
  4. package/dist/src/artifact-refresh.js +1 -1
  5. package/dist/src/competitive-sandbox.js +4 -4
  6. package/dist/src/context-export.js +1 -1
  7. package/dist/src/docs-sections.js +5 -5
  8. package/dist/src/engine/ann-hnsw.js +5 -5
  9. package/dist/src/engine/embeddings.js +4 -4
  10. package/dist/src/engine/index.js +33 -33
  11. package/dist/src/engine/prune.js +2 -2
  12. package/dist/src/engine/symbol-delete.js +1 -1
  13. package/dist/src/index-activity.js +1 -1
  14. package/dist/src/init-progress-worker.js +1 -1
  15. package/dist/src/init.js +42 -59
  16. package/dist/src/lifecycle-health.js +10 -11
  17. package/dist/src/lsp-readonly.js +1 -1
  18. package/dist/src/output-compression.js +1 -1
  19. package/dist/src/output-telemetry.js +4 -4
  20. package/dist/src/pr-triage.js +2 -2
  21. package/dist/src/repair-progress-worker.js +1 -1
  22. package/dist/src/repository-init-process.js +1 -1
  23. package/dist/src/repository-management.js +3 -3
  24. package/dist/src/server.js +1 -1
  25. package/dist/src/system-config.js +7 -7
  26. package/dist/src/tools/knodin-tools.js +2 -2
  27. package/dist/src/update-policy.js +4 -4
  28. package/dist/src/wait-for-fresh.js +2 -2
  29. package/dist/src/worktree-lifecycle.js +2 -2
  30. package/docs/COMMAND-OUTPUT-COMPRESSION.md +1 -1
  31. package/docs/DOCTOR-AND-UPDATES.md +2 -2
  32. package/docs/INSTALLATION.md +1 -1
  33. package/docs/REPOSITORIES-AND-WORKTREES.md +1 -1
  34. package/docs/SYSTEMS-AND-RELATIONSHIPS.md +2 -2
  35. package/docs/TELEMETRY.md +2 -2
  36. package/docs/releases/0.6.0.md +18 -0
  37. package/package.json +3 -3
  38. 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, ".reckon", "hooks", "refresh.lock", "pid"), "utf-8"));
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, ".reckon", "hooks", "background-index.sh");
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, ".reckon", "db.sqlite"));
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, ".reckon", "db.sqlite")),
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 `.reckon/output/` with a private directory mode
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
- RECKON_UPDATE_CHECK=0 knodin doctor
45
- RECKON_OFFLINE=1 knodin update check
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
@@ -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
- `RECKON_SMOKE_PUBLISHED_VERSION=<version> npm run test:package-managers -- mise volta`;
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 `reckon.yaml`; use
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 `reckon.yaml` and contains stable
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
- `.reckon/federation.json` remains a compatibility input and is never silently
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 `.reckon/telemetry-report.html`. It includes summary,
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 `.reckon/telemetry-export.json` and labels measured, modeled, and unknown
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.5.1",
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": "./dist/bin/cli.js",
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";