v0.1.31: task adoption nudges and reserved port guards
Highlights
This release hardens the agent loop around two practical local-model failure modes:
- broad, stateful requests that should start with a task ledger but instead jump straight into file writes
- preview-app serving loops that accidentally kill the live local model endpoint while trying to reclaim a familiar port like
8080
The goal is not fewer turns. The goal is a more reliable default path: plan before mutating, verify before stopping, and choose another free port before reclaiming a live runtime.
What Landed
- new long-horizon task-adoption nudges for broad, multi-step, stateful, browser-heavy, and supervised requests
- bounded planning reminders in the agent loop so the model adopts the session task ledger before substantive mutation, process-management, or browser loops
- reserved-port guardrails that refuse obvious kill/reclaim commands targeting the active local provider endpoint
- stronger bash guidance: prefer native file tools for source work, pick another free port instead of blindly reclaiming
8080, and only stop a process when it is clearly yours or the user asked - stronger task and browser-verification guidance so process management and runtime proof paths are explicit earlier
- updated README, file-tools docs, changelog, and version metadata
Verification
ruff checkpassed on the shipped slice- targeted pytest verification passed:
66 passed - supervised live E2E run completed successfully against the local model
- model adopted
taskbefore the first file mutation - model used native
write_filefor all authored files - model served the preview app on
8083instead of touching the provider on8080 - verification contract finished
4/4 passed
- model adopted
Artifact References
- live supervised trace:
~/.config/successor/logs/20260410-121402-p668167.jsonl - verified workspace:
~/.local/share/successor/e2e/supervised-ledger-port-guard-run/