Cron-style scheduler that drives every psyc line on a cadence without human input. Each pipeline has an autonomy mode and a cadence in seconds. The kill switch halts everything instantly — it overrides cadence, mode, and the enabled flag.
{% if flash %}When the respond pipeline runs in auto-execute, every PROPOSED action that passes all three gates fires automatically. Below shows the live config + audit trail.
| timestamp | decision | case | detail |
|---|---|---|---|
| {{ row.timestamp }} | {% if row.action == 'auto-fire' %}✓ {{ row.action }} {% elif row.action == 'error' %}✗ {{ row.action }} {% else %}⊘ {{ row.action }}{% endif %} | {{ row.case_id or '—' }}{% if row.action_id %} · #{{ row.action_id }}{% endif %} |
{{ row.detail or '' }} |
No auto-response decisions logged yet.
{% endif %}Mode: auto-execute fires the line, auto-propose stages proposals for human approval, manual runs only when you press “Run now”. Cadence is the gap between ticks; the loop wakes up every {{ tick_interval }}s.
| Pipeline | Mode · cadence · enabled | Last fired | Next fire | Last result | |
|---|---|---|---|---|---|
{{ p.title }}
{{ p.name }} · {{ p.description }} |
{% if p.last_fired %}{{ relative(p.last_fired) }}{% else %}—{% endif %} | {% if p.next_fire %}{{ relative(p.next_fire) }}{% else %}—{% endif %} | {% if p.last_outcome == 'ok' %}✓ {% elif p.last_outcome == 'err' %}✗ {% elif p.last_outcome == 'skipped' %}⊘ {% endif %} {{ (p.last_result or '—')[:60] }}{% if (p.last_result or '')|length > 60 %}…{% endif %} |