Skip to content

SilentFeed 0.3.1

Choose a tag to compare

@wxy wxy released this 06 Dec 06:59
3662700

SilentFeed v0.3.1 发布说明

本版本包含重要的 AI 配置迁移修复、Ollama DNR 规则稳定性优化、测试稳定性改进与类型一致性优化。

🎯 核心修复

Ollama DNR 规则开发模式稳定性 (PR #64, #65)

  • 问题:开发模式下 Ollama CORS 修复规则不稳定,时有时无

    • /api/show 请求返回 403 Forbidden
    • 无法检测模型推理能力(🔬 标识不显示)
    • 日志显示"静态规则集未加载",fallback 到动态规则
    • 生产构建一直正常
  • 根本原因

    • Plasmo 热重载会重新生成 manifest.json
    • watch-dnr.sh 只运行一次就退出,无法应对重新生成
    • DNR 配置被覆盖,静态规则丢失
  • 解决方案

    • PR #64:添加 100ms 延迟等待 DNR 规则加载,改进检测提示
    • PR #65:彻底修复,实现持续监听机制
      • 改进 watch-dnr.sh:持续监听 manifest.json 变化,自动重新应用配置
      • 支持 fswatch(实时)或轮询(兼容)两种模式
      • 简化 DNR 策略:移除动态规则 fallback,只使用静态规则
      • 清理遗留动态规则,避免冲突
  • 效果

    • ✅ 开发模式和生产构建都稳定
    • ✅ Ollama 所有 API 端点正常工作(/v1/*, /api/*
    • ✅ 模型推理能力检测(🔬 标识)稳定显示
    • ✅ 不再出现 CORS 错误

AI 配置结构完全迁移 (PR #63)

  • 问题:部分代码仍使用旧配置字段(aiConfig.modelaiConfig.provider),导致推荐服务出现"未选择模型"误报
  • 解决
    • 推荐服务从 engineAssignment.feedAnalysis 读取任务级配置
    • 支持任务级模型优先,回退到 provider 级配置
    • AI 状态检查使用新结构(providers + engineAssignment
    • 清理 1285 行过时备份代码

配置结构变更

// ❌ 旧结构(已清除)
aiConfig.model, aiConfig.provider, aiConfig.apiKeys

// ✅ 新结构
aiConfig.providers.deepseek?.model
aiConfig.engineAssignment.feedAnalysis.provider
aiConfig.local.enabled

✨ 功能改进

测试稳定性

  • 全量测试稳定通过(92 文件,1487 通过 | 1 跳过)
  • 函数覆盖率 ≥ 70%,行覆盖率 ~73%
  • 修复 UserProfile 测试构造缺失字段
  • 完善 Dexie 事务模拟(添加 timeout

AI 提供者兼容性

  • Ollama OpenAI 兼容路径安全读取 finish_reason(可选字段)
  • 更稳健的推理模式判断逻辑
  • 新增推理截断和空响应边缘测试

开发体验

  • 开发模式下 DNR 规则持续稳定,不再需要频繁重启
  • 支持可选的 fswatch 工具提升监听性能(brew install fswatch
  • 兼容 macOS/Linux 的轮询 fallback 模式

新增测试覆盖

  • db-unrecommended-count.test.ts:订阅源、异常分支与排除规则
  • OllamaProvider.test.ts:推理截断和空 choices 边缘情况

🐛 Bug 修复

  • 修复 Ollama DNR 规则在开发模式下不稳定(时有时无)
  • 修复 DNR 规则检测时序问题(静态规则初始化延迟)
  • 修复推荐服务"未选择模型"误报(尽管实际已配置)
  • 修复 AI 配置状态检查的 provider 派生逻辑
  • 修复测试 mock 与新配置结构不一致

📦 代码质量

  • 删除 3 个过时文件(1285 行备份代码 + dnr-rules.json)
  • 所有 AI 配置引用迁移到新结构
  • 测试 mock 更新为完整配置结构
  • 简化 DNR 规则管理逻辑(移除动态规则 fallback)

🔄 兼容性

  • 无破坏性改动
  • 向后兼容现有配置(自动迁移)

📥 构建与安装

  • 构建:npm run build
  • 打包:npm run package
  • 开发模式:npm run dev(DNR 规则自动监听)
  • 开发加载:参考 docs/HOW_TO_LOAD_EXTENSION.md

🔗 相关 PR

  • #61: 初始类型修复与测试改进
  • #62: 文档与版本同步
  • #63: AI 配置结构完全迁移
  • #64: 修复 DNR 规则检测时序问题
  • #65: 彻底修复 Ollama DNR 规则在开发模式下失效

包大小: 929 KB
测试状态: ✅ 1487 通过 | 1 跳过
覆盖率: 函数 74.54% | 行 73.19%