hmo 299ddc1796 fix(ocr+bot): image download race, SenseNova context, log path, encoding
Root causes of the screenshot 404 incident:
1. RACE: client uploads image AND sends message concurrently; bot received
   the message before the upload finished writing, so its GET hit a 404
   error page (<100B treated as failure). FIX: _download_image now retries
   3x with 2s backoff.
2. Zhiwei mentioned tesseract/小果 because the failure text never told her
   the pipeline IS SenseNova. FIX: failure messages now name SenseNova
   explicitly and ask for resend.
3. log_xmpp never worked for the bot: sys.path used relative '../..' from
   a symlinked __file__ which resolved to '/' instead of MoFin root. This
   is why the '最近对话' panel never had bot chat data (only cron script
   entries). FIX: absolute path per red line #7. Verified: test message
   now lands in xmpp_messages.jsonl.
4. My PowerShell -replace corrupted the file encoding (UnicodeDecodeError
   crash loop on restart). Restored from git HEAD and re-applied edits with
   the edit tool. Lesson: never use PowerShell string replace on UTF-8
   source files with Chinese content.
5. functional_health: new sense_ocr module (OCR config presence +
   SenseNova API TCP reachability), no token cost.
2026-07-20 21:42:59 +08:00
2026-06-20 12:04:21 +08:00
2026-06-20 12:04:21 +08:00
2026-06-20 12:04:21 +08:00
2026-06-20 12:04:21 +08:00
2026-06-25 19:58:00 +08:00
2026-06-20 12:04:21 +08:00
2026-06-20 12:43:24 +08:00
2026-06-20 12:04:21 +08:00
2026-06-20 12:04:21 +08:00

MoFin 文档中心

文档驱动开发。每次代码变更必须同步更新对应文档。


阅读指引

🚀 新手入门(按顺序读)

# 文档 内容 时间
1 SYSTEM_ARCHITECTURE.md 系统总览:架构图、数据流、模块职责 10 min
2 portfolio-data-model.md 核心数据模型:表结构、币种规则、常见错误 10 min
3 DEVELOPMENT_STANDARDS.md 开发规范:代码结构、DB 规范、Prompt 规范、开发流程 15 min
4 CHANGELOG.md 变更日志:所有改动的完整记录 5 min

🔧 日常开发

文档 何时查阅
DEVELOPMENT_STANDARDS.md 每次写代码前
TEST_PLAN.md 每次改完代码后跑测试
CHANGELOG.md 改完后追加变更记录

📊 运维参考

文档 内容
cron-catalog.md Cron 任务清单(知微维护)
decisions-db-migration.md JSON→DB 迁移记录( 已完成)

📦 历史文档(archive/

旧的设计文档、需求文档、分析报告。仅供参考,不代表当前系统状态。


文档规范

  • 每个 .md 文件顶部标注版本和日期
  • 过时内容追加 > **已废弃** — 见 XXX 替代
  • 不直接删除旧文档,移到 archive/ 保留
  • 交叉引用使用相对路径 [xxx](xxx.md)

当前系统状态

  • 数据:纯 SQLite/home/hmo/web-dashboard/data/mofin.db
  • 币种:港股存 HKD,A 股存 CNY,汇总时转换
  • JSON:已全部移除,无残留
  • 测试scripts/run_all_tests.py — 33/33 通过
  • 最新CHANGELOG.md 查看完整变更
S
Description
No description provided
Readme
187 MiB
Languages
Python 83.7%
TeX 6.5%
HTML 6.4%
BibTeX Style 2.3%
Shell 0.9%
Other 0.2%