feat(F-139): completed feature
This commit is contained in:
20
work/artifacts/F-139/implementer.md
Normal file
20
work/artifacts/F-139/implementer.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# F-139 — Implementer evidence
|
||||
|
||||
## What
|
||||
F-139 build evidence: fixed SSE streaming bug. tsc 0, verify.sh verde.
|
||||
|
||||
## Files
|
||||
- `apps/admin/src/app/api/[...path]/route.ts` — proxy adds `X-Accel-Buffering: no`, uses `Headers` API, removes `Connection: keep-alive`.
|
||||
- `apps/admin/src/components/ServerLogViewer.tsx` — added exponential backoff reconnection loop (1s → 2s → 4s … max 30s); calls `reader.cancel()` on abort; resets backoff on success.
|
||||
|
||||
## Verification
|
||||
- `npm run build` → 0 TypeScript errors.
|
||||
- `check-module-boundaries.mjs src` → 0 NEW violations.
|
||||
- `./scripts/verify.sh` → green (F-139 in_progress, runtime-consistent).
|
||||
|
||||
## Root causes fixed
|
||||
| Cause | Fix |
|
||||
|-------|-----|
|
||||
| Proxy missing `X-Accel-Buffering: no` | Added header to proxy SSE response |
|
||||
| Client never reconnects | Exponential backoff retry loop in `connect()` |
|
||||
| Dead `LogBroadcaster.stream()` | No-op — never used by SSE endpoint |
|
||||
Reference in New Issue
Block a user