dsh-home-sync 0.2.1 → 0.2.2
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/README.md +26 -14
- package/README.zh-CN.md +57 -86
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
# dsh-home-sync
|
|
1
|
+
# dsh-home-sync
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/dsh-home-sync)
|
|
4
|
+
[](https://github.com/OverDustD7/dsh-home-sync)
|
|
5
|
+
|
|
6
|
+
English | [绠€浣撲腑鏂嘳(README.zh-CN.md)
|
|
4
7
|
|
|
5
8
|
Git-based sync for DSH configuration and Mnemon memory plugin data, with automatic two-way sync, cross-device migration, initialization backups, conflict detection, and a web UI.
|
|
6
9
|
|
|
@@ -14,34 +17,43 @@ Version 0.2.1 completes the maintenance improvements and fixes gaps in history v
|
|
|
14
17
|
|
|
15
18
|
## Installation
|
|
16
19
|
|
|
17
|
-
|
|
20
|
+
### From npm (recommended)
|
|
18
21
|
|
|
19
22
|
```powershell
|
|
20
|
-
dsh plugin --profile web add
|
|
23
|
+
dsh plugin --profile web add dsh-home-sync
|
|
21
24
|
```
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
Restart DSH web after the install and refresh the browser to load the UI. The published package needs no build step or third-party dependencies.
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
### From GitHub
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
```powershell
|
|
31
|
+
dsh plugin --profile web add github:OverDustD7/dsh-home-sync
|
|
32
|
+
```
|
|
28
33
|
|
|
29
|
-
|
|
34
|
+
### Local development (from source)
|
|
30
35
|
|
|
31
36
|
```powershell
|
|
32
|
-
|
|
33
|
-
dsh plugin --profile web add "$syncPackage"
|
|
37
|
+
dsh plugin --profile web add link:D:/Project/DSH/dsh-home-sync
|
|
34
38
|
```
|
|
35
39
|
|
|
36
|
-
|
|
40
|
+
A `link:` installation reads that source directory directly: restart DSH web after backend changes and refresh the browser for UI changes.
|
|
37
41
|
|
|
38
|
-
|
|
42
|
+
### Offline / air-gapped devices
|
|
43
|
+
|
|
44
|
+
Build a tarball and copy it to the target machine:
|
|
39
45
|
|
|
40
46
|
```powershell
|
|
41
47
|
npm pack --ignore-scripts --pack-destination dist
|
|
42
48
|
```
|
|
43
49
|
|
|
44
|
-
|
|
50
|
+
On the target, run the following from the directory containing the archive:
|
|
51
|
+
|
|
52
|
+
```powershell
|
|
53
|
+
dsh plugin --profile web add ./dsh-home-sync-0.2.2.tgz
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If the package manager cannot install a local tarball, extract it into a permanent directory and install the extracted `package` subdirectory using `link:`. Do not use a temporary extraction directory as a permanent link target.
|
|
45
57
|
|
|
46
58
|
## Synchronization behavior
|
|
47
59
|
|
|
@@ -104,7 +116,7 @@ Configuration is stored at `<DSH_HOME>/dsh-home-sync.json`.
|
|
|
104
116
|
| `autoPullOnStartup` | Pull when the plugin starts |
|
|
105
117
|
| `autoSync` | Run periodic full synchronization |
|
|
106
118
|
| `syncIntervalSeconds` | Integer from 15 to 86,400 |
|
|
107
|
-
| `commitMessage` | Commit message, 1
|
|
119
|
+
| `commitMessage` | Commit message, 1鈥?,000 characters |
|
|
108
120
|
| `sshBatch` | Use SSH batch mode |
|
|
109
121
|
|
|
110
122
|
The legacy `autoSyncOnStartup` setting migrates to `autoSync`. If both are present, `autoSync` takes precedence.
|
package/README.zh-CN.md
CHANGED
|
@@ -1,110 +1,81 @@
|
|
|
1
|
-
# dsh-home-sync
|
|
1
|
+
# dsh-home-sync
|
|
2
2
|
|
|
3
|
-
[
|
|
3
|
+
[](https://www.npmjs.com/package/dsh-home-sync)
|
|
4
|
+
[](https://github.com/OverDustD7/dsh-home-sync)
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
在需要使用插件的设备上准备源码,然后执行:
|
|
6
|
+
[English](README.md) | 绠€浣撲腑鏂?
|
|
7
|
+
DSH 閰嶇疆涓?Mnemon 璁板繂鎻掍欢鏁版嵁鐨?Git 鍚屾宸ュ叿锛屾敮鎸佽嚜鍔ㄥ弻鍚戝悓姝ャ€佽法璁惧杩佺Щ銆佸垵濮嬪寲澶囦唤銆佸啿绐佹娴嬪拰 Web 鍙鍖栫鐞嗐€?.2.1 琛ラ綈缁存姢寤鸿锛屽苟淇澶嶅鍙戠幇鐨勫巻鍙叉鏌ャ€佸垵濮嬪寲鍜岀姸鎬佹樉绀洪仐婕忋€?
|
|
8
|
+
闇€瑕?Node.js 20 鎴栨洿鏂扮増鏈€丟it锛屼互鍙婃彁渚?`webServer`銆乣timer`銆乣connection.requestRejection` 鐨?DSH 瀹夸富銆傛湰鏈哄吋瀹规€ч獙璇佷娇鐢?DSH 0.1.2-rc.1銆丯ode 24.20.0銆丟it 2.55.0.windows.4銆?
|
|
9
|
+
## 瀹夎涓庣敓鏁?
|
|
10
|
+
### 浠?npm 瀹夎锛堟帹鑽愶級
|
|
12
11
|
|
|
13
12
|
```powershell
|
|
14
|
-
dsh plugin --profile web add
|
|
13
|
+
dsh plugin --profile web add dsh-home-sync
|
|
15
14
|
```
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
`link:` 只记录本地路径,不会把插件源码同步到另一台设备。新设备可复制版本化安装包,再使用下面的安装步骤,无需保留原设备的源码路径。
|
|
20
|
-
|
|
21
|
-
### 跨设备安装包
|
|
22
|
-
|
|
23
|
-
交付包为 `dist/dsh-home-sync-0.2.1.tgz`,只包含运行代码、插件声明和中英文 README。将安装包复制到新设备,在包所在目录执行:
|
|
16
|
+
瑁呭畬閲嶅惎 DSH web锛屽埛鏂版祻瑙堝櫒鍔犺浇鐣岄潰銆傚凡鍙戝竷鍖呮棤闇€鏋勫缓鎴栫涓夋柟渚濊禆銆?
|
|
17
|
+
### 浠?GitHub 瀹夎
|
|
24
18
|
|
|
25
19
|
```powershell
|
|
26
|
-
|
|
27
|
-
dsh plugin --profile web add "$syncPackage"
|
|
20
|
+
dsh plugin --profile web add github:OverDustD7/dsh-home-sync
|
|
28
21
|
```
|
|
29
22
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
从源码重新生成包:`npm pack --ignore-scripts --pack-destination dist`(先创建 dist 目录)。若目标机器的包管理器无法使用本地 tarball,可把包解压到任意持久目录,再将该目录中的 `package` 子目录以 `link:` 安装;避免把临时解压目录作为长期链接目标。
|
|
33
|
-
|
|
34
|
-
## 同步行为
|
|
35
|
-
|
|
36
|
-
- “拉取”检查远端并尝试快进,遇到分叉或可能覆盖本地修改时失败,不会创建本地提交。显式禁用 `merge.autoStash`,避免自动恢复暂存时发生冲突却误报成功;合并结束还会检查未解决的索引冲突。
|
|
37
|
-
- “同步到远端”先 fetch 并检查文件范围,再提交允许同步的修改、整合远端,最后推送。工作区干净时仍会重试尚未上传的提交。
|
|
38
|
-
- 自动同步按间隔执行完整同步,本地没有变化时也会检查远端。保存开关和间隔后立即重建任务;操作正在执行时,设置保存和其他写请求返回忙碌,请待其结束后重试。
|
|
39
|
-
- 当前分支必须与设置中的分支一致。分支分叉可以尝试普通 Git 合并;同一内容冲突时停止推送、撤销此次未完成合并并保留本地提交。需手动解决 Git 冲突后重试,不会自动 force push。
|
|
40
|
-
- 状态区每 15 秒刷新,区分待提交、待推送、待拉取和读取失败,新增目录按实际文件计数。领先/落后数量以最近成功 fetch 的远端快照为准。
|
|
41
|
-
- 操作反馈使用 toast;面板底部“操作记录”默认折叠,按需展开查看、选择并复制备份路径和恢复指引。最近 100 条后台/手动操作记录保存在主目录旁的 `<DSH_HOME>.home-sync-history.json`,重启后仍可查询,不参与 Git 同步。记录包含操作结果、时间和备份路径,不记录文件正文。记录文件损坏时保留原文件并报告错误;记录写入失败不会撤销已经成功的同步。
|
|
42
|
-
- 打开的面板与浮动按钮随宿主和系统主题变化重新配色,保留当前输入及展开状态。
|
|
43
|
-
|
|
44
|
-
所有 HTTP 数据接口都使用宿主的身份和 Host/Origin 校验;缺少此服务时插件不启用。POST 只接受 JSON。界面脚本本身不含用户数据。
|
|
45
|
-
|
|
46
|
-
## 允许同步的文件
|
|
47
|
-
|
|
48
|
-
- `.gitignore`、`settings.yaml`、根目录 `cordis.patch.yml`。
|
|
49
|
-
- `profiles/web/` 下的 `package.json`、`pnpm-lock.yaml`、`pnpm-workspace.yaml`、`cordis.yml`、`cordis.patch.yml`、`.dsh-market/state.json`。
|
|
50
|
-
- `mnemon/` 下非隐藏文件,但排除名称为 data、state、credential(s)、secret(s) 的路径段,以及 `.log`、`.wal`、`.shm` 文件。
|
|
51
|
-
|
|
52
|
-
凭据、会话、附件、node_modules 等不加入提交。已暂存或已跟踪的禁止文件会阻止同步;推送前检查 HEAD 的完整可达历史(最多 1000 个提交),不以拉取仓库已有历史作为免检范围,因此拉取/推送地址不同或多个推送地址同样受保护。历史中曾出现禁止文件时停止发布,即使该文件已被删除;超过检查上限需先人工整理为干净同步历史。推送只更新所选分支,不自动跟随标签或镜像其他引用。多个目标的网络推送不具备跨仓库事务性,部分失败时需重试。允许文件内部的文本不做字段级脱敏,因此不要在允许同步的配置或记忆里保存不希望上传的内容。
|
|
53
|
-
|
|
54
|
-
只接受普通文件。符号链接、硬链接、子模块、越界路径、Windows 保留名称和大小写冲突会被拒绝。Git hooks 和提交签名仍遵循用户自己的 Git 配置;Git 子进程设置了超时及非交互凭据模式。
|
|
55
|
-
|
|
56
|
-
## 设备初始化与恢复
|
|
57
|
-
|
|
58
|
-
两种初始化模式都会备份。`merge` 表示备份后需要手动合并,并不表示自动把两份记忆合并。
|
|
23
|
+
### 鏈湴寮€鍙戯紙浠庢簮鐮侊級
|
|
59
24
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
4. 成功后暂停自动同步与启动拉取,等待用户核对、手动合并及重新开启。
|
|
64
|
-
|
|
65
|
-
支持全新目录、已执行 `git init` 但尚未首次提交的独立仓库,以及再次初始化到历史不相关的远端。成功响应返回实际配置,界面立即刷新自动开关;初始化视为显式重置设置,当前表单以服务端配置为准。
|
|
66
|
-
|
|
67
|
-
备份位于 DSH_HOME 旁边的 `<DSH_HOME>.home-sync-backups/init-*`,不在被同步的工作区内。默认主目录时类似 `~/.dsh.home-sync-backups/init-*`。
|
|
68
|
-
|
|
69
|
-
- `files/`:原文件。
|
|
70
|
-
- `repository/`:原 `.git`,包含本地历史、索引和远端配置。
|
|
71
|
-
- `config.json`:原插件配置(原先存在时)。
|
|
72
|
-
- `manifest.json`:目标、阶段、原文件存在状态和校验值。
|
|
73
|
-
- `MERGE.md`:恢复说明。
|
|
74
|
-
|
|
75
|
-
可捕获的执行错误会尝试自动恢复。断电或强制结束进程不能保证自动恢复:先停止 DSH,依据 manifest 恢复 files,将 repository 恢复为 `.git`,恢复原配置,并移除清单中原先不存在的新文件。不要在 DSH 正写入记忆时执行恢复。Git worktree 或链接 `.git` 的初始化目前会明确拒绝。
|
|
76
|
-
|
|
77
|
-
初始化期间仍需避免其他程序写入同步文件;插件锁只协调本插件实例,不能暂停其他插件或人工 Git 操作。
|
|
25
|
+
```powershell
|
|
26
|
+
dsh plugin --profile web add link:D:/Project/DSH/dsh-home-sync
|
|
27
|
+
```
|
|
78
28
|
|
|
79
|
-
|
|
29
|
+
`link:` 瀹夎鐩存帴璇诲彇璇ユ簮鐮佺洰褰曪細鍚庣鏀瑰姩鍚庨噸鍚?DSH web锛岀晫闈㈡敼鍔ㄥ埛鏂版祻瑙堝櫒鍗冲彲銆?
|
|
30
|
+
### 绂荤嚎/闅旂缃戠粶璁惧
|
|
80
31
|
|
|
81
|
-
|
|
32
|
+
鍏堟湰鍦扮敓鎴愬畨瑁呭寘鍐嶆嫹鍒扮洰鏍囨満锛?
|
|
33
|
+
```powershell
|
|
34
|
+
npm pack --ignore-scripts --pack-destination dist
|
|
35
|
+
```
|
|
82
36
|
|
|
83
|
-
|
|
37
|
+
鐩爣鏈哄湪鍘嬬缉鍖呮墍鍦ㄧ洰褰曟墽琛岋細
|
|
84
38
|
|
|
85
|
-
|
|
39
|
+
```powershell
|
|
40
|
+
dsh plugin --profile web add ./dsh-home-sync-0.2.2.tgz
|
|
41
|
+
```
|
|
86
42
|
|
|
87
|
-
|
|
43
|
+
鑻ョ洰鏍囨満鍣ㄧ殑鍖呯鐞嗗櫒鏃犳硶浣跨敤鏈湴 tarball锛屽彲鎶婂寘瑙e帇鍒颁换鎰忔寔涔呯洰褰曪紝鍐嶅皢璇ョ洰褰曚腑鐨?`package` 瀛愮洰褰曚互 `link:` 瀹夎锛涢伩鍏嶆妸涓存椂瑙e帇鐩綍浣滀负闀挎湡閾炬帴鐩爣銆?
|
|
44
|
+
## 鍚屾琛屼负
|
|
45
|
+
|
|
46
|
+
- 鈥滄媺鍙栤€濇鏌ヨ繙绔苟灏濊瘯蹇繘锛岄亣鍒板垎鍙夋垨鍙兘瑕嗙洊鏈湴淇敼鏃跺け璐ワ紝涓嶄細鍒涘缓鏈湴鎻愪氦銆傛樉寮忕鐢?`merge.autoStash`锛岄伩鍏嶈嚜鍔ㄦ仮澶嶆殏瀛樻椂鍙戠敓鍐茬獊鍗磋鎶ユ垚鍔燂紱鍚堝苟缁撴潫杩樹細妫€鏌ユ湭瑙e喅鐨勭储寮曞啿绐併€?- 鈥滃悓姝ュ埌杩滅鈥濆厛 fetch 骞舵鏌ユ枃浠惰寖鍥达紝鍐嶆彁浜ゅ厑璁稿悓姝ョ殑淇敼銆佹暣鍚堣繙绔紝鏈€鍚庢帹閫併€傚伐浣滃尯骞插噣鏃朵粛浼氶噸璇曞皻鏈笂浼犵殑鎻愪氦銆?- 鑷姩鍚屾鎸夐棿闅旀墽琛屽畬鏁村悓姝ワ紝鏈湴娌℃湁鍙樺寲鏃朵篃浼氭鏌ヨ繙绔€備繚瀛樺紑鍏冲拰闂撮殧鍚庣珛鍗抽噸寤轰换鍔★紱鎿嶄綔姝e湪鎵ц鏃讹紝璁剧疆淇濆瓨鍜屽叾浠栧啓璇锋眰杩斿洖蹇欑锛岃寰呭叾缁撴潫鍚庨噸璇曘€?- 褰撳墠鍒嗘敮蹇呴』涓庤缃腑鐨勫垎鏀竴鑷淬€傚垎鏀垎鍙夊彲浠ュ皾璇曟櫘閫?Git 鍚堝苟锛涘悓涓€鍐呭鍐茬獊鏃跺仠姝㈡帹閫併€佹挙閿€姝ゆ鏈畬鎴愬悎骞跺苟淇濈暀鏈湴鎻愪氦銆傞渶鎵嬪姩瑙e喅 Git 鍐茬獊鍚庨噸璇曪紝涓嶄細鑷姩 force push銆?- 鐘舵€佸尯姣?15 绉掑埛鏂帮紝鍖哄垎寰呮彁浜ゃ€佸緟鎺ㄩ€併€佸緟鎷夊彇鍜岃鍙栧け璐ワ紝鏂板鐩綍鎸夊疄闄呮枃浠惰鏁般€傞鍏?钀藉悗鏁伴噺浠ユ渶杩戞垚鍔?fetch 鐨勮繙绔揩鐓т负鍑嗐€?- 鎿嶄綔鍙嶉浣跨敤 toast锛涢潰鏉垮簳閮ㄢ€滄搷浣滆褰曗€濋粯璁ゆ姌鍙狅紝鎸夐渶灞曞紑鏌ョ湅銆侀€夋嫨骞跺鍒跺浠借矾寰勫拰鎭㈠鎸囧紩銆傛渶杩?100 鏉″悗鍙?鎵嬪姩鎿嶄綔璁板綍淇濆瓨鍦ㄤ富鐩綍鏃佺殑 `<DSH_HOME>.home-sync-history.json`锛岄噸鍚悗浠嶅彲鏌ヨ锛屼笉鍙備笌 Git 鍚屾銆傝褰曞寘鍚搷浣滅粨鏋溿€佹椂闂村拰澶囦唤璺緞锛屼笉璁板綍鏂囦欢姝f枃銆傝褰曟枃浠舵崯鍧忔椂淇濈暀鍘熸枃浠跺苟鎶ュ憡閿欒锛涜褰曞啓鍏ュけ璐ヤ笉浼氭挙閿€宸茬粡鎴愬姛鐨勫悓姝ャ€?- 鎵撳紑鐨勯潰鏉夸笌娴姩鎸夐挳闅忓涓诲拰绯荤粺涓婚鍙樺寲閲嶆柊閰嶈壊锛屼繚鐣欏綋鍓嶈緭鍏ュ強灞曞紑鐘舵€併€?
|
|
47
|
+
鎵€鏈?HTTP 鏁版嵁鎺ュ彛閮戒娇鐢ㄥ涓荤殑韬唤鍜?Host/Origin 鏍¢獙锛涚己灏戞鏈嶅姟鏃舵彃浠朵笉鍚敤銆侾OST 鍙帴鍙?JSON銆傜晫闈㈣剼鏈湰韬笉鍚敤鎴锋暟鎹€?
|
|
48
|
+
## 鍏佽鍚屾鐨勬枃浠?
|
|
49
|
+
- `.gitignore`銆乣settings.yaml`銆佹牴鐩綍 `cordis.patch.yml`銆?- `profiles/web/` 涓嬬殑 `package.json`銆乣pnpm-lock.yaml`銆乣pnpm-workspace.yaml`銆乣cordis.yml`銆乣cordis.patch.yml`銆乣.dsh-market/state.json`銆?- `mnemon/` 涓嬮潪闅愯棌鏂囦欢锛屼絾鎺掗櫎鍚嶇О涓?data銆乻tate銆乧redential(s)銆乻ecret(s) 鐨勮矾寰勬锛屼互鍙?`.log`銆乣.wal`銆乣.shm` 鏂囦欢銆?
|
|
50
|
+
鍑嵁銆佷細璇濄€侀檮浠躲€乶ode_modules 绛変笉鍔犲叆鎻愪氦銆傚凡鏆傚瓨鎴栧凡璺熻釜鐨勭姝㈡枃浠朵細闃绘鍚屾锛涙帹閫佸墠妫€鏌?HEAD 鐨勫畬鏁村彲杈惧巻鍙诧紙鏈€澶?1000 涓彁浜わ級锛屼笉浠ユ媺鍙栦粨搴撳凡鏈夊巻鍙蹭綔涓哄厤妫€鑼冨洿锛屽洜姝ゆ媺鍙?鎺ㄩ€佸湴鍧€涓嶅悓鎴栧涓帹閫佸湴鍧€鍚屾牱鍙椾繚鎶ゃ€傚巻鍙蹭腑鏇惧嚭鐜扮姝㈡枃浠舵椂鍋滄鍙戝竷锛屽嵆浣胯鏂囦欢宸茶鍒犻櫎锛涜秴杩囨鏌ヤ笂闄愰渶鍏堜汉宸ユ暣鐞嗕负骞插噣鍚屾鍘嗗彶銆傛帹閫佸彧鏇存柊鎵€閫夊垎鏀紝涓嶈嚜鍔ㄨ窡闅忔爣绛炬垨闀滃儚鍏朵粬寮曠敤銆傚涓洰鏍囩殑缃戠粶鎺ㄩ€佷笉鍏峰璺ㄤ粨搴撲簨鍔℃€э紝閮ㄥ垎澶辫触鏃堕渶閲嶈瘯銆傚厑璁告枃浠跺唴閮ㄧ殑鏂囨湰涓嶅仛瀛楁绾ц劚鏁忥紝鍥犳涓嶈鍦ㄥ厑璁稿悓姝ョ殑閰嶇疆鎴栬蹇嗛噷淇濆瓨涓嶅笇鏈涗笂浼犵殑鍐呭銆?
|
|
51
|
+
鍙帴鍙楁櫘閫氭枃浠躲€傜鍙烽摼鎺ャ€佺‖閾炬帴銆佸瓙妯″潡銆佽秺鐣岃矾寰勩€乄indows 淇濈暀鍚嶇О鍜屽ぇ灏忓啓鍐茬獊浼氳鎷掔粷銆侴it hooks 鍜屾彁浜ょ鍚嶄粛閬靛惊鐢ㄦ埛鑷繁鐨?Git 閰嶇疆锛汫it 瀛愯繘绋嬭缃簡瓒呮椂鍙婇潪浜や簰鍑嵁妯″紡銆?
|
|
52
|
+
## 璁惧鍒濆鍖栦笌鎭㈠
|
|
53
|
+
|
|
54
|
+
涓ょ鍒濆鍖栨ā寮忛兘浼氬浠姐€俙merge` 琛ㄧず澶囦唤鍚庨渶瑕佹墜鍔ㄥ悎骞讹紝骞朵笉琛ㄧず鑷姩鎶婁袱浠借蹇嗗悎骞躲€?
|
|
55
|
+
1. 浠庤繙绔姄鍙栧埌鐙珛涓存椂浠撳簱锛屾鏌ユ墍鏈夌洰鏍囪矾寰勫拰鏂囦欢绫诲瀷銆?2. 妫€鏌ユ湰鏈虹鎾烇紝澶囦唤鎵€鏈夊彲鑳借鐩?鍒犻櫎鐨勬枃浠躲€佸師 Git 鍏冩暟鎹拰鎻掍欢閰嶇疆銆?3. 楠岃瘉澶囦唤鏈熼棿鏈湴鏂囦欢娌℃湁鍙樺寲锛屽啀搴旂敤鍏佽鐨勬枃浠跺苟璁剧疆鐩爣鍒嗘敮銆乷rigin銆乽pstream銆?4. 鎴愬姛鍚庢殏鍋滆嚜鍔ㄥ悓姝ヤ笌鍚姩鎷夊彇锛岀瓑寰呯敤鎴锋牳瀵广€佹墜鍔ㄥ悎骞跺強閲嶆柊寮€鍚€?
|
|
56
|
+
鏀寔鍏ㄦ柊鐩綍銆佸凡鎵ц `git init` 浣嗗皻鏈娆℃彁浜ょ殑鐙珛浠撳簱锛屼互鍙婂啀娆″垵濮嬪寲鍒板巻鍙蹭笉鐩稿叧鐨勮繙绔€傛垚鍔熷搷搴旇繑鍥炲疄闄呴厤缃紝鐣岄潰绔嬪嵆鍒锋柊鑷姩寮€鍏筹紱鍒濆鍖栬涓烘樉寮忛噸缃缃紝褰撳墠琛ㄥ崟浠ユ湇鍔$閰嶇疆涓哄噯銆?
|
|
57
|
+
澶囦唤浣嶄簬 DSH_HOME 鏃佽竟鐨?`<DSH_HOME>.home-sync-backups/init-*`锛屼笉鍦ㄨ鍚屾鐨勫伐浣滃尯鍐呫€傞粯璁や富鐩綍鏃剁被浼?`~/.dsh.home-sync-backups/init-*`銆?
|
|
58
|
+
- `files/`锛氬師鏂囦欢銆?- `repository/`锛氬師 `.git`锛屽寘鍚湰鍦板巻鍙层€佺储寮曞拰杩滅閰嶇疆銆?- `config.json`锛氬師鎻掍欢閰嶇疆锛堝師鍏堝瓨鍦ㄦ椂锛夈€?- `manifest.json`锛氱洰鏍囥€侀樁娈点€佸師鏂囦欢瀛樺湪鐘舵€佸拰鏍¢獙鍊笺€?- `MERGE.md`锛氭仮澶嶈鏄庛€?
|
|
59
|
+
鍙崟鑾风殑鎵ц閿欒浼氬皾璇曡嚜鍔ㄦ仮澶嶃€傛柇鐢垫垨寮哄埗缁撴潫杩涚▼涓嶈兘淇濊瘉鑷姩鎭㈠锛氬厛鍋滄 DSH锛屼緷鎹?manifest 鎭㈠ files锛屽皢 repository 鎭㈠涓?`.git`锛屾仮澶嶅師閰嶇疆锛屽苟绉婚櫎娓呭崟涓師鍏堜笉瀛樺湪鐨勬柊鏂囦欢銆備笉瑕佸湪 DSH 姝e啓鍏ヨ蹇嗘椂鎵ц鎭㈠銆侴it worktree 鎴栭摼鎺?`.git` 鐨勫垵濮嬪寲鐩墠浼氭槑纭嫆缁濄€?
|
|
60
|
+
鍒濆鍖栨湡闂翠粛闇€閬垮厤鍏朵粬绋嬪簭鍐欏叆鍚屾鏂囦欢锛涙彃浠堕攣鍙崗璋冩湰鎻掍欢瀹炰緥锛屼笉鑳芥殏鍋滃叾浠栨彃浠舵垨浜哄伐 Git 鎿嶄綔銆?
|
|
61
|
+
## 閰嶇疆涓庤繍琛岄攣
|
|
62
|
+
|
|
63
|
+
閰嶇疆浣嶄簬 `<DSH_HOME>/dsh-home-sync.json`锛屾敮鎸侊細branch銆乤utoPullOnStartup銆乤utoSync銆乻yncIntervalSeconds锛?5鈥?6400锛夈€乧ommitMessage锛?鈥?000 瀛楃锛夈€乻shBatch銆傛棫 autoSyncOnStartup 浼氳縼绉讳负 autoSync锛涘悓鏃跺瓨鍦ㄦ椂浠?autoSync 涓哄噯銆?
|
|
64
|
+
鎹熷潖閰嶇疆涓嶄細閫€鍥炲苟寮€鍚粯璁よ嚜鍔ㄤ换鍔°€傞渶淇鎴栨仮澶嶆 JSON 鍚庨噸鍚?DSH銆傚啓鍏ラ€氳繃涓存椂鏂囦欢鍚屾钀界洏鍚庢浛鎹紝鍒濆鍖栧彟澶栦繚鐣欓厤缃浠姐€?
|
|
65
|
+
璺ㄨ繘绋嬮攣鐩綍涓?`<DSH_HOME>.home-sync-lock`銆傚紓甯搁€€鍑哄彲鑳界暀涓嬮攣锛涚‘璁ゆ病鏈?DSH 鍚屾浠诲姟杩愯鍚庯紝鎵嶅彲绉婚櫎杩欎釜閿佺洰褰曘€傛湭瀹屾垚鐨勫垵濮嬪寲搴斿厛鎸夊浠芥仮澶嶃€?
|
|
66
|
+
## 楠岃瘉
|
|
88
67
|
|
|
89
68
|
```powershell
|
|
90
69
|
npm run check
|
|
91
70
|
npm test
|
|
92
71
|
```
|
|
93
72
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
开发与审计文档(检查/修复/复核报告及 `audit/` 证据)为本地内部资料,不随本仓库分发;`test/` 与 `npm test` 是公开可复现的验证入口。
|
|
99
|
-
|
|
100
|
-
## 历史复核记录(2026-09-07,已被后续复审补充)
|
|
101
|
-
|
|
102
|
-
**以下是 0.2.0 的历史记录,其"未发现新的高风险缺陷"结论已被后续复审推翻。** 开发与审计文档(含 0.2.1 二次审查报告)为本地内部资料,未随本仓库分发,本段仅作历史追溯;默认隐藏即时日志的交互保持,新增独立折叠操作记录入口。
|
|
73
|
+
娴嬭瘯浣跨敤绯荤粺涓存椂鐩綍銆佽櫄鏋勬枃浠朵笌鏈湴 Git 杩滅锛屼笉璁块棶鐪熷疄 DSH 涓荤洰褰曟垨鐪熷疄璐﹀彿銆傛祴璇曚粨搴撲繚鐣欏湪绯荤粺涓存椂鐩綍渚夸簬璇婃柇銆?
|
|
74
|
+
娴忚鍣ㄦ祴璇曚娇鐢ㄧ嫭绔嬩复鏃?Chrome/Edge 閰嶇疆锛涙病鏈夋祻瑙堝櫒鏃惰烦杩囷紝鍙€氳繃 `CHROME_PATH` 鎸囧畾銆傚彈闄愮幆澧冨彲鑳介渶瑕佸湪姝e父鐢ㄦ埛鏉冮檺涓嬭繍琛屾祻瑙堝櫒娴嬭瘯銆傚涓诲吋瀹规€ф祴璇曞彲鐢?`DSH_HOST_MODULES` 鎸囧悜宸插畨瑁?DSH 鐨?`node_modules/@deepseek-ai`锛屾湭鎵惧埌鏃惰烦杩囷紱姝ゆ祴璇曞鐢ㄧ湡瀹炲涓昏矾鐢变笌鏉ユ簮鏍¢獙鏂规硶锛岃韩浠?Cookie 楠岃瘉浣跨敤铏氭瀯瀹炵幇銆?
|
|
75
|
+
寮€鍙戜笌瀹¤鏂囨。锛堟鏌?淇/澶嶆牳鎶ュ憡鍙?`audit/` 璇佹嵁锛変负鏈湴鍐呴儴璧勬枡锛屼笉闅忔湰浠撳簱鍒嗗彂锛沗test/` 涓?`npm test` 鏄叕寮€鍙鐜扮殑楠岃瘉鍏ュ彛銆?
|
|
76
|
+
## 鍘嗗彶澶嶆牳璁板綍锛?026-09-07锛屽凡琚悗缁瀹¤ˉ鍏咃級
|
|
103
77
|
|
|
104
|
-
|
|
78
|
+
**浠ヤ笅鏄?0.2.0 鐨勫巻鍙茶褰曪紝鍏?鏈彂鐜版柊鐨勯珮椋庨櫓缂洪櫡"缁撹宸茶鍚庣画澶嶅鎺ㄧ炕銆?* 寮€鍙戜笌瀹¤鏂囨。锛堝惈 0.2.1 浜屾瀹℃煡鎶ュ憡锛変负鏈湴鍐呴儴璧勬枡锛屾湭闅忔湰浠撳簱鍒嗗彂锛屾湰娈典粎浣滃巻鍙茶拷婧紱榛樿闅愯棌鍗虫椂鏃ュ織鐨勪氦浜掍繚鎸侊紝鏂板鐙珛鎶樺彔鎿嶄綔璁板綍鍏ュ彛銆?
|
|
79
|
+
鍦ㄤ慨澶嶅畬鎴愭姤鍛婁箣鍚庯紝瀵?0.2.0 婧愮爜杩涜浜嗙嫭绔嬬殑鍙澶嶆牳涓庢祴璇曞璺戯細
|
|
105
80
|
|
|
106
|
-
-
|
|
107
|
-
- **结果**:原审计 17 项(F01–F17)修复均已落实到当前源码,抽查关键实现与本页“同步行为/允许同步的文件/设备初始化/验证”描述一致;报告所述 35 项测试在本机(Node 24.20.0 + Git 2.55.0.windows.4,真实 Git 临时仓库与虚构远端)复跑**35/35 通过,0 失败**。
|
|
108
|
-
- **复核中修正的一处界面回归**:界面操作反馈改为底部 toast 浮窗(不再显示卡片内日志框);`#log` 保留但改为视觉隐藏,仅作 aria-live 供屏幕阅读器使用,避免再次出现用户已否决的“保存后在下方显示提示”。
|
|
109
|
-
- **复核结论**:`npm run check` 与 `npm test` 全绿;未发现新的高风险缺陷。
|
|
110
|
-
- **已知边界(与报告一致,非缺陷)**:两种初始化模式底层行为相同(备份 → 重置 → 暂停自动任务),`mode` 仅影响提示文案;“已用机器合并”需要按备份与 `MERGE.md` 手动挑拣;HTTP 接口仅接受已登录的可信会话(未登录直连返回 401 属预期);后端(index/sync)改动需重启 DSH web 后生效,界面(ui.js)改动 Ctrl+F5 即生效。
|
|
81
|
+
- **澶嶆牳鑼冨洿**锛歚lib/index.js`銆乣lib/sync.js`銆乣lib/ui.js`銆乣package.json`銆乣cordis.patch.yml`锛屼笌涓や唤鎶ュ憡閫愭潯瀵圭収銆?- **缁撴灉**锛氬師瀹¤ 17 椤癸紙F01鈥揊17锛変慨澶嶅潎宸茶惤瀹炲埌褰撳墠婧愮爜锛屾娊鏌ュ叧閿疄鐜颁笌鏈〉鈥滃悓姝ヨ涓?鍏佽鍚屾鐨勬枃浠?璁惧鍒濆鍖?楠岃瘉鈥濇弿杩颁竴鑷达紱鎶ュ憡鎵€杩?35 椤规祴璇曞湪鏈満锛圢ode 24.20.0 + Git 2.55.0.windows.4锛岀湡瀹?Git 涓存椂浠撳簱涓庤櫄鏋勮繙绔級澶嶈窇**35/35 閫氳繃锛? 澶辫触**銆?- **澶嶆牳涓慨姝g殑涓€澶勭晫闈㈠洖褰?*锛氱晫闈㈡搷浣滃弽棣堟敼涓哄簳閮?toast 娴獥锛堜笉鍐嶆樉绀哄崱鐗囧唴鏃ュ織妗嗭級锛沗#log` 淇濈暀浣嗘敼涓鸿瑙夐殣钘忥紝浠呬綔 aria-live 渚涘睆骞曢槄璇诲櫒浣跨敤锛岄伩鍏嶅啀娆″嚭鐜扮敤鎴峰凡鍚﹀喅鐨勨€滀繚瀛樺悗鍦ㄤ笅鏂规樉绀烘彁绀衡€濄€?- **澶嶆牳缁撹**锛歚npm run check` 涓?`npm test` 鍏ㄧ豢锛涙湭鍙戠幇鏂扮殑楂橀闄╃己闄枫€?- **宸茬煡杈圭晫锛堜笌鎶ュ憡涓€鑷达紝闈炵己闄凤級**锛氫袱绉嶅垵濮嬪寲妯″紡搴曞眰琛屼负鐩稿悓锛堝浠?鈫?閲嶇疆 鈫?鏆傚仠鑷姩浠诲姟锛夛紝`mode` 浠呭奖鍝嶆彁绀烘枃妗堬紱鈥滃凡鐢ㄦ満鍣ㄥ悎骞垛€濋渶瑕佹寜澶囦唤涓?`MERGE.md` 鎵嬪姩鎸戞嫞锛汬TTP 鎺ュ彛浠呮帴鍙楀凡鐧诲綍鐨勫彲淇′細璇濓紙鏈櫥褰曠洿杩炶繑鍥?401 灞為鏈燂級锛涘悗绔紙index/sync锛夋敼鍔ㄩ渶閲嶅惎 DSH web 鍚庣敓鏁堬紝鐣岄潰锛坲i.js锛夋敼鍔?Ctrl+F5 鍗崇敓鏁堛€?
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-home-sync",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Git-based sync for DSH configuration and Mnemon memory plugin data, with automatic two-way sync, cross-device migration, initialization backups, conflict detection, and a web UI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|