-
Notifications
You must be signed in to change notification settings - Fork 2
plat 158
PLAT-158 — Legacy post_run_monitor makes ordinary workflow runs launch Pulse even when a dedicated Pulse schedule exists
| Coordination | Value |
|---|---|
| Assigned agent | Codex |
| Ticket state |
implemented — focused verification passed; restart/live reverify pending |
| Last synchronized | 2026-08-19 |
- Priority: P0 — it makes expensive review work run at the wrong time, extends ordinary schedules by hours, and defeats the operator's explicit Pulse cadence.
- Owner: workflow manifest, scheduler lifecycle dispatch, schedule tools and Pulse setup guidance.
Social Media already had an enabled dedicated pulse_review_only schedule at
12:00 and 22:00 IST. Its ordinary 10:00 execution nevertheless appended the
full Pulse Gate at 13:42. The manifest simultaneously carried
post_run_monitor=true, post_run_monitor_mode=periodic, and the dedicated
schedule.
The system therefore had two sources of truth for one lifecycle:
- a workflow-level boolean/mode that made the scheduler append Pulse after an ordinary run; and
- an enabled dedicated schedule that started Pulse independently.
periodic reduced which review modules were due; it did not disable the inline
Pulse lifecycle. The name implied separation while the runtime still entered
the same Gate/Review+Fix path. This is why the operator saw Pulse running after
an ordinary workflow despite having already moved it to its own schedule.
- An enabled
pulse_review_onlyschedule is now the sole recurring-Pulse configuration and cadence authority. -
post_run_monitorandpost_run_monitor_modewere removed from the manifest model, update API, workflow tool schema, and builder guidance. - An ordinary workflow schedule never launches Gate or Review+Fix. When a dedicated Pulse schedule exists, it receives only the short backup, report publication, and run-summary finalizer needed for that workflow run.
- A dedicated/manual Pulse launch still runs the full Gate → Review+Fix → Finalize sequence against retained evidence.
- Existing manifests were migrated. Workflows that previously relied on the boolean received an explicit review schedule; a workflow with all schedules disabled did not get a newly enabled review schedule.
- Contract upgrade and
/pulse-setupguidance now create the explicit execution and review schedules rather than setting a hidden second toggle.
The scheduler still owns deterministic sequencing and lifecycle receipts. What was removed is the duplicate configuration and implicit inline review, not the agentic review/fix work performed inside the dedicated Pulse turn.
- No manifest/API/tool schema exposes either legacy field.
- An ordinary run with an enabled Pulse schedule cannot construct a Gate or Review+Fix message.
- That ordinary run can still back up, publish its report, and notify the user.
- The dedicated Pulse occurrence runs the complete review lifecycle.
- Manual one-off Pulse works even when no recurring review schedule exists.
- Existing enabled workflows have at most one enabled dedicated Pulse schedule.
- Disabled workflows are not silently re-enabled by migration.
Auto-synced from docs/ on main. Edit there, not here.