knodin 0.7.5 → 0.7.6
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 +4 -1
- package/dist/bin/cli.js +108 -1859
- package/dist/bin/launcher.js +3 -10
- package/dist/chunks/chunk-DMQAGX77.js +654 -0
- package/dist/chunks/chunk-F4Z3Z766.js +4 -0
- package/dist/chunks/chunk-SIJAQVSX.js +3 -0
- package/dist/chunks/chunk-X6M4HUUE.js +2 -0
- package/dist/chunks/chunk-YPRMY2LP.js +8 -0
- package/dist/chunks/pure-compression-cli-4TA2TQD5.js +5 -0
- package/dist/chunks/server-7EDF4CBY.js +14 -0
- package/dist/chunks/structural-fast-path-KD5KQSPX.js +4 -0
- package/dist/src/init-progress-worker.js +2 -106
- package/dist/src/repair-progress-worker.js +2 -120
- package/docs/INSTALLATION.md +17 -1
- package/docs/releases/0.7.6.md +25 -0
- package/package.json +1 -111
- package/dist/src/agent-integration.js +0 -238
- package/dist/src/artifact-refresh.js +0 -81
- package/dist/src/cli-args.js +0 -274
- package/dist/src/cli-model.js +0 -358
- package/dist/src/codeflow-replay.js +0 -80
- package/dist/src/compact-structural.js +0 -96
- package/dist/src/competitive-cold-mcp.js +0 -40
- package/dist/src/competitive-constraints.js +0 -20
- package/dist/src/competitive-manifest.js +0 -411
- package/dist/src/competitive-measurement.js +0 -183
- package/dist/src/competitive-runner.js +0 -487
- package/dist/src/competitive-sandbox.js +0 -108
- package/dist/src/context-export.js +0 -422
- package/dist/src/context.js +0 -102
- package/dist/src/diagnostics.js +0 -449
- package/dist/src/docs-sections.js +0 -141
- package/dist/src/doctor.js +0 -380
- package/dist/src/engine/ann-hnsw.js +0 -271
- package/dist/src/engine/embeddings.js +0 -193
- package/dist/src/engine/file-walker.js +0 -43
- package/dist/src/engine/git-history.js +0 -289
- package/dist/src/engine/index.js +0 -13377
- package/dist/src/engine/perf.js +0 -115
- package/dist/src/engine/prune.js +0 -112
- package/dist/src/engine/scip-import.js +0 -408
- package/dist/src/engine/source-policy.js +0 -69
- package/dist/src/engine/sqlite.js +0 -71
- package/dist/src/engine/symbol-delete.js +0 -58
- package/dist/src/execution-profile.js +0 -203
- package/dist/src/failure-diagnosis.js +0 -649
- package/dist/src/fleet.js +0 -7
- package/dist/src/git-executable.js +0 -31
- package/dist/src/graph-query-health.js +0 -115
- package/dist/src/hook-manager-integration.js +0 -156
- package/dist/src/index-activity.js +0 -125
- package/dist/src/init-progress.js +0 -155
- package/dist/src/init.js +0 -1254
- package/dist/src/lifecycle-health.js +0 -250
- package/dist/src/lsp-readonly.js +0 -217
- package/dist/src/output-compression.js +0 -629
- package/dist/src/output-telemetry.js +0 -363
- package/dist/src/pr-triage.js +0 -638
- package/dist/src/progressive-evidence.js +0 -473
- package/dist/src/pure-compression-cli.js +0 -101
- package/dist/src/relationship-adapters.js +0 -370
- package/dist/src/release-attestation.js +0 -533
- package/dist/src/release-preflight.js +0 -510
- package/dist/src/repair-progress.js +0 -262
- package/dist/src/repository-init-process.js +0 -173
- package/dist/src/repository-management.js +0 -1231
- package/dist/src/response-budget.js +0 -194
- package/dist/src/server.js +0 -172
- package/dist/src/structural-fast-path.js +0 -338
- package/dist/src/structural-snapshot.js +0 -33
- package/dist/src/system-config.js +0 -615
- package/dist/src/terminal-help.js +0 -83
- package/dist/src/tools/knodin-tools.js +0 -1529
- package/dist/src/update-ceremony.js +0 -158
- package/dist/src/update-policy.js +0 -944
- package/dist/src/update-trust.js +0 -503
- package/dist/src/version.js +0 -13
- package/dist/src/visualization.js +0 -162
- package/dist/src/wait-for-fresh.js +0 -98
- package/dist/src/worktree-lifecycle.js +0 -231
- package/docs/CONTAINED-EXECUTION.md +0 -77
- package/docs/DIAGNOSTICS.md +0 -45
- package/docs/GIT-HISTORY-REVIEW.md +0 -39
- package/docs/PROGRESSIVE-EVIDENCE.md +0 -37
- package/docs/PT-ACCESS-RECOMMENDATION.md +0 -91
- package/docs/RELEASE-0.3-EVIDENCE.md +0 -73
- package/docs/SCIP-IMPORT.md +0 -57
- package/docs/SIGNED-UPDATES.md +0 -151
- package/docs/TELEMETRY.md +0 -46
- package/docs/assets/knodin-favicon.svg +0 -4
- package/docs/releases/0.3.0.md +0 -46
- package/docs/releases/0.4.0.md +0 -68
- package/docs/releases/0.4.1.md +0 -28
- package/docs/releases/0.4.2.md +0 -27
- package/docs/releases/0.4.3.md +0 -23
- package/docs/releases/0.5.0.md +0 -29
- package/docs/releases/0.5.1.md +0 -17
- package/docs/releases/0.6.0.md +0 -18
- package/docs/releases/0.7.0.md +0 -24
- package/docs/releases/0.7.1.md +0 -21
- package/docs/releases/0.7.2.md +0 -21
- package/docs/releases/0.7.3.md +0 -23
- package/docs/releases/0.7.4.md +0 -17
- package/docs/releases/0.7.5.md +0 -20
- package/schemas/release-attestation-v1.schema.json +0 -210
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
# Reckon Graph 0.3 evidence ledger
|
|
2
|
-
|
|
3
|
-
This ledger freezes the field and competitor evidence used to define the 0.3
|
|
4
|
-
release. Historical observations are not rewritten as current measurements.
|
|
5
|
-
|
|
6
|
-
## Minions field observation
|
|
7
|
-
|
|
8
|
-
The prior 0.1.22 field run recorded:
|
|
9
|
-
|
|
10
|
-
- 3,006 source files;
|
|
11
|
-
- 2,949 indexed files and 157 health findings before repair;
|
|
12
|
-
- 3,006 indexed files after repair;
|
|
13
|
-
- current HEAD `cbf058aa...`;
|
|
14
|
-
- recorded indexed HEAD `4d45fe02...`;
|
|
15
|
-
- a 16-commit distance while 0.2.0 status incorrectly reported healthy;
|
|
16
|
-
- 195 repair operations, including reconciliation of stale/orphaned state and
|
|
17
|
-
regeneration of 1,874 symbol embeddings.
|
|
18
|
-
|
|
19
|
-
The workload fast-forwarded main across 15 merged commits and removed 16 linked
|
|
20
|
-
worktrees. The checked-in lifecycle regression recreates those lifecycle
|
|
21
|
-
shapes, including additions, edits, renames, deletions, policy transitions,
|
|
22
|
-
overlapping hook workers, immediate queries, and cleanup.
|
|
23
|
-
|
|
24
|
-
The Minions checkout is a read-only field fixture for this release. Its current
|
|
25
|
-
HEAD on 2026-07-30 was `44c91f6d013fd8d6f4e106d063a87eab94b19866`;
|
|
26
|
-
the historical SHAs above belong to the original observation, not that later
|
|
27
|
-
checkout state. Existing modified and untracked Minions files were left intact.
|
|
28
|
-
|
|
29
|
-
## Token Optimizer observation
|
|
30
|
-
|
|
31
|
-
The complete 102.8-second demo artifact has SHA-256
|
|
32
|
-
`a8085ec26d56ab220f3b31578f818a911caf277e604ed9f8d46c0d9f31fbb60d`.
|
|
33
|
-
It demonstrates seven named surfaces: file outline, symbol extraction, symbol
|
|
34
|
-
find, batch outline, project overview, output compression, and command running.
|
|
35
|
-
It describes Python AST parsing and heuristic/regular-expression coverage for
|
|
36
|
-
other languages.
|
|
37
|
-
|
|
38
|
-
At release time, no authorized immutable source commit, packaged executable,
|
|
39
|
-
README, version, or raw measurement data was available, so the original
|
|
40
|
-
observation was `demo-only`. A post-release source audit now pins the authorized
|
|
41
|
-
GHES implementation at
|
|
42
|
-
`a2b9cef5efdfcf0393e9e7a5ded229ffd9f613d7`. It verifies the source inventory
|
|
43
|
-
and selected implementation observations, including a behavioral compression
|
|
44
|
-
budget probe. Equivalent end-to-end measurements remain incomplete, and the
|
|
45
|
-
displayed savings remain hypotheses: the demo showed two calls, used a bytes/4
|
|
46
|
-
token estimate, and showed inconsistent 83% and 93% targeted-lookup figures.
|
|
47
|
-
|
|
48
|
-
The reproducible comparison contract is
|
|
49
|
-
[`../benchmarks/evaluations/token-optimizer-20260730/comparison-manifest.json`](../benchmarks/evaluations/token-optimizer-20260730/comparison-manifest.json).
|
|
50
|
-
The immutable source result is
|
|
51
|
-
[`../benchmarks/evaluations/token-optimizer-20260730/raw-source-audit-20260730.json`](../benchmarks/evaluations/token-optimizer-20260730/raw-source-audit-20260730.json).
|
|
52
|
-
Missing behavioral measurements are `null`, never zero.
|
|
53
|
-
|
|
54
|
-
The later C56 replay now executes all seven pinned workflows with shared
|
|
55
|
-
fixtures, real-token counts, 20 warm samples, five cold-process samples, and
|
|
56
|
-
explicit correctness oracles. Both products pass the five structural oracles.
|
|
57
|
-
The result is intentionally `complete-with-gaps`: Token Optimizer is smaller
|
|
58
|
-
and faster on all five small-fixture structural calls, Reckon has no output
|
|
59
|
-
compressor yet, and command execution remains containment-gated. See
|
|
60
|
-
[`../benchmarks/evaluations/token-optimizer-20260730/summary.md`](../benchmarks/evaluations/token-optimizer-20260730/summary.md).
|
|
61
|
-
|
|
62
|
-
## Implemented and deferred
|
|
63
|
-
|
|
64
|
-
Reckon now provides parser-grounded bounded file and batch outlines, compact
|
|
65
|
-
source-only extraction, deterministic project overview, natural-prompt routing,
|
|
66
|
-
real-token local telemetry, and a static local report through the existing
|
|
67
|
-
single `reckon` gateway.
|
|
68
|
-
|
|
69
|
-
`reckon run` is not shipped. A no-shell launcher alone could not prove portable
|
|
70
|
-
hard memory limits and process-tree termination across POSIX and Windows. The
|
|
71
|
-
full gate and adversarial fixtures remain documented in
|
|
72
|
-
[`COMMAND-OUTPUT-COMPRESSION.md`](COMMAND-OUTPUT-COMPRESSION.md). This is a
|
|
73
|
-
security decision, not a claim that the competitor implementation is unsafe.
|
package/docs/SCIP-IMPORT.md
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# Optional SCIP import
|
|
2
|
-
|
|
3
|
-
knodin can add compiler-produced SCIP facts to its local graph without running a
|
|
4
|
-
language server. The tier is deliberately opt-in:
|
|
5
|
-
|
|
6
|
-
```sh
|
|
7
|
-
knodin index --scip path/to/index.scip
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
The input must be a regular file inside the repository. knodin never discovers,
|
|
11
|
-
downloads, or produces a SCIP index, and a normal `knodin init` or `knodin
|
|
12
|
-
index` does not import one. Repositories without the flag keep the existing
|
|
13
|
-
native and LSIF behavior byte-for-byte at the command boundary.
|
|
14
|
-
|
|
15
|
-
## Evidence and conflicts
|
|
16
|
-
|
|
17
|
-
Imported definitions use stable repository/file/range identities, `SCIP_*`
|
|
18
|
-
kinds, a summary containing the original SCIP symbol and `scip` provenance,
|
|
19
|
-
`scip_reference`, `scip_relationship_reference`, `scip_implementation`,
|
|
20
|
-
`scip_type_definition`, or `scip_definition` reference kinds, and `scip_import`
|
|
21
|
-
file edges. Native and LSIF facts are not deleted or overwritten. If two tiers
|
|
22
|
-
define the same name, normal ambiguity-safe resolution returns all candidates
|
|
23
|
-
and requires a file, kind, or identity selector. A stale SCIP input is refused
|
|
24
|
-
rather than replacing fresher source-derived evidence.
|
|
25
|
-
|
|
26
|
-
Every successful index result includes the producer name/version and represented
|
|
27
|
-
languages from the SCIP file plus the exact limits used. Defaults are 64 MiB,
|
|
28
|
-
10,000 documents, 250,000 decoded facts, and 30 seconds. Inputs that are
|
|
29
|
-
missing, malformed, oversized, stale relative to a represented source file, or
|
|
30
|
-
contain absolute, traversal, missing, symlink, or non-file document paths fail
|
|
31
|
-
before the SCIP tier is replaced.
|
|
32
|
-
|
|
33
|
-
## Known bounds and limitations
|
|
34
|
-
|
|
35
|
-
- The importer supports standard SCIP `Index`, `Document`, `Occurrence`,
|
|
36
|
-
`SymbolInformation`, and `Relationship` fields needed for definitions,
|
|
37
|
-
references, source ranges, and relationships. Unknown protobuf fields are
|
|
38
|
-
skipped, but unsupported wire types and malformed ranges fail closed.
|
|
39
|
-
- Precision and coverage are bounded by the producer. Checked-in coverage is
|
|
40
|
-
npm-integrity-pinned `@sourcegraph/scip-typescript@0.4.0` over TypeScript. Its
|
|
41
|
-
emitted documents omit the optional language field, so the import report says
|
|
42
|
-
`unknown`; other conforming producers and languages are not certified by C84.
|
|
43
|
-
- The index mtime must be at least as new as every represented source file.
|
|
44
|
-
This is a conservative local freshness check, not a claim that the producer
|
|
45
|
-
indexed the exact Git commit or compiler configuration.
|
|
46
|
-
- An import replaces the prior SCIP tier as one snapshot. It does not merge
|
|
47
|
-
multiple SCIP files, watch an index, start a daemon, or provide live LSP.
|
|
48
|
-
Live LSP requires a separately approved roadmap item.
|
|
49
|
-
- SCIP local symbols are scoped by document. Relationship flags remain distinct
|
|
50
|
-
(`reference`, `implementation`, `type-definition`, or `definition`); only an
|
|
51
|
-
actual cross-file occurrence reference contributes a `scip_import` file edge.
|
|
52
|
-
- The checked-in replay is synthetic and authorizes no superiority,
|
|
53
|
-
production-readiness, trusted-distribution, or cross-platform claim.
|
|
54
|
-
|
|
55
|
-
The replay, verifier, raw results, and resource report live under
|
|
56
|
-
`benchmarks/evaluations/c84-scip-import/`; run `npm run verify:c84` entirely
|
|
57
|
-
offline to reproduce them.
|
package/docs/SIGNED-UPDATES.md
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
# Signed update metadata trust
|
|
2
|
-
|
|
3
|
-
knodin's update trust is local and channel-independent. npm, Homebrew,
|
|
4
|
-
Artifactory, GitHub SaaS, and GHES may transport metadata and artifacts, but no
|
|
5
|
-
one transport is an authority to install code.
|
|
6
|
-
|
|
7
|
-
`src/update-trust.ts` is the pure verification boundary. It performs no network
|
|
8
|
-
request, package-manager command, filesystem activation, or telemetry write.
|
|
9
|
-
`src/update-policy.ts` composes that verifier with bounded HTTPS fetching,
|
|
10
|
-
private monotonic state, policy, channel cross-checking, quarantine, exact local
|
|
11
|
-
manager artifacts, health validation, and rollback. C64 adds the release-time
|
|
12
|
-
CycloneDX/Sigstore evidence and fail-closed five-channel attestation machinery;
|
|
13
|
-
C65 must still certify the smoke sandbox and recovery drills, and a real release
|
|
14
|
-
must produce verified evidence before activation is enabled.
|
|
15
|
-
|
|
16
|
-
## Trust model
|
|
17
|
-
|
|
18
|
-
The metadata model has four disjoint Ed25519 roles:
|
|
19
|
-
|
|
20
|
-
| Role | Purpose | Maximum signed lifetime | Required threshold |
|
|
21
|
-
| --- | --- | ---: | ---: |
|
|
22
|
-
| `root` | Delegates keys and rotates trust | 366 days | At least 2 |
|
|
23
|
-
| `targets` | Authorizes immutable release artifacts and channels | 93 days | At least 2 |
|
|
24
|
-
| `snapshot` | Binds an exact targets version, length, and digest | 32 days | At least 1 |
|
|
25
|
-
| `timestamp` | Publishes the current snapshot and bounds freezes | 8 days | At least 1 |
|
|
26
|
-
|
|
27
|
-
Root and targets thresholds prevent one stolen signing key from authorizing a
|
|
28
|
-
release. All four roles must use separate, content-addressed keys. A root
|
|
29
|
-
rotation is accepted one version at a time and only when both the previously
|
|
30
|
-
trusted root threshold and the candidate root threshold sign the new root.
|
|
31
|
-
|
|
32
|
-
The initial root envelope is trusted only when its SHA-256 matches an
|
|
33
|
-
independently pinned digest shipped by a previously trusted knodin build. The
|
|
34
|
-
pin must never be learned from fetched metadata or a package registry.
|
|
35
|
-
|
|
36
|
-
Metadata is signed over deterministic UTF-8 JSON: object keys use ECMAScript
|
|
37
|
-
code-unit ordering, arrays retain order, and undefined, cyclic, non-finite, or
|
|
38
|
-
non-plain values are rejected. Key IDs are the SHA-256 of the canonical public
|
|
39
|
-
key record.
|
|
40
|
-
|
|
41
|
-
## Verification order
|
|
42
|
-
|
|
43
|
-
The verifier fails closed in this order:
|
|
44
|
-
|
|
45
|
-
1. Validate the installed trusted root and its independent digest pin.
|
|
46
|
-
2. Verify the trusted root's own threshold signatures.
|
|
47
|
-
3. Accept the same root byte-for-byte, or verify a one-step rotation under both
|
|
48
|
-
old and new root thresholds.
|
|
49
|
-
4. Validate role separation, schema, generation time, expiry, and maximum
|
|
50
|
-
metadata lifetime.
|
|
51
|
-
5. Verify threshold signatures for targets, snapshot, and timestamp.
|
|
52
|
-
6. Bind timestamp to the exact canonical snapshot envelope by version, byte
|
|
53
|
-
length, and SHA-256.
|
|
54
|
-
7. Bind snapshot to the exact canonical targets envelope the same way.
|
|
55
|
-
8. Compare every role's version and digest with durable prior state. Lower
|
|
56
|
-
versions are rollback; changed bytes at the same version are equivocation.
|
|
57
|
-
9. Select only the requested relative target path.
|
|
58
|
-
10. Before quarantine, compare the downloaded artifact with its signed byte
|
|
59
|
-
length and SHA-256.
|
|
60
|
-
|
|
61
|
-
The successful result returns the exact verified root envelope. C63 persists it
|
|
62
|
-
for evidence, but never promotes a root merely because mutable local state says
|
|
63
|
-
it is trusted: each check and rollback remains anchored to the independently
|
|
64
|
-
shipped initial root and pin. When more than one rotation was missed, the client
|
|
65
|
-
fetches each numbered intermediate root, bounds one check to 32 rotations,
|
|
66
|
-
cross-checks every intermediate across configured mirrors, and advances only
|
|
67
|
-
one dual-threshold version at a time. A skipped, substituted, malformed, or
|
|
68
|
-
wrong-version intermediate root fails closed without persisting new trust.
|
|
69
|
-
|
|
70
|
-
The signed target also carries the semantic version, release channel, full
|
|
71
|
-
source commit, and digests for build provenance, the CycloneDX SBOM, its signed
|
|
72
|
-
attestation, and the cross-channel release attestation. Metadata validation
|
|
73
|
-
accepts these fields so notify-only clients can read a staged repository, but
|
|
74
|
-
download/apply refuses when any digest is absent. The verifier does not invent
|
|
75
|
-
missing provenance or promote a merely claimed channel result.
|
|
76
|
-
|
|
77
|
-
## Defenses and limits
|
|
78
|
-
|
|
79
|
-
Executable tests cover valid threshold authorization, missing threshold
|
|
80
|
-
signatures, signed-field mutation, artifact substitution, expired timestamp
|
|
81
|
-
freeze, rollback, same-version equivocation, mix-and-match metadata, role-key
|
|
82
|
-
reuse, root-pin substitution, future metadata, and root rotation without the
|
|
83
|
-
old threshold. Recovery tests additionally cover missed sequential rotations,
|
|
84
|
-
skipped roots, intermediate mirror disagreement, and malicious version jumps.
|
|
85
|
-
|
|
86
|
-
An isolated 0.4.3 adversarial drill executed the trust, policy, CLI, and release-
|
|
87
|
-
attestation suites together: 4 files and 52 scenarios passed on macOS with Node
|
|
88
|
-
26. Its machine-readable record is
|
|
89
|
-
`docs/evidence/0.4.3-update-defense-drill.json`. The record separately identifies
|
|
90
|
-
the post-tag commit from which the drill executed and the immutable 0.4.3 source
|
|
91
|
-
commit whose implementation it exercised, plus the environment, command,
|
|
92
|
-
defenses, and exclusions. Injected transport, package-manager, smoke, and health
|
|
93
|
-
adapters make this repeatable evidence of the verification and recovery logic;
|
|
94
|
-
they do not certify a real npm/Homebrew mutation path or replace the production
|
|
95
|
-
ceremony and live drills.
|
|
96
|
-
|
|
97
|
-
The verifier cannot make the first installation trustworthy by itself. A
|
|
98
|
-
production release still requires an offline root-key ceremony, independent
|
|
99
|
-
pin distribution, durable trusted-state storage, compromised-key rotation
|
|
100
|
-
drills, and verified artifacts on every approved channel. Until that ceremony
|
|
101
|
-
and C64–C65 are complete:
|
|
102
|
-
|
|
103
|
-
- the former npm `latest` hint is not used by doctor, status, MCP, or update commands;
|
|
104
|
-
- no release is authorized by `src/update-trust.ts` in production;
|
|
105
|
-
- no automatic update may be enabled; and
|
|
106
|
-
- a registry, formula, release page, or mutable URL must not be treated as a
|
|
107
|
-
root of trust.
|
|
108
|
-
|
|
109
|
-
## Production key ceremony gate
|
|
110
|
-
|
|
111
|
-
Private root keys must be created and retained offline under separate
|
|
112
|
-
custodians. No production private key or recovery secret belongs in this
|
|
113
|
-
repository, CI variables, npm, Homebrew, GitHub, GHES, or Artifactory. Before
|
|
114
|
-
activating signed checks, the release owners must record:
|
|
115
|
-
|
|
116
|
-
- custodians and a two-person approval path;
|
|
117
|
-
- public key IDs and the independently reviewed root-envelope digest;
|
|
118
|
-
- offline backup and recovery controls;
|
|
119
|
-
- online targets/snapshot/timestamp key storage and rotation periods;
|
|
120
|
-
- emergency revocation and root-rotation rehearsal evidence; and
|
|
121
|
-
- the exact knodin source commit that first embeds the trusted root pin.
|
|
122
|
-
|
|
123
|
-
This external ceremony is deliberately a release gate rather than generated
|
|
124
|
-
test material masquerading as production trust.
|
|
125
|
-
|
|
126
|
-
The fail-closed preparation contracts and multi-custodian rehearsal procedure
|
|
127
|
-
are in [`ROOT-CEREMONY-RUNBOOK.md`](ROOT-CEREMONY-RUNBOOK.md). Their import seam
|
|
128
|
-
accepts public material only and always returns `productionActivation: false`;
|
|
129
|
-
it does not alter the production `trust-unconfigured` behavior.
|
|
130
|
-
|
|
131
|
-
## Client policy and recovery
|
|
132
|
-
|
|
133
|
-
The implemented policy modes are `notify-only`, `download-verify-only`,
|
|
134
|
-
`apply-patch`, and `apply-minor`; major updates always require manual approval.
|
|
135
|
-
Policies also bound release age, approved channels, enterprise mirror origins,
|
|
136
|
-
optional exact metadata/artifact cross-checks, and UTC maintenance windows.
|
|
137
|
-
|
|
138
|
-
`knodin update status` and `explain` are offline reads. `check` uses no
|
|
139
|
-
repository context. `apply` first quarantines and verifies the candidate plus a
|
|
140
|
-
signed artifact for the currently installed version. A missing rollback target,
|
|
141
|
-
provenance object, SBOM, release attestation, smoke sandbox, manager adapter, or
|
|
142
|
-
health check is a refusal, not a warning. Explicit rollback re-verifies the
|
|
143
|
-
stored signed metadata, artifact, provenance, SBOM, both attestations, and every
|
|
144
|
-
quarantine path before invoking the manager; nested symlink redirection is a
|
|
145
|
-
hard refusal. Apply also requires the candidate attestation's rollback version,
|
|
146
|
-
path, and derived digest to match the separately downloaded and verified rollback
|
|
147
|
-
artifact. Signed
|
|
148
|
-
non-SemVer target versions are ineligible before path construction; quarantine
|
|
149
|
-
uses fresh exclusive files under a symlink-rejecting private root; and automatic
|
|
150
|
-
rollback succeeds only after a second health check validates the restored
|
|
151
|
-
installation.
|
package/docs/TELEMETRY.md
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# Local savings telemetry
|
|
2
|
-
|
|
3
|
-
knodin's optional telemetry is local, metadata-only, and disabled by default.
|
|
4
|
-
It uses `gpt-tokenizer@3.4.0` with the `o200k_base` encoding and records:
|
|
5
|
-
|
|
6
|
-
- the actual optimized response contract, bytes, and tokens;
|
|
7
|
-
- an executed full-file baseline only when the operation identifies bounded
|
|
8
|
-
repository-contained files;
|
|
9
|
-
- byte and token savings, including negative savings;
|
|
10
|
-
- latency p50/p95 inputs, process RSS, cold/warm operation state, success/error
|
|
11
|
-
outcome, agent round trips, truncation, detail mode, and MCP schema token cost;
|
|
12
|
-
- freshness failures, compression-fidelity samples, indexing time, and current
|
|
13
|
-
local index storage where those measurements are available;
|
|
14
|
-
- a one-way SHA-256-derived repository identifier for per-repository grouping.
|
|
15
|
-
|
|
16
|
-
Unknown baselines remain `null`; knodin does not invent a full-file comparison.
|
|
17
|
-
Persisted records contain no source or file paths. Enable persistence for an MCP
|
|
18
|
-
call with `persistTelemetry: true`. Records default to 30-day retention and are
|
|
19
|
-
stored mode `0600` with atomic replacement. Inspect and manage them with:
|
|
20
|
-
|
|
21
|
-
```text
|
|
22
|
-
knodin telemetry status
|
|
23
|
-
knodin telemetry report
|
|
24
|
-
knodin telemetry export
|
|
25
|
-
knodin telemetry clear
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
`--retention-days 1..3650` changes the read/persistence window. `--input` and
|
|
29
|
-
`--output` accept only repository-contained, non-symlink paths. `clear` is the
|
|
30
|
-
only command that deletes the private JSONL file; report and export never do.
|
|
31
|
-
|
|
32
|
-
The default report is `.knodin/telemetry-report.html`. It includes summary,
|
|
33
|
-
operation, time-series, private repository, indexing-cost, latency, freshness,
|
|
34
|
-
and fidelity views with light/dark styling. The default machine-readable export
|
|
35
|
-
is `.knodin/telemetry-export.json` and labels measured, modeled, and unknown
|
|
36
|
-
baselines explicitly. Neither artifact needs a daemon, hosted service,
|
|
37
|
-
authentication, or source egress.
|
|
38
|
-
|
|
39
|
-
Telemetry never persists source, raw tool output, command text, usernames, or
|
|
40
|
-
absolute paths. A measured baseline is an executed, bounded, repository-local
|
|
41
|
-
full-file read; it is not inferred from file counts. Unsupported baselines and
|
|
42
|
-
metrics remain `null` or are counted as unavailable instead of being modeled.
|
|
43
|
-
|
|
44
|
-
ROI telemetry is separate from troubleshooting diagnostics. Telemetry measures
|
|
45
|
-
product behavior; `knodin diagnostics` retains sanitized failure envelopes and
|
|
46
|
-
creates a user-inspectable support bundle. See `docs/DIAGNOSTICS.md`.
|
package/docs/releases/0.3.0.md
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# Reckon Graph 0.3.0 release notes
|
|
2
|
-
|
|
3
|
-
Reckon Graph 0.3.0 makes graph freshness revision-truthful and closes the
|
|
4
|
-
lifecycle and completion-audit gaps observed in a large multi-worktree field
|
|
5
|
-
run. It is a backward-compatible minor release.
|
|
6
|
-
|
|
7
|
-
## Freshness and lifecycle
|
|
8
|
-
|
|
9
|
-
- Every graph answer carries a canonical current/indexed revision and
|
|
10
|
-
dirty-working-tree freshness envelope.
|
|
11
|
-
- Durable, coalescing hook events survive contention and failures; status,
|
|
12
|
-
`wait --fresh`, and `status --watch` expose queue progress.
|
|
13
|
-
- Deep repair binds a revision only after complete content verification.
|
|
14
|
-
- Worktree status, reconciliation, and safe dry-run removal expose per-worktree
|
|
15
|
-
graph ownership and detect removed worktrees.
|
|
16
|
-
|
|
17
|
-
## Diagnostics and completion audits
|
|
18
|
-
|
|
19
|
-
- Doctor reports separate Claude, Codex, Gemini, and Antigravity configuration,
|
|
20
|
-
protocol checks, and active-session evidence.
|
|
21
|
-
- Repair plans distinguish health findings from planned operations.
|
|
22
|
-
- PR listing and audits return explicit repository/login/error/zero-result
|
|
23
|
-
context, reviews, threads, checks, merge commits, branches, and graph impact.
|
|
24
|
-
|
|
25
|
-
## Bounded structural context
|
|
26
|
-
|
|
27
|
-
- File and batch outlines include stable identity, signatures, ranges,
|
|
28
|
-
visibility, containment, and parser evidence.
|
|
29
|
-
- Source-only explain and deterministic project overview reduce unnecessary
|
|
30
|
-
full-file reads.
|
|
31
|
-
- Go and Rust outlines use checked-in local Tree-sitter grammars.
|
|
32
|
-
- Optional local telemetry uses
|
|
33
|
-
`gpt-tokenizer@3.4.0:o200k_base`, preserves negative savings, measures schema
|
|
34
|
-
cost, and can render a static repository-local report without egress.
|
|
35
|
-
|
|
36
|
-
Command execution/output compression was evaluated but is not shipped because
|
|
37
|
-
portable hard memory and process-tree containment were not proven. Competitor
|
|
38
|
-
behavioral measurements remain incomplete without an authorized packaged
|
|
39
|
-
release or raw usage dataset. A post-release audit now pins and verifies the
|
|
40
|
-
authorized source revision without treating source inspection as end-to-end
|
|
41
|
-
performance evidence. See
|
|
42
|
-
[`../RELEASE-0.3-EVIDENCE.md`](../RELEASE-0.3-EVIDENCE.md) and
|
|
43
|
-
[`../COMMAND-OUTPUT-COMPRESSION.md`](../COMMAND-OUTPUT-COMPRESSION.md).
|
|
44
|
-
|
|
45
|
-
No tag, npm publication, Homebrew publication, or P&T mirror is created by this
|
|
46
|
-
release PR; each remains a separately authorized release action.
|
package/docs/releases/0.4.0.md
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# Reckon Graph 0.4.0 release notes
|
|
2
|
-
|
|
3
|
-
Reckon Graph 0.4.0 delivers the implemented portions of the Token Optimizer
|
|
4
|
-
parity program and adds trusted-update, release-attestation, large-portfolio,
|
|
5
|
-
and compact-response capabilities. It is a backward-compatible minor release.
|
|
6
|
-
|
|
7
|
-
## Compact structural and diagnostic context
|
|
8
|
-
|
|
9
|
-
- Compact file and batch outlines, symbol extraction, symbol search, and
|
|
10
|
-
project overview reduce response tokens while retaining stable identity,
|
|
11
|
-
source locations, parser evidence, ambiguity, and freshness.
|
|
12
|
-
- Deterministic log compression preserves diagnostic structures, enforces hard
|
|
13
|
-
budgets, records omissions, and supports bounded retrieval without rerunning
|
|
14
|
-
the original command.
|
|
15
|
-
- Failure diagnosis links log evidence to files, symbols, callers,
|
|
16
|
-
dependencies, tests, and recent changes in the local graph.
|
|
17
|
-
- The checked-in Token Optimizer replay and evidence-linked scorecard pin the
|
|
18
|
-
competitor and Reckon revisions and keep unsupported claims explicit.
|
|
19
|
-
|
|
20
|
-
## Portfolio and lifecycle reliability
|
|
21
|
-
|
|
22
|
-
- Repository filters are applied before inventory, large `git ls-files`
|
|
23
|
-
responses are supported, and selected repositories are processed
|
|
24
|
-
sequentially.
|
|
25
|
-
- Portfolio initialization is bounded, resumable, and truthful in dry-run
|
|
26
|
-
mode, including nested repositories and noisy Salesforce metadata.
|
|
27
|
-
- Lifecycle queues, `wait --fresh`, and installed-versus-active client status
|
|
28
|
-
provide revision-truthful observability.
|
|
29
|
-
- Terminal help uses a declarative command model and the available terminal
|
|
30
|
-
width while remaining snapshot-testable.
|
|
31
|
-
|
|
32
|
-
## Private ROI evidence
|
|
33
|
-
|
|
34
|
-
- Local, opt-in telemetry uses a real tokenizer and records bounded operation,
|
|
35
|
-
latency, indexing, schema, fidelity, and savings metrics without source,
|
|
36
|
-
command text, absolute paths, usernames, or network egress.
|
|
37
|
-
- The self-contained dashboard and export bundle distinguish directly measured
|
|
38
|
-
observations from modeled counterfactuals.
|
|
39
|
-
|
|
40
|
-
## Trusted distribution and updates
|
|
41
|
-
|
|
42
|
-
- Signed-only update status, check, explain, apply, and rollback policies bind
|
|
43
|
-
artifact length/digest, channel, provenance, SBOM, release age, maintenance
|
|
44
|
-
window, and rollback state.
|
|
45
|
-
- TUF-inspired root, targets, snapshot, and timestamp verification detects
|
|
46
|
-
rollback, freeze, mix-and-match, expiry, threshold, and compromised-channel
|
|
47
|
-
failures. Bounded sequential root recovery handles missed rotations.
|
|
48
|
-
- The release workflow builds one tarball, creates and independently verifies
|
|
49
|
-
provenance and CycloneDX SBOM attestations, then publishes the exact bytes to
|
|
50
|
-
npm and Docusign Artifactory.
|
|
51
|
-
- Final certification additionally requires byte-identical GitHub SaaS, GHES,
|
|
52
|
-
and Homebrew observations plus the machine-readable cross-channel release
|
|
53
|
-
attestation.
|
|
54
|
-
|
|
55
|
-
## Intentional boundary
|
|
56
|
-
|
|
57
|
-
Reckon does not expose unrestricted shell execution. Portable process-tree,
|
|
58
|
-
filesystem, network, credential, and resource containment has not been proven,
|
|
59
|
-
so command execution remains an explicit safety-based non-goal. Existing
|
|
60
|
-
trusted execution tools can pass their output to Reckon's compression and
|
|
61
|
-
failure-diagnosis operations.
|
|
62
|
-
|
|
63
|
-
Version preparation does not itself publish any channel. The release is
|
|
64
|
-
certified only after the separately authorized tag workflow and five-channel
|
|
65
|
-
verification complete. Production offline root custody, compromised-runner
|
|
66
|
-
drills, automated non-personal GHES mirroring, timed onboarding, and native
|
|
67
|
-
Windows named-client certification remain documented limitations until their
|
|
68
|
-
evidence is recorded.
|
package/docs/releases/0.4.1.md
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# Reckon Graph 0.4.1 release notes
|
|
2
|
-
|
|
3
|
-
Reckon Graph 0.4.1 is the publishable patch release of the 0.4 line. It contains
|
|
4
|
-
all functionality described in the 0.4.0 release notes plus a fail-closed
|
|
5
|
-
release-verification compatibility fix.
|
|
6
|
-
|
|
7
|
-
## Release verification fix
|
|
8
|
-
|
|
9
|
-
- The workflow now verifies signed provenance and the CycloneDX SBOM using the
|
|
10
|
-
exact certificate identity together with repository, source digest, source
|
|
11
|
-
ref, predicate type, and GitHub Actions OIDC issuer constraints accepted by
|
|
12
|
-
the current GitHub CLI.
|
|
13
|
-
- The release-attestation CLI test double now runs with `set -eu`, ensuring an
|
|
14
|
-
assertion mismatch actually fails the test instead of continuing to a later
|
|
15
|
-
successful command.
|
|
16
|
-
|
|
17
|
-
## Why 0.4.0 was not published
|
|
18
|
-
|
|
19
|
-
The immutable `v0.4.0` tag reached the signed-evidence stage, then failed closed
|
|
20
|
-
before npm or Artifactory publication because the installed GitHub CLI rejects
|
|
21
|
-
combining `--cert-identity` with `--signer-workflow`. The tag remains unchanged
|
|
22
|
-
for auditability and 0.4.0 was not published to any package channel. This patch
|
|
23
|
-
release contains the corrected workflow rather than rewriting the existing
|
|
24
|
-
tag.
|
|
25
|
-
|
|
26
|
-
As with every release, version preparation alone does not certify distribution.
|
|
27
|
-
Certification requires the tag workflow and byte-for-byte verification across
|
|
28
|
-
npm, Docusign Artifactory, GitHub SaaS, GHES, and Homebrew.
|
package/docs/releases/0.4.2.md
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Reckon Graph 0.4.2 release notes
|
|
2
|
-
|
|
3
|
-
Reckon Graph 0.4.2 is the publishable patch release of the 0.4 line. It contains
|
|
4
|
-
all functionality described in the 0.4.0 and 0.4.1 release notes plus a
|
|
5
|
-
canonical CycloneDX attestation-predicate fix.
|
|
6
|
-
|
|
7
|
-
## CycloneDX attestation verification fix
|
|
8
|
-
|
|
9
|
-
- The release workflow and final cross-channel verifier now use the canonical
|
|
10
|
-
`https://cyclonedx.org/bom` predicate type emitted by GitHub's SBOM
|
|
11
|
-
attestation action. The CycloneDX document's `specVersion` remains validated
|
|
12
|
-
independently as 1.4, 1.5, or 1.6.
|
|
13
|
-
- Regression tests require the canonical attestation predicate for SBOM bundles
|
|
14
|
-
and reject accidental coupling to a document-version URI.
|
|
15
|
-
|
|
16
|
-
## Why 0.4.1 was not published
|
|
17
|
-
|
|
18
|
-
The immutable `v0.4.1` tag produced a verified release tarball, signed SLSA
|
|
19
|
-
provenance, and a signed CycloneDX SBOM, then failed closed before npm or
|
|
20
|
-
Artifactory publication. Inspection of the signed bundle proved that GitHub
|
|
21
|
-
emitted `https://cyclonedx.org/bom`, while the verifier requested
|
|
22
|
-
`https://cyclonedx.org/bom/v1.5`. The tag remains unchanged for auditability;
|
|
23
|
-
this patch release corrects the verifier instead of rewriting it.
|
|
24
|
-
|
|
25
|
-
Version preparation alone does not certify distribution. Certification still
|
|
26
|
-
requires the tag workflow and byte-for-byte verification across npm, Docusign
|
|
27
|
-
Artifactory, GitHub SaaS, GHES, and Homebrew.
|
package/docs/releases/0.4.3.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Reckon Graph 0.4.3
|
|
2
|
-
|
|
3
|
-
Reckon Graph 0.4.3 corrects the approved Docusign Artifactory channel identity
|
|
4
|
-
used by final release attestation.
|
|
5
|
-
|
|
6
|
-
## Release-integrity correction
|
|
7
|
-
|
|
8
|
-
- Final channel evidence now requires the authoritative
|
|
9
|
-
`artifactory-corp.docusignhq.com` host returned by Docusign Artifactory.
|
|
10
|
-
- The obsolete `artifactory.docusignhq.com` alias is rejected. It does not
|
|
11
|
-
serve the published raw artifact and must not appear in a verified release
|
|
12
|
-
record.
|
|
13
|
-
- Regression fixtures cover the production host and prevent the obsolete alias
|
|
14
|
-
from returning.
|
|
15
|
-
|
|
16
|
-
Version 0.4.2 was successfully published to npm, Artifactory, GitHub SaaS, and
|
|
17
|
-
Homebrew, but its final five-channel attestation was intentionally withheld when
|
|
18
|
-
the real Artifactory observation exposed this host mismatch. No mismatched
|
|
19
|
-
artifact was installed: all four observed 0.4.2 artifacts had identical bytes.
|
|
20
|
-
|
|
21
|
-
As with every release, 0.4.3 is certified only after the tag workflow and final
|
|
22
|
-
cross-channel verification complete successfully. Preparing this version does
|
|
23
|
-
not itself publish it.
|
package/docs/releases/0.5.0.md
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# knodin 0.5.0
|
|
2
|
-
|
|
3
|
-
knodin 0.5.0 completes the public product and package rename from Reckon Graph.
|
|
4
|
-
|
|
5
|
-
## New identity
|
|
6
|
-
|
|
7
|
-
- The unscoped npm package is `knodin`.
|
|
8
|
-
- The canonical executable is `knodin`.
|
|
9
|
-
- The MCP server and its single gateway tool are named `knodin`.
|
|
10
|
-
- The display name is always lowercase, with the caret-beak mark as the
|
|
11
|
-
canonical logo and `<◀ knodin` as the terminal lockup.
|
|
12
|
-
|
|
13
|
-
## Compatibility
|
|
14
|
-
|
|
15
|
-
- The package still exposes `reckon` as a compatibility executable.
|
|
16
|
-
- Existing `.reckon/` state, `reckon.yaml`, and `RECKON_*` environment
|
|
17
|
-
variables are retained so the rename does not force a reindex or invalidate
|
|
18
|
-
local configuration.
|
|
19
|
-
- `knodin init` migrates managed MCP registrations and recognizes lifecycle
|
|
20
|
-
hooks created by Reckon Graph.
|
|
21
|
-
- Historical benchmark and release evidence retains its original product name
|
|
22
|
-
and source identities.
|
|
23
|
-
|
|
24
|
-
## Distribution
|
|
25
|
-
|
|
26
|
-
Public npm is the initial supported installation channel. The previous
|
|
27
|
-
`reckon-graph` package remains available as a deprecated compatibility
|
|
28
|
-
signpost; it is not unpublished. The legacy Homebrew formula is not a supported
|
|
29
|
-
knodin 0.5.0 channel.
|
package/docs/releases/0.5.1.md
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
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
|
-
|
package/docs/releases/0.6.0.md
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
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/docs/releases/0.7.0.md
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# knodin 0.7.0
|
|
2
|
-
|
|
3
|
-
This release is the dogfood-readiness release for local code intelligence with
|
|
4
|
-
bounded, user-controlled troubleshooting evidence.
|
|
5
|
-
|
|
6
|
-
- Adds `knodin diagnostics enable|status|collect|inspect|clear|disable` with a
|
|
7
|
-
private, bounded local failure journal and redacted support bundles. Nothing
|
|
8
|
-
is uploaded automatically.
|
|
9
|
-
- Captures sanitized CLI and MCP failure correlation IDs without retaining
|
|
10
|
-
source, queries, arguments, environment values, credentials, or raw paths.
|
|
11
|
-
- Adds contained execution profiles with explicit platform support and
|
|
12
|
-
fail-closed behavior when the requested containment cannot be established.
|
|
13
|
-
- Adds structural cold-start routing and checked-in C87 latency evidence while
|
|
14
|
-
preserving truthful response budgets and freshness metadata.
|
|
15
|
-
- Integrates lifecycle refresh through hook-manager-native Lefthook routing,
|
|
16
|
-
while preserving repository-owned configuration and distinguishing graph
|
|
17
|
-
repair from lifecycle reinitialization.
|
|
18
|
-
- Tightens freshness proof, response-budget accounting, package smoke coverage,
|
|
19
|
-
and roadmap evidence for the completed local feature set.
|
|
20
|
-
|
|
21
|
-
This ordinary 0.x release is intended for normal installation, including the
|
|
22
|
-
initial Docusign rollout. The external evidence and signed-release gates in
|
|
23
|
-
`roadmap/competitive-roadmap.md` remain open and continue to block GA and
|
|
24
|
-
trusted-distribution claims; publication does not waive or simulate them.
|
package/docs/releases/0.7.1.md
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# knodin 0.7.1
|
|
2
|
-
|
|
3
|
-
This is the first normally published 0.7 release of knodin. It provides local,
|
|
4
|
-
opt-in diagnostics that users can collect and deliberately share when they
|
|
5
|
-
need troubleshooting help; it is not a special dogfood build or prerelease.
|
|
6
|
-
|
|
7
|
-
- Adds `knodin diagnostics enable|status|collect|inspect|clear|disable` with a
|
|
8
|
-
private, bounded local failure journal and redacted support bundles. Nothing
|
|
9
|
-
is uploaded automatically.
|
|
10
|
-
- Captures sanitized CLI and MCP failure correlation IDs without retaining
|
|
11
|
-
source, queries, arguments, environment values, credentials, or raw paths.
|
|
12
|
-
- Adds contained execution profiles, structural cold-start routing, lifecycle
|
|
13
|
-
refresh improvements, tighter freshness proof, and truthful response-budget
|
|
14
|
-
accounting.
|
|
15
|
-
- Corrects the release test suite so the competitive sandbox contract is
|
|
16
|
-
verified on systems both with and without Bun installed.
|
|
17
|
-
|
|
18
|
-
This ordinary 0.x release is suitable for installation through npm,
|
|
19
|
-
Artifactory, and Homebrew, including use by Docusign employees. The external
|
|
20
|
-
evidence and signed-release gates recorded in `roadmap/competitive-roadmap.md`
|
|
21
|
-
remain open and continue to block GA and trusted-distribution claims.
|