Conversation
设计: - 11个步骤全部可见,垂直排列 - 完成的步骤: 绿色圆点+绿色连线+绿色文字 - 当前步骤: 红色大圆点+发光+粗体+展开描述 - 待处理步骤: 灰色小圆点+灰色文字 - 步骤间有垂直连线 辩论阶段(step 8): - 展开显示辩论实况气泡(彩色边框) - 每条辩论消息逐条显示 裁判阶段(step 9): - 展开显示"综合裁判正在评定..."脉冲动画 底部: - 进度条移到顶部(紧凑) - 数据洞察+猜一猜在时间线下方
- SHA-512 密码验证(硬编码hash) - 统计面板: 训练笔记数/诊断次数/基线品类/系统内存 - 品类分布条形图 - 品类互动数据表(平均赞/藏/评/爆款率) - 最近10条诊断记录表 - 纯HTML+JS内联,无额外依赖 - SPA middleware排除/admin路径
usage_log表: - ip/action/title/category/total_tokens/duration_sec/status/created_at - 每次诊断自动记录(IP通过X-Forwarded-For提取) Admin面板(noterx.muran.tech/admin): - 今日诊断/今日UV/总诊断/总UV/总Token/平均耗时 - 24h请求分布柱状图 - 品类诊断分布条形图 - Top IP排行(次数+占比) - 最近20条诊断列表(时间/IP/标题/品类/Token/耗时/状态) - 系统内存监控
根因:
1. report里没有token数据(model_a_pre_score是纯数学不消耗token)
2. /api/diagnose-stream没有记日志(大部分用户走这个)
修复:
- orchestrator: result['_usage'] = {total_tokens, duration_sec}
- /api/diagnose: 从_usage读token(不再从model_a_pre_score)
- /api/diagnose-stream: 也记录usage日志
- 新增 docs/terms.html 服务条款页面(中文,含服务说明、免责声明、数据说明等) - 新增 docs/privacy.html 隐私政策页面(中文,含信息收集、本地存储、匿名数据等) - backend/app/main.py 添加 /terms 和 /privacy 路由,排除 SPA 中间件拦截 - frontend Home.tsx 桌面端底部添加服务条款和隐私政策链接 - frontend vite.config.ts 添加 /terms 和 /privacy 的开发代理
feat: 用户条款+隐私协议
之前: 只尝试去code fence + json.loads, 失败就返回error
现在: 4级fallback:
1) 去code fence + json.loads
2) _parse_json_from_llm_text(处理思考标签/raw_decode/多候选)
3) 手动找第一个{...}
4) 全失败则打原始输出前300字到日志(便于排查)
S1 Admin时序攻击: == 改为 hmac.compare_digest S2 CORS过宽: allow_origins=* → 限制到noterx.muran.tech+localhost S4 Admin XSS: 所有动态值加esc()HTML转义 S6 History数据泄露: 禁用服务端history路由(前端已用IndexedDB) B1 SQLite连接泄漏: admin_api加try/finally确保conn.close()
1. submitError不自动消失: 用户修复条件(上传文件/输入标题)后错误提示仍在 → useEffect监听files.length和title变化自动清空 2. SimulatedComments崩溃: report.simulated_comments为undefined时initial.map()抛错 → (initial || []).map() 3. AgentDebate崩溃: report.agent_opinions为undefined时opinions.map()抛错 → 传入时加 || [] 4. SimulatedComments同上: report.simulated_comments || [] 5. SuggestionList同上: report.suggestions || []
根因: 浏览器bfcache恢复页面时不重新执行JS(IIFE), overlay保持全屏红色
修复: 改用window.addEventListener('pageshow'), bfcache恢复时也触发, 立即重置overlay
根因: prompt要求嵌套JSON(publisher:{name,follower_count}+engagement_signal:{...})
模型被搞晕,输出slot_type=other且字段打散到顶层
修复:
1. prompt大幅精简: 去掉嵌套结构,只要求平铺字段
旧: 118行prompt + 复杂嵌套JSON schema
新: 20行prompt + 7个平铺字段
2. 后端兼容: 如果模型返回flat的likes/name,自动转成engagement_signal/publisher
3. slot_type判断规则更简洁明确
- 新增 AnnouncementDialog 组件,首次访问弹出公益声明 - 声明项目免费开源、广告位招租、有偿合作信息 - 展示产品数据(百万曝光/10万日流量)及 GitHub、主页链接 - 首页导航栏新增邮件联系按钮 - 首页桌面端 footer 追加 GitHub 和合作邮箱 - 报告页底部追加公益声明和联系方式
Go work LAOCHEN
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
1