# Tamcoder 0.1.58

Truthful task outcomes, durable work across compaction, and engine-owned unattended recovery.

- One account context for terminal, `exec`/`-p` and the SDK: saved plan metadata is propagated only for the saved key, so the same account gets the same local alias eligibility on every entrypoint. Server authentication, entitlement and spending remain authoritative.
- Provider failures carry a scope. A TamfisGPT gateway-alias rate limit cools the smallest applicable scope instead of poisoning every alias; explicit account or gateway failures still apply globally.
- `turn/completed` now carries a native `taskOutcome` (`succeeded`, `stalled`, `blocked`, `failed`, `cancelled`) with the reason, edited paths, checks and serving aliases. `tamcoder exec` exits 1 for a stalled or blocked task and includes `taskOutcome` in its `--output-format json` result. A clean stream close is no longer reported as task success.
- Child agents, research agents and workers treat a stalled or blocked task as failure instead of accepting the transport close as success.
- The engine keeps a durable work record: objective, revision, relevant and edited paths, checks, recovery state, excluded models and the next action. It survives compaction and resume, and a continuation keeps the original objective instead of restarting discovery.
- A small coding toolset plus `discover_tools` replaces advertising the full catalog; optional schemas load on demand. Output reservation now matches the real request bound.
- Unattended recovery is engine-owned inside one turn: bounded recovery cycles with cancellable waits, saved evidence, the persisted work record and failed-model exclusions, then another eligible route or strategy. A clean transport close cannot abandon a pending checklist.
- Model identity is preserved across the gateway: the backend reports the actual physical model, applies exclusions and bounded fallback allowance, and exposes metadata in both SSE dialects. Core checkpoints unproductive physical models; restrictive headers cannot grant entitlement or budget.
- Verification evidence recognises `node test.cjs` and `python -m unittest`, records exit codes and workspace revisions, and does not let a final answer pass while a background verification it started has not reported.
- Shell `ls` inventories that duplicate a native listing are answered from evidence instead of re-executed.

Tests: focused suites pass on the release tree (core 144, server 42, Agent SDK 4, backend recovery/SSE 44) and the full serial gate must pass before activation. These are tested behaviours, not a guarantee that every model or task succeeds. Restart existing Tamcoder processes to load the new release.
