Phase 7a: read-only verifier for the 06:00 scheduled run (AUD-115)

make verify-n8n / deploy/verify-n8n-scheduled-run.sh checks the workflow is
active, reads the newest scheduled (mode=trigger) execution from the n8n
database, and prints the notify rows. Exit 1 until a scheduled run exists and
is green, so it distinguishes 'not yet' from 'failed'. Never runs the workflow
and never sends. Document the first-run time and the re-armed monitor.
This commit is contained in:
2026-10-16 10:31:40 +11:00
parent 047af0f31d
commit 11155df1fe
4 changed files with 137 additions and 3 deletions

View File

@@ -147,6 +147,25 @@ already in use"*, because the running n8n instance owns 5679. It changes only th
This sends the real briefs, so run it only when a real delivery is wanted.
## Verify the scheduled run (read-only)
```bash
make verify-n8n # or: deploy/verify-n8n-scheduled-run.sh
```
`deploy/verify-n8n-scheduled-run.sh` never runs the workflow and never sends
anything. It checks that the workflow is active, reads the newest **scheduled**
(`mode=trigger`) execution from the n8n database, and prints the notify rows. A hand
run (`mode=cli`) does **not** satisfy it. The exit code distinguishes the states:
- `0` — a scheduled run exists and its newest one finished `success`.
- `1` — the workflow is inactive, or the schedule has not fired yet, or the newest
scheduled run failed.
It reads the n8n database directly (`N8N_DATA_DIR`, default
`/home/sam/Docker/Containers/n8n_data`) because n8n 2.x stores scheduled executions
with `mode=trigger`, which `n8n list:workflow` does not report.
## Applied — 2026-10-16
Sam accepted plan revision 2 (`257b4b0a`), and the change was applied to the shared n8n
@@ -166,8 +185,15 @@ on `.13`. Evidence from that heartbeat:
all `ok` with `sent_at` set.
The remaining check is the first automatic run: the Schedule Trigger fires at
**06:00 Australia/Melbourne on 2026-10-17**. An issue monitor on AUD-115 wakes the
assignee after that to record the rows.
**06:00 Australia/Melbourne on 2026-10-17** (`2026-10-16T19:00Z`). The n8n container
runs `TZ=Australia/Melbourne` and the workflow sets
`settings.timezone=Australia/Melbourne`; the pre-existing `AI Calendar - Family
Notifier` schedule stores its local 05:00/16:00/20:00 firings as 18:00/05:00/09:00
UTC, which confirms the workflow timezone is honoured.
The first issue monitor fired too early and was cleared, so it was re-armed for
**06:30 Australia/Melbourne on 2026-10-17** (`2026-10-16T19:30:00Z`) to record the
automatic run's rows with `make verify-n8n`.
## Not touched