Repository navigation
kibi-cli@2.3.0
Minor Changes
-
7aa1471: Kibi can now run without a hand-installed SWI-Prolog. It looks for an explicit
KIBI_SWIPLexecutable first, then the tested SWI-Prolog build shipped in the newkibi-swiplplatform packages, and only thenswiplonPATH(9.0 or newer).KIBI_SWIPL=systemskips the bundle.kibi doctornow reports which runtime was chosen (source, path, version), checks that every required library loads, and explains which platform package to add when the bundle is missing. A running Kibi engine that was started with a different SWI-Prolog is restarted instead of reused. Release builds now ship the tested SWI-Prolog for Linux x64, Linux arm64, macOS arm64, and macOS x64 inside thekibi-swipl-<platform>packages, and an install that skips optional dependencies still succeeds and explains which package to add.- kibi-cli: add
resolveSwipl()(env, bundled with manifest and SHA-256 verification, PATH), a per-process cache, andSWI_HOME_DIRfor bundled builds in bothPrologProcessspawn paths. - kibi-cli: engine handshake and requests carry the resolved
<bin>@<version>; the daemon rejects mismatches and clients replace a mismatched daemon. - kibi-cli:
doctorSWI-Prolog check uses the resolver and loads all required libraries. - kibi-runtime: depend on
kibi-swipl; keep it and the platform packages external in both bundles. - kibi-cursor: the worktree resolver accepts
KIBI_SWIPLor a bundledkibi-swipl-*binary in the candidate's installed packages. - Release: the publish workflow builds the SWI-Prolog archives in its own run, verifies each SHA-256 sidecar, pinned provenance, and binary checksum, materializes symlinks (npm drops them), packs the four platform packages, and installs the packed tarballs with npm on runners with no SWI-Prolog before publishing; a separate dry-run workflow packs without any publish path.
- New packages
kibi-swiplandkibi-swipl-<platform>start at 1.0.0 outside this changeset and version together through a changesets fixed group.
- kibi-cli: add
-
db5376c: Projects can now opt into impact reviews that bind a change to its exact source, knowledge decisions and trusted analysis policy. Kibi validates both staged changes and a complete pull-request diff, rejects stale review evidence, and lets agents prepare an unauthored review template through the CLI or MCP instead of hand-assembling one. Every decision and reviewer field stays for an agent to write; preparation never approves or proves anything.
- Add versioned impact policy and review schemas, immutable review fingerprints, reviewed Python decorator coordinate migration and the trusted aggregate
check-diffcommand. - Add the read-only
prepare-impact-review --inputCLI route andkb_prepare_impact_reviewMCP operation; regenerate the bundled operation-access catalog for the agent integrations. - Keep the sample CI workflow inactive until it is adopted on a protected target.
- Add versioned impact policy and review schemas, immutable review fingerprints, reviewed Python decorator coordinate migration and the trusted aggregate
-
db5376c: Kibi can now analyze source in Python, Go, Rust and a broader set of common programming and configuration languages, offline, while JavaScript and TypeScript keep working as before. Staged checks read source and authored knowledge from one immutable Git tree, inspect both sides of every change, and keep incomplete analysis explicit instead of treating it as proof. Large files now return an explicit analysis failure instead of a second validation error.
- Add the asynchronous
kibi.symbol-extractor.v2contract with validated UTF-16 ranges, bounded inputs and host-assigned provenance, plus a ts-morph v2 adapter. - Add the optional
kibi-plugin-treesitterpackage with pinned WASM grammars, queries, licenses and an approved-analyzer closure verified before import. - Capture staged and explicit-diff snapshots from Git objects; merge duplicate symbol-manifest records deterministically and fail conflicting authored fields with
SOURCE_DUPLICATE_CONFLICT. - Add opt-in, bounded parser-phase and Prolog round-trip timing observations that never enter result schemas.
- Add the asynchronous
-
8622782: An impact review prepared on one machine now still validates in CI, and the MCP server and the CLI agree on whether it is current. Checks only block on incomplete source analysis the author can act on: the committed side of a change never blocks, and a known analyzer limitation such as a Rust macro or a Python decorator matters only where it overlaps the changed lines. Syntax, parse, timeout and integrity problems in the staged file still block. Long-running hosts no longer grow memory with every analyzed file, and Tree-sitter analysis reuses warm workers instead of starting one per file.
- Identify the impact evaluator by its contract version and the canonical JSON of the schemas it consumes, instead of hashing the installed file tree and
process.version. Identify the builtin analyzer runtime by its package identity rather than its installed tree. kibi-runtimebundles the CLI operations again (kibi-cliis a build-time dependency only); it no longer installskibi-cli.- Add one shared analysis gate (
analysisObligation) used by staged checks, impact-review preparation and validation, and impact reports. - Classify source paths from a single extension table in
source-classification, with parity tests against the Tree-sitter catalog and the builtin extractor. - Remove analyzed files from the ts-morph project after each v1 and v2 analysis.
- Add an optional
timeoutMsbudget toSymbolExtractorV2AnalyzeInput; the host sets it slightly below its own deadline, so providers report their own timeout. Tree-sitter uses a bounded, persistent worker pool with grammars loaded once per worker, and the host analyzes up to four changed files at a time.
- Identify the impact evaluator by its contract version and the canonical JSON of the schemas it consumes, instead of hashing the installed file tree and
Patch Changes
-
58083a1: Kibi can use workspaces reached through native filesystem aliases, including macOS temporary paths, without rejecting valid source writes or confusing engine identity. Long temporary paths use a private shorter engine socket path instead of failing to start. GitHub scaffolding preserves the actual README filename on case-insensitive filesystems. Source writes still reject traversal and symlinks that escape the workspace.
- kibi-cli: canonicalize existing filesystem ancestors before authored-path containment checks and engine identity comparison; reject dangling symlinks.
- kibi-cli and kibi-runtime: choose an owned deterministic runtime directory whose complete Unix socket path fits the platform byte limit.
- kibi-cli: select README candidates by actual directory-entry spelling while preserving priority and broken-symlink checks.
-
a260a34: Kibi's CLI pre-release tests now check Git-hook behavior using the Git executable available on each runner. The init error test runs in its own Git workspace, so a host checkout cannot change the result. This keeps the release check meaningful across supported build environments; installed CLI behavior is unchanged.
- kibi-cli tests: resolve the actual Git executable for the generated-manifest hook fixture.
- kibi-cli tests: isolate the mocked init branch error from the ambient checkout.
-
3d78159: Setting up Kibi no longer starts with installing SWI-Prolog. The documentation now says that Linux (x64 and arm64, glibc 2.28 or newer) and macOS (Apple silicon and Intel) need nothing beyond Node.js 22, explains the lookup order and the
KIBI_SWIPLandKIBI_SWIPL=systemoverrides, and shows howkibi doctorreports which SWI-Prolog is in use and what to do when an install skipped the bundled runtime (--omit=optional, pnpmsupportedArchitectures). Manual instructions stay for Alpine and native Windows. The GitHub Pages report workflows thatkibi initcan write no longer install SWI-Prolog by hand, becausenpm cibrings the bundled runtime with it.- kibi-cli: drop the
apt-get install swi-prologstep from the shippedkibi-report.ymlandkibi-badge.ymlworkflow templates. - kibi-cursor, kibi-claude: README and plugin manifest prerequisites say SWI-Prolog is bundled on supported platforms and only needed on
PATHelsewhere. - Kibi's own CI and proof now run the pipeline-built bundled SWI-Prolog (one job keeps a system install with
KIBI_SWIPL=system), and the release dry run follows the README quick start with the packed tarballs on four platforms; neither ships in a package.
- kibi-cli: drop the
-
Updated dependencies [db5376c]
-
Updated dependencies [555cf95]
-
Updated dependencies [8622782]
-
Updated dependencies [db5376c]
- kibi-plugin-sdk@0.4.0
- kibi-plugin-builtin@0.4.0
- kibi-core@0.14.1