Repository navigation
feat(website): a Notes site on WebsiteEnvironment, one image that passes the conformance check (FD-4683) - #429
williamloo-scale wants to merge 13 commits into
Conversation
…ses the conformance check (FD-4683) Per-user notes stamped by the universe clock, an admin-only route, and a Vite page that uses relative URLs so it works under the gateway's /website/notes/ route. The image builds the page and serves it with the API on PORT, and env.toml declares it as the env's server image. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
…s role key (FD-4683) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… its clock follows the universe's rate (FD-4683) A refresh after a save replaced the list, so text typed into another field before the save answered was lost. render() now keeps each field edited since it was drawn, or focused, and puts back its text, focus and selection; a field saves on blur too, once per text. The page's clock assumed real-time speed between answers; it now reads X-Universe-Now from the health path every 5 seconds, so a stopped or faster clock shows. Checked in Chromium against the site: with the title's save delayed, text typed into the body stays focused through the refresh and is saved; one save per edit. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… they still hold what was sent (FD-4683) Text typed into the Add note form while the earlier save was pending was wiped when that save answered, since the form was reset. Each field is now cleared only when it still holds the text that was submitted. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ck reads (FD-4683) The page re-reads X-Universe-Now from healthz every 5 seconds, but npm run dev forwarded only /api, so an idle page under Vite never saw the site's clock. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… shows the newest filter (FD-4683) Each note keeps one PATCH in flight and sends its latest text next, so an earlier save can no longer land after a newer one. render() drops a list answer when a newer list request has started since. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Stacked on #428.
packages/agentenv-protocol/examples/website/notes/: a reference site onWebsiteEnvironment, about 130 lines of Python plus a small Vite page.self.now(), auto sign-in as the acting user, and/api/admin/noteswithroles=["admin"](403 otherwise)./website/notes/route. A refresh keeps text typed into a note that isn't saved yet, with its focus and cursor, and the page's clock re-readsX-Universe-Nowevery 5 seconds, so a stopped or faster universe clock shows.PORT, with curl for the compose health check.env.tomldeclares it as the server image.Test
Unit suite and protocol tests: 12,667 passed, lint clean.
test_website_notes_example.py: 8 passed.python -m agentenv_protocol.website.conformance http://localhost:18080 --clock-host host.docker.internalpassed 8/8. Pages, session, notes and the admin route checked by curl.agent-env env website put --server-dockerfile ... --health-path /healthzagainst local stores only.🤖 Generated with Claude Code


Confidence Score: 5/5
The PR appears safe to merge with the checked queued-edit fixes supplied by PR #444.Summary
Adds a Notes reference site on
WebsiteEnvironment, with per-user notes, an admin-only route, a Vite page, and one server image.Diagram
%%{init: {'theme': 'neutral'}}%% flowchart LR Browser[Notes page] -->|Relative API calls| Site[Notes server] Site -->|Owner checks| Store[Per-user notes] Admin[Caller with admin role key] -->|Admin route| Site Data[Data plane] -->|Load, export, reset| StoreReviews (4) · Last reviewed commit: "Merge wloo/website-environment-sdk into ..." · Reviewed by Greptile