19 Commits
Author SHA1 Message Date
EDDYCRAZY-CC fb28142973 fix(web): resolve the open issue batch 1724, 1730, 1732, 1740 and 1742
/api/dsh-web-all/degraded answered an empty list while /rows still listed the
plugin, and the task board could only translate its absent routes into
"not mounted ... restart the DSH service" - advice that cannot work while
another process holds $DSH_HOME/task-board/ledger-v2.lock. A degraded record
now carries a bounded one-line reason and the task board reads it to report
the owning pid with actionable guidance; a bare 404 stays the only signal
that the routes are absent, and the one-owner-per-ledger contract is
unchanged (no lock change, no cross-process write).

The other four issues live in the skin center and are fixed in that
repository (satellites/dsh-skins, commit 82f42bd): the applied-skin contract
(#1740), the ORCA stage geometry and the semantic adapter's late anchors
(#1732), the maid-atelier trim over the plugin manager page head (#1742), and
the composer frost that made the card a containing block for the shell's
fixed tooltips (#1724). This commit moves the gitlink and rebuilds what the
market reads from it.

Also rebuilt: packages/dsh-web-all/lib (its sources moved), the market dist
for the four touched skins, and the recorded lib fingerprints.

Validation: pnpm typecheck, pnpm test, pnpm test:standards, pnpm docs:check,
pnpm i18n:check, pnpm emoji:check, pnpm aggregate:check, pnpm libs:check,
pnpm sync-shared:check, market-build --check, and the skins suite all pass.
2026-09-28 10:43:10 +08:00
zhu1090093659 c989e5a141 chore(release): bump to 0.4.3 2026-09-26 22:22:42 +08:00
zhu1090093659 1898979187 chore(skins): pin the re-anchored skin rows and publish the market
Follows the dsh-skins fix (that repository's `a342b8e`) that re-anchors the
plugin sidebar rows on the shell's native `sidebar.panellist` rows. Moving the
gitlink is what the market build reads, so the four affected skins' assets and
their try-on transforms are regenerated here together with the aggregate
bundle (which inlines the child plugins' client sources and now carries the
`data-dsh-panel-entry` glyph anchor) and the recorded lib fingerprints.

pnpm market:check, pnpm libs:check, pnpm test:standards, pnpm i18n:check and
pnpm docs:check all pass at this revision.
2026-09-26 22:14:28 +08:00
zhu1090093659 bc854536dd chore(market): track the skin-center picker fix in the dsh-skins pin
satellites/dsh-skins 05f5d512 -> a6278e43 (fix(skin-center): follow the
host's directory-picker capability).

The commit changes src/client, lib/client.js, tests and a note; the
market's content directory (skins/) is unchanged, so market/dist is
byte-identical: the rebuild reports "dist up to date (3325 files)" and
tryon/ still verifies against its hash manifest. The bump keeps the pin
on the satellite's integration branch, which is the commit the market
build reads.

The picker fix itself reaches users through the skin-center package, not
through market/dist; publishing it is a release, not this change.
2026-09-26 21:52:04 +08:00
zhu1090093659 8b0f32f460 chore(market): publish the 2026-09-26 skin merges and dsh-model-priority
satellites/dsh-skins 0b0ea18 -> 05f5d512: verdandi and whale-fantasy are
new catalog skins, black-gold and cafe-roastery carry their 0.1.7
adaptations, and the round's notes are on top.

satellites/dsh-community-plugins 86303de -> 9cefdcc1: dsh-model-priority
enters the index. dsh-pet and dsh-presets already pointed at their
integration tips.

market/dist regenerated with node scripts/market-build after
scripts/market-fetch-inputs.mjs materialized the new pins from their
tarballs (47 skins, 8 pets, 125 plugins, 32 presets). tryon/ is the
committed build preserved and verified against its own hash manifest,
because market/shell/dist is not built in this worktree.

docs/architecture.md: the catalog count follows the new pin (42 -> 47).

Verified: market-build --check up to date (3325 files), tryon verified
(756 files), market-fetch-inputs --check OK, node --test scripts/*.test.mjs
349 pass, pnpm docs:check passed.
2026-09-26 21:21:34 +08:00
zhu1090093659 dea76a8fdd fix(skins): move the dsh-skins gitlink to the hermetic legacy-bridge spec
The satellite suite now pins DSH_PROFILE/DSH_SKIN_PROFILE around its
issue #788 fixture, so the profile-probing cases stay on the fixture
path even when the invoking session runs under the desktop profile.
2026-09-26 17:26:11 +08:00
zhu1090093659 272a730709 chore(satellites): push the skin pin to the remote and move the four gitlinks
The dsh-skins gitlink recorded b6dea218, which existed only in this
checkout: the remote answered 422 for it and the codeload tarball URL
the market fetch falls back to answered 404, so every fresh clone and
CI would fail on `pnpm market:fetch` while the run that moved the pin
succeeded by copying the working tree. The two commits it carried are
now merged onto dsh-skins main (5217459) and pushed, which keeps both
of them reachable and makes the pin resolvable.

Move the remaining three gitlinks onto their remote mains, which are
strict descendants of the pins they replace:

- dsh-skins  b6dea218 -> 5217459 (blueprint #6, miku #8, claude #2,
  the frame-height and generated-artifact notes, the orca-link brand
  row fix and the skin-center folder picker fix)
- dsh-pet    855611d -> 9643959 (aggregate-shell pet toggle #1)
- dsh-community-plugins 54af365 -> 86303de (dsh-wx-bridge #2,
  agent-body #6, the three-axis assessment note)
- dsh-presets c94885b -> f3578f4 (README popularity showcase)

Regenerate market/dist from the new pins: the claude skin and the
miku READMEs enter the store, and blueprint / miku / orca-link
assets follow their sources. `pnpm market:check` reports the dist
up to date at 4080 files.

Record the push-before-pin rule in the note that owns the gitlink
pin, which is where the tarball fallback is described.
2026-09-26 15:56:48 +08:00
zhu1090093659 629ec2a336 fix(skins): pin the skin-center picker fix and macOS wallpaper removal
Move the dsh-skins gitlink to the commit that repairs the wallpaper
folder picker (the missing remote.directoryPicker inject) and drops the
macOS built-in wallpaper scan, so the macOS library is the folders the
user adds and the feature starts disabled there.

The market lock records no content hash for this input — the gitlink on
this branch is the pin — and no skins/ asset changed, so there is no
market reproduction to redo.

Submodule commit: b6dea218c17d9718041ef080220b426527fceb86
2026-09-25 23:08:21 +08:00
zhu1090093659 a00f7ebd6d fix(skins): move the orca-link pin to the desktop brand-row fix
The dsh-skins pin moves to cb1f8a9, which seats orca-link's wordmark,
link chip and pricing light in the macOS desktop shell's brand row
instead of the traffic-light caption strip, and market/dist is rebuilt
from the new pin.

Market gates: market:check (4063 files), market:verify (3103 asset
paths).
2026-09-25 21:10:29 +08:00
zhu1090093659 6ca8b90d69 feat(pet)!: remove the pet directory diagnostics panel from settings
The pet settings page rendered every startup registry warning as a list of\nabsolute local paths above the display fields. Drop that presentation: the\nsatellite commit strips the controller fetch, the snapshot projection and the\ncard block, the zh/en dictionaries lose settings.diagnosticsTitle, and dsh-i18n\nloses the ru key so the i18n gate stays green. The README pair now points at\nnode scripts/dsh-pet validate <dir>. The host keeps the registry diagnostics,\nPetService.diagnostics() and the /api/pet/diagnostics route.
2026-09-25 16:07:04 +08:00
zhu1090093659 35000705a1 chore(satellites): list the accepted skin and plugin content
Six skin pull requests and three plugin-index registrations were accepted in the
2026-09-25 maintenance round, so the gitlinks move to those repositories' main and
market/dist is rebuilt from the new pins.

New skins: mid-autumn, shangmei-jinbi, and the 0.1.7 adaptations of ice-princess,
observatory, whale-maid, pixel-anime and miku. verdandi and claude are not included:
their pull requests are held at intake. New store plugins: dsh-ltm,
dsh-session-suspend and dsh-attention-health; dsh-wx-bridge is held pending a
description correction.

market:check reports 4063 files, market:verify-assets validates 3103 asset paths,
and libs:check is unchanged.
2026-09-25 12:10:50 +08:00
EDDYCRAZY-CC 4c39b90bae chore(satellites): pin dsh-skins to the legacy-row strip fix
The gitlink moves to the pushed fix for the half-removed legacy skin row
(issue #1719); no other satellite content changes.
2026-09-25 11:24:52 +08:00
zhu1090093659 48dd55b5a4 chore(satellites): move the gitlinks to the pushed family content
All four satellites received the shared mount-once guard (dsh-skins and dsh-community-plugins one commit each; dsh-pet and dsh-presets also dropped the desktop-scheme Origin allowance, which the installed shell's forward does not exercise), dsh-skins registered the new update plugin and its two parts in the semantic-attrs contract, and every repository is pushed, so the recorded commits now exist upstream.

dsh-skins keeps two pre-existing failures in tests/legacy-bridge.spec.ts (home/profile patch probing) that reproduce at the previous commit and are unrelated to this move.
2026-09-25 10:24:31 +08:00
zhu1090093659 41974c8cd4 chore(release): bump to 0.4.2
Unify the family on 0.4.2: the fifteen published packages and the root
aggregate pin move to the release version, the aggregate's satellite
ranges, the lockfile entries and the release-age ledger move with them,
and the four satellite gitlinks record the commits the satellite
repositories tagged as v0.4.2.

The cohort stays on 0.1.7-rc.2; this commit carries the version, the
rebuilt aggregate and market bundles, the release-preparation table and
the bilingual release notes for the pipeline to stage.
2026-09-24 22:52:58 +08:00
zhu1090093659 21f3b4d72a refactor(preset-center): consume the extracted preset center instead of carrying it
The preset center now lives in its own repository (dsh-presets) and is consumed
here as the published npm package @linxin666/dsh-client-ui-preset-center, the
way the skin center, the pet plugin and the community plugin index already are.

- packages/dsh-preset-center leaves this tree (plugin sources, tests and the
  presets/ catalog; history stays in this repository);
- the aggregate mounts it through an external rows: entry (web-ui-preset-center)
  with a hand-written ^0.4.1 range, and ./preset-center stays in the exports map
  as a tombstone so profiles written against the patchFrom era keep importing;
- market-inputs.lock.json gains a presets input pinned to the
  satellites/dsh-presets gitlink, and scripts/market-build reads
  .market-inputs/presets with the in-repo fallback kept for the fixture tests;
- scripts/sync-shared.mjs stops mirroring five host helpers into the package
  (101 -> 96 copies); the lib fingerprints, coverage baseline, test-standards
  baseline, runtime-deps scan and i18n audit each shrink by one package;
- the contribution gate has no exception left: reject-non-content-pr.yml
  redirects a 新预设收录 declaration to dsh-presets, and the PR template,
  CONTRIBUTING.md, PR_TRIAGE.md and ISSUE_TRIAGE.md now state that this
  repository accepts no external contribution directly;
- docs, the family-satellite owning note and the two preset notes follow, and
  the new Agent Note records the split.

Gated by: typecheck, aggregate:check, libs:check, sync-shared:check,
runtime-deps:check, i18n:check, emoji:check, docs:check, market:check,
test:standards, test:scripts (340 tests), test (every package) and build.

Not yet safe to merge on its own: the satellites/dsh-presets gitlink needs that
repository to exist on GitHub, so the satellite commits and this pin have to be
pushed together.
2026-09-24 13:13:17 +08:00
EDDYCRAZY-CC 0b02cebc5f fix(skins): pin the whale-mom plugin page surface commit
Refs #1683.

Moves the dsh-skins gitlink to e4cd8c7, the commit that gives the plugin
manager page a readable surface in both themes. The market serves the content
of the pinned commit, so the market build (and its committed market/dist)
follows from this pin.
2026-09-24 10:42:39 +08:00
zhu1090093659 0d46a29bea chore(satellites): pin the commits that carry their PR routing
Each satellite repository now ships .github/pr-review-routes.json plus the auto-assign workflow, and dsh-pet / dsh-community-plugins a pull request template: in dsh-skins the skin content under skins/<id>/ and the skin-center sources route to the repository owner while the we-*/pkg-extract/wallpaper sources and the wallpaper/WebGL title pattern route to Aa728848; in dsh-pet the pet content under assets/<id>/ and the plugin sources route separately; in dsh-community-plugins the community.json entry and the index sources route separately. Every repository keeps a defaultRoute so no pull request arrives unassigned.

The gitlinks record the pushed commits bb500e1 (dsh-skins), 744e66e (dsh-pet) and 5639abc (dsh-community-plugins). The market content those repositories carry under skins/, assets/ and community.json is unchanged by these commits, so pnpm market:fetch followed by pnpm market:check reports 'dist up to date (4029 files)' — market/dist needs no regeneration.
2026-09-24 09:57:59 +08:00
EDDYCRAZY-CC bbcf7bf7b1 chore(market): move the satellite pins onto their end-of-line fixes
The three content repositories now declare `* text=auto eol=lf`, so a Windows
clone no longer checks their text files out as CRLF. Moving the gitlinks onto
those commits is what makes the rule reach this workspace: the pin is the commit
`git submodule update --init` checks out.

No content moved with the pins: `skins/` and `assets/` are byte-identical
between the old and the new commits, and the market build reads only
`community.json` out of the third, so `market/dist` stays as committed
(verified with `pnpm market:check`).
2026-09-24 09:15:34 +08:00
zhu1090093659 f6c8fb2e87 feat(market): pin market content through the satellite submodules
The skin, pet and community content repositories are now git submodules
under satellites/, so the commit a branch records for them is the pin the
market build reads. market-inputs.lock.json drops repo and sha and keeps
only what git cannot express: which submodule carries an input and where
its content sits inside it.

market-fetch-inputs.mjs resolves the repository URL from .gitmodules and
the commit from the gitlink, materializes the content directory from a
submodule working tree that sits on that commit, and otherwise downloads
that commit as a tarball, so a clone that never initializes the
submodules still builds the same content without fetching history.

The test-standards and emoji audits skip satellites/ the way they skip
.market-inputs/, the deploy lane also triggers when a gitlink moves, and
the owning note records that its rejection of submodules was about
mounting them as workspace packages.
2026-09-24 08:42:24 +08:00