Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ jobs:
run: python tools/package_project_helper.py . /dev/null 0

- name: Run detect-secrets
continue-on-error: true
run: |
if command -v detect-secrets &> /dev/null; then
detect-secrets scan --disable-plugin KeywordDetector \
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@ __pycache__/
.ruff_cache/

# runtime
config/runtime_state.yaml
logs/
backups/
*.bak
*.tmp
chat/
memory/pending_updates/
memory/
!memory/.gitkeep

# packaging
/release/
Expand Down
113 changes: 113 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Changelog

## v0.8.0 — 文档同步 + UI 中文标签 + 工程收口 / Docs sync & Chinese UI labels

- **文档版本同步**:5 份文档(USER_GUIDE / PROJECT_PLAN / FUTURE / COMPREHENSIVE_PROJECT / changelog)版本升至 v0.8.0,模块描述与实际代码对齐
- **UI 中文标签**:`constants.py` 模型/性能标签改为中文主导,`status_bar.py` 统计/性能行全中文显示,`chat_panel.py` 显示标签同步
- 合并 v0.7.8 全部变更(性能预算系统、依赖锁定、状态模型文档化、CI 门禁升级、入口页新闻流程修复、README 重构、140 tests)

## v0.7.8 — 性能预算 + 状态模型 + 工程收口

- **性能预算系统**(新模块 `src/performance_budget.py`):所有 LLM 调用按 fast/standard/deep 三档分配 max_tokens 上限
- 主聊天:700 / 1100 / 1600
- 微信群聊回复:520 / 760 / 1050,历史行数按档自适应(16 / 28 / 40)
- 开场生成:420 / 620 / 850
- 新闻摘要:650 / 950 / 1300
- 新闻群聊讨论:520 / 760 / 1000
- **依赖锁定**:迁移到 pip-tools 工作流(`requirements.in` → 锁定 `requirements.txt`)
- **状态模型文档化**:`docs/STATE_MODEL.md` 定义真源层级、迁移指南、清理清单
- **CI 门禁升级**:`detect-secrets` 改为硬门禁
- **入口页新闻流程修复**:群聊未开始时也能显示新闻阶段面板,`_clear_wechat_news_state` 统一清理
- **新闻讨论状态同步修复**:`run_discussion_stage` 正确调用 `update_wechat_join_state`
- **README 重构**:展示型结构(Demo / 架构图 / 使用流程 / Roadmap)
- **`.gitignore` 收口**:排除 `config/runtime_state.yaml`、`memory/`
- **140 tests,Ruff clean**

## v0.7.7 — 模块拆分与服务层解耦

- **新闻链路拆分**:`wechat.py`(~550 行)拆分为 4 个专注模块 + 1 个兼容门面
- `wechat_format.py` — 纯文本 / 格式化工具
- `wechat_state.py` — 文件 I/O、群聊状态、生命周期管理
- `wechat_generator.py` — LLM 生成逻辑(群聊讨论、开场、互动回复)
- `wechat_prompt.py` — 系统 / 互动 prompt 加载(自包含,无外部依赖)
- `wechat.py` — 纯兼容门面,仅 re-export,零运行时逻辑
- **服务层拆分**:`wechat_service.py` 改为直连子模块,绕开门面
- **UI 逐阶段新闻流**:搜索 → 正文读取 → 生成摘要 → 群聊讨论,四步按钮推进
- **自适应 max_articles**:fast→2、standard→4、deep→6
- **安全加固**:
- 自定义 `_SafeHTTPRedirectHandler` 逐跳 SSRF 校验 + 最多 3 次重定向
- 包扫描增加 GitHub PAT、OpenRouter、通用 key/token 模式
- detect-secrets 加入 CI 流程
- **内存保护**:Session logger 50 条自动 flush、2 小时老化警告
- **防回归 guard**:`test_wechat_decoupling.py` 4 个测试确保模块边界不退化
- **112 tests,Ruff clean**

## v0.7.6 — 工程安全与新闻链路收口

详细内容见 `changelog/README_v0_7_6.md`。

## v0.7.5 — 文档同步收口 + 代码清理

- 版本信息同步 10 个文件
- 死代码清理(chat_stream / 重复函数)
- YAML 同步 mtime canary 优化
- 重复逻辑合并
- 详见 `changelog/README_v0_7_5.md`

## v0.7.4 — 工程体验收口

- 自动化版本 bump 工具
- LLM 配置文档化(`.env.example` 5 个 provider)
- NewsRoundResult 结果对象化(覆盖率/警告/耗时)
- UI 来源可信度展示
- 详见 `changelog/README_v0_7_4.md`

## v0.7.3 — 服务层拆分与工程化收口

- Wechat news round 下沉到 `src/wechat_service.py`
- session flush 批量提交
- GitHub Actions CI
- 架构级测试
- LLM client 参数扩展
- YAML runtime state 真源化
- 详见 `changelog/README_v0_7_3.md`

## v0.7.2 — 代码质量全面收口

修复 4 个 Bug、性能优化(缓存/YAML/diff)、架构改善(常量去重/模块拆分)、Streamlit fragment 反模式修复、关键路径错误处理增强。

## v0.7.1 — 搜索窗口与来源优化

90 天搜索窗口、来源块压缩、摘要覆盖率提示、prompt 乱码修复、覆盖率统计对齐。

## v0.7.0 — 多源新闻聚合

多源 RSS 聚合、正文三层提取、来源块写入群聊、摘要边界约束、URL 安全检查。

## v0.6.9 — 联网搜索增强

自由文本联网搜索、进度指示、新闻缓存按 query 隔离、记忆写入加固。

## v0.6.8 — 写入与缓存优化

.tmp 排除、文件锁重试 finally 清理、LLM client 自动重建、wechat_state 批量写入、新闻 10 分钟缓存。

## v0.6.7 — 刷新与健康检查

刷新逻辑拆分、notice queue、健康检查只读化、打包排除增强、lru_cache 缓存。

## v0.6.6 — 渲染与并发修复

未知发言人渲染修复、并发写入安全、打包测试对齐。

## v0.6.5 — 氛围与角色优化

开场氛围选择、角色归一化兜底、侧栏与 memory 对齐、打包脚本拆分。

## v0.6.4 — 首次可用正式包

Catppuccin 暗色主题、紫蓝渐变、微信气泡 UI、路由系统、会话隔离、safe_writer。

## v0.1 ~ v0.6.3 — 早期探索阶段

界面仅纯文本、按钮触发全页刷新、侧边栏与主区域不同步、无视觉资源、自动路由缺失、群聊格式简陋。问题过多,未发布 Release。
23 changes: 14 additions & 9 deletions COMPREHENSIVE_PROJECT.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Study Agent 项目全貌

> 面向新协作者和无上下文接手者的当前阶段总览。
> 当前开发阶段:`v0.7.5`
> 当前开发阶段:`v0.8.0`

## 1. 项目定义

Expand Down Expand Up @@ -31,11 +31,16 @@

### 核心逻辑

1. `src/wechat.py`: 微信群、搜索、页面读取、来源块、摘要
2. `src/mode_manager.py`: 运行态模式和版本状态
3. `src/session_logger.py`: 会话日志与安全写入
4. `src/safe_writer.py`: 原子写入、备份、tmp 清理
5. `src/llm_client.py`: LLM 调用与 client 重置
1. `src/wechat_format.py`: 群聊文本格式化
2. `src/wechat_state.py`: 群聊文件 I/O、状态管理
3. `src/wechat_generator.py`: LLM 群聊生成(开场、互动回复、讨论)
4. `src/wechat_prompt.py`: Prompt 模板加载
5. `src/wechat_memory.py`: 群聊记忆提取
6. `src/mode_manager.py`: 运行态模式和版本状态
7. `src/session_logger.py`: 会话日志与安全写入
8. `src/safe_writer.py`: 原子写入、备份、tmp 清理
9. `src/llm_client.py`: LLM 调用与 client 重置
10. `src/performance_budget.py`: 性能预算(max_tokens 分级)

### UI

Expand All @@ -45,7 +50,7 @@

### 文档

1. `changelog/README_v0_7_1.md`: 当前版本说明
1. `CHANGELOG.md`: 当前版本说明
2. `USER_GUIDE.md`: 当前使用指南
3. `PROJECT_PLAN.md`: 当前阶段规划
4. `FUTURE.md`: 下一阶段方向
Expand Down Expand Up @@ -76,8 +81,8 @@

如果你要快速接手,推荐顺序:

1. `changelog/README_v0_7_1.md`
1. `CHANGELOG.md`
2. `USER_GUIDE.md`
3. `PROJECT_PLAN.md`
4. `src/wechat.py`
4. `src/wechat_format.py`
5. `src/ui/wechat_panel.py`
36 changes: 8 additions & 28 deletions FUTURE.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,20 @@
# 未来方向

> 本文件记录当前版本之后的优先增强方向。
> 当前开发阶段:`v0.7.4` 已落地,下一阶段主目标定位为 `v0.7.5`。

## v0.7.4 完成情况(工程体验收口)

v0.7.4 已发布,重点包括:

1. 自动化版本管理工具 `tools/bump_version.py`,自动同步 7 个文件
2. LLM 配置文档化:`.env.example` 扩展至 50 行,README 配置节分 4 小节
3. NewsRoundResult 结果对象化:source_block / article_coverage / elapsed_ms / warnings
4. UI 来源可信度展示:覆盖率条、逐条警告、条目图标区分
> 当前开发阶段:`v0.8.0` 已落地,下一阶段主目标定位为 `v0.8.1`。

---

## v0.7.5 重点

### 1. 联网搜索质量提升
## v0.7.9 重点

### 1. 联网搜索质量提升
### 1. UI 交互打磨

优先考虑:

1. 进一步优化多源结果质量
2. 更稳地区分"基于标题"与"基于页面文本"
3. 对 Google News 中转页做更稳的处理
4. 继续减少低质量页面文本混入
1. 搜索按钮 cooldown
2. 更明确的 running 状态反馈
3. 上次搜索结果复用
4. 网络失败 fallback 话题

### 2. 引用与来源体验

Expand All @@ -36,16 +25,7 @@ v0.7.4 已发布,重点包括:
3. 支持查看本轮来源详情
4. 支持手动清理搜索缓存

### 3. 搜索交互体验

优先考虑:

1. 搜索按钮 cooldown
2. 更明确的 running 状态
3. 上次搜索结果复用
4. 网络失败 fallback 话题

### 4. 测试覆盖扩展
### 3. 测试覆盖扩展

优先考虑:

Expand Down
19 changes: 9 additions & 10 deletions PROJECT_PLAN.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Study Agent 项目规划

> 当前活跃阶段:`v0.7.5`
> 当前状态:v0.7.5 文档同步收口已完成,下一阶段 v0.7.6 回归功能增量(联网搜索质量、来源 UI、测试覆盖)
> 当前活跃阶段:`v0.8.0`
> 当前状态:v0.8.0 已发布,基于 v0.7.8 的全量变更(性能预算、依赖锁定、状态模型、CI 门禁)追加文档版本同步与 UI 中文标签

## 当前定位

Expand Down Expand Up @@ -53,19 +53,18 @@ v0.7.4 是一次工程体验收口:
3. NewsRoundResult 结果对象化(source_block / article_coverage / elapsed_ms / warnings)
4. UI 来源可信度展示(覆盖率条、警告逐条展示、条目图标区分)

## v0.7.5 目标
## v0.8.1 目标

下一阶段回归功能增量
下一阶段回归 UI 打磨与稳定性

1. 联网搜索质量提升(多源结果优化、标题/正文区分增强)
2. 引用与来源 UI 展示优化(折叠、链接可点击、来源详情)
3. 搜索交互体验(按钮 cooldown、状态反馈、失败 fallback)
4. 测试覆盖扩展(UI 模块、LLM 集成、写入操作)
5. 会话状态无界增长防护
1. UI 打磨(搜索按钮 cooldown、状态反馈、失败 fallback)
2. 会话状态无界增长防护(session_state 上限 + TTL 淘汰)
3. 测试覆盖扩展(UI 模块、LLM 集成、写入操作)
4. 引用与来源体验优化(折叠、链接可点击、来源详情)

## 文档分工

1. `changelog/README_v0_7_4.md`: 当前版本说明
1. `CHANGELOG.md`: 当前版本说明
2. `USER_GUIDE.md`: 当前使用方法
3. `FUTURE.md`: 下一阶段方向
4. 历史 `README_v0_x.md`: 版本留档,不再作为当前状态依据
Loading
Loading