Skip to content

Phonton CLI v0.24.1

Choose a tag to compare

@github-actions github-actions released this 15 Oct 01:55
· 6 commits to main since this release
38d1beb

phonton-cli v0.24.1 — Goals that name files get those files

We ran phonton goal against a real JavaScript repository (a Node CLI with
node:test tests) using a cloud model. The goal asked for a new flag, a test
in tests/cli.test.mjs, and a row in the README. The model never saw the test
file or the README, and the run passed verification without adding the test.
This release fixes each cause.

Named files reach the model

A path in the goal now counts whatever the wording: "add a test in
tests/cli.test.mjs" works the same as "edit src/lib.rs". Common source,
config and doc extensions are recognized (.mjs, .cjs, .ts, .tsx,
.py, .go, .java, .rb, .php, .md, .toml, .yaml, .sql and
others), and a root document named in capitals, such as README, is found as
README.md.

Workers can ask for files

Each worker prompt now carries a short list of the repository's files
(tracked and untracked, ignored files left out, shallowest first). When the
file it has to edit is not in the prompt, the model can reply
NEED_FILES: src/cli.mjs, bin/sloplint.mjs once per subtask and gets the
current source of up to four of them before writing its diff. A requested file
is sent whole when it fits the prompt's source budget; an excerpt could miss
the lines the model needs.

A requested test has to exist

If the goal asks to add or write a test, a diff that changes no test file
fails verification and the model is told to add it. Editing package.json
or a lockfile does not count; a Rust #[test] added next to the code does.
Goals that only say the tests must keep passing are not affected.

Only files inside the repository

Source is shown to the model only for files that resolve inside the
repository. A symlink that points somewhere else on disk is skipped, whether
the goal named it or the model asked for it.

Honest provider errors

A reasoning model that is still thinking when the 600 s request timeout fires
now reports "timed out waiting for the model's answer" instead of "error
decoding response body". An empty reply, typically the output limit spent on
reasoning, is retried with a message that says exactly that.

Install and channels

The curl and PowerShell install scripts are removed; they still installed
v0.1.0. Install with npm install -g phonton-cli, a binary from GitHub
Releases, or cargo install --git https://github.com/phonton-dev/phonton-cli phonton-cli --locked. There is no nightly or dev channel any more: CI runs on main
and on pull requests, and docs/RELEASE_CHANNELS.md lists Stable and Main.