Skip to content

kiso 0.50.0

Choose a tag to compare

@vincemakes vincemakes released this 15 Oct 01:36
· 92 commits to main since this release

kiso 0.50.0

Tools that recover less and say what happened. A model that names a file by its absolute path inside the workspace is no longer refused. A refused edit says that nothing was written. A long foreground command moves to the background at five minutes. The base prompt is the leaner P1.3, and the edit tools no longer ask the model for a revision. The first request is 81 tokens smaller than 0.49.0's.

  • An absolute path inside the workspace is admitted. read_file, write_file, edit_file, list_dir and search_text take it as the relative path it names. The usual checks still apply: .., symlinks and protected files. A path outside the workspace is still refused, and the refusal names the workspace root. On a 17-task regression this removed every in-workspace refusal (19 → 0), with no task lost.
  • A refused edit batch says nothing was written: (hunk 2, matched after hunk 1) — nothing was written, <path> is unchanged. The old "after hunk 1 applied" read as if hunk 1 had landed.
  • The overwrite refusal names its requirement. To replace a file, read the whole file first (a ranged read is not enough), or change part of it with edit_file.
  • The foreground wait has a ceiling (ADR-0058 Amendment 15). A command still running after five minutes continues as a background task. It is never killed, and the model is notified when it ends. Waits under five minutes are unchanged.
  • The P1.3 prompt and the observed revision. The base prompt states scope, evidence and stopping once. With the CLI's binding, edit_file and write_file no longer take expectedRevision: the revision the model last saw is bound for it, and an unseen file is refused.
  • Skills:
    • read_skill reads a skill's own files;
    • a broken skill's diagnostics stay out of the model's prompt;
    • the skills index fits in 3,000 characters and never drops a name.
  • The terminal: a command that changed something leaves a labelled row, MODEL first.

For hosts

  • New optional:
    • WorkspaceToolsOptions.limits.maxForegroundMs: default 300,000; 0 keeps the model's value;
    • WorkspaceToolsOptions.observedRevision: when supplied, the edit and write schemas drop expectedRevision and the host binds the observed revision.
  • Observable:
    • absolute in-workspace paths are admitted;
    • a foreground wait over five minutes promotes at five;
    • the overwrite and batch refusal texts changed (re-check any host that parses them);
    • the P1.3 base prompt;
    • the skills index budget.
  • Packages: 5 of the 17 differ beyond package.json: kiso-code, kiso-tools-node, kiso-tui, kiso-tui-cells, kiso-skills-ext. kiso-core and kiso-runtime are byte-identical to 0.49.0.
  • Action required: none.

The release gate

Against the published 0.49.0, on the mini:

  • T3 and T5 paired: 16 pairs each, both PASS. The first request is 81 tokens smaller in 32/32 pairs.
  • The chain test: every candidate leg passes.
  • The writers' adoption path: 3/4. The miss had a complete handoff, and the parent applied the patch without apply-patch.
  • The kill -9 demo: 2/2.
  • The smoke: 14/14.
  • The full check: 4,417 tests.
  • The published tarballs: byte-identical to the gated set, and the read path matches 17/17 (sha512).