Troubleshooting
No Project Selected
Symptom:
No project selected. Use /project to choose a folder before running a task.
Fix:
proto-cli project set ~/projects/my-app
or in the TUI:
/project
Model Not Selected
Symptom:
No model selected for provider 'ollama'
Fix:
proto-cli model
Then run:
proto-cli check
ProtoLink Missing Or Not Ready
Symptom:
Protolink missing
or runtime readiness fields are unavailable.
Fix:
source .venv/bin/activate
pip install "protolink[http,llms]>=0.6.3"
proto-cli check
check should report streaming, metrics, compaction, context, state, reports,
and cancellation as ready.
Localhost Runtime Fails In A Sandbox
Symptom can look like:
PermissionError: [Errno 1] Operation not permitted
This can be an environment restriction on binding or connecting to localhost, not necessarily a ProtoAgent regression.
Try:
PROTOAGENT_AGENT_TRANSPORT=http PROTOAGENT_STREAM=0 proto-cli run "diagnose runtime"
If the environment blocks even local ports, use scaffold mode to verify the Rust/Python boundary:
PROTOAGENT_SCAFFOLD=1 proto-cli run "diagnose runtime"
Context Loom Misses The Right File
Steps:
/index refresh
/context the exact feature or path name
Then inspect:
- Whether the file is ignored, binary, too large, or outside the active project.
- Whether query terms match path, symbols, headings, imports, or content.
- Whether a git-changed file should get a relevance boost.
Source files:
core/protoagent_core/context/indexer.pycore/protoagent_core/context/packer.py
TUI Trace Is Hard To Share
Use one-shot capture:
PROTOAGENT_TRACE=1 proto-cli run "your failing task" 2>&1 | tee /tmp/protoagent-debug.txt
tail -n 80 "${PROTOAGENT_CONFIG_DIR:-$HOME/.protoagent}/traces.jsonl"
The TUI /trace view is for live inspection. The one-shot runner is the better
copy-paste artifact.
API Key Looks Stale
Model inventory caches recent validation results briefly. To force a real refresh, wait for the retry window or restart the process, then run:
proto-cli models
If a live run succeeds, remember_valid_provider() marks that provider/model
combination as recently valid.
Approval Did Not Execute
Check:
- Did the diff modal show a
workspace.writeapproval? - Was the request denied?
- Did cancellation arrive while waiting for approval?
- Did the target path fail
safe_path()?
Relevant files:
core/protoagent_core/agents/coder.pycore/protoagent_core/runtime_bridge.pycli/src/progress.rscli/src/terminal_ui/approval.rs
Memory Feels Wrong
First check whether persistent memory is on:
/context memory
Then inspect model-facing memory:
/context history
Remember:
sessions.jsonis a Rust UI ledger.conversations.sqliteis model-facing ProtoLink state./context offmakes each task use task-local state./context resetclears saved ProtoLink histories for the active project session.