Repository navigation
feat(website): live sites, browser/v1 sign-in and WARC replay (FD-4683) - #447
williamloo-scale wants to merge 8 commits into
Conversation
f542d14 to
8cc706b
Compare
cb672e5 to
306587d
Compare
8cc706b to
7e5b297
Compare
306587d to
2b782e9
Compare
7e5b297 to
9a073e2
Compare
2b782e9 to
0d613b8
Compare
…(FD-4683) This PR's change, rebased as one commit onto #447. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…(FD-4683) This PR's change, rebased as one commit onto #447. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
0d613b8 to
9495ed2
Compare
9a073e2 to
543d2b2
Compare
543d2b2 to
c6770ea
Compare
9495ed2 to
25dcf9a
Compare
c2bd2fb to
f7c679d
Compare
c6770ea to
9c3251f
Compare
9c3251f to
8ce884c
Compare
f7c679d to
571c04b
Compare
687d166 to
6f3fcdb
Compare
571c04b to
04d3f23
Compare
This PR's change, rebased as one commit onto #446. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…pressed and inline-styled captures (FD-4683) - sign_in skips cookies/clear on a browser that serves only cookies/set, and names its error-record limit. - An imported WARC's gzip or deflate answers are read decoded, so their pages' and stylesheets' links are rewritten. - A capture loads what a page's style values, style elements and video posters name. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…d signs in again after a reset with its own timeout (FD-4683) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…'s Path under it (FD-4683) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ture and sign-in name their defaults (FD-4683) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…no state; data/get alone (FD-4683) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…e reads sign-ups through data/get (FD-4683) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
04d3f23 to
956163f
Compare
…s cookies are cleared (FD-4683) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Website settings: suggest following the computer-app model This PR makes a website env's Computer apps already have a settings model for the same job (
Suggest websites do the same, implemented in the website package (no imports from
For the rebase: #428 now validates |
Stacked on #446.
Live and replayed websites.
@website(domains=[...], live=True, allow_hosts=[...])declares a real site: its server serves only health, the data plane and the card (which advertisesliveandallow_hosts).@sessionreturns the cookies a browser adds to start signed in;self.setting(name)reads a credential the deploy passes.urn:agentenv:browser/v1):cookies/setandcookies/clear, operations of the same extension main'sWebsiteBrowserEnvironment(feat(computer): WebsiteBrowserEnvironment, the base class for website browsers #449) declares with its build, clock and window;sign_in_browserpicks a browser that offerscookies/set, so a website browser joins once it serves them (M5.11). The Playwright MCP browser serves them, writing its storage state and, through DevTools, any running context. Answers and errors never repeat a cookie's value.sign_in_browserstep. Calls each live site's session and hands the cookies to the browser;reset_envsigns in again. A deploy with a live site is markedreproducible=Falsewith itslive_websites, checked against the computer's allowlist.settingsare its container's environment variables. A secret-looking setting must be asecret:/env:reference, resolved only into the compose file. The gateway's own variables, the role key among them, can't be set.python -m agentenv_protocol.website.replay capture URL...writes WARC 1.1;ReplayWebsiteserves a capture for any host, with@apiroutes taking precedence. Example inexamples/website/replay/.Before merging
website.browser, so it needs that release.website.sessionis now the decorator, which shadows the module.Test
Unit suite: 12,870 passed (one GitHub-clone test from main, which hangs on the local machine on main too, deselected).
🤖 Generated with Claude Code


Confidence Score: 5/5
The PR appears safe to merge; the wildcard cookie-clearing issue is fixed.Summary
Adds live website declarations, browser sign-in, website settings, and WARC capture and replay.
Diagram
%%{init: {'theme': 'neutral'}}%% flowchart LR Session["Live site's session"] --> SignIn["sign_in_browser"] SignIn --> Clear["Clear old cookies"] Clear --> Set["Set new cookies"] Set --> Saved["Saved browser state"] Set --> Running["Running browser"] WARC["WARC capture"] --> Replay["ReplayWebsite"] Replay --> Pages["Captured pages and assets"]Reviews (18) · Last reviewed commit: "fix(website): a wildcard site domain cov..." · Reviewed by Greptile