myxce/src/frontend
lei.chen 898de0cebd feat(apiserver): SSE job-event stream + EventBroker (Phase 2, ADR-004)
Add a Server-Sent Events endpoint /xce/v1/events streaming job lifecycle
events (job.created/updated/deleted/finished) to subscribers. The
DefaultHandler now publishes every job event to a process-wide EventBroker;
the SSE handler subscribes and streams JSON frames with a keep-alive comment
during idle.

- backend/broker.go: thread-safe fan-out Broker (drops for slow consumers so
  the notification path never blocks), Event type with job_status string.
- backend/handler.go: OnJob* publish to DefaultBroker.
- controllers/events.go: SSE handler (gin, text/event-stream, keep-alive).
- router + whitelist + rbac: /xce/v1/events route, event:subscribe
  permission granted to mcp_readonly/mcp_operator/cluster_admin.
- Tests: broker fan-out/slow-consumer/unsubscribe, handler publishes, SSE
  end-to-end via httptest.

Verified live on t1: SSE stream delivered job.updated PEND→RUN events for a
submitted job.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-12 08:30:18 +00:00
..
apiserver feat(apiserver): SSE job-event stream + EventBroker (Phase 2, ADR-004) 2026-08-12 08:30:18 +00:00
docs Merge Go frontend (apiserver + xcecli) into meson build 2026-04-14 11:23:18 +08:00
mcp-server feat(mcp-server): server instructions + report-only status tool guidance 2026-08-07 08:43:43 +00:00
schedulerclient fix(schedulerclient): parse apiserver OrderMap columnar rows (bug-1491) 2026-08-02 05:01:16 +00:00
tests/regression Merge Go frontend (apiserver + xcecli) into meson build 2026-04-14 11:23:18 +08:00
xcecli fix(xcecli): restore dangling CA-cert cleanup misses, enable https support 2026-07-23 07:28:01 +00:00
CLAUDE.md docs(scheduler-agent): update design doc with cluster verification results 2026-08-01 09:54:49 +00:00
Makefile Merge Go frontend (apiserver + xcecli) into meson build 2026-04-14 11:23:18 +08:00
meson.build Merge Go frontend (apiserver + xcecli) into meson build 2026-04-14 11:23:18 +08:00