Skip to content

Operations

Ânderson Q edited this page Jun 5, 2026 · 5 revisions

Operations

Running TRON day to day.

The heartbeat

tron start installs a cron entry that runs sweep.sh every couple of minutes; each run is one bounded tron tick. That's what makes TRON autonomous — it keeps filling slots, clearing ahead, and advancing while you're away. The sweep is silent until a session has started, and a failed tick logs to logs/sweep-errors.log without derailing the next one.

Remove the heartbeat: crontab -l | grep -v "tron-cron:<instance-path>" | crontab -.

Walls and your decisions

When a worker hits something only you can resolve, TRON walls it: the block parks blocked, the slot frees, and you're contacted (console and/or Telegram). Reply with a decision:

  • resume — the blocker is cleared; the block goes back to cleared and re-dispatches.
  • amend — the block needs rework; it goes pending and the architect re-clears it forward.
  • abandon — drop it; the block goes abandoned and leaves the sequence.

A blocked block holds the session open — TRON won't end with unresolved walls on the board.

Telegram (optional)

If notifications.telegram: on (keys in <agents>/tron/.env), escalations route to Telegram and a poller feeds your replies back in. notifications.cron: auto turns the heartbeat on whenever Telegram is. The seeder wires the cron; missing keys degrade gracefully. Keys live only in .env.

Recovery after a crash

Ticks are crash-safe (atomic state, reserve-before-spawn, at-least-once messages), so the next heartbeat usually just resumes. To explicitly reattach live workers to a restarted engine, run tron recover — it rebuilds the worker list from what's actually alive, re-clears the blocks of workers that died, and respawns the architect if it's gone.

Session end

TRON proposes ending only when the whole pipeline is settled — no block pending/cleared/ in-progress/blocked, the architect idle with an empty queue, no cadence due, no worker active. Ending releases the whole fleet (workers never close themselves). stop inside the console does the same on demand (guarding unfinished work unless you stop --force).

Troubleshooting

  • A worker looks stuck. The liveness sweep flags a worker that's dead or silent past silence_escalate_min; recover frees the slot and re-clears the block, or walls it after repeated stalls. attach <id> in the console shows its recent activity.
  • Engineers are idle but blocks remain. They're probably pending, not cleared — the architect is the gate. Raise architect_count so it clears ahead faster.
  • A reviewer never fires. Check the cadence threshold and that completed blocks have accrued; the counter resets on each dispatch.
  • The session won't end. Something is still live — most often a blocked block awaiting your decision. pipeline shows it.
  • Validate the instance. tron validate (or tron doctor) runs blueprint-lint; a malformed instance fails here, not at runtime.

Re-seeding / canon updates

tron seeder is safely re-runnable: it shows current values before overwriting, never silently clobbers your tuned workflow.yaml, and re-copies canon verbatim while leaving your per-project files and pipeline intact. Append-only seed trace.

See also: Configuration · Architecture.

Clone this wiki locally