Skip to content

feat(web): add basic SEO and link zycode to the repo and PyPI - #54

Merged
zy1233 merged 1 commit into
mainfrom
feat/web-seo-basics
Oct 30, 2026
Merged

zy1233 merged 1 commit into
mainfrom
feat/web-seo-basics

Conversation

@zy1233

@zy1233 zy1233 commented Oct 30, 2026

Copy link
Copy Markdown
Owner

Summary

 web/src/layouts/Base.astro                (the <head> of each page)
+  <link rel="icon" href="/favicon.ico" sizes="32x32">
+  <link rel="apple-touch-icon" href="/apple-touch-icon.png">
+  <meta name="twitter:site" content="@zycodey1">         from links.x in data/site.ts
+  <meta name="twitter:image:alt" ...>
+  <script type="application/ld+json">                    home pages only; no data on a preview address
+    WebSite              name, alternateName, url, inLanguage
+    SoftwareSourceCode   codeRepository, license, programmingLanguage, keywords, sameAs
 web/public/
+  favicon.ico             16, 32, 48 px
+  apple-touch-icon.png    180 x 180 px
 README.md, packages/pi-agent-cli/README.md
+  "zycode is an open-source coding agent ... Website: zycode.dev"
 pyproject.toml            (root and 6 packages)
+  [project.urls] Website = "https://zycode.dev"
 web/README.md
+  ## Icons
+  ## Search engines       rules for the JSON-LD: sourced values only, no rating, no review

Evidence

  • Before: https://zycode.dev/favicon.ico and /apple-touch-icon.png return 404. The word "zycode" is
    not in README.md, not in the PyPI pages, and the GitHub About text is "pi-agent for python" with no website.
    After: both icons return 200 (image/x-icon, image/png), and each page has one JSON-LD block.

  • Built pages (dist/index.html, dist/zh/index.html, dist/404.html), checked by a script:
    the JSON-LD is valid JSON with 2 nodes; no aggregateRating, no review; no raw < in it; one <h1>;
    twitter:site is @zycodey1; the canonical link is on zycode.dev; 404.html has noindex and no JSON-LD.

  • Each of the 14 JSON-LD properties is a property of its type in the schema.org vocabulary (release 30.1):
    a script read the vocabulary file and followed domainIncludes through the parent types.

  • The icons match favicon.svg: Edge draws the SVG at 256 px; mean difference to favicon.ico art
    is 0.3 of 255, and 1 pixel of 65,536 differs by more than 48.

  • In a browser (npm run preview): the page shows as before, and fetch of the 3 icons gives 200.

  • npm run check: 0 errors. npm run build: 3 pages. ruff check . and ruff format --check .: pass.
    scripts/tests/test_release_versions.py: 4 passed. uv build --wheel for the root package and for
    pi-agent-cli-lc: the wheel metadata has Project-URL: Website, https://zycode.dev.

  • Not tested: Google Rich Results Test and Search Console (the page is not public before the merge, and
    Google and schema.org do not answer from my network); PageSpeed; how a search engine shows the site after a crawl.

  • Outside this pull request: I set the GitHub About text, the website, and 10 topics of the repository.
    I opened agentclientprotocol/agent-client-protocol#2681,
    which adds zycode to the agents list of the ACP site.

Merge Danger

Door: two-way. Revert the commit to go back.

A merge changes web/, so Cloudflare Workers Builds deploys zycode.dev by itself (about one minute).
The change adds head tags and two static files. The body of the pages does not change.

Blast Radius: the <head> of / and /zh/ (search engines, link previews, the tab icon), and the PyPI
metadata of 7 packages. The PyPI pages change only after the next release.

- web/src/layouts/Base.astro: JSON-LD (WebSite, SoftwareSourceCode) on the
  home pages, twitter:site, twitter:image:alt, and the links to the new icons.
- web/public: favicon.ico (16, 32, 48 px) and apple-touch-icon.png (180 px),
  drawn from the shapes of favicon.svg. Both returned 404 before.
- README.md and packages/pi-agent-cli/README.md: one sentence that names
  zycode and links zycode.dev. The name was not in the README before.
- pyproject.toml (root and 6 packages): Website project URL. PyPI shows it
  after the next release.
- web/README.md: sections "Icons" and "Search engines", with the rules for
  the JSON-LD (sourced values only, no rating, no review).
@zy1233
zy1233 merged commit ecf0ba6 into main Oct 30, 2026
5 checks passed
@zy1233
zy1233 deleted the feat/web-seo-basics branch October 30, 2026 09:36
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
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