Skip to content

Phonton CLI v0.23.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 07:41
· 10 commits to main since this release
caa80f0

phonton-cli v0.23.0 — Local models on Linux and macOS

One command, no Ollama install

phonton models setup qwen2.5-coder:3b now installs, starts and verifies the
local runtime on Linux (x64, arm64) and macOS (Apple Silicon and Intel), as
it already did on Windows x64. You no longer install Ollama yourself or pass
--allow-unverified-runtime to run local goals.

What setup does on every platform:

  • Downloads the official Ollama 0.34.2 archive for the platform from GitHub
    and checks its published SHA-256 (about 1.5 GB on Linux, 160 MB on macOS).
  • Unpacks it into a folder Phonton owns, in-process (no zstd or tar
    binary needed), and checks every file and library symlink against a pinned
    digest before running anything.
  • Starts it on 127.0.0.1:11434 with cloud models disabled, then proves the
    process it started owns that port (/proc on Linux, lsof on macOS) and
    records its start time and executable. Local goals run as
    verified-managed only while that same process still owns the port.
  • Refuses network and FUSE mounts for the runtime and model folders.

scripts/runtime-tree-digest.py recomputes every platform's pins from the
published archives and reproduces the Windows pins exactly.

If an Ollama you installed already answers on port 11434, Phonton uses it as
before, unverified, and asks for consent per goal.

Tested on fresh CI runners with no Ollama installed

Runner Runtime Goals (qwen2.5-coder:3b)
Ubuntu (x64, 16 GB) verified 2/2 accepted
macOS Intel (14 GB) verified 2/2 accepted
macOS Apple Silicon (7 GB) verified not run

The 7 GB Apple Silicon runner has about 3.7 GB free; no model passes the
memory check (Phonton keeps 2 GiB for the system), so setup declines to
calibrate one. A 16 GB Mac fits the 3B model.

Edits that keep their shape

Saving every local run's evidence showed a pattern in the larger smoke
fixtures: the 3B model often answers a search/replace edit with only a
block's first line as search (class OrderBook {) and the whole rewritten
block as the replacement. Phonton replaced just that line and duplicated the
body; every shop-cancel-restock candidate failed to parse. Phonton now
replaces the whole block when the replacement starts with that line and is
one complete block (brace-aware, skipping strings, comments and JS regex
literals; indentation-aware for Python). It also turns a line break that a
single JSON escape put inside a one-line string literal back into \n.

These fixes make the model's edits land as it meant them. They do not make a
3B model write correct logic: on the local smoke suite (CPU-only Linux
runner, hidden tests) acceptance is unchanged.

Run Accepted Marked review-ready but failed hidden tests
3B, before the fixes 14/36 2
3B, with the fixes 14/36 4
7B, with the fixes (1 run per task) 7/12 2

The shop class rewrites now parse and reach the project's tests; two of them
added an unused method, passed the visible tests and failed the hidden ones.
Greedy decoding on CPU is not fully repeatable between runs, so single-task
differences of one or two runs are noise. Small local models remain best at
small, focused edits.

Install

npm install -g phonton-cli
phonton models setup qwen2.5-coder:3b