📜 版本历史

问心牌 Web 端更新日志

v4.6.8 — 60 张牌原图读象校准(v4.6.7 跳过合并入档) 2026-07-04

🎴 60 张牌原图读象校准(v4.6.8 主改动)

  • 数据 Web 端:card-details.js 60 张牌的 imageReading / layers.{upper,middle,lower} / symbols 按牌面原图三段(天象/人事/地象)重新校准
  • 数据 小程序:data/cardDetails.ts 同源 60 条牌义数据同步
  • 新功能 Web 端:每张牌新增 source = "牌面原图三段校准-v4.6.8-20260704" + matchPolicy 字段,便于追溯校准口径
  • 校准 Web 端:index.html 缓存版本号 ?v=4.6.5 → ?v=4.6.8(同步 card-details.js 引用)
  • 说明 Web 端:仅校准牌面图像信息;牌号、六十甲子、天干地支、五行、吉平凶、基础牌意、问事提示结构均保持不变
  • 辅助 本地:前端/读象校准输出/三段总览/ 5 张校准总览图(01-12 / 13-24 / 25-36 / 37-48 / 49-60)已存档

📱 小程序个人主体适配(v4.6.7 跳过合并入档)

  • 调整 小程序:个人主体小程序不能使用微信手机号快速验证,删除页面中的「使用微信手机号 / 绑定手机号授权」按钮及 getPhoneNumber 回调链路
  • 文案 小程序:账号页文案改为「绑定或注册手机号」,保留手动输入手机号+密码绑定入口(/api/auth/wx-bind-phone-password)
  • 后端 说明:/api/auth/wx-phone 后端接口保留为备用能力,本次小程序前端不调用;后端无需任何改动

🛠 后端

  • 说明 后端:本次两个版本(v4.6.7 + v4.6.8)均为纯前端/小程序改动,后端零改动,wenxin-api 服务无需重启

📝 文档同步

  • 说明 前端:前端/README.md + 04-60牌读象分区速查.md 同步更新
  • 说明 小程序:详情记录见 微信小程序适配/六十牌原图读象校准-v4.6.8-20260704.md + 个人主体微信登录手动手机号绑定-v4.6.7-20260704.md
v4.6.6 — 微信手机号解绑与历史归属 2026-07-04

🔓 微信账号解绑手机号 / 误绑拆分

  • 新功能 后端:新增 POST /api/auth/wx-unbind-phone,入参 { "mode": "keep_wechat" | "return_phone" },需登录态
  • 新功能 后端:keep_wechat 模式释放当前手机号,账号改 wx_... 占位号,所有历史保留在当前微信账号,可重新注册该手机号
  • 新功能 后端:return_phone 模式误绑拆分,手机号账号保留手机号原历史,微信身份拆成新独立账号,仅迁走 origin_identity='wechat' 的历史
  • 新功能 小程序:个人页账户设置新增「解绑或拆分手机号」入口(user.wx_bound && user.phone_bound 时展示),二次确认防误操作

📊 起课历史来源标记(origin_identity)

  • 新功能 后端:readings 表新增 origin_user_id (INTEGER, INDEX) 与 origin_identity (VARCHAR(16),取值 phone/wechat)
  • 新功能 后端:access_token / refresh_token payload 增加 auth_channel 字段,get_current_user 注入 user._auth_channel 供保存起课时读取
  • 新功能 后端:保存起课时按当前 token 的 auth_channel 写入 readings.origin_identity——Web 手机号登录/注册/刷新→phone;小程序微信登录、微信授权绑定、微信绑定当前账号、微信解绑后继续登录→wechat
  • 迁移 后端:上线首次启动自动给存量 readings 补 origin_user_id = user_id + origin_identity = 'phone'(已验证:189 条全部迁移,null=0)
  • 关键 后端:来源判断按「本次登录/会话渠道」而非「账号是否绑定微信」,同一账号即使已绑微信,只要从 Web 手机号登录起课仍标 phone(不污染)

📝 文档同步

  • 说明 后端:后端/README.md 同步上线,新增「手机号解绑与历史归属策略」章节与 v4.6.6-wx-unbind-phone 版本历史
  • 说明 小程序:详情记录见 微信小程序适配/微信手机号解绑与历史归属-v4.6.6-20260704.md
v4.6.5 — 头像昵称合规适配 2026-07-04

📷 头像上传 + 昵称填写(Web 端 + 小程序)

  • 新功能 后端:新增 users.avatar_url 字段 + POST /api/auth/me/avatar(multipart,jpg/png/gif/webp,≤2MB)
  • 新功能 后端:main.py 挂载 /uploads/avatars/ 静态目录,环境变量 PUBLIC_BASE_URL / WENXIN_UPLOAD_DIR / MAX_AVATAR_BYTES
  • 新功能 Web 端:user.html / user.js 头像 UI(file input + FormData 上传),个人中心展示 avatar_url
  • 新功能 小程序:头像按钮 open-type="chooseAvatar" + 昵称 type="nickname" + wx.uploadFile 上传
  • 依赖 后端 venv 已装 python-multipart 0.0.20

⚠️ 备选 AI 按钮(⚡)暂时不可用

  • 调整 v4.6.5 简化了 main.py provider 注册,pro provider 暂未上线,点击"备选 AI"按钮会失败。修复后将补一条新版本说明。
v4.6.4 — 微信反向绑定 + 管理员角色变更 2026-07-04

🔄 手机号账号反向绑定微信

  • 新功能 后端:新增 POST /api/auth/wx-bind-current,手机号/密码登录后可绑定当前微信(wx.login() code 即可)
  • 新功能 小程序:手机号/密码登录 → 个人页"账号设置"新增"绑定当前微信"入口
  • 逻辑 微信之前产生的临时账号的起课记录会迁移到当前手机号账号,临时账号软删除

👑 管理员角色变更

  • 新功能 后端:新增 PUT /api/admin/users/{user_id}/role,支持 user / admin 切换
  • 新功能 小程序:管理员用户详情页"设为管理员 / 设为普通用户"按钮
  • 保护 管理员不能移除自己的管理员权限,避免误锁后台
v4.6.3 — 手动手机号密码绑定兜底 2026-07-04

🔐 微信环境无法弹手机号授权时的兜底路径

  • 新功能 后端:新增 POST /api/auth/wx-bind-phone-password,需已登录微信账号(Header Authorization: Bearer ***,Body { phone, password }
  • 新功能 小程序:个人页"绑定手机号"区域新增"绑定已有 Web 手机号账号"表单(手机号 + Web 端登录密码)
  • 逻辑 手机号已注册 → 校验原密码 → 合并账号 + 迁移 readings;未注册 → 当前微信账号直接升级为手机号账号(占位 → 真实手机号)
v4.6.2 — 微信登录第一版(手机号可选绑定) 2026-07-04

🪪 微信登录不再强制手机号授权

  • 新功能 后端:新增 POST /api/auth/wx-login / /api/auth/wx-phone / /api/auth/wx-bind-existing,支持微信身份直接登录并创建占位账号(wx_<16hex&gt;)
  • 新功能 小程序:未登录页新增"微信登录"区块 + 个人页"绑定手机号/同步 Web 账号"入口
  • 逻辑 微信登录 → 直接进入账号(不弹手机号授权)→ 个人页可选"绑定手机号";已注册手机号需密码确认合并,未注册则设新密码
  • 后端 新增字段 users.wx_phone / users.wx_bound_at,admin 用户列表返回脱敏手机号和绑定时间
  • 环境 新增 WECHAT_MINI_APPID / WECHAT_MINI_SECRET(写入 /opt/divine-api/.env)
v4.6.0 — 用户系统接入微信身份字段 2026-07-03

🗄️ users 表加微信身份字段(基线)

  • 新功能 后端:models.py 新增 users.wx_unionid(UNIQUE 索引)+ users.wx_openid 字段;init_db() 启动时自动 ALTER
  • 新功能 后端:auth.py / admin.py 登录响应新增 wx_bound 标记(bool)
  • 说明 仅基线字段,无对外接口。微信登录逻辑在 v4.6.2 才正式上线
Web v4.5.2 2026-06-28

🌿 月干支修正:节气查表 + 五虎遁

  • 修复 月干支使用公历月简化映射,每月1日切月支,实际月支以节气(芒种/小暑等)为界
  • 技术 新增 MONTH_BOUNDARIES 天文查表(2020-2040),pyephem 黄经精度±1分钟
  • 技术 月干改五虎遁(丙辛之年庚作首),超出年份自动回退
  • 技术 年/日/时干支不变(已验证正确)
Web v4.5.1 2026-06-28

⚡ 备选 AI 独立 Pro 调用 · provider 分离

  • 修正 备选 AI 按钮从 fallback 分离为独立 pro provider,直接调用 DeepSeek v4 Pro
  • 修正 AI 详解按钮 fallback 回归 Flash(deepseek-v4-flash),备选 AI 用 Pro(deepseek-v4-pro),各司其职
  • 技术 后端新增 PRO_MODEL 环境变量 + pro provider 独立注册
  • 技术 备选 AI 点击即独立运作,无需先点 AI 详解
Web v4.5.0 2026-06-28

⚡ 新增备选 AI 解读按钮

  • 新功能 AI 详解按钮旁增加备选 AI按钮(⚡),调用 DeepSeek v4 Pro 模型
  • 新功能 后端支持 provider 参数指定模型,优先调用指定 provider
  • 技术 两个按钮可独立触发,结果框顶部标注来源(AI 断事 / 备选 AI 断事)
  • 修复 call_llm 不再修改全局 providers 列表,避免 provider 永久重排
Web v4.4.8 2026-06-28

🐛 AI 解读永久禁用修复

  • 修复 网络波动后 provider 被永久禁用→移除 p["enabled"] = False,每次请求重新尝试
  • 修复 不再需要重启服务恢复 provider
Web v4.4.7 2026-06-07

⏱ AI 解读超时保护

  • 技术 MiniMax 调用加 timeout=180,超时自动切 deepseek fallback
  • 技术 服务器环境变量 WENXIN_AI_TIMEOUT=180
Web v4.4.6 2026-06-07

🐛 spread_type 字段校验修复(全栈测试发现)

  • 修复 SaveReadingReq.spread_type 缺校验,无效字符串(如 invalid_xyz/""/SQL 注入字符)都静默接受
  • 技术 加 field_validator 限定为 {taiji, liangyi, sancai, weekly, cross},无效 type → 422 + 错误信息含合法值列表
  • 技术 同时清理 DB 中 35 条脏数据(14 非法 type + 21 测试 cards)
Web v4.4.5 2026-06-07

🔐 登录限流按账户重构

  • 新功能 限流从 IP 改为手机号:5 次/3 分钟按账户锁,避免家里/办公网共享 IP 互锁
  • 新功能 IP 软兜底:10 次/1 分钟防高频扫描
  • 新功能 登录成功自动清零该手机号计数
  • 技术 auth.py 新增 4 个独立函数:_check_ip_soft / _check_phone_lock / _record_phone_failure / _clear_phone_rate
Web v4.4.4 2026-06-07

🐛 周运目标下拉位置修复 · 封版

  • 修复 周运目标下拉在报数/线下模式跑到各自选择器后面→DOM 重排,weekTargetRow 提至抽牌方式正下方
  • 技术 三种模式均正确:随机(周运目标→描述)· 报数(周运目标→报数输入)· 线下(周运目标→线下选择器)
Web v4.4.3 2026-06-07

🎨 牌位标注 · 备注 · CSS修复

  • 新功能 后台起课记录标注牌位:太极/主体用·客体用/天牌·人牌·地牌/周运总牌·周日~周六/守护神牌·人牌·气运牌·天牌·地牌,管理员不需还原即可辨识
  • 新功能 三才阵展示重排:存储序人→天→地自动重排为显序天→人→地(DISPLAY_REORDER [1,0,2])
  • 新功能 起课备注完善:前端 #remarkInput + API 保存/更新 + 管理员后台编辑保存
  • 修复 周运目标下拉只在随机抽牌显示→三种抽牌方式均可见(updateDrawMode 改为周运模式始终显示 weeklyField)
  • 修复 CSS .number-field / .offline-field 的 display:none 被 v4.4.2 误删→恢复
  • 技术 POSITION_LABELS 措辞优化;get_display_positions + DISPLAY_REORDER 支持存储/展示顺序转换
Web v4.4.2 2026-06-07

🎨 周运目标 CSS

  • 新功能 .week-target-row 下拉框样式定义
  • 已知bug CSS 合并时误删 .number-field display:none(v4.4.3已修复)
Web v4.4.1 2026-06-06

🆕 周运本周/下周选择 · 防重复

  • 新功能 周运目标选择:测本周 / 测下周,后端 week_start 列 + week_target 参数
  • 新功能 防重复起课:按 (user_id, week_start) 唯一键,每周只允许一条周运记录
  • 新功能 weekly-status API:前端下拉框根据已有记录自动灰显禁用
  • 修复 TDZ 崩溃:getWeeklyTargetInfo() 引用未初始化变量,加第二参数拆解隐式依赖
  • 技术 models.py + readings.py + admin.py 三文件联动
Web v4.4.0 2026-06-06

🆕 三才抽序 · 太极点击 · 报数洗牌 · 周运报数

  • 新功能 三才抽牌顺序调整:第一张→人位,第二张→天位,第三张→地位(spreadMeta.sancai.positions + ti/yong 对同步修正)
  • 新功能 三才独立牌组映射:sancaiCategories 调为 [十二星, 十二神, 十二景]——人=天星、天=天神、地=地景
  • 新功能 三才牌阵视觉排列:天(左) → 人(中) → 地(右),抽序人天地但摆放天人地
  • 新功能 太极牌点击放大:单牌太极阵支持点击弹出详情弹层,与其他牌阵一致
  • 新功能 报数洗牌机制:起课抽牌时先对牌组 Fisher-Yates 洗牌,报数对应临时序号取牌,模拟现实"先洗牌再抽牌"
  • 新功能 十字法报数盲抽:十字五牌法报数下拉去牌名显示(只留数字),配合洗牌实现真正的盲抽体验
  • 新功能 周运报数模式:周运支持报数抽牌,总运牌(60取1)+ 七日牌(60取7)独立洗牌,updateDrawMode 解除周运报数禁用
  • 技术新增 shuffleArray; drawByNumbers 内部洗牌; 十字法/三才分离/周运每组独立洗牌
Web v4.3.2 2026-06-06

🔧 Hotfix:连续起课时间不刷新

  • 修复 连续多次点击「起课抽牌」时起课时间不刷新:handleSubmit 开头未清除 currentReading 和 storedDivTime,导致时间优先链捡到上一次起课的旧时间
  • 技术 handleSubmit 开头加 currentReading = null; setStoredDivTime(null),确保每次新起课时间优先链落到底部 getDivinationTime() 取实时
Web v4.3.1 2026-06-06

🔧 Hotfix:起课时间还原取当前时间而非原始时间

  • 修复 起课时间还原时显示当前时间而非原始时间:renderReading/completeCrossReading 直接 getDivinationTime() 取实时,不读已存值
  • 修复 IIFE 还原时间在 render 之后执行,render 已用当前时间覆盖 — 改为 render 之前 setStoredDivTime,render 自然捡到原始时间
  • 技术 getDivinationTime() 替换为优先链:currentReading?.divinationTime || getStoredDivTime() || getDivinationTime()
Web v4.3.0 2026-06-06

🎯 太极居中 · 起课时间 · AI去Markdown

  • 新功能 太极阵单牌居中:CSS taiji-spread flex + text-align center,牌面图片和文字在容器内居中,不靠左
  • 新功能 起课时间模块:起课时自动取公历 + 干支时间(🕐 2026.06.06 18:07 📅 丙午年 甲午月 辛亥日 丁酉时),显示在牌阵上方首个元素,支持保存、还原、AI 输入
  • 新功能 干支算法:年干支 (y-4)%60、月干支从年干推算、日干支 2024-01-01=甲子基准、时干支从日干推算,纯前端 JS 实现
  • 修复 AI 断语中 Markdown 加粗符号(**文字**)影响阅读,renderPlainText 统一 strip **
  • 后端 readings 表新增 divination_time TEXT 列,SaveReadingReq 支持 divination_time 字段,admin 详情返回时间
  • 注入 renderReading / completeCrossReading / renderWeeklyReading 三处统一注入时间;resetReading 清时间;IIFE 还原恢复时间
  • 缓存 app.js ?v=4.3.0,styles.css ?v=4.3.0
  • 全栈 前端 4 文件(app.js / styles.css / index.html / changelog.html)+ 后端 3 文件(models.py / readings.py / admin.py),6/6 MD5 校验一致
Web v4.2.3 2026-06-06

🏷️ 周运小卡干支五行角标(绝对定位版)

  • Hotfix v4.2.2 当时 meta-row 撑破周运牌阵 layout 导致牌阵消失,v4.2.3 改用 CSS 绝对定位 重新实现:左下角暗红底白字显示干支(甲子),右下角深棕底白字显示五行(水)
  • 技术 position: absolute + pointer-events: none + z-index: 2,完全不撑卡片高度,不影响弹层点击
  • 样式 新增 .weekly-badge / .weekly-badge-stem / .weekly-badge-element 三个类,仅作用于 .weekly-arc-card,不影响其他牌阵
  • 缓存 app.js 缓存版本号 ?v=4.2.2 → ?v=4.2.3
Web v4.2.2 2026-06-06

🃏 周运牌阵显示增强 + 每日地支关系 + 体用生克

  • 新功能 周运小卡显示天干地支 + 地支五行属性(如 甲子 + 水 标签),弹层之前就有,现在小卡本身也常驻显示
  • 新功能 周运每日解读追加地支关系行:周运总牌地支 与 今日地支 → 六合/六冲/六害/三合/三刑/无特殊关系
  • 新功能 周运每日解读追加体用生克行:周运总牌(体)· 今日(用)→ 5 级断语(用生体大吉 / 体克用小吉 / 体用平平和 / 体生用小凶 / 用克体大凶)
  • 复用 全部复用 v3.4+ 已有的 analyzeBranchRelation() 与 tiYongJudgement() 函数,不重复造轮子
  • 样式 干支用浅色描边小标签(card-stem-branch),五行用半透明背景小标签(card-element),保留古风调性
Web v4.2.1 2026-06-06

🐛 还原起课时备注不显示修复

  • 修复 从个人中心还原带备注的起课记录到首页牌阵,备注 textarea 不显示备注内容
  • 根因 渲染备注依赖 currentReading._remark 跨函数桥,但 IIFE 还原路径只设 weeklyState/crossState/调 render 函数,从不在 currentReading 上写 _remark
  • 修法 去掉跨函数桥,IIFE 末尾直接 DOM 写入 #remarkInput.value + #remarkCount.textContent,覆盖 5 种牌阵(太极/两仪/三才/周运/十字)
  • 附带 修 renderReading 末尾 currentReading._remark 引用未做 null 保护的潜在报错(currentReading = null 时不再抛错)
Web v4.2.0 2026-06-06

📍 起课记录位置标注 + 备注笔记 + 幂等保存

  • 新功能 后台管理 admin.html 起课记录卡片化:每张牌明确标注对应位置(太极/主位(体)/客位(用)/天位(过去)/人位(现在)/地位(未来)/周运总牌+周日~周六/守护神/人牌/气运/天牌/地牌)
  • 新功能 管理员后台可编辑保存每条起课的备注,调 PUT /api/admin/users/{uid}/readings/{rid}/remark
  • 新功能 管理员后台单条起课详情接口 GET /api/admin/users/{uid}/readings/{rid}:返回完整 cards/positions/relation_summary/weekly_summary/ai_answer
  • 新功能 管理员后台起课记录支持 AI 解读折叠展开(<details>)+ 总断徽章 + 周运周序号标签
  • 新功能 主页/用户中心起课记录详情加备注编辑区(≤5000字,含实时字数计数与保存按钮)
  • 修复 用户中心详情页 position 标签只对十字法阵显示的 bug:改为用后端存的 positions 数组,所有牌阵都标注位置
  • 架构 session_id 幂等键:每次起课生成唯一会话 ID(同卦的所有保存/AI 解读都更新同一条记录,不会重复创建)
  • 数据库 readings 表加 session_id 列 + 联合唯一索引 (user_id, session_id);旧数据 session_id 为 NULL 不受影响
  • 后端 POST /api/readings 改 upsert:按 (user_id, session_id) 查重,命中则更新,否则新建;返回 {updated: bool}
  • 后端 /api/wenxin 接收 session_id 字段:首次 AI 解读时无 reading_id,靠 session_id 找到同一条记录更新
  • 校验 remark 字段统一 max_length=5000(Pydantic Field),前后端双重校验
  • 后端 管理员后台起课记录补全 positions/remark/ai_answer/total/cards_summary/week_label/week_range/session_id 等字段
  • 后端 后台响应新增 display_positions 字段:按瑞局口语映射好的紧凑标签(与前端 positionLabels 保持一致)
Web v4.1.2 2026-06-06

按钮样式 + 还原弹窗修复

  • 修复 个人中心按钮不可见::root 未定义 --bronze 变量,按钮背景透明致白字不可见
  • 修复 十字法阵还原时多余「是否保存」弹窗:还原记录无需再保存
Web v4.1.1 2026-06-06

报数/线下模式自动卦解

  • 修复 十字法阵报数/线下模式提交后未自动生成解卦内容,需额外点击「起课成卦」
Web v4.1 2026-06-05

十字五牌阵(三才问事法阵)

  • 新增 三才问事法阵 · 十字五牌:随机/报数/线下三种模式,固定抽牌顺序(守护神→人牌→气运牌→天牌→地牌)
  • 新增 十字法阵独立筛选分类「法阵」,与周运并列
  • 新增 牌面缩略图显示 + 天干地支名 + 五行属性完整展示
  • 新增 三才核心(人牌·天牌·地牌)视觉分组,守护神/气运牌为纯信息牌不参与生克
  • 修复 十字法阵报数/线下模式选择器错位(crossField→numberSelects/offlineSelects)
  • 修复 抽牌进度文本逐张更新
  • 变更 抽取中间牌时牌阵区渐显,非等全部抽完才显示
Web v4.0.7 2026-06-06

🆕 管理员后台 + 权限控制

  • 新功能 新增管理后台页面 admin.html,管理员专用入口
  • 新功能 数据概览:用户总数、起课数、周运用户、7 日新增
  • 新功能 用户搜索(按手机号或 ID)、详情查看、起课记录
  • 新功能 重置密码(随机密码 / 自定义密码)、封禁/解封
  • 新功能 管理员可为用户设置昵称、自定义密码
  • 新功能 用户个人中心自助修改昵称、修改密码
  • 权限 个人中心「管理后台」入口仅 admin 角色可见
  • 权限 admin.html 校验 JWT 中的 admin 角色,非管理员自动拦截
  • 权限 版本历史页 changelog.html 仅管理员可查看,非管理员显示锁定提示
  • 权限 首页「版本」链接移除,管理员通过「管理」导航或后台内链访问
Web v4.0.6 2026-06-06

🐛 周序号修复

  • 修复 周序号算法:去掉 +2 偏移,改为按 Sun-Sat 周习惯(W1 = 该年第一个周日)计算
  • 修复 之前偏差约 2 周,例 2026-06-07 从显示 W25 修正为 W23
  • 部署 v4.0.4+v4.0.5 前端静态文件补上线,线上同步到 v4.0.6
Web v4.0.5 2026-06-06

🆕 周运目标周显示

  • 新功能 周运牌阵显示年周与日期范围,例如 26-W25 · 2026.6.7-2026.6.13
  • 新功能 weekly_summary 保存 weekInfo,历史还原优先使用保存时的目标周
  • 新功能 起课历史列表的周运记录显示对应年周和日期范围
Web v4.0.4 2026-06-05

🔧 全栈验收修复

  • 修复 主页面、用户页、版本页静态资源缓存版本统一到 v4.0.4
  • 修复 AI 解读与起课详情改为安全文本渲染,避免历史内容注入 HTML
  • 修复 手动保存起课改为等待接口结果后提示,不再提前提示已保存
  • 修复 /api/wenxin 自动保存补充周运服务端限频,防止绕过 /api/readings 重复保存本周周运
Web v4.0.3 2026-06-05

🆕 周运拦截 + 筛选搜索

  • 新功能 周运抽牌前置检查,本周已有记录则禁止重抽
  • 新功能 起课列表分类筛选:全部 / 周运 / 太极 / 两仪 / 三才
  • 新功能 关键词搜索(搜问题/牌类/AI解读)
  • 新功能 日期范围筛选
  • 后端 readings.py +q / +date_from / +date_to
Web v4.0.2 2026-06-05

🆕 周运保存 + 还原修复

  • 新功能 周运抽完最后一日弹出保存确认
  • 修复 保存完整度升级:全量牌数据 + topicKey + 牌组模式 + 周运摘要
  • 修复 周运还原样式:重建 weeklyState → 弧形牌阵
  • 修复 三才分离模式 saveReadingIfLoggedIn 未定义 bug
Web v4.0.1 2026-06-05

🆕 删除 + 还原到牌阵

  • 新功能 起课记录删除(列表 + 详情页,确认弹窗)
  • 新功能 起课记录还原到牌阵(详情页 → 首页完整渲染)
  • 新功能 保存确认弹窗 + 两个手动保存按钮
Web v4.0 2026-06-05

🆕 用户系统

  • 新功能 手机号 + 密码注册 / 登录
  • 新功能 个人中心(用户信息 · 起课列表 · 详情还原)
  • 新功能 起课自动保存(登录后调 AI 自动存)
  • 新功能 周运限频(登录用户每周一次,周日清零)
  • 新功能 管理员后台(查用户 · 重置密码 · 封禁 · 统计)

🔧 技术变更

  • 后端 拆文件:models.py / auth.py / readings.py / admin.py(1317 行)
  • 数据库 SQLite(wenxin.db),3 表
  • 鉴权 JWT(access 15min + refresh 30d cookie)
Web v3.7.5 2026-06-05

🆕 周运牌阵

  • 新功能 1 张总运 + 7 张日运,不重复,吉平凶评分
  • 新功能 半圆布局 + 点击放大读象弹层
  • 新功能 两仪紧凑一行布局(用在左体在右)
  • 新功能 周运入口移到问事类型

🔧 配置

  • 修复 M3→M2.7-hs(解决 3+ 张牌超时)
  • 修复 nginx 180s 封顶链路
  • 调参 max_tokens 10000 · timeout 180s
Web v3.6.x 2026-06-05

🆕 逐图牌义库

  • 新功能 card-details.js(60 张牌逐图详解)
  • 新功能 后端 Prompt 改版(固定解读顺序 · 应期条件语气)
  • 新功能 读象/上中下层次按牌名匹配(速查表 + 课堂笔记双轨)
Web v3.5 2026-06-04

🆕 关系工具子系统

  • 新功能 五行/地支/牌面三种查询模式
  • 新功能 体用行动建议生成器
  • 新功能 三合完成度检测
Web v3.4 2026-06-04

🆕 体用五级断语

  • 新功能 3 级(吉/平/凶)升级到 5 级(大吉~大凶)
  • 新功能 tiYongJudgement 函数统一处理
  • 修复 地支五行替代天干作为生克计算基准
Web v3.3 2026-06-

🆕 三才双牌组 + 抽牌简化

  • 新功能 三才阵双牌组(统一 60 张 / 三套独立 12 张)
  • 新功能 13 个问事类型(1 综合 + 12 单类)
  • 优化 移除毫秒分组逻辑
Web v3.2 2026-06-

🔧 五行重构

  • 新功能 element 字段由天干定五行改为地支定五行
  • 新功能 element-tag 展示地支单字
  • 修复 两仪/三才生克同步用地支五行
Web v1.0 — v3.1 2026-05 — 06
  • 初版上线(60 张文字牌 · 太极/两仪牌阵)
  • LLM 接入(MiniMax→M3)
  • HMAC token 自签鉴权 · 速率限制
  • 三才阵 · 线下抽牌 · 牌库密码墙
  • Fallback 机制(opencode-go deepseek-v4-flash)
← 返回问心牌

🔒 仅管理员可查看

← 返回首页