ZEN FreeTier Watchlist — weekly lane re-check (Tam, Pulse lane)
ZEN FreeTier Watchlist — weekly lane re-check (Tam, Pulse lane)
- date: 2026-10-20
- tags: costgov, free-tier, zen, opencode-go, model-lanes, cron
- status: live (weekly re-check)
- source links: https://opencode.ai/zen/go/v1/models ·
~/.hermes/profiles/tam/config.yaml·~/vault/pulse/tools/zen_freetier_watch.py - kanban: t_2742ee74
- related: goose-capability-assessment · 2026-09-27-cron-sync-inventory-audit
What this is
Fleet cost discipline (CostGov) runs every lane on the free ZEN Go tier first. This
note tracks the free/contributor model catalog at https://opencode.ai/zen/go/v1
and the health of the lanes pinned in tam's config.yaml, re-checked weekly by
zen_freetier_watch.py (cron zen-freetier-watch = job ddcf91338465, Mondays
09:00 AEDT, no_agent; failure signal = regression-only — exit 2 fires the
Telegram alert to Young's Mind only when a previously-UP lane goes down or the
catalog is unreachable; steady-state dead lanes ride the weekly stdout heartbeat).
Catalog checks use the key authed /models call; each lane gets a 1-token
completion probe. Machine-readable latest state: zen-freetier-latest.json (same
dir). Script lives at ~/vault/pulse/tools/ (synced copy in
~/.hermes/profiles/tam/scripts/ — edit the tools/ one and re-copy).
Operations findings — 2026-10-20 (first full check, curl-verified)
- Gateway change: chat completions now require
x-opencode-sessionheader — without it every model returns 400MissingSessionIDand cannot be routed. Raw python urllib also gets Cloudflare 1010 on the same host; use curl or a real TLS stack. Any lane caller that predates the header requirement is silently broken. - Catalog: 37 models listed. Fleet-relevant free/contributor entries:
beam-free,longcat-2.5-preview-free,minimax-m3.1-flash-free,muse-spark-1.2-contributor,muse-spark-1.3-contributor. - Lane probes (tam config.yaml chain):
- ✅ UP:
glm-5.3-flash(default),cat-jam-free,longcat-2.5-preview-free,minimax-m3.1-flash-free,deepseek-v4.1-flash,beam-free(spare capacity lane) - ⚠️
cat-jam-freedelisted from catalog but still serves — fine for a fallback, do not promote it to a load-bearing lane. - ⚠️ Dead lanes (catalog-listed but 400
ModelProtocolUnsupportedon chat completions): all contributor models —muse-spark-1.2-contributor,muse-spark-1.3-contributor,gemini-4-argon-contributor— plus tam-chain lanemuse-spark-1.3-contributor. A catalog listing is not proof of service.
- ✅ UP:
- Reasoning-model trap: small
max_tokens(≤32) onglm-5.3-flash,cat-jam-free,longcat-2.5-preview-freeburns the entire budget inreasoning_content—contentcomes backnulland the caller looks "down" when it isn't. Probe with ≥512 tokens or treat null-content/finish=length as UP.
Config gap — OpenRouter tail has no local key
tam's fallback chain hops to OpenRouter after the ZEN lanes
(nvidia/nemotron-3-ultra-550b-a55b:free, google/gemma-4-26b-a4b-it:free, …),
but OPENROUTER_API_KEY is absent from ~/.hermes/profiles/tam/.env — if the
whole ZEN chain 401s/403s, the tail cannot authenticate. Not fixed here (key
addition is CostGov/Young's call); flagged as the top resilience gap.
Re-check 2026-10-21 (Tue, manual mid-cycle fire — run 2)
- No drift. Catalog unchanged (37 ids, byte-identical list), lane results an exact
match of the 10-20 baseline: 6/9 UP (
glm-5.3-flash,cat-jam-free,longcat-2.5-preview-free,minimax-m3.1-flash-free,beam-free,deepseek-v4.1-flash), 3 steady-state PROTO-400 contributor lanes,cat-jam-freestill delisted-but-serving.x-opencode-sessionheader still required (probes without it were not retried, but catalog 200s used it throughout). Productions regressions = — no alert fired, correct behaviour. - Ops gap found + fixed: the LAB sync (
sync_pulse_lab.sh) walks*.mdonly, so this note's siblings (zen-freetier-latest.json,zen_freetier_watch.py) never reach LAB via the 30m lane — the 10-20 "sha-verified on LAB" claim covered only the .md. Both non-md artifacts manually pushed vialab_ctrl_keyshell lane on 10-21 and sha-verified laptop==LAB. Standing caveat: after any edit to the JSON/script, push them manually or they exist laptop-side only.
Weekly re-check log
| date | catalog | lanes up | probe failures | config lanes missing from catalog |
|---|---|---|---|---|
| 2026-10-20 | 37 | 6/9 | gemini-4-argon-contributor, muse-spark-1.2-contributor, muse-spark-1.3-contributor | cat-jam-free |
| 2026-10-21 | 37 | 6/9 | gemini-4-argon-contributor, muse-spark-1.2-contributor, muse-spark-1.3-contributor | cat-jam-free |
HN200 Digest — 200 threads from Hacker News
Pulled: 2026-10-20 11:51 UTC (2026-10-20 11:56 AEDT)Source: Hacker News official Firebase API (hacker-news.firebaseio.com/v0) — API, not scraped HTMLCohorts: front page + New + Show HN + Ask HN, stratified (see §1)Sample: 200 items / 199 stories, 200 unique ids, 0 duplicate ids, 0 fetch errorsLane: Echo (research & security) — digest requested by Tam via A2A
A2A roster reconciliation — laptop roster vs live LAB listener table (Tam, 2026-10-21)

