Daily bug scan: public replay route regression
The scan found one concrete regression tied to recent durable-options routing work: the deployed
public route check now fails because /replay/options returns HTML instead of JSON on
https://flow.deltaisland.io.
Summary
I scanned the commits from the last 24 hours, focused on the recent options-history and live-tape routing changes, and verified the new public route checker against the live app origin. The only concrete failure was the replay endpoint check.
Changes Made
- Created Beads bug
islandflow-r7nto track the public replay proxy regression. - Added this turn document for the automation handoff.
Context
Commit 1424a27 added scripts/check-public-api-routes.ts and wired it into
deploy verification to catch same-origin routing mistakes after the durable options history work.
That script now provides a concrete signal that the public replay path is misrouted.
Important Implementation Details
services/api/src/index.tsdoes implementGET /replay/options.-
deployment/docker/README.mdsays same-origin proxy mode must forward/replay/*to the API service. - The live check failed with HTML from the web app, which indicates the edge proxy is not forwarding that path to the API host.
bun run scripts/check-public-api-routes.ts https://flow.deltaisland.io ... error: /replay/options returned non-JSON content (text/html; charset=UTF-8)
Expected Impact for End-Users
Replay-mode options data requested through the public app origin can land on the Next.js app instead of the API, which breaks the endpoint and can leave replay experiences incomplete or empty.
Validation
- Reviewed recent commits:
1424a27,d334e16,23ed380. -
Ran
bun run scripts/check-public-api-routes.ts https://flow.deltaisland.ioand reproduced the failing replay route. -
Confirmed the API service route exists by inspecting
services/api/src/index.ts. -
Ran
bun test apps/web/app/terminal.test.ts; it did not execute in isolation because the file depends on workspace alias resolution for@islandflow/types.
Issues, Limitations, and Mitigations
- This appears to be an environment or edge-proxy regression, not a source-level API bug.
- No repo code fix was applied because the failing behavior is coming from live routing outside this checkout.
- The Beads issue includes the minimal mitigation: update the public proxy matcher, then rerun the route check.
Follow-up Work
islandflow-r7n: update the live proxy so/replay/*reaches the API service.- Rerun
bun run check:public-api-routesafter the edge change to confirm recovery. -
Optionally coordinate with
islandflow-qd7if the team still plans to move production toapi.flow.deltaisland.ioand reduce same-origin proxy risk altogether.