State per-platform signing, and give search results the brand and prose they quote - #32
Conversation
The dsh entry joins planned-agents.json as a coming-soon agent, so the catalog shows it before the vendored agents.lock.json ships it. The mark is lobe-icons' deepseek.svg (MIT), recorded in asset-rights.json with its digest like every other bundled glyph, mapped in AgentMark and added to the dark-scheme inversion set — it is a currentColor drawing like the rest. The dark-scheme e2e list names it so a missing file fails loudly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Search engines were returning the home page with no usable summary (Google) or with demo-console fragments as the snippet (Bing: "开始激活 演示 0.6.2 · 未签名技术…"). The head was fine — the body was the problem: ~85% of the page's visible text was the activation demo's interface labels, and the description described a flow without naming anything it operates on. - data-nosnippet on the demo console: it is a replica of the product UI, not prose about it. Still crawled, still indexed, still read aloud — just not quotable as the page's summary. (Google-only attribute; Bing is carried by the two changes below.) - Descriptions now name what a query would: the agents, the protocols, and where keys live. - The hero drops the channel/version note. The signing status was the loudest thing said about the product on every crawl, and it belongs to /downloads/ and /security/, which state it in full. The footer's raw channel slug becomes a link to /security/. - A brand lockup (44px mark + name) leads the hero; JSON-LD becomes an @graph whose Organization carries the 1024px logo — the property search engines actually read for the brand image. An apple-touch-icon keeps iOS from screenshotting the page instead. - The chrome CTA reads 下载 BootAgent rather than 下载预览版. The narrow visual baseline is regenerated: the lockup changes the page height, which shifts the console onto a different fractional pixel offset (1px separator row + re-anti-aliased text, content identical). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
v0.7.0's macOS artifacts are Developer ID-signed and Apple-notarised
(upstream BootAgent#199 moved signing into the release workflow), so the
blanket "unsigned technical preview" is now wrong for macOS while still
right for Windows. Verified by hand against both published DMGs before
any copy changed:
codesign -dv -> Developer ID Application (Team ID F2VC757B28),
hardened runtime, notarization ticket stapled
spctl -t exec -> accepted, source=Notarized Developer ID
PE parse -> the Windows installers carry no Authenticode
certificate table
The channel model records that divergence instead of one flag: each
target carries a signing state (notarized / signed / unsigned /
not-applicable), driven by a version floor whose evidence is documented
where the constant lives. The channel id drops "-unsigned" and the feed
still records nothing about signing, so the floor is the only claim —
under-claiming stays the default for Stable.
Copy follows the model. The download page states signing per platform
and loses the "原生构建 + cleanroom 通过" row, which was rendered
unconditionally while the feed reports cleanroom as not-recorded. The
security page names the Team ID and the spctl command a reader can run,
and prints the channel id from the channel rather than a literal. The
quickstart's four-step Gatekeeper bypass comes down, honouring its own
sunset clause ("届时这份指南也会撤下") — the anchor stays for inbound
links, and readers on v0.6.x are told to upgrade rather than taught an
allowance for an unsigned build. The four screenshots, their rights
records and the NOTICE paragraph go with it. Help, llms.txt and the
changelog say the same thing in their own registers.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The two P2s: the download page's signing notice was a constant while the signing row beside it reads per-target state, so a pre-0.7.0 feed (a rollback, or a RELEASE_REPOSITORY fork shipping unsigned builds) would have shown the two contradicting each other — the notice now branches on the same signing state. NOTICE's claim that nothing on the site references bootagent-logo.png became false when JSON-LD started naming it as the Organization logo; it now says so. The rest are statements this branch made stale in passing: the en security description promised a verification command that only renders conditionally; four comments and two docs still described the removed Gatekeeper screenshots or the pre-dsh empty planned list; llms.txt's translation list was missing /en/help/; and the en site description dropped the backup claim the Chinese one makes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adversarial review (fresh-context pass over
|
|
Two updates since the review comment above: 7a27596 applies the review findings — both P2s (the download notice now branches on the same per-target signing state as the signing row; NOTICE's logo sentence corrected) and the seven fixable P3s. Gates re-ran green. a2e2dc5 adds a zero-decision download path, modelled on ccswitch.io/zh/download's lead: one primary button above the platform picker carrying the detected target's file, restating version · target · size · signing beside it, following the picker's selection, hiding when a target has no artifact. Plus a "past versions → GitHub Releases" line. Deliberately not copied from the reference: truncated checksums (the full digest is this site's claim), a brew line (no formula exists), and hero download buttons on the home page (its one-activation-entry rule is e2e-guarded by design). Full gates on the final tree: vitest 98 passed, build 51 pages validated, e2e 216 passed / 18 skipped (baseline-identical), verified interactively in the browser across light/dark and mobile. 🤖 Generated with Claude Code |
|
Note: this merged while two follow-up commits were in flight (the review fixes and the zero-decision download button). They continue in #33, cherry-picked onto the squash — applied clean, full gates green there. 🤖 |
) * fix: apply review findings from PR #32's adversarial pass The two P2s: the download page's signing notice was a constant while the signing row beside it reads per-target state, so a pre-0.7.0 feed (a rollback, or a RELEASE_REPOSITORY fork shipping unsigned builds) would have shown the two contradicting each other — the notice now branches on the same signing state. NOTICE's claim that nothing on the site references bootagent-logo.png became false when JSON-LD started naming it as the Organization logo; it now says so. The rest are statements this branch made stale in passing: the en security description promised a verification command that only renders conditionally; four comments and two docs still described the removed Gatekeeper screenshots or the pre-dsh empty planned list; llms.txt's translation list was missing /en/help/; and the en site description dropped the backup claim the Chinese one makes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat: put a zero-decision download button above the platform picker Modelled on how ccswitch.io/zh/download leads: the detected platform's file as one prominent button, with everything needed to click it — version, target, size, signing state — restated beside it, so the common case never has to parse a six-way radio group first. The picker and the per-target panels stay directly below for everyone else; the primary block follows the picker's selection, and hides for a target with no artifact rather than keep offering the previous target's file under the new target's name. Deliberately not adopted from the reference: truncated checksums (the full digest a reader can compare character-by-character is this site's claim), a brew line (no formula exists to point at), and a download button in the home hero (the home page presents one activation entry by decision, and its e2e test guards exactly that). A "past versions" line now points at GitHub Releases from the download page itself. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Three changes that were developed and verified together on one tree. Each commit is a self-contained logical change and green by construction; the head commit carries the full gate results below.
1. DeepSeek Harness mark (
3bdb3f0)Bundles lobe-icons'
deepseek.svg(MIT) for thedshplanned-agent entry, with its rights record and digest like every other mark, and adds it to the dark-scheme inversion set and the e2e mark inventory.2. Search results: brand and prose (
3eaaa57)Google indexes the home page with no usable summary, and Bing quotes demo-console fragments as the snippet (
开始激活演示 0.6.2 · 未签名技术…, from a ~5-day-old crawl). The head tags were fine — the body was the problem: ~85% of the home page's visible text was the activation demo's interface labels, and the description described a flow without naming anything it operates on.data-nosnippeton the demo console — it is a replica of the product UI, not prose about it. Still crawled and indexed; just not quotable as the page's summary. Snippet-eligible text drops from 3,144 to 1,458 chars, all of it real prose. (The attribute is Google-only; Bing is carried by the description and hero changes.)/downloads/+/security/state it in full. The footer's raw channel slug becomes a link to/security/.@graphwhoseOrganizationcarries the 1024px logo (the property search engines read for the brand image beside a result — neitherog:imagenor the favicon is consulted for it), plus anapple-touch-icon.下载预览版→下载 BootAgent. A button on every page had made "preview" the loudest word about the product.After merge, both engines need a recrawl: Search Console and Bing Webmaster Tools each have a request-indexing action; Bing also honours IndexNow.
3. Per-platform signing copy (
e281cae)v0.7.0's macOS artifacts are signed and notarised (upstream BootAgent#199 moved signing into the release workflow), so the blanket "unsigned technical preview" is now wrong for macOS while still right for Windows. Verified against the published artifacts before any copy changed:
release-channel.tsmodels signing per target (notarized/signed/unsigned/not-applicable), driven by a hand-verified version floor whose evidence lives in a comment next to the constant. The feed records nothing about signing, so the floor is the only claim; Stable still requires the explicit tag marker.not-recorded, exactly the kind of unearned badge this repo's release-channel module exists to prevent.spctlcommand a reader can run, and prints the channel id from the channel object rather than a hardcoded literal.#macos-gatekeeperanchor stays for inbound links; readers on v0.6.x are told to upgrade rather than taught an allowance for an unsigned build. The screenshots, their rights records and the NOTICE paragraph go with it.llms.txt(also fixes the stale "No release has been published yet") and the changelog say the same thing in their registers.Test plan
pnpm test— 98 passed (9 files). Down from 103 on main by design: −8 digest tests for the four removed screenshots, +3 new signing-floor tests (notarized ≥ 0.7.0, unsigned < 0.7.0, numeric-not-lexicographic version compare).pnpm run build—astro check0 errors, 51 pages validated.pnpm run test:e2ewithGITHUB_TOKEN— 216 passed, 18 skipped, matching main's healthy baseline. (Unauthenticated runs skip 15 download-page tests silently — run with a token.)technical-preview+ Team ID + spctl command on/security/, zeroguide-stepsremnants, JSON-LD@graphwith Organization logo.🤖 Generated with Claude Code