Skip to content

Park and hibernate keep listening, cancels ride the line, runs are searchable - #51

Merged
qfeuilla merged 4 commits into
mainfrom
deploy
Oct 6, 2026
Merged

qfeuilla merged 4 commits into
mainfrom
deploy

Conversation

@qfeuilla

@qfeuilla qfeuilla commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Round 8 of the deploy fixes.

  • One arrival rule for every way work reaches a trigger (door, answers, listener fires, live routes): park waits and runs on the version it comes back with, hibernate does that for its grace window, wipe refuses. Parked routes hold their caller. Parked listeners keep listening; a hibernation's end lets them go.
  • Triggers an infra verb took down come back once their copy is up again.
  • Cancels are pushed down the broker line and only read; idle lines close; abandoned calls stop at the broker; NOT_DONE makes a write the broker never started safe to send again.
  • Hot-path notifications go through a batched outbox; a boot on a database already at the current schema takes no lock.
  • Run search: weft executions --through/--search and the runs view's search.
  • Edge-triggered infra health for a supervisor that scales to zero (machine agent + cloud machine events, deploy/terraform/gcp/machines.tf).
  • Worker defaults: 30 s local idle stop, concurrency 80, a memory guard.
  • An activate on triggers being switched off rolls the drain back again (broken in round 7).
  • Migrations: announcement, execution_search (new groups), exec_event, task, trigger_activation (the old deactivated_by_health column stays, kept in step, for one release).

…archable, and infra health wakes on change

- One arrival rule for every way work reaches a trigger: park waits and runs
  on the version it comes back with, hibernate does that for its grace window,
  wipe refuses. Live route callers are held while parked. Listeners keep
  listening while parked; a hibernation's end lets them go.
- Triggers an infra verb took down come back once their copy is up again,
  from a loop over the rows (stamped with the database's clock).
- Cancels are pushed down the broker line and only read, so a lost answer
  loses nothing; an idle line closes; a call its caller gave up on stops at
  the broker; NOT_DONE lets a write the broker never started be sent again.
- Hot-path notifications go through an outbox flushed in batches; a boot on a
  database that holds the schema takes no lock and runs no DDL.
- Runs can be found by a node they ran and by the words they recorded
  (weft executions --through/--search, the runs view's search).
- A scaled-to-zero supervisor looks at infra health when a machine says its
  unit changed or the cloud says a machine went away, and keeps looking on a
  clock only while time can change a decision.
- Workers stop after 30 s idle locally, take 80 runs at once, and turn new
  work away when memory is nearly full; the install config keeps only the
  levers a person set.
- An activate on triggers being switched off rolls the drain back again.
@qfeuilla
qfeuilla merged commit 1636e88 into main Oct 6, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant