Repository navigation
feat(web): add the zycode product site on zycode.dev - #50
Merged
Merged
Conversation
web/ holds a static Astro site for zycode. Cloudflare Workers serves it as static assets, so no server of ours is necessary. The site is not a Python package: Ruff and pytest do not read it. - Languages: English at / and Chinese at /zh/. The type Messages in src/i18n/types.ts gives en.ts and zh.ts the same keys. - Content: why, the event contract, architecture, features, install, status, and evidence. The status table equals the table "Status" in README.md. The evidence section equals the benchmark report and keeps its limits. The terminal demo says that it is an illustration. - Header: links to GitHub and to PyPI (pi-agent-cli-lc), a theme toggle, and a language link. On a phone the two link buttons show only an icon, and each keeps its name for screen readers. - Address: wrangler.jsonc binds the Custom Domain zycode.dev to the Worker, and closes the workers.dev and preview addresses. The default site address is https://zycode.dev. SITE_URL sets the address of a build. - public/_headers: security headers (CSP, HSTS, nosniff, frame deny) and a long cache for /_astro/*. The CSP blocks the RUM beacon that Cloudflare adds to a Free zone. - Preview hosts (workers.dev, pages.dev, localhost): robots.txt says Disallow: /, and each page has noindex. - brand/: the avatar (an SVG source and a 1024 x 1024 PNG) and the header (a 1500 x 500 PNG) of the X account of zycode. The header comes from the page /dev/x/header/, like the social card. That page exists only in `npm run dev`: getStaticPaths returns no path in a build. - web/README.md: the commands, the deploy steps, the settings that live in Cloudflare and not in this repository (the www redirect, Always Use HTTPS, TLS 1.2 or later, 0-RTT, DNSSEC, and a configuration rule that turns off the RUM beacon), the four no-mail DNS records (SPF -all, DMARC reject, an empty DKIM key, and a null MX), and the pictures for X. The README says that the DNS records must be replaced before the domain gets a mail service, because the DMARC policy reject makes a receiver reject a message that does not pass the checks. - AGENTS.md: a row for web/ in the module map, and a row in the table of commands. Checked: - npm run check: 0 errors, 0 warnings (1 old hint in CopyButton.astro) - npm run build: 3 pages, and dist/ has no dev/ folder - 51 color pairs pass WCAG 2.2 AA (4.5:1 for text, 3:1 for large text and interface parts) - live: 200 on /, /zh/, /robots.txt, /sitemap.xml and /og.png; 404 on an unknown path and on /dev/x/header/ - live: http://zycode.dev and https://www.zycode.dev answer 301 to https://zycode.dev - live: 30 browser checks (terminal demo, tabs and keys, copy, theme, reveal, structure, Chinese page, endpoints, console) pass - live: the page does not scroll sideways at 320, 390, 768, 1024 and 1440 px (English and Chinese) - Ruff reads 0 files in web/ (ruff check . --show-files)
zy1233
added a commit
that referenced
this pull request
Oct 30, 2026
…#55) Core, harness and cli go from 0.6.0 to 0.7.0. They pin each other with ==. The two TUI crates that zypi shows (pi-pager-bin, pi-version) and tui/Cargo.lock carry the same version (scripts/tests/test_release_versions.py). The extension packages are released with the core, so all four need pi-agent-core-lc>=0.7.0 (pi_agent_core/tests/test_extension_packaging.py), and pi-dynamic-workflows-py also needs pi-agent-harness-lc>=0.7.0. The publish step skips a version that is on PyPI already, so they get new versions: web-access, goal-x and dynamic-workflows 0.3.0 -> 0.4.0, pi-mcp 0.1.0 -> 0.2.0. The README of pi-mcp-py (its PyPI page) names the new floor. CHANGELOG.md: [Unreleased] becomes [0.7.0] - 2026-10-30. It gets an opening paragraph (the release page shows it first), entries for the site (#50 to #54), the PyPI Website link, the queue cleanup fix (#47) and the new version numbers, and the known issues of 0.6.0 that still hold. The one about F7-02 to F7-09 is gone: the fixes are in this release. The entry for the console script and the README of pi-agent-cli-lc say 0.7.0, not "the next release". Why now: the published 0.6.0 has no `--setup` and no `pi-agent-cli-lc` console script, but the site and the README on main describe both. Checks: PR checks 6 of 6, and a dry run of Release on the branch (tests, both TUI builds, Python packages): https://github.com/zy1233/pi-python/actions/runs/41037156832
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A static Astro site for zycode. Cloudflare Workers serves it as static assets. No server of ours runs.
Outside
web/,AGENTS.mdgets two rows:web/in the module map, andSite (web/)in the table of commands.Evidence
mainhas noweb/folder. The site is live at https://zycode.dev, but its source is only on one dev machine.After: the source is in
main. These checks ran on this tree:Merge Danger
Door: two-way
A revert of the squash commit removes
web/and the twoAGENTS.mdrows. Nothing else reads them.Blast Radius: Contained
npm run deployinweb/. The live site stays as it is.web/. CI on this PR runs Ruff and pytest only.web/package-lock.json.