knodin 0.5.0 → 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 +166 -534
- 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 +5 -5
- package/docs/REPOSITORIES-AND-WORKTREES.md +1 -1
- package/docs/SYSTEMS-AND-RELATIONSHIPS.md +2 -2
- package/docs/TELEMETRY.md +2 -2
- package/docs/assets/knodin-favicon.svg +4 -0
- package/docs/releases/0.5.1.md +17 -0
- package/docs/releases/0.6.0.md +18 -0
- package/package.json +8 -6
- package/schemas/release-attestation-v1.schema.json +1 -1
- 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
|
@@ -20,7 +20,7 @@ shells, Git hooks, and MCP clients.
|
|
|
20
20
|
| Bun | `bun add --global --ignore-scripts knodin@<version>` | Executable gate provided; release verification requires the published version |
|
|
21
21
|
| approved npm-compatible registry | use the npm command with approved registry configuration | Same artifact; registry authentication/promotion is organization-owned |
|
|
22
22
|
| P&T GHES release asset | after migration, download the exact `.tgz` from `Enterprise-Apps/knodin`, verify SHA-256, then use the npm command with the local file | Planned knodin path; the legacy mirror remains authoritative until the external rename and release verification complete |
|
|
23
|
-
| Homebrew | after migration, `brew install
|
|
23
|
+
| Homebrew | after migration, `brew install knodin/tap/knodin` | Planned knodin path; the legacy tap remains authoritative until the external rename and formula gate complete |
|
|
24
24
|
|
|
25
25
|
“Guidance” is not a compatibility claim. The repository records the manager
|
|
26
26
|
version, command, package version, platform, and result when a release gate is
|
|
@@ -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
|
|
|
@@ -159,16 +159,16 @@ After the external tap is renamed and certified, install from the public
|
|
|
159
159
|
knodin tap:
|
|
160
160
|
|
|
161
161
|
```bash
|
|
162
|
-
brew install
|
|
162
|
+
brew install knodin/tap/knodin
|
|
163
163
|
```
|
|
164
164
|
|
|
165
165
|
A version is not called Homebrew-supported until the corresponding published
|
|
166
166
|
npm tarball passes version, MCP initialize/tools-list, `init`, `status`,
|
|
167
167
|
`query`, `repair`, and uninstall smoke tests. The tap is
|
|
168
|
-
`
|
|
168
|
+
`knodin/homebrew-tap`; the formula and attached release evidence must
|
|
169
169
|
identify the exact source commit and tarball digest.
|
|
170
170
|
|
|
171
|
-
The planned knodin formula will be maintained in `
|
|
171
|
+
The planned knodin formula will be maintained in `knodin/homebrew-tap`; that
|
|
172
172
|
path is not represented as live by this code-only rename.
|
|
173
173
|
The repository-local `packaging/homebrew/knodin.rb` is a historical
|
|
174
174
|
candidate fixture and must not be promoted or used to certify a newer release.
|
|
@@ -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,17 @@
|
|
|
1
|
+
# knodin 0.5.1
|
|
2
|
+
|
|
3
|
+
knodin 0.5.1 makes the lowercase product name canonical across every public
|
|
4
|
+
distribution surface.
|
|
5
|
+
|
|
6
|
+
## Canonical identity
|
|
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.
|
|
11
|
+
|
|
12
|
+
## npm branding
|
|
13
|
+
|
|
14
|
+
- The caret-beak SVG is included in the published package.
|
|
15
|
+
- The README loads the logo through the public npm CDN, so it renders on npm
|
|
16
|
+
even while the source repository remains private.
|
|
17
|
+
|
|
@@ -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,15 +1,15 @@
|
|
|
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": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/
|
|
8
|
+
"url": "git+https://github.com/knodin/knodin.git"
|
|
9
9
|
},
|
|
10
|
-
"homepage": "https://github.com/
|
|
10
|
+
"homepage": "https://github.com/knodin/knodin#readme",
|
|
11
11
|
"bugs": {
|
|
12
|
-
"url": "https://github.com/
|
|
12
|
+
"url": "https://github.com/knodin/knodin/issues"
|
|
13
13
|
},
|
|
14
14
|
"publishConfig": {
|
|
15
15
|
"access": "public",
|
|
@@ -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",
|
|
@@ -39,6 +38,9 @@
|
|
|
39
38
|
"docs/releases/0.4.2.md",
|
|
40
39
|
"docs/releases/0.4.3.md",
|
|
41
40
|
"docs/releases/0.5.0.md",
|
|
41
|
+
"docs/releases/0.5.1.md",
|
|
42
|
+
"docs/releases/0.6.0.md",
|
|
43
|
+
"docs/assets/knodin-favicon.svg",
|
|
42
44
|
"docs/SYSTEMS-AND-RELATIONSHIPS.md",
|
|
43
45
|
"docs/TELEMETRY.md",
|
|
44
46
|
"schemas/release-attestation-v1.schema.json",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://raw.githubusercontent.com/
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/knodin/knodin/main/schemas/release-attestation-v1.schema.json",
|
|
4
4
|
"title": "knodin release attestation",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"additionalProperties": false,
|
|
@@ -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";
|