Commit Graph
23 Commits
Author SHA1 Message Date
ZASENJC 0f04fefbcc feat: rewrite TTREE into 100% pure-Rust modular workspace with native AppKit UI, fast hedged translation, reliable OCR, and Ollama/LMStudio/GGUF AI backends 2026-10-14 19:07:43 +08:00
Codex fd8c685baa ci: test macOS 27 OCR whenever an accurate profile is available 2026-10-12 12:55:16 +00:00
Codex 8bf2790ef8 ci: distinguish unsupported macOS VM OCR from app regressions 2026-10-12 12:53:34 +00:00
Codex ff576ad166 fix: provide a software image context for OCR compatibility 2026-10-12 12:41:09 +00:00
Codex b22eaf9715 fix: retain typed Vision compute device references 2026-10-12 12:32:36 +00:00
Codex baa6cb22c9 fix: select supported CPU compute devices for modern Vision OCR 2026-10-12 12:25:46 +00:00
Codex 96255a37df fix: quote OCR namespace filter in workflow command 2026-10-12 12:11:24 +00:00
Codex fa84da59b8 ci: verify native OCR on current macOS before packaging 2026-10-12 12:10:18 +00:00
Codex bf75be270a fix: normalize OCR images and validate native text recognition 2026-10-12 12:03:43 +00:00
Codex 2561db83a7 fix: stabilize macOS OCR and balance free translation services 2026-10-12 11:23:17 +00:00
ZASENJC 902abb9159 release: prepare v0.1.3 2026-07-13 18:18:51 +08:00
ZASENJC 6dc1e25f26 feat: improve OCR language detection 2026-07-13 18:18:51 +08:00
ZASENJC 5ee697cadc feat: run macOS app from menu bar only 2026-07-12 18:30:07 +08:00
ZASENJC c9e7ca0f9d test: enforce menu bar only macOS mode 2026-07-12 18:29:36 +08:00
ZASENJC f18407e8ac release: prepare v0.1.2 2026-07-10 23:04:00 +08:00
ZASENJC 8021cb995f fix: parse real codesign requirement output 2026-07-10 23:01:45 +08:00
ZASENJC 9327333c2e test: reproduce real codesign requirement output 2026-07-10 23:00:51 +08:00
ZASENJC ca66b75208 release: prepare v0.1.1 2026-07-10 22:46:24 +08:00
ZASENJC a361ca01f7 chore: update CLAUDE.md and gitignore stale lock file
- CLAUDE.md: sync docs with current implementation (Bing engine, Keychain, chat history, updater)
- .gitignore: add .claude/scheduled_tasks.lock
2026-06-27 04:15:54 +08:00
33929c5cbe fix(ci): 为 universal 构建补装 x86_64 目标
macos-latest runner 默认只装 arm64 目标,universal-apple-darwin 需要
x86_64-apple-darwin 才能合体。显式 rustup target add 避免 "Target
x86_64-apple-darwin is not installed" 导致的构建失败。

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-06-27 02:36:01 +08:00
199241fcdb fix: release workflow 构建为 universal target 并轮换更新签名密钥
- release.yml: --target 由双架构改为 universal-apple-darwin
  (tauri build 仅接受单次 --target;universal 二进制原生支持 arm64 + x86_64)
- 轮换更新签名密钥(原密钥口令状态不明):
  - 生成带强口令的全新 minisign 密钥对,口令存入 macOS Keychain
  - TAURI_SIGNING_PRIVATE_KEY / PASSWORD 两个 CI secret 已更新
    (私钥需以 base64(完整密钥文件内容) 形式设置)
  - tauri.conf.json pubkey 同步为新公钥
- 本地已验证签名链路: 签名 → minisign 校验通过

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-06-27 02:30:07 +08:00
f4c2f921c1 feat: AI 对话历史、Keychain 凭据、应用内更新与外观打磨
凭据安全:
- API key 改存 macOS Keychain(security-framework),不再明文落盘 settings.json
- OpenAi/ChatAi 配置实现 Debug 脱敏,api_key 永不进入日志
- HTTP 客户端禁止跟随重定向(防 SSRF 二跳),base_url 校验 http(s) scheme
- IPC 对话载荷校验:角色白名单、单条 64KB、单次 200 条上限

对话历史(新增 history 模块):
- JSONL 追加写、永不重写,单行损坏容错、向后兼容旧格式
- 按 session_start 标记切分对话,摘要取首句用户提问
- 新增 load/append/clear/start_new 对应 Tauri 命令
- 前端 chatContext 截取最近 24 条上下文并丢弃孤儿 assistant 开场

应用内更新:
- 接入 tauri-plugin-updater + tauri-plugin-process
- 新增 update store:后台静默检查(≥7 天一次)、下载进度、自动重启
- 配套 CI release.yml(双架构构建 + 签名 + latest.json)与 signing-env.sh(口令取自 Keychain)

外观与窗口:
- 毛玻璃改用 Popover 材质 + 14px 圆角,面板透明度可调(持久化)
- 窗口默认宽度收窄至 480,尺寸调整后持久化、下次呼出沿用
- 前端整体视觉重做(tokens/global、Translate/Chat/Settings 面板、EngineTabs/LangSelector/ResultView)

测试:前端 26 项 + Rust 51 项全部通过

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-06-27 02:13:58 +08:00
7c73dabb81 feat: ttree 初始提交
轻量 macOS AI 翻译器(Tauri 2 + Svelte 5 + Rust):

- 三引擎翻译:谷歌 / 必应(免费网页端接口)+ OpenAI 兼容(SSE 流式)
- 截图 OCR(Apple Vision)、划词翻译/划词 AI(Accessibility)
- AI 多轮对话、双栏对照、固定窗口、自定义全局快捷键
- 系统托盘、开机自启、毛玻璃界面

工程加固:
- 修复流式译文中文跨 chunk 截断(字节缓冲 + memchr 按行解码)
- 全局复用 reqwest::Client 连接池,OpenAI/Google/Bing 加超时
- 截图临时文件加原子序号防并发覆盖
- 托盘图标 unwrap 改为优雅错误
- 收紧 Tauri CSP(default-src 'self' + 受控白名单)

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-06-26 00:50:48 +08:00