logo

文鳐智投 · 更新日志

中南电力设计院数智科技 · 投标信息智能监控系统
← 返回投标看板
V1.42 2026-07-20 🤖 对话引擎统一为 GLM-5.2(与文鳐智投本体同款)
  • 修复 chat_engine 清除火山引擎 ARK 残留:变量名 ARK_*→LLM_*,注释/默认值全部更新,代码不再误导
  • 修复 前端欢迎语更正:从「DeepSeek 大模型」改为「GLM-5.2 大模型」,用户看到的文案与实际一致
  • 统一 对话功能与 Hermes 本体共用 config.yaml:GLM-5.2 @ szkj.site,改 provider 只需改 config + 重启 bookmark_server
  • 修复 bookmark_server 重新启动:此前 8090 端口未运行,对话功能不可用,现已恢复
V1.41 2026-06-30 🚀 Tab切换秒开 — Cache-Control 30s + 预加载中标数据
  • 核心 API 响应加 Cache-Control:所有 /items/stats JSON 响应统一加 Cache-Control: public, max-age=30,浏览器 30 秒内同一请求直接走磁盘缓存,零网络开销。结合 get_yesterday_ids() 内存缓存,服务端处理稳定在 3-6ms
  • 优化 页面初始化预加载中标 Tabinit() 完成招标数据加载后,后台 fetch 中标首页数据(type=winning&page=1&size=20),落入浏览器缓存。用户首点中标 Tab → 缓存命中 → 即刻渲染
  • 修复 切 Tab 响应慢(3-4s → <50ms 缓存命中):根因为每次切 Tab 都触发公网 API 请求(1.7s 网络延迟)。配合 Cache-Control + 预加载双重保障,切 Tab 从 1.7s 降至缓存即显
V1.40 2026-06-30 ⚡ 今日新增秒开 — 服务端过滤 306KB→24KB + 并行加载
  • 核心 服务端 is_new_today 过滤:API 新增 is_new_today=1 参数,后端直接返回今日新增 8 条(24KB),而非全量 103 条(306KB),响应体积缩减 93%。配合内存缓存 get_yesterday_ids() 避免每次请求重读归档文件
  • 优化 今日新增并行加载:招标/中标两个请求 Promise.all 并行,去除冗余 page-1 首请求
  • 修复 今日新增数字与台账不一致:badge 8 但只显示 2 行的根因——apiFilter() 分页请求与独立 badge 请求数据不同源。修复后 8+3=11 闭环
V1.39 2026-06-28 🛡️ API噪声防火墙 + 数据一致性保护 — score=0噪音默认排除
  • 修复 API数据噪音混入/items 端点默认 min_score=1 排除 63 条 score=0 的浙能施工/监理/保险类噪音。此前表格展示 157 条(含 63 条 L1 拒绝项),统计卡片却只计 94 条——两者不一致。修复后统一为 94 条有效招标 + 13 条中标
  • 修复 中标Items查询崩溃winning_notices 表无 notice_type 列,查询报错。修复:中标查询时自动补充 'winning' as notice_type
  • 核心 今日新增"显示0"的原因分析:6/24 入库 61 条 score=0 噪音(风电施工/监理),archive 差集计算只看 score>0 有效项。94 条有效项昨天归档全覆盖 → 今日新增=0 属正确行为。噪音已在入库时就存在,不是"今日"新增的
  • 优化 数据一致性保护机制:统一前端卡片(/stats)与表格(/items)的数据源口径,确保「累计招标」「今日新增」不在不同端点间打架
V1.38 2026-06-26 🔧 深圳能源适配器双修复 — 索引页过滤 + .Content正文 + 中标AI评分
  • 修复 深圳能源导航链接误抓为详情extract_detail_links() 新增 /index*\.\w+$ 过滤,/zbggs/index.jhtml、/jggg/index.jhtml 等导航页不再混入。修复前 10/10 被 L1 拒绝,修复后全为真实详情
  • 修复 深圳能源正文提取fetch_detail_text() 优先 .Content div + <h1> 标题 + @\S+@ 模板清理。「面向智能楼宇场景鸿蒙化应用关键技术研究与示范应用项目」65分干净入库
  • 新增 深圳能源结果公告JS_TARGETS 加 jggs/index.jhtml,覆盖招标+中标双链路
  • 优化 中标AI项目评分提升:非竞品中标有强数字化关键词(大模型/LLM/设备诊断/鸿蒙/智能楼宇/AI平台)时保留完整基础分25分
  • 诊断 蒙西电网确诊:适配器无 bug,平台 100% 电力设备/基建采购(变电站、ONU、接地变),0 件数字化项目,评分全拒属平台特性
V1.37 2026-06-26 🛡️ Nginx守护 + 蒙西直连 + 中标修复 + 三桶油 + 定时任务全线重构
  • 核心 Nginx端口守护系统nginx_guardian.py + systemd timer 每分钟检测80端口归属、nginx服务状态、HTTP 200可达性。异常时自动杀掉占用进程并重启nginx,全过程 <3秒。企微Webhook秒级告警,30分钟冷却防刷屏
  • 修复 诊断 mkdocs 抢80端口事件:6/26 16:39 mkdocs进程抢占80端口致nginx反复启动失败5次,守护系统部署后彻底杜绝此类静默故障
  • 新增 蒙西电网直连适配器adapter_mengxi.py — curl直连 wzglb.impc.com.cn:82,JSP+AJAX无WAF,116条ID全量扫描,云平台四期项目52分入库
  • 修复 中标人提取重写:南网中标公告从纯文本正则 → BeautifulSoup HTML表格解析。新增「成交人」关键词覆盖。回填后 7/8 条中标有中标人数据(此前仅 3/8)
  • 修复 今日新增逻辑修正:从 publish_date/fetch_date 字段判断 → 对比昨天归档 data.json 差集(is_new_today)。今日新增 = 昨天库里没有、今天入库的。NEW 徽章统一此口径
  • 核心 门户噪音防火墙:评分引擎 L1 判别器增强——浙能「欢迎来到 V1.0」类门户导航页即使含「招标」字样也直接拒绝。清理 6 条 70 分假阳性
  • 修复 中标Tab去收藏按钮:删除中标列表标题列和操作列的双重收藏 ⭐
  • 优化 评分引擎金额提取加固:新增「中标金额/成交金额/投标报价」纯文本正则兜底,覆盖 HTML 表格外的金额场景
  • 重构 定时任务全线调整:pipeline 改为每天 8:00(原 9:00+18:00),新增企微推送 8:30 → 到公司即收推送。删除重复 cron 和 dailyreport timer
  • 优化 三桶油全路径深度探测:中石油(验证码弹窗)、中石化(CDP超时/网络不可达)、中海油(193B JS空壳)、ctbpsp(滑块验证码)、dlzb(无三桶油板块) — 5条路径全部确认不可达,更新探测矩阵文档
V1.36 2026-06-26 12:56 📱 手机端全面重做 · 统计卡片逻辑统一
  • 优化 手机端卡片重做:Twitter 风格 2 列 Grid 布局,相关度分数独立一行、标题粗体 15px、预算/地域/日期分行清晰展示、右上角 ⋯ 菜单完整 CSS 加持(圆形按钮+弹窗+遮罩+动画)
  • 优化 筛选栏折叠交互:手机端搜索框旁新增「☰ 筛选」胶囊按钮,默认隐藏筛选条件,点击展开带动画,展开后自动触发横向滑动提示
  • 优化 搜索框一体化:放大镜嵌入输入框左侧、搜索按钮嵌入右侧,形成完整胶囊 pill 形状
  • 修复 回到顶部按钮消失:补回 #btnBackTop CSS(固定右下、滚动 300px 后淡入)
  • 修复 卡片横向溢出:table min-width:800px → 0,卡片 width:100% + box-sizing:border-box,单元格 overflow:hidden
  • 修复 统计卡片逻辑不统一:高相关项目从仅统计招标 → 招标+中标合计数;横幅统一显示「招标X条 + 中标X条」拆分
  • 修复 中标 NEW 标签缺失:中标表格标题列补回 isNew() 判断和 new-badge 渲染
  • 修复 筛选栏手机端样式错乱:filter-scroll-wrapper 改为 display:flex+nowrap,mask-image 渐变淡出,filter-row → display:contents 摊平子元素到同一行
  • 优化 桌面端不受影响:toggle-btn 桌面隐藏、kebab 桌面隐藏、筛选栏桌面保持单行
V1.35 2026-06-26 12:00 🔥 紧急修复:数据加载失败 + 筛选栏样式错乱
  • 修复 全页白屏/数据加载失败:app.js init() 中 document.getElementById('lastUpdate') 返回 null → TypeError → init 中断 → doFilter() 永不执行 → 表格永远显示0条
  • 修复 index.html + app.js + report_generator.py + polish_report.py:五处同步修复 lastUpdate 元素缺失问题
  • 修复 筛选栏多行错乱:桌面端恢复 V1.27 单行紧凑布局 — .filter-bar → flex+nowrap, .filter-row → display:contents 合并子元素, 搜索框+下拉+日期+预算+导出+重置全部在一行
  • 修复 polish_report.py 双阶段注入:Stage1 检测旧模板「系统运行中」→替换为 lastUpdate span;Stage2 注入密度按钮
  • 优化 v1.0-stable 快照同步修复
V1.34 2026-06-26 15:30 🛡️ 代码BUG审计 · 系统稳健性三重修复
  • 修复 polish 脚本重复注入:守卫条件从依赖易变的 CSS 规则改为版本标记 /* ENHANCE_V5 */,连续运行两次不再重复注入 CSS/JS
  • 修复 bookmark_server sys.path 污染:每个 API 请求都会 sys.path.insert 追加路径 → 将 chat_engine 导入移至模块顶层,移除请求中的重复插入
  • 修复 report_generator 静默吞错:竞品数据解析 except: passexcept Exception as e: logging.warning(...),异常可追溯
  • 优化 权限自动修复:polish 脚本末尾执行 find ... -type d -exec chmod 755 {} + && find ... -type f -exec chmod 644 {} +,防止 Nginx 403
  • 技术 幂等性验证:polish 脚本灰度测试通过,连续两次运行输出「跳过」
V1.33 2026-06-26 14:00 🚀 PM级交互全面升级:空状态/URL同步/IME/折叠/密度/图例/快捷键/预览
  • 核心 空状态友好提示:搜索无结果时显示引导文案 +「清除所有筛选」按钮,不再空白
  • 核心 URL 状态同步:筛选参数写入 URL(?q=&cat=&score=),可复制链接分享筛选视图给同事
  • 核心 中文输入法适配:搜索框监听 compositionstart/end,中文输入法下回车不触发搜索,统一按钮确认
  • UI 筛选栏折叠:日期、预设、预算折叠到「更多筛选 ▸」按钮,降低 12→7 个常驻控件,认知负荷减半
  • UI 行密度切换:头部新增「≡」按钮切换紧凑/舒适模式,localStorage 持久偏好
  • UI 评分图例:表头「相关度 ⓘ」点击弹出颜色说明(🟢85+ 高相关 🟡60-84 中相关 ⚪<60 低相关)
  • 功能 键盘快捷键/ 聚焦搜索 Esc 清除筛选 Ctrl+Enter 导出 Ctrl+←→ 切换Tab Ctrl+S 收藏
  • 功能 行标题hover预览:桌面端长标题hover 600ms 弹出全文气泡,不打断浏览
  • 技术 polish_report.py 升级 v5,持久化所有 V1.33 新 HTML 结构
V1.32 2026-06-26 08:30 🎨 自研Logo替换 + 桌面筛选栏修复 + ⋯ 菜单隐藏
  • 核心 全站Logo替换:favicon / apple-touch-icon / 分享封面全部改用中南电力数智科技自研Logo(从旧版logo.png重制),操作手册+更新日志同步
  • 修复 桌面端筛选栏截断:日期后面的按钮不再被 overflow:hidden 裁切,filter-row 允许换行
  • 修复 桌面端 ⋯ 菜单隐藏:省略号仅在手机卡片视图显示,桌面端表格中不出现
  • 优化 操作手册分享封面:OG 元标签注入,分享到微信/飞书显示文鳐智投封面图
  • 优化 操作手册FAQ精简,移除冗余联系信息
V1.31 2026-06-26 03:30 🧭 统计卡片独立视图 · 不再污染搜索框 · tooltip 手机适配
  • 核心 统计卡片独立筛选模式:点击「高相关/今日新增/累计招标/累计中标」不再污染搜索框(之前会把 "70" 填入相关度输入),而是弹出专属蓝色 banner「📊 高相关招标 · 12 条」,点击 ✕ 回到全量视图
  • 修复 统计卡保持全局计数:进入卡片筛选后,4张统计卡片保持原始总数不变,banner 负责告知当前子集信息
  • 修复 点击同一卡片取消筛选:再次点击已激活的卡片即取消,回到全量
  • 修复 tooltip 手机端气泡居中+边界保护:点高相关 ? 弹出气泡自动居中、左右12px留边不超出屏幕,点击空白消失
  • 优化 卡片激活态蓝色边框高亮,筛选 banner 支持暗/亮双主题
V1.30 2026-06-26 02:30 📨 企微推送重启 · 精简为单一招标TOP8卡片
  • 核心 KILL_SWITCH 关闭:企微推送恢复,KILL_SWITCH=False
  • 重构 推送精简为一条消息:删除摘要Markdown、中标卡片、大标预警、早晚间分段,仅保留「此为今日的招标相关度TOP1~TOP8」引导语 + 8张招标卡片
  • 修复 评分阈值适配100分制:SQL过滤从 >=7 改为 >=50;emoji 从 ≥7→🟢 改为 ≥70→🟢、≥50→🟡
  • 优化 卡片描述精简:招标单位替换来源站点,相关性显示整数分
V1.29 2026-06-25 18:30 📱 筛选栏 H5 交互重构 · 横向滑动 · 自动引导
  • 新增 手机端筛选栏横向滚动:客户/地域/相关度/日期/预算等胶囊不再换行,改为单行横向滑动(Twitter/Instagram 同款)
  • 新增 右侧渐变淡出提示:滚动容器右侧 40px 渐变遮罩(透明→背景色),暗示"还有更多可滑";滑到末尾自动消失
  • 新增 首次进入自动演示滑动:页面加载 1.5 秒后筛选栏自动右滑 100px 再弹回,仅演示一次(sessionStorage 记忆),解决可发现性问题
  • 修复 搜索框与筛选胶囊重叠:搜索框从 filter-row 中分离为独立 search-row,手机端独占第一行(全宽胶囊 44px),筛选行在下方独立滑动
  • 修复 桌面端搜索框与胶囊高度不对齐:全部统一 height:36px + box-sizing:border-box,视觉归整
  • 优化 筛选栏布局结构:桌面端搜索+筛选并排一行;手机端搜索独占一行、筛选行下方独立滑动
  • 交互 滚动检测用 ResizeObserver 实时感知,动态增删 scrolled-end 类控制渐变显隐
V1.28 2026-06-26 01:15 📱 移动端卡片化 + 数据更新时间 + 统计口径修正
  • 新增 头部数据更新时间:「系统运行中」→「数据更新: 06-25 20:13」,一眼判断新鲜度
  • 新增 手机端表格卡片化:≤768px 时表格转为竖排卡片(data-label 驱动),表头隐藏,每行独立卡片,触摸友好
  • 修复 「高相关项目」统计口径:从「今日新增中≥70分」改为「全部≥70分项目」,标签与数值语义一致
  • 修复 「高相关」卡片点击不再限定今日,展示全部高分项目
  • 重构 手机 CSS 全面重写:隐藏表头,行→卡片,td→flex 行,过滤栏自动换行
V1.27 2026-06-26 01:00 ✨ 专业体验五连升 — 骨架屏/快捷键/展开详情/趋势/提示
  • 新增 表格骨架屏:数据加载时显示脉冲动画占位行,替换「显示 0 条」生硬闪现
  • 新增 键盘快捷键/ 聚焦搜索框,Esc 优先关闭聊天面板→清除搜索
  • 新增 行点击展开详情:点击任意行展开内嵌详情卡(招标单位/公告类型/预算/来源平台/内容摘要),再次点击收起
  • 新增 统计卡片环比趋势:「今日新增」「高相关」旁显示 ↑N / ↓N 与昨日对比,一眼看涨跌
  • 新增 高相关 tooltip:「高相关项目」旁 ? 图标,hover 解释 ≥70 分标准
  • 修复 聊天欢迎语删除已废弃的「竞品动向追踪」,改为「智能评分排序」
  • 重构 评分条阈值同步:score-hi ≥70、score-mid ≥40(与筛选默认 70 一致)
V1.26 2026-06-26 00:30 🔀 反馈合并入聊天面板 + 鼠标拖动
  • 新增 反馈合并入聊天面板:删除独立悬浮按钮,反馈入口整合进聊天组件(预设栏「📝 反馈问题」+ 头部 📝 按钮),点击切换反馈模式
  • 新增 鼠标拖动:聊天面板头部可拖拽移动,避免遮挡页面内容,松开后停留在新位置
  • 新增 反馈提示文案:欢迎消息中新增「💡 发现数据有误?点击右上角 📝 直接反馈!」
  • 重构 聊天组件 v3→v4:新增加 feedback mode、submitChatFeedback()、drag 系统,chat-widget.css 同步升级
  • 重构 polish_report.py v2→v3:移除独立反馈注入,精简为纯 chat-widget 注入
V1.25 2026-06-26 00:25 💬 用户反馈系统 — 悬浮按钮+侧滑面板
  • 新增 右下角悬浮反馈按钮:蓝色圆形 💬,固定在视口右下角,暗/亮双主题适配
  • 新增 侧滑反馈面板:400px 宽,含文本域+提示+提交/取消按钮,带遮罩层,移动端自适应全宽
  • 新增 通用反馈 API:bookmark_server 新增 type=general 支持,不限频提交,自动写入 HOT 记忆供凌晨自检
  • 新增 polish 持久化:反馈组件 CSS/HTML/JS 全部注入 polish_report.py,报告重新生成不会丢失
V1.24 2026-06-26 00:30 🐛 浙能适配器 — 标题截断+日期错误双修复
  • 修复 标题截断:正则在"浙江浙能中煤…"处因\s*浙能停止条件误截断,重写为"XX公司XXX招标公告"完整匹配模式
  • 修复 日期提取:从全文扫\d{4}年\d月\d日 → 优先在"招标人/招标代理机构"附近匹配公告落款日期,兜底用URL日期
  • 修复 已有脏数据:id=389 标题从"招标公告浙江浙能浙江"→完整标题,日期从2026-06-26→2026-06-24
V1.23 2026-06-26 00:20 🐛 时区BUG — 今日新增卡片与数据不一致
  • 修复 todayStr() 时区错误:toISOString() 取 UTC 时间,比北京时间慢 8h,导致前端"今天"判断错位一天
  • 修复 改为 getFullYear/getMonth/getDate:使用浏览器本地时间,与后端 datetime.now()(CST)对齐
  • 根因 服务端 Python datetime.now() 用系统时区(UTC+8),前端 Date.toISOString() 用 UTC(0),两端时差 8 小时
V1.22 2026-06-26 00:15 🔍 筛选维度补全 — 任意相关度 + 预算下限
  • 核心 相关度自由输入:从固定下拉(≥4/≥7)→ number输入框 0-100,可任意设阈值
  • 核心 预算金额筛选:新增"预算≥万元"输入框,输入50即筛≥50万项目
  • 修复 高相关阈值 7→70:统计卡"高相关项目"从≥7(全部57条)→ ≥70(真正高分12条)
V1.21 2026-06-26 00:05 💰 招标预算金额列 — 招标/中标双金额体系
  • 核心 招标表新增预算金额:位于招标单位与地域之间,支持排序和CSV导出
  • 优化 金额格式化:≥1万显示"X万",否则原值;无数据显示"—"
  • 修复 排序三角JS驱动:doFilter()中补充sort-asc/sort-desc class管理,此前CSS写了但JS从未触发
V1.20 2026-06-25 23:42 🎨 排序三角指示器 — 可排序列始终显示 ▴▾
  • 优化 双三角排序指示器:所有可排序列表头右侧显示上下叠放的 ▴▾,未排序时半透明,排序时高亮为蓝色
  • 优化 position:absolute 定位:三角固定在列头右侧,不干扰字段名文本流
V1.19 2026-06-25 23:35 🧹 UI精简 — 删趋势/竞品Tab + 中标金额列
  • 核心 删除趋势/竞品Tab:暂不需要,精简导航为招标+中标+收藏三Tab
  • 核心 中标金额列:中标表新增中标金额列(winning_amount),支持排序和CSV导出
  • 修复 app.js?v=10缓存:去掉版本参数,Nginx no-cache确保最新JS生效
V1.18 2026-06-25 23:27 🐛 NEW 标签语义修正 — 发布日替代抓取日
  • 核心 NEW = 发布日期当天:isNew() 从 fetch_date → publish_date,用户心智"今天发布=新"而非"今天抓取=新"
  • 修复 今日新增统计卡同口径:report_generator.py 的 today_total/todayH 从 date(fetch_date) → substr(publish_date,1,10)
  • 修复 日期筛选 11 条仅 9 条带 NEW:id=316/312(6.24抓取但6.25发布)此前 fetch_date 口径丢 NEW,现 publish_date 口径全部正确
V1.17 2026-06-25 🐛 is_new 数据源根治 — fetch_date 替代静态 DB 字段
  • 核心 isNew() 改为实时计算:不再读静态 is_new DB 字段(昨日抓取但今日发布的项目 is_new=0,NEW标签缺失),改为基于 fetch_date 与今天日期比较
  • 修复 todayOnly 过滤同步修复:getFilt() 中 todayOnly 模式也从 is_new===1 → isNew(i),确保统计卡片与筛选结果一致
  • 修复 日期筛选 vs 今日新增卡片 口径劈叉:前者按 publish_date 过滤、后者按 fetch_date 过滤,同一项目 NEW 标签不一致 → 现在各自独立且合理
V1.16 2026-06-26 00:05 🔍 PM细节审查 — NEW图标精准化 + 交互缺口修补
  • 核心 NEW图标精准化:is_new 从 DB DEFAULT 1(全部57条假NEW)→ 基于 fetch_date 实时判断(今日11条真NEW)
  • 修复 累计中标卡片不可点击:补 onclick="sw('win')" + cursor:pointer,4张统计卡片均一致可交互
  • 修复 Header "站点 0/0" 假数据:crawl_log 为空时隐藏站点信息,不再误导用户
  • 优化 data.json 新增 fetch_date 字段:前端可用于日期判断,不再依赖不可靠的 is_new DB 列
V1.15 2026-06-25 23:59 🐛 启动态BUG修复 — 假数据闪烁 + 日期残留
  • 修复 统计卡片假数据闪烁:模板硬编码默认值 120/7 → 改为 0 + CSS loading动画(opacity过渡)
  • 修复 日期筛选跨会话残留:saveFilters/restoreFilters 之前保存 dateFrom/dateTo 到 localStorage,导致下次打开只显示当天数据(11条)
  • 优化 统计卡片 loading 态:init() 前所有卡片半透明(opacity:.3),数据加载完成后淡入
V1.14 2026-06-25 23:55 🧹 交互冗余清理 + 产品经理级审查
  • 修复 删除冗余"⭐ 收藏"按钮:有独立收藏Tab后,筛选栏里的收藏开关按钮成为多余交互入口,造成认知负担
  • 修复 删除 swStar() 函数 + btnStar 引用:连带清理3处残留代码
  • 优化 Tab切换自动清空勾选:selectedIds.clear() 避免跨Tab勾选污染
  • 优化 离开收藏Tab自动关闭starOnly:切到招标/中标Tab不再遗留starOnly=true
  • 优化 收藏Tab空状态友好提示:"⭐ 暂无收藏,在招标列表中点击 ☆ 即可收藏"
  • 优化 统计卡片点击保持当前Tab:在收藏Tab点"今日新增"不强制跳回招标
  • 优化 招标Tab无结果空状态:"🔍 没有匹配的结果,请调整筛选条件"
V1.13 2026-06-25 23:50 🖱️ 交互系统全面激活 — 收藏联动 + 批量操作 + Toast反馈
  • 核心 收藏Tab实时联动:点击⭐ → Badge数字+1 → Toast提示"已收藏" → 切到收藏Tab立即显示;取消收藏同理(此前Badge永远显示0)
  • 核心 Toast即时反馈:收藏/取消收藏/导出等操作均有2秒浮动提示(绿色=成功、橙色=取消、蓝色=信息)
  • 新增 批量选择 + 导出已选:每行checkbox + 表头全选 → "导出已选"按钮一键导出勾选项CSV
  • 修复 收藏Badge永远为0:新增 updateStarBadge(),toggleStar()/init()/loadBookmarks 三处调用
  • 修复 收藏Tab无独立视图:sw('star') 正确切换 starOnly=true + 复用招标表格 + Badge实时反映
V1.12 2026-06-25 23:30 🔧 布局崩溃修复 + 🛡️ 注入幂等守护
  • 修复 页面布局完全崩溃:report_generator.py 模板中 tab-bar 的 </div> 缺失,导致表格被嵌套进 flex 容器(display:flex; gap:4px),整页扭曲
  • 修复 polish_report.py 重复注入:LIGHT_THEME_CSS 和 toggleTheme() 每次抛光都追加一份,导致 CSS 块和 JS 函数膨胀(2份→1份)
  • 优化 polish 幂等检查:注入前先检测 'Light Theme' / 'function toggleTheme' / 'chat-widget' 是否已存在
  • 优化 page_size 选择器兼容:app.js 中 init() 自动恢复用户偏好的每页条数
V1.11 2026-06-25 23:00 🎨 专业布局重设计 + 📊 评分粒度优化 + ⭐ 收藏Tab
  • 核心 评分引擎 v12 精细化:步长从+35/+18/+8 降为 +12/+6/+3,新增多样性奖励(+4/类型)和新鲜度奖励(+1~5),100分从8条→4条,评分分布从4档展开到20+档
  • 核心 全页面布局重设计:对标专业投标平台——4卡片统计行、两行筛选栏、色条相关度、彩色客户标签、专业暗蓝基调
  • 新增 收藏独立Tab:点⭐后一键切到收藏视图,无需再点筛选按钮
  • 新增 统计卡片可点击:点"今日新增"→自动设置今日日期筛选;点"高相关"→自动切换高相关度
  • 新增 分页条数选择器:25/50/100条可选
  • 修复 客户分类去emoji:"🔵 电力/央企/工业"→"电力/央企/工业",全库批量清洗
  • 修复 id=359地域脏数据:"标包1:广东蓄能大厦"→"广东"
  • 修复 明亮模式文字不可读:CSS变量覆盖 + 40+条light规则,表格文字从#64748b→#1e293b
  • 修复 日报重新生成:清理过期垃圾数据,去标题前缀
  • 优化 三层拦截架构完善:L1页面判别器(crawl_pipeline) + L2排除层(scoring) + L3中标独立评分
V1.10 2026-06-25 22:30 🧹 中标数据大清洗 + 🛡️ 三层拦截架构(根治,非擦地)
  • 根因 管道1 batch_crawler(70%垃圾):87站泛爬虫无页面类型判别→平台首页/导航页畅通入库。修复:L1拦截器加14个平台信号词
  • 根因 管道2 nanwang_adapter(20%):南网适配器不验证抓到的HTML是公告详情还是列表页/面包屑。修复:L1拦截"您现在正在浏览""首页 >"
  • 根因 管道3 DIGITAL_GATE泛化(10%):"系统""服务"太宽,锅炉正文含"系统"→100分。修复:NON_DIGITAL_EXCLUDE + STRONG_DIGITAL组合命中
  • 新增 L1 页面类型判别器:insert_notice() 入口处检查14个平台信号词(您现在正在浏览/首页 >/APP下载/欢迎来到/公告信息 公告信息...),命中直接丢弃
  • 新增 L3 中标独立评分:中标不再和招标共用评分。竞品中标→正常分;非竞品中标→须有明确数字化关键词(管理平台/监控系统/APP/BIM)否则丢弃
  • 清理 中标表33→7:删14条平台首页+2条列表页+10条非数字项目+2条漏网炉类
  • 文档 根因分析写入 data-quality-guard skill,三层拦截架构文档化
V1.9 2026-06-25 21:40 🧹 数据质量大扫除 + 🔧 regex 字符截断修复 + 🐛 双重组件去重
  • 修复 地域字段混入正文垃圾:REGION_PATTERNS 排除集漏了中文句号「。」,导致正则跨句子吞并(如"广州2.4资格审查方式:资格后审2.5招"→修复后"广东"),影响5条
  • 修复 86条南网标题前缀:"采购公告 > 招标公告 > xxx" → 在 score_item() 中循环剥离「采购公告/招标公告/公示公告/非招标公告 >」前缀
  • 修复 招标单位字段混入联系人/电话:BIDDER_PATTERNS 排除集加「。」,且去掉 re.sub(r'\s+',' ') 换行压缩,让 regex [^\\n] 正确截断
  • 修复 聊天组件双重注入:polish_report.py 改为幂等检查(if 'chat-widget' not in html),避免每次抛光叠加重复的 <script> 和 <link>
  • 修复 封面/Logo 403:img_gen/covers/cover_1~8.png + img/logo.png Permission denied → chmod -R 755 /var/www/html/bidding/
  • 修复 13条平台首页/导航页误抓:删除"南方电网电子采购交易平台 您好!欢迎使用...""中国招标投标协会 年会""易招标-首页""深圳能源电子招标投标平台-首页""详情页 首页 主体信息..."等非项目页面
  • 修复 6条浙能智慧供应链平台首页误抓:"浙江能源集团智慧供应链一体化平台V1.0 欢迎来到..."
  • 修复 武昌造船标题面包屑:"中国船舶电子招标投标平台-武昌造船...您当前的位置:首页 >..."→"武昌造船双柳厂区视频监控系统招标公告"
  • 优化 数据库清理:删除20条垃圾数据,净数据从153条精简为133条(净增前曾达177→203→166→153)
  • 优化 REGION_PATTERNS 增加 {1,20} 长度截断,防止未来同类溢出
V1.8 2026-06-25 📡 评分v11扩容 + 🐍 Python依赖断裂修复 + 📊 数据策略
  • 核心 评分引擎v11:DIGITAL_GATE新增30+IT信息化关键词(信息技术、软件开发、数据治理、网络设备、服务器、虚拟化、SCADA、容灾等),87站batch通过率从1.5%提升
  • 核心 评分最低分55→50:让IT服务类项目(运维/网络/服务器采购)也能入库
  • 优化 STRONG_KEYWORDS同步v11:+18分区新增通信系统、集控系统、协同办公、OA系统、接口开发等
  • 修复 🐍 bs4依赖断裂:systemd用系统python3(无bs4),三路采集全崩→pipeline_master.sh改为venv Python路径
  • 修复 push_daily_report.sh + wenyao-selfheal + wenyao-memory 全部切换venv Python
  • 修复 数据膨胀策略:data.json 6MB→87KB,精简字段(移除raw_text/raw_html/content_summary),解析失败/title/score保持原生类型
  • 修复 监控页聊天组件缺失:index.html补充<script src="chat-widget.js">引用
  • 修复 doFilter()崩溃:relevance_score保持number类型,不再toString后调toFixed
  • 新增 data_light.json:4字段极简版API(id/title/score/source),加载速度提升10x
  • 优化 Nginx配置持久化:wiki.conf备份到sites-available,守护脚本增加配置完整性校验
V1.7 2026-06-24 20:41 💬 对话链接化 + ⏱️ Systemd定时 + 🔧 反馈修复×3
  • 核心 对话引擎v3链接化:DeepSeek回答强制带 [项目](URL) 可点击链接,前端Markdown→<a target="_blank">渲染
  • 核心 定时迁移至systemd:Hermes Cron 3分钟硬中断→systemd timer(7200秒超时),管线不会再被砍死
  • 修复 item 361:补抓预算 55.79万元 + 地点广州 + 招标人南方电网科学研究院有限责任公司
  • 修复 item 267:2024年旧公告降权至50分
  • 修复 item 121:2025年过期资格预审降权至50分
  • 新增 systemd服务:wenyao-pipeline.timer(9:00+18:00) + wenyao-dailyreport.timer(20:00)
  • 优化 长记忆引擎:对话v3、定时迁移、链接规则全量入库 COLD/WARM/HOT 三层
V1.6 2026-06-24 🤖 AI自然语言对话 + 反馈自动修复机制
  • 核心 自然语言对话引擎:chat_engine.py — 模式匹配→SQL查询→格式化结果,零外部API依赖
  • 核心 浮动聊天组件:监控页+日报页右下角💬按钮,打开对话框即可对话
  • 新增 6个预设问题:智慧工地/集控中心/华润/南网AI/高相关/中标排行,一键查询
  • 新增 时间解析:自动识别"最近一周/一个月/三个月/今天"等自然语言时间
  • 新增 关键词匹配:20+行业关键词(AI/BIM/数字孪生/物联网等)自动匹配过滤
  • 新增 金额统计:中标查询自动汇总总金额
  • 核心 反馈自动修复机制:auto-feedback-fix skill — 收到点踩→自动诊断→修复→回填→重生成日报
  • 修复 国家能源适配器 v2:新增跨行表格解析 _extract_from_table(),提取中标人/中标金额
  • 修复 南网预算提取:加 budget_amount 列 + extract_budget_from_content() + 管线自动填充
  • 修复 日报默认明亮模式 + 🌓主题切换按钮 + localStorage持久化
  • 修复 更新日志 logo 404 → img/ 目录权限 754→755
  • 优化 API 服务升级:新增 /chat 端点,支持 GET 预设问题 + POST 自然语言查询
  • 优化 反馈修复5步闭环铁律:诊断→修代码→回填数据→重生成日报→主动报告
V1.5 2026-06-24 🎯 日报系统 + 反馈闭环 + 书签联动
  • 核心 每日分析日报:每晚20:00自动生成HTML报告(招标+中标双Tab),含AI逐条分析
  • 核心 反馈闭环系统:每条日报分析卡带 👍点赞 / 👎点踩 按钮,点踩弹出评论框记录理由
  • 核心 书签服务端同步:前端收藏 ⭐ 自动同步到服务器,日报读取书签做深度解读
  • 新增 书签同步 API(Python 微服务 :8090 + Nginx 反向代理),跨设备恢复
  • 新增 反馈收集 API:点踩理由自动写入 HOT 记忆,供 AI 下次会话感知并迭代评分关键词
  • 新增 招标分析维度:招标人/内容/金额/相关度/建议(重点关注→暂不考虑)
  • 新增 中标分析维度:中标人/招标单位/金额/竞品分析/收藏提醒/非中南院预警
  • 新增 中标卡片判定:本公司中标 ✅ / 竞品中标 ⚠️ / 大标≥500万 💰 自动标记
  • 优化 企微推送 v7:取消竞品卡片,招标/中标卡片前加引导语「请群里的各位领导同事过目」
  • 修复 app.js 升级:收藏同步+服务端恢复书签,版本号 → v8
  • 优化 Nginx 守护扩展:新增 API 微服务健康检查和自动恢复
V1.4 2026-06-24 四连推 + 封面固化 + 标题超链接
  • 核心 企微推送 v6 四连推:摘要 → 招标TOP8 → 中标TOP8 → 竞品分析
  • 新增 中标卡片推送:TOP8 中标项目独立图文卡片
  • 新增 竞品分析卡片推送:核心竞品排名+中标次数+金额
  • 新增 大标预警:≥500万中标项目在摘要顶部红色预警
  • 核心 封面固化:8 张纯数字封面(1~8),深色底+大数字,永不乱码
  • 修复 AI 封面废弃:通义万相不稳定 → 固定封面,零 API 依赖
  • 修复 封面图 404:img_gen 目录权限 754→755,nginx 可读
  • 优化 报告标题可点击:点击标题直接跳转原始招标页面
  • 修复 ai_cover.py + pipeline_master.sh 目录权限自动修正
V1.3 2026-06-24 no_agent 管线 + 缓存修复 + 中标分流
  • 修复 Cron DeepSeek API 断连(Broken pipe)→ 改 no_agent 主控脚本
  • 核心 pipeline_master.sh:纯 shell 直跑 6 阶段,零 LLM 依赖,永不超时
  • 修复 Nginx 缓存导致更新日志不可见 → 全局禁用缓存(no-cache, no-store)
  • 修复 batch_crawler.py 中标检测缺失 → detect_notice_type() 19 个关键词自动分流
  • 修复 早 9:00 扫描因 API 断连全部 error,已补跑完成(118 条库存)
V1.2 2026-06-24 Nginx 防护 + 87 站全覆盖 + 自动更新日志
  • 核心 Nginx 三级防护:频率限制(8r/s + burst 12)防爬防刷
  • 核心 安全响应头:HSTS / X-Frame / CSP / Referrer / XSS 六层防护
  • 核心 Nginx 健康守护脚本:每分钟检查,挂了自动重启(start→reload→restart)
  • 核心 采集管线 v3:从 5 专属平台 → 87 站 listing_found 全覆盖
  • 核心 四连跑采集:pipeline + dedicated + batch_crawler(87站) + chromium(JS增强)
  • 新增 三峡集团适配器(crawl_sanxia)接入管线
  • 新增 国家电投适配器(crawl_guodianta)接入管线
  • 新增 中广核 JS-SPA 双保险(Chromium + API)接入管线
  • 优化 修复 http2 弃用警告(listen http2 → http2 on)
  • 新增 更新日志自动维护机制:每次重大变动自动写入 changelog.html
  • 优化 定时任务 v2→v3:早 9:00 / 晚 18:00 各跑一次全量四连跑
V1.1 2026-06-24 多平台适配器矩阵
  • 核心 浙能集团适配器:iframe 列表抓取 → 41 条入库(含智能大坝/智能调控 100 分项目)
  • 核心 国家能源集团适配器:国能e招 Chromium 渲染 → 17 条入库(数智科技技术服务商 100 分)
  • 新增 中广核平台 API 发现(/portalApi/content/queryPage),待浏览器方案攻克
  • 新增 六大六小+国网+南网+浙能全平台扫描评估:华电/三峡/国投电力有信号
  • 优化 采集管线升级:集成南网/浙能/国家能源三路适配器
  • 优化 国家能源数据清洗:过滤终止公告/招标计划/UI 噪声
  • 新增 适配器编写 Skill(power-platform-adapters)保存经验
  • 确认 大唐全站 SSO 锁死、国网不可达、华能不可达
V1.0 2026-06-23 交互完整版
  • 新增 行勾选 checkbox + 表头全选,导出 CSV 优先导出勾选项
  • 新增 ⭐ 收藏筛选按钮,只看已收藏招标
  • 新增 简报标签点击高亮(蓝色背景),选中/取消视觉反馈
  • 新增 数据行序号列 #
  • 新增 自定义 Logo 替换 emoji 图标
  • 优化 搜索栏缩窄至 240px,工具栏布局紧凑
  • 修复 导出 CSV 类型安全 + try-catch 错误提示
  • 修复 收藏 ID 比较类型不一致导致过滤失效
  • 新增 明暗主题切换按钮(更新日志页面)
  • 优化 默认明亮风格
V0.9 2026-06-23 趋势 & 多选增强
  • 新增 SVG 趋势图表引擎:柱状图 + 曲线图(网格线+Y轴刻度+面积填充)
  • 新增 每张趋势卡片独立 📊/📈 切换按钮,不联动
  • 新增 客户/地域多选筛选器,点标签追加并集,再点取消
  • 修复 chartModes 用 Map 替代 {} 完全隔离
  • 修复 select 选项排序——「其他」永远排最后
  • 修复 多选列表盒去除 size=1 + dispatchEvent change 刷新
V0.8 2026-06-23 UX 全面增强
  • 新增 ⭐ 星标收藏功能(localStorage 持久化)
  • 新增 🆕 NEW 今日数据标记徽章
  • 新增 键盘快捷键:/ 聚焦搜索 · Esc 清空退出
  • 新增 筛选条件 localStorage 记忆
  • 优化 Tab 格式、标题、加载骨架、死链接兜底
  • 修复 竞品标签空白、趋势缺当月、FAQ 噪声入库
V0.7 2026-06-22 主题 · 版权 · 长记忆
  • 新增 🌓 明亮/暗黑风格一键切换(localStorage 持久化)
  • 新增 长记忆系统:通义千问 Text-Embedding-V3 向量化 + 语义搜索 + 三层热温冷
  • 优化 版权统一格式:© 中南电力设计院数智科技 · 文鳐智投 2026
  • 修复 报告空白(JS 引号断裂 → 拆分独立 app.js)
V0.6 2026-06-22 企微卡片 & AI 封面
  • 新增 企微推送 v3 精美卡片风格(摘要 Markdown + 图文卡片)
  • 新增 通义万相 AI 封面:TOP2 招标自动生成,缓存永久复用
  • 新增 客户分类引擎(6 大客户类别标签)
  • 优化 全部招标改用 AI 封面,移除 Pillow 兜底
V0.5 2026-06-21 评分引擎 v4-v6
  • 核心 评分引擎 v4:基于 48 个真实项目清单重写关键词权重
  • 核心 评分引擎 v5:EPC 施工噪音清零
  • 核心 评分引擎 v6:增强「数智」核心词 + FAQ 过滤 + 最低分阈值≥1.5
  • 新增 企微机器人推送(早 9:00 / 晚 18:00 自动)
V0.4 2026-06-21 JS 站点 & 详情提取
  • 新增 Chromium 无头渲染回退方案(JS 动态站点抓取)
  • 新增 详情页提取引擎(结构化字段抽取)
  • 新增 站点适配器框架
  • 新增 自动扫描定时任务 cron(9:00 / 18:00)
V0.3 2026-06-20 交互报告 & 推送
  • 新增 HTML 交互报告:搜索 / 筛选 / 排序 / 分页 / 导出
  • 新增 Nginx 静态报告服务
  • 新增 移动端响应式适配
  • 新增 企微 webhook 集成
V0.2 2026-06-20 评分引擎 & 站点管理
  • 核心 业务相关性评分引擎 v1:三级关键词 + 地理权重 + 排除词
  • 新增 344 个招标网站导入入库(site_list 表)
  • 新增 crawl_log 抓取日志表
  • 新增 评分过滤管道:全品类抓取 → 评分 → 入库
V0.1 2026-06-19 项目启动 · 基石
  • 核心 爬虫引擎 bidding_engine.py 搭建
  • 核心 SQLite 数据库建表(bidding_notices / winning_notices)
  • 新增 解析《投标网站注册信息汇总表 2026.6 月.xlsx》
  • 新增 基础报告生成器
  • 新增 产品定位:数智科技≠EPC,只关注数字化/软件/AI 类招标
  • 新增 项目命名「文鳐智投」— 程浩团队 · 量子纪元