Skip to content

Show dropped fires, bound CLI requests, start runs through a task, check a resync before take-down - #116

Merged
qfeuilla merged 2 commits into
mainfrom
runs-resyncs
Nov 1, 2026
Merged

qfeuilla merged 2 commits into
mainfrom
runs-resyncs

Conversation

@qfeuilla

@qfeuilla qfeuilla commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

What a real update to 0.2.282 showed, made either impossible or loud with the way out named.

What breaks

  • weft run starts the run through a start_run task: the install answers the start at once (a task id the CLI makes, which the run is named after) and the CLI follows it, saying every half minute what the start is doing. A CLI and an install on either side of this change cannot start runs together.
  • Every CLI request has a time limit (2 minutes, or a long poll's hold plus 30s); one that runs out is looked at again where the caller loops. Requests the install answers only once its own work is done keep none.
  • Scripts reading --json must check the exit code (documented; the weft ci add template does).

What is new

  • Fires and live calls refused before any run starts are counted per trigger with their last reason (door_count.reason, migration worker_door_dropped_fire_reasons), by the worker's door and by the dispatcher, and shown in weft status and the editor (dropping).
  • A resync asks the listener (POST /check, kinds decide; provider events ask the broker's new /v1/access/subscription/check) whether each trigger it brings back could come up on this install, and refuses before taking anything down. It also says where it is every 30s.
  • A start asked again (a resent request, a rescued task claim, a program's call issued again) answers the run it started; a program's run is named after its call, derived by the install from the call's task key, which the broker holds to the asking run.
  • A stale bake says what moved; an unreadable bake row no longer hides the others; the schema pass names the lock it gave up on.

Checked locally before the push: full nextest, doc tests, clippy -D warnings, parse-only compiler, examples, hakari, terraform validate and moved targets, every database suite, every JS package, the bridge, postgres credential and tangle tests, the browser extension, the docs build; e2e seed_moved_file, lifecycle_transitions::deactivate_and_resync_wait_for_or_cancel_the_running_run, maintenance::a_trigger_comes_back_after_the_maintenance, working_copies::a_program_writes_another_projects_code_and_runs_it.

…nd check a resync before it takes triggers down

- A fire or live call refused before any run starts is counted per trigger with its last reason (door_count.reason), by the worker's door and by the dispatcher, and shown in weft status and the editor.
- Every CLI request has a time limit (2 minutes, or a long poll's hold and 30s); one that runs out is looked at again where the caller loops. Requests the install answers only when its own work is done keep none.
- weft run hands the start to a start_run task under an id the CLI makes, follows it, and says what it is doing; the run is named after the task, and a program's run start after its call, so a start asked again answers the run it started.
- A resync asks the listener whether each trigger it brings back could come up on this install (a provider subscription needing an internet-reachable address) and refuses before taking anything down.
- weft resync says where it is every 30 seconds; a stale bake says what moved; an unreadable bake row no longer hides the others; the schema pass names the lock it gave up on; --json failures are documented for scripts and the CI template checks them.
@qfeuilla
qfeuilla merged commit d706dde into main Nov 1, 2026
26 checks passed
@qfeuilla
qfeuilla deleted the runs-resyncs branch November 1, 2026 12:33
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