Repository navigation
v0.2.3 Small-Model Robustness
Dogfooding fixes: the issues came from running Tether with a small model (GLM-5.3) on its own backlog.
Features
tether read <id> --full(#72): the CLI now accepts the same--fullform as the in-sessionagent read; it prints the full result (already the CLI default),--digeststill gives the compact card.
Fixes
- Gate errors vs failures (#33): a broken verify gate (sandbox violation, exit 124/126/127) fails the session immediately with
Verification gate ... misconfigured: <reason>instead of burning the 3-failure abort budget;tether statsshows aGATE_ERRcolumn. edit writeoverwrite summary (#40): overwriting an existing file reportsReplaced N lines with M (X removed, Y added; first removed: ...)and points toedit replace --lines a:bwhen the file shrank.- Skill
tools.pywarning (#24): a@tooldefined intools.pybut not listed in the skill'stools:now warns at load (0 prompt tokens); docs say the tools stay opt-in. - Cycle detection (#39): repeated multi-command cycles (e.g.
cat/sed/pytest, or alternatingsed -nranges) trigger a deterministic[CYCLE DETECTED]nudge and a newcycle_stallevent type, shown asCYCLESintether stats. - Provider retry (#70): HTTP providers retry timeouts, network errors and 429/5xx twice with backoff, honour
timeoutfromproviders.yamlfor all kinds, and fail with aProviderErrornaming provider, model and timeout instead of a bareReadTimeout. - No more re-read loops (#69): the latest read of each of the last 4 files stays unfolded until that path is edited (or re-read); the fold hint only mentions
mem recallwhenmemis enabled. Static prompt prefix unchanged. - Clearer errors (#71): a provider 401/403 names the provider and the
api_key_envas missing or rejected (never its value); a declared but emptyapi_key_envfails before the first request; a disabled built-in tool says it is disabled and how to enable it.