Feat v0.3.3 public entry + background jobs
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 20s
CI/CD / test-frontend (pull_request) Has been skipped
CI/CD / test-sqlite (pull_request) Successful in 2m39s
CI/CD / test-go-pg (pull_request) Failing after 2m54s
CI/CD / build-and-deploy (pull_request) Has been skipped
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 20s
CI/CD / test-frontend (pull_request) Has been skipped
CI/CD / test-sqlite (pull_request) Successful in 2m39s
CI/CD / test-go-pg (pull_request) Failing after 2m54s
CI/CD / build-and-deploy (pull_request) Has been skipped
Public workflow entry: unauthenticated routes at /api/v1/public/workflows/ for anonymous workflow participation. StartPublic creates instances with public:<uuid> identity, ResumePublic/AdvancePublic use entry tokens. Audience-gated: only public stages can be advanced anonymously. SLA scanner: background goroutine (5-min interval) checks active instances against per-stage sla_seconds. Fires workflow.sla_breach event on first breach, marks sla_breached in instance metadata (idempotent). Staleness sweep: new staleness_timeout_hours column on workflows. Scanner marks idle instances as stale, cancels open assignments, fires workflow.stale event. New store methods: ListActiveInstances, MarkInstanceStale. New events: workflow.sla_breach, workflow.stale. 3 new store tests (17 total), all passing on SQLite. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
21
CHANGELOG.md
21
CHANGELOG.md
@@ -2,6 +2,27 @@
|
||||
|
||||
All notable changes to Switchboard Core are documented here.
|
||||
|
||||
## v0.3.3 — Public Entry + Background Jobs
|
||||
|
||||
### Added
|
||||
|
||||
- **Public workflow entry**: Unauthenticated routes for anonymous workflow
|
||||
participation. `POST /api/v1/public/workflows/:id/start` creates an instance
|
||||
with `started_by = "public:<uuid>"` and returns an entry token.
|
||||
`GET .../resume/:token` and `POST .../advance/:token` allow continuation.
|
||||
Only stages with `audience = "public"` can be advanced anonymously.
|
||||
- **SLA scanner**: Background goroutine (5-minute interval) checks active
|
||||
instances against per-stage `sla_seconds`. Fires `workflow.sla_breach` event
|
||||
on first breach, marks `sla_breached: true` in instance metadata (idempotent).
|
||||
- **Staleness sweep**: New `staleness_timeout_hours` column on `workflows`.
|
||||
Scanner marks instances as `stale` when `updated_at` exceeds the threshold,
|
||||
cancels open assignments, fires `workflow.stale` event.
|
||||
- **New store methods**: `ListActiveInstances()`, `MarkInstanceStale()`.
|
||||
- **New events**: `workflow.sla_breach`, `workflow.stale`.
|
||||
- **3 new store tests**: MarkStale, ListActive, StalenessTimeoutHours round-trip.
|
||||
|
||||
---
|
||||
|
||||
## v0.3.0 — Workflow Schema Redesign
|
||||
|
||||
### Changed
|
||||
|
||||
Reference in New Issue
Block a user