Skip to content

kibi-cli@2.3.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 17:46
6df04ad

Minor Changes

  • 7aa1471: Kibi can now run without a hand-installed SWI-Prolog. It looks for an explicit KIBI_SWIPL executable first, then the tested SWI-Prolog build shipped in the new kibi-swipl platform packages, and only then swipl on PATH (9.0 or newer). KIBI_SWIPL=system skips the bundle. kibi doctor now 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 the kibi-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, and SWI_HOME_DIR for bundled builds in both PrologProcess spawn paths.
    • kibi-cli: engine handshake and requests carry the resolved <bin>@<version>; the daemon rejects mismatches and clients replace a mismatched daemon.
    • kibi-cli: doctor SWI-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_SWIPL or a bundled kibi-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-swipl and kibi-swipl-<platform> start at 1.0.0 outside this changeset and version together through a changesets fixed group.
  • 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-diff command.
    • Add the read-only prepare-impact-review --input CLI route and kb_prepare_impact_review MCP 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.
  • 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.v2 contract with validated UTF-16 ranges, bounded inputs and host-assigned provenance, plus a ts-morph v2 adapter.
    • Add the optional kibi-plugin-treesitter package 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.
  • 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-runtime bundles the CLI operations again (kibi-cli is a build-time dependency only); it no longer installs kibi-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 timeoutMs budget to SymbolExtractorV2AnalyzeInput; 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.

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_SWIPL and KIBI_SWIPL=system overrides, and shows how kibi doctor reports which SWI-Prolog is in use and what to do when an install skipped the bundled runtime (--omit=optional, pnpm supportedArchitectures). Manual instructions stay for Alpine and native Windows. The GitHub Pages report workflows that kibi init can write no longer install SWI-Prolog by hand, because npm ci brings the bundled runtime with it.

    • kibi-cli: drop the apt-get install swi-prolog step from the shipped kibi-report.yml and kibi-badge.yml workflow templates.
    • kibi-cursor, kibi-claude: README and plugin manifest prerequisites say SWI-Prolog is bundled on supported platforms and only needed on PATH elsewhere.
    • 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.
  • 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