Repository navigation
Proxima v1.6.1
What's changed
Fixed
- A credential pasted into a prompt was stored verbatim — found by testing the shipped binary. Masking covered tool arguments, so a key typed into a message sat unmasked in
~/.proxima/sessions/*.json. User and assistant content is now masked — with the bare-scheme rule tightened so it needs a credential-shaped token (a digit, base64/URL punctuation, or mid-token case mixing) rather than mere length, which had turnedimplement basic authentication middlewareintoimplement *** middleware. Tool results are still left alone so--resumereplays real file contents rather than making the model re-run tools to recover them.ToolCall.toJson()is masked for the same reason, closing the last unmasked serialisation boundary - Invalid
--modelvalues reported as internal faults —⚠ Unexpected error: Invalid argument(s): Unknown provider "gemini".read like a crash for what is a configuration mistake. Now⚠ Unknown provider "gemini".with a hint about theprovider/modelform, and the REPL resets the agent loop so the user can switch model and retry - The write critic reviewed an empty patch — it read
contentor apatchargument, butpatch_file's schema isold_str/new_strand no tool has ever had apatchargument. Everypatch_filereview therefore received an empty string and reported "the proposed change is empty or missing" instead of reviewing the edit. The edit is now rendered as a before/after diff git_statusfailed outside a repository — a freshly scaffolded project has no git repo, and the tool threw a hard error for that ordinary condition. It now reportsNot a git repository.so the model can act on it- Every Nth message was silently dropped in long sessions —
iterationCountis a persisted session field that was reset only after a failed turn, so it accumulated across successful ones. Once it reached the cap the loop guard was already false on entry: the body never ran and the user's message, already appended to history, was never sent to the model. The turn then failed, which reset the counter, so the next message worked — the symptom was an occasional message doing nothing at all. Now reset per turn, matching the documented per-request semantics - The iteration cap interrupted normal multi-file work — the default of 10 was tuned for single-file edits, but the system prompt directs the agent to verify every write by reading the file back, so each file costs two iterations. A seven-file scaffold hit the cap four times. Raised to 25, and budget exhaustion is no longer reported as a failure: it returns the new
TaskStatus.budgetExhaustedand goes through a newAgentCallbacks.onNotice, rendered dim rather than red, so API callers can distinguish a turn that ran out of steps from one that actually failed. The message says how to continue and names both config locations. Runaway loops are still bounded, and the stuck and spinning detectors fire long before this
Installation
macOS / Linux — install script
curl -fsSL https://raw.githubusercontent.com/jizzel/proxima/main/install.sh | shmacOS (Apple Silicon + Intel via Rosetta 2)
curl -fsSL https://github.com/jizzel/proxima/releases/download/v1.6.1/proxima-macos-arm64 \
-o /usr/local/bin/proxima && chmod +x /usr/local/bin/proximaLinux (x86_64)
curl -fsSL https://github.com/jizzel/proxima/releases/download/v1.6.1/proxima-linux-x64 \
-o /usr/local/bin/proxima && chmod +x /usr/local/bin/proximaWindows (x86_64) — PowerShell
irm https://raw.githubusercontent.com/jizzel/proxima/main/install.ps1 | iexOr download proxima-windows-x64.exe below and add it to a directory on your PATH.