Releases: chefroger/smart-trade-ai
Releases · chefroger/smart-trade-ai
v0.6.1
安全加固
- session 级公司绑定:首次请求自动绑定,跨公司操作返回 403,显式切换通过 POST /companies/{id}/switch
- CDN SRI 完整性校验(marked.js + DOMPurify)
- SSRF 内网防护(tech_stack.py 拒绝 RFC1918/loopback/保留 IP)
- PID 三层校验(cmdline + exe 路径比对 + chmod 0600)
- system 端点加 session token 认证
- 删除公司要求 X-Confirm-Delete header
并发安全
- _ACTIVE_COMPANY dict 加 threading.Lock
- prompts.py _FILE_CACHE 和 skill_router.py _INJECTION_CACHE 加锁
多租户 & 数据保护
- License 端点支持 company_id 多租户隔离
- list_companies 脱敏:仅返回 id/name/slug/is_active
- chat 限流按 company_id 隔离
边界条件修复
- WHOIS 不支持 TLD 优雅降级
- DNS MX 响应 TC 截断标志检测
- order.py LIKE 通配符转义
- email_intel json.loads 后类型检查
- 公司创建 rollback 仅清理新创建的目录
跨平台
- .hermes/.trade 路径在 Windows 上统一走 LOCALAPPDATA
- bootstrap 启动时自动注入 HERMES_HOME 环境变量
文档
- README 新增故障排除章节(三平台手动升级步骤)
- CHANGELOG 补充完整修复记录
- SECURITY 支持版本更新至 0.6.x
v0.6.0 — 拖拽上传、版本检测、三平台自启动、四轮安全审计
Added
- 拖拽/粘贴文件上传:拖入文件或目录到聊天框 → 选择工作子目录 → 自动导入,Agent 递归读取分析;图片文件提示用 vision 或 Tesseract OCR 识别
- 版本更新检测:页面每 30 分钟自动对比 GitHub 最新版本,顶部横幅提醒升级
- Windows 开机自启动:Task Scheduler 用户登录后自动后台启动 Trade
- Linux 开机自启动:systemd user unit
- macOS 桌面入口:tradewin.py PyWebView 独立桌面应用
Changed
- CLAUDE.md 补充 tradewin 桌面应用、test_license.py
- README 顶端加科学上网提示 + LLM 免责声明、Windows 长路径支持
- prompt.py 新增 AI 免责块,禁止输出法律建议和编造数据
Fixed
- P0 安全修复:update_skills 下载限制、license 写入失败检测、限流持久化、公司名路径穿越
- P1 安全修复:PID 校验用 psutil、拖拽上传 100MB 上限
- 四轮代码审计修复:prompt 注入防护、customer 扩展字段、TOCTOU 竞争、大目录文件丢失等 20+ 项
更新方式:在 Trade 聊天页面点击「⬆️ 系统更新」,或终端执行 trade-update
v0.5.0 — Desktop App + License 升级 + 安全加固
新功能
- TradeWin 桌面应用 — 独立 .exe,内嵌 WebView,无需浏览器
- b2b-skill-generator — 用自然语言描述需求,自动生成新 skill
- License Ed25519 非对称签名 — 激活码不可伪造,公钥内置、私钥离线
- License 机器码绑定 — 激活码绑定本机硬件,一码一机
- 申请码机制 — 到期后自动生成申请码,点击可复制
- 公司软删除 — 删除改为停用,数据保留 30 天
- 审计日志 — 公司操作记录写入 ~/.trade/audit/
- trade-restore — 从备份 tar.gz 一键还原
改进
- server.py 拆分为 bootstrap.py + app.py — 可测试性大幅提升
- License 测试覆盖 31 用例 — 补全编解码/状态机/限流/跨机验证
- Windows 部署简化 — 只装 Python,Hermes 自动处理 Node+Git
- Windows 路径适配 — %LOCALAPPDATA% 支持
- guidance bar 改为正常文档流 — 不再遮挡聊天内容
- 定时任务列表实时更新 — 只显示已激活的任务
- cron 输出在所有聊天视图展示 — 不限于每日简报
- 客户管理 company_id 改必填 — 消除跨公司数据泄露隐患
- library root_path 路径穿越防护 — 拒绝 .. 和敏感目录
修复
- License 编解码 base64 roundtrip bug
- _SECRET 遗留引用清除
- CI 添加 cryptography 依赖
- 多项 ruff lint 修复
- 启动日志优化
- PID 文件安全校验
v0.4.4 — 更名为 Smart Trade AI + README 重构 + cron 输出展示
Changes
- 仓库重命名:
foreign-trade-assistant→smart-trade-ai - README 重构:痛点导向首页 + 2 张截图 + 场景化功能分类
Fixes
- 今日简报 cron 输出不展示:进入今日简报时,已完成任务的输出自动作为 AI 对话消息显示
- 系统更新按钮全链路修复:install_skills + update_skills + 模板同步 + 自动重启(跨平台 Windows/macOS/Linux)
/system/update端点 401:移到不受 session token 保护的独立路由组- update_skills 网络超时:增加 3 次重试 + 递增退避
Install
curl -fsSL https://raw.githubusercontent.com/chefroger/smart-trade-ai/main/scripts/install.sh | bashFull Changelog: https://github.com/chefroger/smart-trade-ai/blob/main/CHANGELOG.md
v0.4.2 — 代码质量 + 文档完善
- 多项代码质量修复(3轮审计:json.load→json.loads / CJK token覆盖 / parse函数统一 / count_files性能等)
- SECURITY.md 增加法律合规声明与许可证兼容性表
- README 添加微信联系方式
- 清理过期分析文档,架构图入库
- Roger Lau → Roger Lococo
Full Changelog: v0.4.1...v0.4.2
v0.4.1 — 文档补全 + 边界修复
v0.4.1 (2026-05-19)
Changed
- backup_trade 无数据时以非零退出码退出,不再返回空字符串
- README 测试数、项目结构、开发命令更新
- SECURITY.md 支持版本更新到 0.4.x
Full Changelog: v0.4.0...v0.4.1
v0.4.0 — Hermes v0.14 适配 + 客户价值导向营销 + 20+ Bug 修复
v0.4.0 (2026-05-19)
New
- Hermes v0.14 适配:config.model 从嵌套 dict 变为扁平字符串,Trade 自动兼容两种格式
- 启动时自动从 GitHub 拉取最新 B2B skills,确保 skills 始终与仓库同步
- macOS 开机自启动(launchd,后台静默无终端窗口),安装脚本自动配置;
trade update后自动重启服务 - 定时任务使用说明书:页面上方嵌入零基础 cron 表达式教程,含速查表、符号说明和常见问题
trade update / backup / skills-update子命令正确路由,无需启动服务器即可更新- 输出语言规则:LinkedIn/lead-generation/social-media 三个 skill 均按目标客户语言输出,默认英语
- LinkedIn/lead-generation/social-media 三个 skill 全面转向客户价值导向:内容以客户痛点+解决方案为中心
- TRADE_HOME 环境变量支持:测试和开发环境下工作目录不会污染桌面
Changed
- hermes-agent 从 chefroger fork 迁移到上游 NousResearch/hermes-agent v0.14
- 版本约束从 >=0.12.0,<0.14.0 提升到 >=0.13.0,<0.15.0
- OSINT 背调使用精简 system prompt,不再把文档生成指南带入调查场景
- OSINT 背调时禁止注入历史对话,防止上一轮背调话题污染当前查询
Fixed
- SQLite busy_timeout=30000,防止并发写入 database is locked
- SSE QueueFull 防护:工具事件过于频繁时静默丢弃而非崩溃
- API 异常信息脱敏:异常详情只写日志,前端返回通用错误消息
- customer.update 越权修复:extra 字段更新时缺少 company_id 校验
- api_key 跨 provider 兜底可能导致拿错 key,改为精确匹配
- DELETE /companies/{id} 缺少鉴权:已认证用户可越权删除其他公司数据
- post_install.py 中 urllib.error 未 import 导致 HTTP 错误时 NameError 崩溃
- email_intel.py trio/asyncio event loop 混合崩溃:async 路径改为子进程运行 holehe
- linkedin_verify.py 中 {domain_clean} 占位符未被 f-string 替换
- orchestrator.py LinkedIn 搜索时把 email 当公司名
- 测试中 /tmp 硬编码路径在 Windows 上崩溃
- memory.py 中 import fcntl 在 Windows 上崩溃
- 6 处 ~/.hermes/ / ~/.trade/ 硬编码路径改为平台感知的默认路径
- Windows install.ps1 中 trade.cmd HERMES_HOME 赋值错误 + 未加 PATH
- cron/jobs API 适配 Hermes 实际 jobs.json 数据结构
- 全项目 100+ 函数 docstring 英→中转换 + 150+ if-branch 中文注释补全
Full Changelog: v0.3.0...v0.4.0
v0.3.0 — First Public Release
Foreign Trade Assistant v0.3.0
First public release of the B2B trade AI sales assistant.
Features
- 14 B2B Skills: Customer development, platform diagnosis, social media, LinkedIn marketing, customs data, OSINT due diligence, document generation, daily automation, and more
- 6-layer OSINT: WHOIS + email verification + sanctions screening + tech stack detection + LinkedIn (via Hermes browser) + email registration check
- Customer Management: A/B/C tier system, detail panel, document library linking
- Desktop Work Directory: Auto-created on company setup with 8 categorized folders (quotes, contracts, invoices, specs, etc.)
- SSE Streaming Chat: Real-time tool progress display with keepalive heartbeat
- Session Token Auth: All API endpoints protected
- Multi-company Isolation: Per-company data separation via X-Company-ID
- Cross-platform: macOS / Linux / WSL2 / Windows (native)
- One-click Install: curl | bash and PowerShell scripts
- PyInstaller Build: Standalone .app (macOS) and .exe (Windows)
Tests
- 126 tests covering database, business logic, API, OSINT, and smoke tests
- GitHub Actions CI on Python 3.11 / 3.12 / 3.13
Install
curl -fsSL https://raw.githubusercontent.com/chefroger/foreign-trade-assistant/main/scripts/install.sh | bashFull Changelog: https://github.com/chefroger/foreign-trade-assistant/commits/v0.3.0