UI-SP5b — Executors SSE follow-on (view-free)#23
Merged
Conversation
Mirror SP5: 1 additive SSE endpoint GET /api/v1/executors/stream + opt-in useExecutors via existing seam. Reuses SP3's list_executors_for_principal (tenant filter, system_admin bypass). 5s default tick. Pages and SP3 test unchanged. Validates the view-free architecture against a 2nd consumer. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…l_seconds setting
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Small follow-on to UI-SP5 (PR #22
8c77ca1). Validates the view-free single-seam SSE architecture against a SECOND consumer.GET /api/v1/executors/stream— hand-rolledtext/event-streammirroringtasks_stream.py. Reuses SP3'slist_executors_for_principal(tenant filter +system_admin/is_servicebypass — same RBAC as the existingGET /executors). 5 s default tick (envDLW_EXECUTORS_STREAM_INTERVAL_SECONDS, clamped[0.5, 60.0]). Same?max_ticks=Ntestability hatch (httpx ASGITransport buffering).useExecutorsopts in via the SP5-addedstreamUrl+applyEventseam options. Signature/return-shape UNCHANGED.pages/Executors.vueNOT modified; SP3'sExecutorsPage.spec.ts+ thesp3Composables.spec.ts::useExecutors wires key + status query + intervaltest both pass UNCHANGED. The second consumer ships without touching ANY view code — exactly as the SP1/SP2/SP3 promise foretold.Verification
--max-warnings=0; vite build success. spectral/swagger/invariant/status-write all green./api/v1/executors/streamSSE request observed in DevTools network on the/executorspage; zero real console errors.Known follow-ups (non-blocking, record-and-accept)
el-selectmutation re-renders the page from vue-query's fresh fetch (correct UI), but the old-URL stream keeps pushing until component unmount. Cosmetic; ~1 tick of potentially-stale items before user navigates. Future enhancement: haveuseLiveResourcewatch(() => toValue(opts.streamUrl), ...)and reopen on URL change — out of scope here (touches the SP5 seam)._KEEPALIVE_EVERY_TICKSdead branch (inherited from SP5; harmless).text/event-streamblock lacks an explicit401response (precedent from SP5 — flag for a docs sweep).Test plan
🤖 Generated with Claude Code