Skip to content

Commit 63528ed

Browse files
committed
docs: 拆分用户与开发者文档
原因:原 README 同时承载产品介绍和开发维护说明,读者边界混乱。 影响:README 收敛为普通用户入口,新建 docs/developer-guide.md 承接环境、启动、测试、构建和文档导航。 风险:无运行时行为变化,无需额外回归。
1 parent aefa6f5 commit 63528ed

File tree

2 files changed

+124
-123
lines changed

2 files changed

+124
-123
lines changed

README.md

Lines changed: 21 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -4,146 +4,44 @@
44

55
# WeChat Auto Shell
66

7-
一个面向 Windows 的微信预览监听桌面壳:低打扰看左侧会话变化,把新消息整理到本地界面里,按需接翻译和 TTS
7+
一个面向 Windows 的微信预览监听桌面壳。它做的事很单一:盯住微信左侧会话列表,把最新预览整理到独立界面里,并按需接翻译和朗读
88

9-
它不是聊天机器人,不做主动发消息,不做自动回复,也不尝试读取完整聊天记录。它适合的是“看见左侧会话变化,快速浏览、翻译、朗读”的场景
9+
它不是聊天机器人,也不是“完整聊天记录抓取器”。它不发消息、不自动回复、不写输入框,也不读取右侧聊天区全文
1010

11-
## 适合谁
11+
## 它适合谁
1212

13-
- 想低打扰跟踪微信群/私聊的最新预览内容
14-
- 想把微信里的英文/中英文消息顺手翻成可读文本
15-
- 想在 Windows 上用本地桌面壳查看状态、日志和消息流
16-
- 想要一个不改微信客户端的监听方案
13+
- 想低打扰跟踪微信群或私聊最新动静的人
14+
- 想把英文或中英混合消息顺手翻译成可读文本的人
15+
- 想在 Windows 上单独看状态、消息预览和日志的人
16+
- 想要一个不改微信客户端的监听方案的人
1717

18-
## 核心能力
18+
## 你会得到什么
1919

2020
- 监听微信左侧可见会话预览,自动提取最新变化
21-
- 桌面壳展示会话列表、消息卡片、运行状态和健康信息
22-
- 支持翻译 provider:`deeplx``openai_compatible``passthrough`
23-
- 支持 TTS:`windows_system``doubao``tencent_cloud`
24-
- 支持单实例桌面壳,第二次启动只聚焦已有窗口
25-
- 运行时配置、日志和锁都落在 `%LOCALAPPDATA%\com.wechatauto.shell`
21+
- 在本地桌面壳里查看会话列表、消息卡片、运行状态和健康信息
22+
- 按需接入翻译服务,把外语消息转换成更容易读的文本
23+
- 按需接入朗读能力,让消息可以直接播出来
24+
- 单实例桌面壳,重复启动只聚焦已有窗口
2625

2726
## 你需要先接受的限制
2827

2928
- 当前抓的是左侧会话预览,不是右侧聊天区全文
3029
- 长消息会被微信预览截断,后半段拿不回来
3130
- 当前只覆盖左侧可见会话,看不见的会话本轮抓不到
32-
- 这套方案适合低干扰浏览和翻译,不适合完整审计或归档
31+
- 这套方案适合低干扰浏览、翻译、朗读,不适合完整审计或归档
3332
- 不提供发送消息、发送文件、自动回复、写输入框等主动操作
3433

35-
## 安装与启动
34+
## 普通用户怎么理解它
3635

37-
先装 Python 依赖:
36+
- 如果你拿到的是安装包或现成的桌面应用,直接运行即可
37+
- 仓库跟踪的默认配置以“首启可进入设置页”为目标,不把翻译或云 TTS 密钥当成硬依赖
38+
- 只有当你主动启用额外翻译服务或云端朗读服务时,才需要额外补 URL 或凭据
39+
- 运行时配置、日志和锁文件会落到 `%LOCALAPPDATA%\com.wechatauto.shell`
3840

39-
```bash
40-
pip install -r requirements.txt
41-
```
41+
## 文档分流
4242

43-
再装前端依赖:
44-
45-
```bash
46-
cd desktop-shell
47-
npm install
48-
```
49-
50-
### 源码态启动
51-
52-
开一个终端启动后端:
53-
54-
```bash
55-
python listener_app/backend_main.py --config ".\config\listener.json"
56-
```
57-
58-
再开一个终端启动前端开发页:
59-
60-
```bash
61-
cd desktop-shell
62-
npm run dev
63-
```
64-
65-
- HTTP 默认地址:`http://127.0.0.1:8765`
66-
- WebSocket 默认地址:`ws://127.0.0.1:8766/events`
67-
68-
### Tauri 桌面壳
69-
70-
如果本机已经装好 Rust toolchain:
71-
72-
```bash
73-
cd desktop-shell
74-
npm run tauri dev
75-
```
76-
77-
`npm run tauri dev` 会先构建 PyInstaller sidecar,再由 Tauri 壳托管 backend。
78-
79-
### 打包
80-
81-
```bash
82-
cd desktop-shell
83-
npm run tauri build
84-
```
85-
86-
这一步会产出 Windows 桌面壳、backend sidecar 和 worker sidecar。首次启动时,如果没有 `.env.local`,默认也应该能先进入壳和设置页。
87-
88-
## 默认配置
89-
90-
仓库跟踪的默认配置是“首启可用”的,不把密钥当成硬依赖:
91-
92-
- `translate.enabled=false`
93-
- `tts.provider=windows_system`
94-
95-
如果你要接 DeepLX、OpenAI-compatible 翻译,或者启用豆包 / 腾讯云 TTS,再补对应 URL 和凭据即可。
96-
97-
## 发布产物
98-
99-
`npm run tauri build` 当前会产出:
100-
101-
- `wechat-auto-shell.exe`
102-
- `wechat-auto-backend.exe`
103-
- `group_listener_worker.exe`
104-
- `msi`
105-
- `nsis setup.exe`
106-
107-
第二次启动 `wechat-auto-shell.exe` 时,只会聚焦已有窗口,不会再拉第二份壳或 backend。
108-
Windows 打包图标现在统一来自 `desktop-shell/src-tauri/icons/icon.svg` 和它生成的 `icon.ico`;别再拿空壳默认图标糊弄发布产物。
109-
110-
## 开发与构建
111-
112-
如果你在本地做回归,最少跑这几步:
113-
114-
```bash
115-
cd desktop-shell
116-
npm test
117-
npm run build
118-
npm run test:rust
119-
```
120-
121-
更完整的交付闸口是:
122-
123-
```bash
124-
python scripts/build_desktop_shell_sidecars.py --python python
125-
cd desktop-shell
126-
npm test
127-
npm run build
128-
npm run test:rust
129-
python scripts/smoke_desktop_shell_release.py
130-
```
131-
132-
## 配置与排障
133-
134-
- 配置说明:`config/listener.md`
135-
- 桌面壳测试与构建:`docs/desktop-shell-build.md`
136-
- 监听、健康契约和打包坑位:`docs/wechat-listening-pitfalls.md`
137-
138-
## 项目结构
139-
140-
```text
141-
config/
142-
desktop-shell/
143-
docs/
144-
listener_app/
145-
wechat_auto/
146-
```
43+
- 普通用户:看这份 `README.md` 就够了
44+
- 开发者 / 维护者:看 [docs/developer-guide.md](./docs/developer-guide.md)
14745

14846
## 协议
14947

docs/developer-guide.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# 开发者文档
2+
3+
这份文档只服务开发、调试、回归和打包。普通用户别看这个,噪音太多;产品说明回 `README.md`
4+
5+
## 适用范围
6+
7+
- 当前正式路径只有 `listener_app/backend_main.py + desktop-shell/`
8+
- Tk 回退链已经下线,不要再按“双桌面入口并存”理解仓库
9+
- 当前分支不维护发送消息、发送文件、自动回复、写输入框等主动操作能力
10+
11+
## 先装环境
12+
13+
```bash
14+
pip install -r requirements.txt
15+
cd desktop-shell
16+
npm install
17+
```
18+
19+
如果你要跑 Tauri 壳,还要保证本机能用 `cargo` / `rustc`。缺 Rust toolchain 时,只能验证源码态后端和 Vite 页面,别把它硬说成桌面壳已通过。
20+
21+
## 启动方式
22+
23+
### 源码态后端 + 前端开发页
24+
25+
```bash
26+
python listener_app/backend_main.py --config ".\config\listener.json"
27+
cd desktop-shell
28+
npm run dev
29+
```
30+
31+
默认地址:
32+
33+
- HTTP:`http://127.0.0.1:8765`
34+
- WebSocket:`ws://127.0.0.1:8766/events`
35+
36+
### Tauri 壳调试
37+
38+
```bash
39+
cd desktop-shell
40+
npm run tauri dev
41+
```
42+
43+
这条命令会先跑 `python ..\scripts\build_desktop_shell_sidecars.py`,再由 Tauri 壳托管 backend sidecar。不要手工再起一份 `backend_main.py` 去制造双实例噪音。
44+
45+
## 测试与构建
46+
47+
### 最小回归
48+
49+
```bash
50+
cd desktop-shell
51+
npm test
52+
npm run build
53+
npm run test:rust
54+
```
55+
56+
`npm run build` 不能省。`tauri::generate_context!()` 依赖 `desktop-shell/dist`,你不先构建,Rust 测试就会炸。
57+
58+
### Release 壳交付闸口
59+
60+
```bash
61+
python scripts/build_desktop_shell_sidecars.py --python python
62+
cd desktop-shell
63+
npm test
64+
npm run build
65+
npm run test:rust
66+
python scripts/smoke_desktop_shell_release.py
67+
```
68+
69+
上面这套没跑完,就别把 release 壳当成可交付产物。
70+
71+
### 产物
72+
73+
`npm run tauri build` 当前会产出:
74+
75+
- `desktop-shell/src-tauri/target/release/wechat-auto-shell.exe`
76+
- `desktop-shell/src-tauri/target/release/wechat-auto-backend.exe`
77+
- `desktop-shell/src-tauri/target/release/group_listener_worker.exe`
78+
- `desktop-shell/src-tauri/target/release/bundle/msi/*.msi`
79+
- `desktop-shell/src-tauri/target/release/bundle/nsis/*-setup.exe`
80+
81+
## 运行时边界
82+
83+
- 源码态 `python listener_app/backend_main.py --config ".\config\listener.json"` 读取仓库里的 `config/listener.json`
84+
- `npm run tauri dev`、安装包和 `wechat-auto-shell.exe` 读取 `%LOCALAPPDATA%\com.wechatauto.shell\config\listener.json`
85+
- 这两套配置目录不会自动同步;桌面壳设置页只会改当前 backend 正在使用的那一套
86+
- `.env.local` 在源码态默认读仓库根目录;Tauri 壳优先读 `%LOCALAPPDATA%\com.wechatauto.shell\.env.local`
87+
88+
## 关键文档入口
89+
90+
- 配置契约与字段说明:[`config/listener.md`](../config/listener.md)
91+
- 桌面壳测试、构建、产物与发布闸口:[`docs/desktop-shell-build.md`](./desktop-shell-build.md)
92+
- 监听、健康契约、打包与排障坑位:[`docs/wechat-listening-pitfalls.md`](./wechat-listening-pitfalls.md)
93+
94+
## 目录总览
95+
96+
```text
97+
config/ 运行配置与字段说明
98+
listener_app/ Python backend、runtime、worker、TTS、translate
99+
desktop-shell/ React + Vite + Tauri 桌面壳
100+
scripts/ sidecar 构建与 release smoke
101+
wechat_auto/ 微信窗口与 UIA 读取基础能力
102+
docs/ 深水区文档
103+
```

0 commit comments

Comments
 (0)