File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -8,11 +8,20 @@ All notable changes to `devloop` will be recorded in this file.
88- Added a browser reload event server and a ` notify_reload ` workflow
99 action so workflows can explicitly tell downstream browser listeners
1010 to refresh after successful rebuild/restart steps.
11+ - Added declarative workflow ` triggers ` so downstream orchestration can
12+ be expressed directly in config instead of being inferred through
13+ secondary file watches.
1114
1215### Fixed
1316- Workflow failures such as process-readiness timeouts now log loudly
1417 but do not terminate ` devloop ` , so the watcher stays alive and the
1518 next successful edit can recover a broken local build.
19+ - Triggered workflows now run as part of the same execution tree,
20+ including when their parent workflow was reached via ` run_workflow ` .
21+ - Config validation now rejects ambiguous trigger graphs where a direct
22+ trigger target is also reachable through ` run_workflow ` , and
23+ triggered workflows are documented as single-run deduplicated within
24+ one execution.
1625- Platform-specific release workflows no longer duplicate GitHub release notes when both assets are published to the same tag.
1726
1827## [ 0.6.2] - 2026-03-26
Original file line number Diff line number Diff line change @@ -223,6 +223,12 @@ endpoint and exposes its URL to child processes as
223223` DEVLOOP_BROWSER_EVENTS_URL ` so client repositories can attach a tiny
224224browser-side ` EventSource ` listener.
225225
226+ Triggered workflows are deduplicated within one execution. If two
227+ trigger paths both reach the same workflow, ` devloop ` runs it once from
228+ the first path that reaches it. Config validation also rejects graphs
229+ where a direct trigger target is separately reachable through
230+ ` run_workflow ` , because that would make ordering ambiguous.
231+
226232Hooks can also be observed on the runtime tick when external state
227233changes are not represented by file edits. For example:
228234
Original file line number Diff line number Diff line change @@ -67,7 +67,13 @@ Workflows run step by step, in order.
6767- A step must finish successfully before the next one begins.
6868- ` run_workflow ` executes another named workflow inline.
6969- ` triggers ` run downstream workflows after the workflow succeeds.
70+ - Triggered workflows are deduplicated across one execution tree. If two
71+ trigger paths reach the same workflow, it runs once from the first
72+ path that reaches it.
7073- Recursive workflow graphs are rejected at config-validation time.
74+ - Config validation also rejects graphs where a direct trigger target is
75+ separately reachable through ` run_workflow ` , because that would make
76+ ordering and duplication ambiguous.
7177- ` write_state ` renders ` {{state_key}} ` templates against the current
7278 in-memory session state.
7379- ` log ` also renders templates against the current session state before
You can’t perform that action at this time.
0 commit comments