Three references here still led into directories that moved to the satellite
repositories. The social-preview banner loaded the skin artwork from
packages/skins/skin-center and the pet atlas from packages/dsh-pet, so both
backgrounds rendered empty and the shot only escaped notice because the page
check looks for a missing img element, not a failed background. The token
snapshot read and wrote the skin center contract under packages/skins/
skin-center, so --check could not open the contract it compares against.
The banner points at satellites/dsh-skins and satellites/dsh-pet, the snapshot
takes the contract, the generated registry and the theme dependency base from
satellites/dsh-skins, and the pnpm-workspace glob for the empty packages/skins
tree is gone.
GitHub rejects social preview uploads over 1 MB; the 2x PNG was 3 MB.
The shoot script now renders the social card at exact 1280x640 as a
quality-92 JPEG (~140 KB).
The README H1 now reads the new positioning, and the banner template is
rewritten to reproduce the whale-girl design in-repo (blue-fantasy
artwork backdrop, dsh-pet sprite sticker) with the new product name and
the current feature chips. shoot.mjs additionally renders
docs/dsh-web-social.png (1280x640) for the GitHub social preview.
Decision record: .agents/notes/implemented/docs/2026-08-24-banner-social-refresh.md
Display and source layers rename to dsh-web: GitHub slug, docs and prose,
aggregate package dir packages/dsh-web-all with npm name
@linxin666/dsh-web-all, settings package dir packages/dsh-web-settings,
private shared package dsh-web-shared, repo-local skill dirs, and the
docs banner asset.
Runtime, wire, and storage identifiers are frozen byte-identical so
installed profiles keep resolving with zero migration: web-ui-* bundle
ids, the dsh-web-ui-market settings section id, /api/dsh-web-ui-settings
and its proxy-token header, and the dsh-web-ui-telemetry-* storage keys.
Frozen history (docs/archive, docs/release-notes, archived notes), the
JAVA-LW fork reference, and local filesystem paths keep the old name.
npm migration: the next tag release dual-publishes @linxin666/dsh-web-all
alongside the final @linxin666/dsh-web-ui-all version, then the old name
is deprecated with a pointer; dual-publish lasts two releases.
Decision record: .agents/notes/implemented/architecture/2026-08-24-product-rename-dsh-web.md
Three low fixes:
- banner/shoot.mjs: the overflow error used backslash-escaped backticks/${ outside a template literal, a SyntaxError that made the script unrunnable; use a real template literal.
- pr-review.mjs: addedLinesFromDiff counted the '\ No newline at end of file' marker as a real new-file line, shifting every later line number; skip backslash-prefixed lines. Covered with a test.
- export-official-facade: the documented '--url <value>' form was ignored (only --url=value parsed); support both forms.