dsh-m 0.9.83 → 0.9.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/lib/client.js +7 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,12 @@ The full release history of dsh-m, maintained bilingually: **Chinese first, Engl
|
|
|
8
8
|
|
|
9
9
|
## 中文
|
|
10
10
|
|
|
11
|
+
### 0.9.84 优化:设置页「关于」标题行展示插件版本号
|
|
12
|
+
|
|
13
|
+
- **问题(主人真机反馈)**:0.9.83 起窄容器下头部版本 chip 常态隐藏(共识 Q7——手机头部宽度让位给还原/关闭),插件自身版本号一度无处可查(设置页只有社区清单的「目录版本」)。
|
|
14
|
+
- **方案(零视觉噪声)**:设置页「关于」卡标题行右侧既有 sub 槽(`.dshm-section-sub` 弱化灰字)挂裸版本号 `v{version}`——零新增行/块/CSS/i18n;`pluginVersion`(ping 单一事实源:挂载/回前台/重启确认后重取)以 prop 接入 SettingsTab,缺失(ping 失败 → null)时槽位自然为空(Section 兼容逻辑天然处理,与头部 chip「失败不留占位」同语义);不放升级入口——头部 ⬆ + 市场卡片/CLI 所有权不变(尊重「dsh-m 自身卡已移除」裁决)。
|
|
15
|
+
- **验证**:1442 项测试全绿(0.9.83 基线 1440 + 新增源锚 2 组于 client-about-version.test.mjs)、typecheck 零错误。
|
|
16
|
+
|
|
11
17
|
### 0.9.83 功能:手机窄屏自适应——面板头部两行重排 + 窄视口默认全屏
|
|
12
18
|
|
|
13
19
|
- **问题(主人手机实拍)**:`.dshm-head` 是单行 no-wrap flex,最小内容宽 ~440-470px,手机面板内容宽仅 330-365px → 行尾溢出被 `.dshm-panel` overflow:hidden 裁掉:还原/关闭按钮组不可见不可点(关面板只剩遮罩点击)、版本 chip 拦腰截断、标题逐词换行、seg 键逐字竖排。移动端问题第三次以「用户手机截图反馈」方式暴露(0.9.66 触屏滑动方向、0.9.67 字号失控之后)。
|
|
@@ -591,6 +597,12 @@ The full release history of dsh-m, maintained bilingually: **Chinese first, Engl
|
|
|
591
597
|
|
|
592
598
|
## English
|
|
593
599
|
|
|
600
|
+
### 0.9.84 Enhancement — plugin version shown on the Settings "About" title row
|
|
601
|
+
|
|
602
|
+
- **Problem (owner's real-device feedback)**: since 0.9.83 the head version chip stays hidden in its idle state on narrow containers (consensus Q7 — phone head width goes to the restore/close buttons), leaving the plugin's own version nowhere to check (the settings page only had the community catalog's 目录版本).
|
|
603
|
+
- **Fix (zero visual noise)**: the "About" card's title row reuses its existing `sub` slot (`.dshm-section-sub`, muted small text on the right) to show the bare `v{version}` — zero new rows/blocks/CSS/i18n; `pluginVersion` (ping single source of truth: mount / foreground-return / post-restart re-check) reaches SettingsTab as a prop, and a missing version (ping failure → null) leaves the slot naturally empty (Section's compat logic handles it — same "no placeholder on failure" semantics as the head chip); no upgrade entry here — the head ⬆ plus marketplace card/CLI keep that ownership (respecting the removed dsh-m self card ruling).
|
|
604
|
+
- **Verification**: 1442 tests green (0.9.83 baseline 1440 + 2 new source-anchor groups in client-about-version.test.mjs), typecheck clean.
|
|
605
|
+
|
|
594
606
|
### 0.9.83 Feature — mobile adaptive layout: two-row panel head + fullscreen-by-default on narrow viewports
|
|
595
607
|
|
|
596
608
|
- **Problem (user phone screenshot)**: `.dshm-head` is a single-line no-wrap flex whose minimum content width is ~440-470px, while a phone panel offers only 330-365px — the row-end overflow gets clipped by `.dshm-panel`'s `overflow:hidden`: the restore/close button group becomes invisible and untappable (closing the panel is left to backdrop taps only), the version chip is cut mid-glyph, the title wraps word-by-word into a tower, and the seg tabs stack their CJK labels one character per line. This is the third mobile issue surfaced via "user phone screenshot" (after 0.9.66 touch-swipe direction and 0.9.67 font blow-up).
|
package/lib/client.js
CHANGED
|
@@ -4594,7 +4594,7 @@ function regSourceLabel(data) {
|
|
|
4594
4594
|
function configStatusLabel(status) {
|
|
4595
4595
|
return lookup(`settings.status.${status || "loading"}` || "settings.status.loading");
|
|
4596
4596
|
}
|
|
4597
|
-
function SettingsTab({ notify, onRegistryChanged, onForceMarket, opsRecords, onOpsClearFinished, onOpsRemove }) {
|
|
4597
|
+
function SettingsTab({ notify, onRegistryChanged, onForceMarket, opsRecords, onOpsClearFinished, onOpsRemove, version }) {
|
|
4598
4598
|
const reg = useAsync((force) => api("registry", force ? { force: true } : {}), []);
|
|
4599
4599
|
const cfgState = useAsync(() => api("registry-config"), []);
|
|
4600
4600
|
const [busy, setBusy] = useState(false);
|
|
@@ -4798,9 +4798,13 @@ function SettingsTab({ notify, onRegistryChanged, onForceMarket, opsRecords, onO
|
|
|
4798
4798
|
snap.warnings && snap.warnings.length ? h("div", { className: "dshm-note warn" }, `${lookup("settings.warnings")}\uFF1A${snap.warnings.join("\uFF1B")}`) : null,
|
|
4799
4799
|
state && state.errors && state.errors.length ? h("div", { className: "dshm-err" }, `${lookup("settings.remotehint")}\uFF1A${state.errors.slice(0, 5).join("\uFF1B")}`) : null
|
|
4800
4800
|
),
|
|
4801
|
-
// ③ 关于:当前定位 + 仓库/反馈链接(dsh-m 自身卡已按主人要求移除——升级走市场卡片/CLI,self-check/self-upgrade API
|
|
4801
|
+
// ③ 关于:当前定位 + 仓库/反馈链接(dsh-m 自身卡已按主人要求移除——升级走市场卡片/CLI,self-check/self-upgrade API 保留)。
|
|
4802
|
+
// 版本号挂标题行既有 sub 槽(0.9.84 主人真机反馈:窄容器头部 chip 常态隐藏后插件版本无处可查)——
|
|
4803
|
+
// 零新增行/块/CSS/i18n;缺失(ping 失败 → null)时槽位自然为空,与头部 chip「失败不留占位」同语义;
|
|
4804
|
+
// 不放升级入口——头部 ⬆ + 市场卡片/CLI 所有权不变(评审 E 轮对齐)。
|
|
4802
4805
|
Section(
|
|
4803
4806
|
lookup("settings.about"),
|
|
4807
|
+
version ? `v${version}` : null,
|
|
4804
4808
|
h("div", { className: "dshm-hint" }, lookup("settings.about.text")),
|
|
4805
4809
|
h(
|
|
4806
4810
|
"div",
|
|
@@ -5612,6 +5616,7 @@ function MarketPanel({ onClose }) {
|
|
|
5612
5616
|
tab === "installed" ? h(InstalledTab, { notify, installed, updates, onMutation: refreshViews, ops }) : null,
|
|
5613
5617
|
tab === "settings" ? h(SettingsTab, {
|
|
5614
5618
|
notify,
|
|
5619
|
+
version: pluginVersion,
|
|
5615
5620
|
onRegistryChanged,
|
|
5616
5621
|
onForceMarket: () => marketReloadAll(true),
|
|
5617
5622
|
opsRecords: opRecords,
|