dsh-data-cleaning-agent 0.9.9 → 0.9.10
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 +6 -0
- package/README.en.md +3 -1
- package/README.md +4 -2
- package/docs/RELEASE-0.9.10.md +24 -0
- package/lib/client.js +11 -7
- package/package.json +2 -2
- package/docs/RELEASE-0.9.9.md +0 -24
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.9.10] - 2026-09-13
|
|
8
|
+
|
|
9
|
+
- 修复首页先挂载于 settling 阶段导致 Logo 与标题替换被跳过的问题;监听宿主阶段及文本节点变化,显示“数据清洗补全智能体”。
|
|
10
|
+
- 兼容“探索未知之境”文案,保留 0.9.9 同级标题分支适配;不再降级到 document.body 全局改写。
|
|
11
|
+
- 新增延迟 Hero 挂载、标题刷新和离开会话恢复回归;真实 DSH 页面仍需登录后验收。
|
|
12
|
+
|
|
7
13
|
## [0.9.9] - 2026-09-13
|
|
8
14
|
|
|
9
15
|
- 原生首页标题桥接适配新版 Host 的 composer sibling slot;菜单进入数据清洗补全后稳定显示“数据清洗补全智能体”,不再回退为“探索未至之境”。
|
package/README.en.md
CHANGED
|
@@ -10,7 +10,9 @@ Related agents: [数据清洗补全](https://github.com/duhu2000/dsh-data-cleani
|
|
|
10
10
|
|
|
11
11
|
> A data cleaning & completion agent plugin for DeepSeek Harness: local CSV/XLSX/JSON engine plus optional Qichacha (QCC) MCP enterprise-data enrichment. Initiated and maintained by the Qichacha (QCC) team.
|
|
12
12
|
>
|
|
13
|
-
> Current source version / 当前源码版本: **0.9.
|
|
13
|
+
> Current source version / 当前源码版本: **0.9.10** (stable release)
|
|
14
|
+
|
|
15
|
+
0.9.10 observes the Host settling-to-hero transition so the database logo and product title appear even after delayed layout. Unknown structures do not trigger global headline rewriting. Rollback version: 0.9.9.
|
|
14
16
|
|
|
15
17
|
0.9.9 restores the “数据清洗补全智能体” native home title when newer Host builds place the plugin marker and Hero headline in sibling composer branches. The bridge remains reversible and isolated from other business plugins. The 0.9.8 read-only Profile history and origin Workspace/Session guarantees remain unchanged. Rollback: `dsh plugin --profile web add dsh-data-cleaning-agent@0.9.8`. Live DSH A/B verification remains a post-install user check.
|
|
16
18
|
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
数据清洗补全智能体:面向 Excel/CSV/JSON 企业名单,提供数据清洗、表格清洗、清洗补全、去重、企业数据补全与字段补全,支持企查查 MCP 和结果导出。
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
dsh plugin --profile web add dsh-data-cleaning-agent@0.9.
|
|
12
|
+
dsh plugin --profile web add dsh-data-cleaning-agent@0.9.10
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
请先满足下文的 DSH、连接器及侧边栏依赖要求;安装后完整停止并重启对应 Profile。
|
|
@@ -27,7 +27,9 @@ dsh plugin --profile web add dsh-data-cleaning-agent@0.9.9
|
|
|
27
27
|
|
|
28
28
|
> 在 DeepSeek Harness 中清洗、补全、画像企业名单数据的智能体插件:本地 CSV/XLSX/JSON 引擎 + 可选企查查(Qichacha/QCC)MCP 企业数据补全,由企查查(Qichacha/QCC)团队发起并维护。
|
|
29
29
|
>
|
|
30
|
-
> 当前源码版本 / Current source version: **0.9.
|
|
30
|
+
> 当前源码版本 / Current source version: **0.9.10**(正式版本)
|
|
31
|
+
|
|
32
|
+
0.9.10 补齐首页 settling → hero 阶段监听,避免首次挂载漏掉 Logo 与标题替换;兼容“探索未知之境”,未知结构不做全局标题改写。回滚版本为 0.9.9。
|
|
31
33
|
|
|
32
34
|
0.9.9 修复新版 Host composer sibling slot 下的原生首页标题定位,进入数据清洗补全后稳定显示“数据清洗补全智能体”,并保持对其它业务插件的标题隔离。0.9.8 的 Profile 历史只读、来源工作区/会话校验与旧记录边界全部保留。回滚:`dsh plugin --profile web add dsh-data-cleaning-agent@0.9.8`。真实 DSH A/B 验收仍以安装后的用户验证为准,详见发布说明。
|
|
33
35
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# 0.9.10 · Delayed home branding
|
|
2
|
+
|
|
3
|
+
## Scope
|
|
4
|
+
|
|
5
|
+
Preserves 0.9.9 sibling-branch compatibility and 0.9.8 Session ownership. Adds observation
|
|
6
|
+
of Host settling-to-hero layout transitions and headline text-node updates. The home displays
|
|
7
|
+
the blue database logo plus “数据清洗补全智能体”. Both Chinese Host headline variants work.
|
|
8
|
+
Unknown layout never falls back to rewriting document.body. Cleanup restores native branding.
|
|
9
|
+
|
|
10
|
+
## Verification and boundary
|
|
11
|
+
|
|
12
|
+
Node regression covers delayed mounting, text refresh, reversible cleanup and ordinary-session
|
|
13
|
+
isolation. Real React/Chromium matrix exercises settling-to-hero before checking logo placement,
|
|
14
|
+
light/dark responsive layouts and active/ordinary Session transitions. Existing workflow tests
|
|
15
|
+
remain mandatory. Run npm run check and npm run test:ui before release.
|
|
16
|
+
|
|
17
|
+
The live localhost DSH tab still requires authentication; no live-host success is claimed.
|
|
18
|
+
After upgrading/restarting, click 数据清洗补全, confirm logo/title, then switch to an ordinary
|
|
19
|
+
Session and confirm native branding. No paid MCP, OCR or production data is used in tests.
|
|
20
|
+
|
|
21
|
+
## Publishing
|
|
22
|
+
|
|
23
|
+
Use PR/main CI gates before annotated v0.9.10, existing GitHub OIDC/provenance workflow,
|
|
24
|
+
then registry version/gitHead and tarball read-back. Rollback: 0.9.9 (may miss delayed hero).
|
package/lib/client.js
CHANGED
|
@@ -2722,18 +2722,19 @@ body:has(.dcAgentPromptBackdrop) { overflow: hidden; }
|
|
|
2722
2722
|
if (!scope?.querySelectorAll) return false;
|
|
2723
2723
|
const spans = [...scope.querySelectorAll('span')];
|
|
2724
2724
|
return spans.some((element) => element.dataset?.dcAgentHeroTitle === 'true'
|
|
2725
|
-
|| ['探索未至之境', 'Into the Unknown'].includes(element.textContent?.trim()))
|
|
2725
|
+
|| ['探索未至之境', '探索未知之境', 'Into the Unknown'].includes(element.textContent?.trim()))
|
|
2726
2726
|
|| Boolean(scope.querySelector?.('[class*="headlineText"]'));
|
|
2727
2727
|
};
|
|
2728
2728
|
// 新版 Host 会把 list slot 放在 composer seat 的独立分支;marker 不一定再是
|
|
2729
2729
|
// data-phase=hero 的后代。沿祖先寻找同时包含原生标题的最小范围,保留旧结构兼容。
|
|
2730
|
-
|
|
2730
|
+
// Observe the same root while Host layout transitions from settling to hero.
|
|
2731
|
+
let hero = marker?.closest?.('[data-phase="hero"]')
|
|
2732
|
+
?? marker?.closest?.('[data-phase="settling"]') ?? null;
|
|
2731
2733
|
if (!hasHeadline(hero)) {
|
|
2732
2734
|
let scope = marker?.closest?.('[data-composer-seat]') ?? marker?.parentElement ?? null;
|
|
2733
|
-
while (scope && !hasHeadline(scope)) scope = scope.parentElement;
|
|
2734
|
-
if (scope) hero = scope;
|
|
2735
|
+
while (scope && scope !== document.body && scope !== document.documentElement && !hasHeadline(scope)) scope = scope.parentElement;
|
|
2736
|
+
if (scope && scope !== document.body && scope !== document.documentElement) hero = scope;
|
|
2735
2737
|
}
|
|
2736
|
-
if (!hero && document.body?.querySelectorAll) hero = document.body;
|
|
2737
2738
|
if (!hero) return () => {};
|
|
2738
2739
|
const changedTitles = new Map();
|
|
2739
2740
|
const changedBadges = new Map();
|
|
@@ -2750,10 +2751,12 @@ body:has(.dcAgentPromptBackdrop) { overflow: hidden; }
|
|
|
2750
2751
|
let observer = null;
|
|
2751
2752
|
|
|
2752
2753
|
const fix = () => {
|
|
2754
|
+
if (hero.getAttribute?.('data-phase') === 'settling') return;
|
|
2755
|
+
if (hero.getAttribute?.('data-phase') === 'active') return;
|
|
2753
2756
|
let mutated = false;
|
|
2754
2757
|
const spans = [...hero.querySelectorAll('span')];
|
|
2755
2758
|
const title = spans.find((element) => element.dataset?.dcAgentHeroTitle === 'true')
|
|
2756
|
-
?? spans.find((element) => ['探索未至之境', 'Into the Unknown'].includes(element.textContent?.trim()))
|
|
2759
|
+
?? spans.find((element) => ['探索未至之境', '探索未知之境', 'Into the Unknown'].includes(element.textContent?.trim()))
|
|
2757
2760
|
?? hero.querySelector?.('[class*="headlineText"]');
|
|
2758
2761
|
const badge = spans.find((element) => element.dataset?.dcAgentHeroBadge === 'true')
|
|
2759
2762
|
?? spans.find((element) => ['预览版', 'Preview'].includes(element.textContent?.trim()));
|
|
@@ -2818,7 +2821,8 @@ body:has(.dcAgentPromptBackdrop) { overflow: hidden; }
|
|
|
2818
2821
|
|
|
2819
2822
|
fix();
|
|
2820
2823
|
observer = typeof MutationObserver === 'function' ? new MutationObserver(fix) : null;
|
|
2821
|
-
observer?.observe?.(hero, { childList: true, subtree: true
|
|
2824
|
+
observer?.observe?.(hero, { childList: true, subtree: true, characterData: true,
|
|
2825
|
+
attributes: true, attributeFilter: ['data-phase'] });
|
|
2822
2826
|
return () => {
|
|
2823
2827
|
observer?.disconnect?.();
|
|
2824
2828
|
for (const logo of ownedLogos.values()) logo.remove();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-data-cleaning-agent",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.10",
|
|
4
4
|
"description": "Data cleaning and data enrichment for CSV/XLSX/JSON enterprise lists in DeepSeek Harness, including spreadsheet cleaning, deduplication, profiling, optional Qichacha MCP and exports.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"install.sh",
|
|
21
21
|
"marketing",
|
|
22
22
|
"docs/USER-GUIDE.md",
|
|
23
|
-
"docs/RELEASE-0.9.
|
|
23
|
+
"docs/RELEASE-0.9.10.md",
|
|
24
24
|
"docs/FIRST-CONTRIBUTION.md",
|
|
25
25
|
"docs/COMPATIBILITY.md",
|
|
26
26
|
"docs/UI-V1.5.0-ADOPTION.md",
|
package/docs/RELEASE-0.9.9.md
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# 0.9.9 · Native home title compatibility
|
|
2
|
-
|
|
3
|
-
Status: stable release. Date: 2026-09-13.
|
|
4
|
-
|
|
5
|
-
## Scope
|
|
6
|
-
|
|
7
|
-
- Adapt the reversible native Hero title bridge to Host layouts where the plugin marker and headline live in sibling branches below the composer container.
|
|
8
|
-
- Keep the data-cleaning home title fixed at “数据清洗补全智能体” without modifying another business plugin's headline, prompt UI or input focus.
|
|
9
|
-
- Preserve the 0.9.8 Profile history ownership, origin Workspace/Session checks and artifact-download behavior.
|
|
10
|
-
|
|
11
|
-
## Verification
|
|
12
|
-
|
|
13
|
-
- The coexistence fixture now exercises a sibling-slot Host structure rather than the obsolete nested Hero structure.
|
|
14
|
-
- `npm run check` covers syntax, documentation version consistency, marketing metadata, package allowlist and the full Node test suite.
|
|
15
|
-
- The React/Chromium layout matrix remains a separate isolated UI gate; real DSH and production QCC Provider behavior require post-install acceptance.
|
|
16
|
-
|
|
17
|
-
## Install and rollback
|
|
18
|
-
|
|
19
|
-
```sh
|
|
20
|
-
dsh plugin --profile web add dsh-data-cleaning-agent@0.9.9
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Rollback package: `dsh plugin --profile web add dsh-data-cleaning-agent@0.9.8`.
|
|
24
|
-
Do not move or overwrite existing tags or npm versions.
|