Skip to content

Record a real end-to-end demo and rewrite the README around it - #215

Merged
ZHallen122 merged 6 commits into
mainfrom
readme-readme
Aug 21, 2026
Merged

Record a real end-to-end demo and rewrite the README around it#215
ZHallen122 merged 6 commits into
mainfrom
readme-readme

Conversation

@ZHallen122

@ZHallen122 ZHallen122 commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

The demo video is now assets/demo.mp4, recorded by pnpm demo:flow (scripts/record-flow.mjs), which drives the real product end to end — types a prompt on the landing page, answers the agent's question card, waits for the build, films the result — and compresses only the waiting, labelled on screen.

The README is rewritten against the source: its "Build System Architecture" section and generation flowchart described BuilderContext, BuildHandlerManager and VirtualDirectory, none of which exist in backend/src any more; troubleshooting pointed at .codefox/config.json (no callers) and pnpm clean (no such script); Additional Resources linked four files that are not in the repo. What replaces them is a turn sequence diagram, the AGENT_HARNESS table, the host/vercel sandbox tradeoff, and failures a local run actually hits. Licensing is made consistent too — the landing page claimed MIT while the manifests said ISC and UNLICENSED, so everything is MIT now with a LICENSE file.

No backend behaviour changes: a keepalive fix was committed and then reverted (f46357a / ec74741), so backend/src is identical to main. Worth knowing before re-running the recorder: on a stock pnpm dev a turn dies about forty seconds in whenever the agent thinks quietly for ~30s, because Next's dev proxy hangs up on an idle response and the backend reads that hang-up as the client leaving. The committed video was recorded with that keepalive in place.

CI on this PR is red for reasons that predate it: backend/frontend build a codefox-common package deleted in d5379db (2025-10-01), autofix runs tsc --noEmit at a root with no tsconfig, and the codecov job's --frozen-lockfile fails on a lockfile written by a newer pnpm than packageManager pins — that last one fails on every main push too.

A turn writes nothing to the socket while the agent thinks, and thinking for
half a minute before the next tool call is ordinary. Next's dev proxy — the
path `pnpm dev` puts every local user on — hangs up on a response that idle,
and the hang-up reaches the backend as `close`, which it reads as the user
leaving: clientGone, session destroyed, build abandoned about forty seconds in.

Measured before the fix: three builds died at 0:40, 0:40 and 1:09, each after
~30s with no part to forward, each leaving "[Request interrupted by user]" in
the agent transcript and the scaffold still on screen. The same turn driven
straight at :8080 ran past 80s of silence.

A ping every 10s, which the client's parser already ignores, keeps the socket
busy through the quiet. check-stream-keepalive.mjs goes red when the interval
is removed or moved out of the finally.
pnpm demo:flow types a prompt on the landing page, answers the agent's
question card, waits for the build, and films the result — the same idea as
record-demo.mjs, but the whole loop instead of the landing page.

A real build takes minutes and a README video may not, so the beats the script
timestamps while driving become ffmpeg trim/setpts segments: typing and the
reveal stay at 1x, the two stretches where a human would only be watching the
agent work run at 6x and 12x with the speed burned into the frame.

The settle detector needs both signals. File size alone stops at the last
write while the agent is still checking its work, and the preview only reloads
when the turn does — the first cut ended on the scaffold. The composer alone
can stay stuck streaming after a stream dies.
The "Build System Architecture" section and the full-stack generation flowchart
described BuilderContext, BuildHandlerManager, BuildMonitor and VirtualDirectory
— none of which exist in backend/src any more. The agent loop replaced them.
Troubleshooting pointed at .codefox/config.json (no callers) and `pnpm clean`
(no such script); Additional Resources linked four files that are not in the
repo; Support linked github.com/your-repo.

What replaces them is checked against the source: a turn sequence diagram, the
AGENT_HARNESS table with what each loop needs, the host/vercel sandbox tradeoff,
and troubleshooting for the failures a local run actually hits. The demo video
is the new end-to-end recording.
The landing page has claimed MIT for a while, but package.json said ISC,
backend/package.json said UNLICENSED, frontend/package.json said nothing, and
there was no LICENSE file. MIT everywhere, with the text to back it.
@vercel

vercel Bot commented Aug 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
codefox Ready Ready Preview Aug 21, 2026 3:33am

Request Review

The refactor it warned about has landed. The one fact worth keeping — that the
default host sandbox gives the agent the backend's privileges — is already
stated where it belongs, under "Where the agent runs".
@ZHallen122
ZHallen122 requested a review from Sma1lboy August 21, 2026 02:53
@ZHallen122 ZHallen122 changed the title Rewrite the README around the agent loop, with a real end-to-end demo Record a real end-to-end demo and rewrite the README around it Aug 21, 2026
This reverts commit f46357a. The task was recording the demo, not changing
backend behaviour; the stream change does not belong in this branch.

Known consequence: on a stock `pnpm dev`, a turn still dies about forty
seconds in whenever the agent thinks quietly for ~30s, because Next's dev
proxy hangs up on an idle response and the backend reads that as the client
leaving. `pnpm demo:flow` cannot finish a build under that. The committed
demo was recorded with the keepalive in place.
@ZHallen122
ZHallen122 merged commit ab8d63b into main Aug 21, 2026
2 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant