mirror of
https://github.com/zhu1090093659/dsh-web.git
synced 2026-09-28 14:24:03 +08:00
A family settings card addresses its form by PROFILE ENTRY ID, but each card knew only its own namespace. When the family binder is not loaded the cards fell back to ctx.configForms.get(namespace) — an entry the Host does not serve on an aggregate install. The write was rejected with "No configurable plugin entry \"liangshen\"" while the card reported "the deployment did not accept these values", which is what the LiangShen settings page showed for every edit. The fallback now lives once in shared/client/settings/settings-entry-form.ts (synced to the six packages whose card binds a family namespace) and binds the entry id the shared describe mirror justifies, REBINDING when the mirror names a different one of the package rows. A one-shot guess cannot be right for every deployment: the mirror answers asynchronously — at plugin activation it usually holds nothing yet, and the aggregate mounts its client children in order — the bare namespace is no entry id on an aggregate install, and the aggregate row id is wrong on a standalone one, whose row id is the namespace or the package own ui-* row. An unanswered or EMPTY mirror counts as unanswered, not as absence; only a mirror that answers with other packages rows falls back to the namespace itself, which is the pre-0.1.7 keying shape. Affected cards: dsh-liangshen, dsh-remote-web-ui, dsh-task-board, dsh-market, dsh-usage and dsh-session-archive (the last three carried the same defect). The aggregate and market specs now model a mirror that names the served row instead of asserting the namespace. Verified in the real Web GUI: the save now posts ns "web-ui-liangshen" and the Host answers ok. The refreshed aggregate lib/ and the new fingerprints ship with the change; the owning 0.1.7 cohort note records the binding rule. pnpm typecheck, pnpm test, pnpm docs:check, pnpm i18n:check, pnpm aggregate:check, pnpm libs:check, pnpm sync-shared:check, pnpm test:standards, pnpm runtime-deps:check and pnpm emoji:check pass. pnpm test:scripts fails only in the tar --force-local suites, which Windows bsdtar rejects (GNU flag) and which this change does not touch.