Repository navigation
Releases: yusheng266186-beep/beichen
Release list
北辰 v2.8.1 · 验收同步与 Redis 桌面开关
北辰 v2.8.1 验收与 Redis 开关同步
此发行标签 v2.8.1-sync.20260907 固定验收后的源码与运维交付快照。页面和云函数继续显示 v2.8.1,旧 v2.8.1 标签不移动。
本次完整同步
- 补齐已合入 main 的历史星图横幅与留白、滚动导航不透明、移动端关闭按钮居中、星图卡片呈现、生成后四选项、移除复制按钮、矩形图片导出、夜航开场提示和说明措辞更新。
- 新增 Redis 自动开关工具:状态查询、创建预检与自动重建、快照、云函数接回、冒烟检查、哨兵联动。
- 修复网络 ID、误选实例、SDK 轮询地址、副本快照和开启后哨兵未恢复问题。
- 正式库 README/CHANGELOG/部署指南/专项验收同步;私有交接库同步操作清单、追加验收与工具。
验收
- 实际关→开完整循环通过,关闭后 503/ready=false,开启后 200/ready=true。
- 哨兵关闭跳过与开启实际拨测均通过:关闭记录、开启记录。
- 14 项开关回归通过,Windows 桌面启动器状态查询通过;工具包、桌面和两库文件逐字节比对一致。
- 正式库 npm verify 通过:Node 12 通过、0 失败、1 项本地 Redis 测试跳过;语法、内联 HTML、密钥扫描通过。云端 Redis 另有上述真实测试证据。
下载与使用
下载 beichen-redis-switch-20260907.zip,解压后按 README 配置,Windows 双击 Redis-Switch.cmd。SHA256SUMS.txt 提供附件校验值。需 Python 3.10+、依赖及已登录的 GitHub CLI。
公开附件没有实际配置、快照或凭据。维护者本机桌面版已配置,凭据从现有私有交接文档读取。
关闭会销毁 Redis、清空云端会话状态;快照只保存配置,开启需账户余额,操作串行执行。验收结束保持开启。
Redis 开关 1.0.1 · 关闭容错与桌面操作记录
Redis 开关 1.0.1:关闭可靠性与桌面反馈
修复旧流程中 GitHub 哨兵同步失败就退出、Redis 尚未关闭的问题;补充云 API 暂时性断连的安全重试。旧版没有日志,原失败具体报错无法追溯,因此不将其唯一归因于网络故障。
改进
- GitHub 故障不阻断关闭,关闭与哨兵结果分别报告。
- 只读云 API 有限重试;删除响应丢失后先核实状态,不重复提交。
- 真正确认删除才显示成功,取消、失败、附属警告区分处理。
- 桌面菜单保留结果并返回菜单;新增“4 查看操作记录”,脱敏日志自动保存。
- 同机操作互斥,开启只确认一次。
验证
24 项 Python 回归通过。桌面菜单真实复核“已关闭”,查看日志与返回菜单正常。
本机记录显示 2026-09-07 11:36 实际删除成功;15:43 再次确认 Redis 已关闭,SENTINEL_MODE=off。当前保持关闭。
公开 ZIP 仅含程序、配置示例、依赖和说明;实际配置与凭据不上传。桌面已配置版直接使用。
页面/云函数版本仍为 v2.8.1,此发行版仅更新 Redis 运维工具。
北辰 v2.8.1 · 设置面板重排 · 验证码重放区分
北辰 v2.8.1 · 设置面板重排 · 验证码重放区分
设置面板
- 按信息分组重排:谈心状态(次数/有效期)→ 模型与思考(模型/思考强度三档)→ 显示偏好(界面主题/思考低语)→ 服务(中转服务/页面版本)→ 存档覆盖说明移至最底部。
- "对话模型"行文案与思考强度三档同步(不再静态写"深度思考 max",强度以"思考强度"档位为准)。
- "思考低语"开关补说明:开=等待时同步显示模型思考尾部内容(仅显示,不保存、不上传);关=等待期只显示阶段进度与轮播文案。
验证码重放区分(服务端)
- 同一 30 秒窗口的动态码被再次提交时,返回值由
BEICHEN_AUTH_INVALID_CODE区分为BEICHEN_AUTH_REPLAY,前端提示改为"这组动态验证码已经用过,请等下一组验证码再试"——不再与"验证码错误"混为一谈。
修复
- 修复设置面板部分行属性引号被弯引号污染导致的
statRelay等元素失效问题(未进入过线上版本)。
提交:main @ ed17c6f · 无破坏性变更,缺省行为与 v2.8.0 一致。
北辰 v2.8.0 · 思考强度三档 · 体验并版 · 值班哨兵
北辰 v2.8.0 · 思考强度三档 · 体验并版 · 值班哨兵
本次为 v2.7.0 之后的两次迭代合并发布:体验并版(自独立调试库移植的学生可感知特性)与第三阶段(思考强度/低语优化/值班哨兵)。页面与云函数统一 v2.8.0,云函数与 GitHub Pages 均已上线并冒烟通过。
学生可感知的新增
- 思考强度三档:设置面板可选 省时 / 标准 / 深思(默认标准)。客户端只传枚举,思考预算由服务端换算(标准档沿用原口径:日常 2048 / 星图 4096;省时减半、深思加倍)。设置面板给出各档预估星图生成时间:省时 1
1.5 分钟 · 标准 1.52.5 分钟 · 深思 2~4 分钟。 - 夜航暗色主题:全站颜色 token 化,跟随系统 + 设置面板三档手动切换;主题色、截图背景随主题。
- 历次星图:一次验证的每张星图自动存档(IndexedDB,仅本机),随时回看;"正在回看历史星图"横幅 + 一键回到当前。
- 星图等待分段进度:按已到达字段计数("辰在描出你的多维星图 · 6/12"),等待可见可感。
- 移动端全屏报告 + 分段跳读导航(星卡/组合/专业/寄语)。
- 星门四件套:输入即时过滤非数字、满 6 位自动提交、桌面端自动聚焦、并发防双击。
- 输入草稿:打字中途刷新/切后台不丢。
- 气泡长按复制:触屏按住 550ms 复制整条消息。
- 新回复浮标:生成中上翻阅读时"↓ 新回复"一键回底。
- 专业事实库:40+ 高频专业的选科门槛锚点(按 2024 年教育部选科指引口径),悬浮卡显示"选科门槛 · 多校常见口径";匹配不到不加注,绝不编造。
- 新密钥覆盖旧存档:每次输入新验证码自动开始全新谈心,旧对话存档自动覆盖;历次星图档案保留。
等待体验与正确性修复
- 思考低语稳定化:恒定尾窗(尾部约 40 字)+ 固定行宽,不再忽长忽短;设置面板可关(默认开)。
- 前置回应不再截断:星图骨架标记到达时补一次定稿渲染,生成前看到的那段话完整呈现。
- 秒数不再闪烁:进度标签与计时器改为单一写者。
- 回看横幅只在回看时出现;"回到当前"内容完整。
- 报告卡关闭按钮垂直居中于分段导航条,下滑不再被遮挡。
- 完整性门:宽容档(字段不全)星图照常展示但不计入额度,可重新点亮补全。
- PNG 导出按 1200 万像素上限自适应缩放,长报告在低端机不再失败;背景随主题。
- 会话恢复不再连播动画;星卡/寄语换行保真;分享卡摘要(OG/meta);底部模式标签落地;FAQ 扩至 10 条。
工程与安全
- 结构化事件日志:verify/chat/quota/store 事件 JSON 行,IP 仅记 SHA1 指纹;契约测试反向锁定密钥/令牌/验证码绝不入日志。
- SSE 心跳(15s)与上游内容类型校验:长思考安静期连接不再被中间设备掐断。
- CI 安检:密钥泄漏扫描 + 内联脚本语法体检纳入 verify(金丝雀验证过拦截能力)。
- 值班哨兵:内置 GitHub Actions 每 5 分钟拨测 /readyz,失败自动邮件告警;函数地址存于仓库变量,不落代码。
- 凭据轮换已完成(TOTP 种子/会话密钥),旧凭据作废;仓库不含任何真实密钥。
兼容性
- 无破坏性变更:不传
effort时行为与 v2.7.0 完全一致(标准档)。 - 部署顺序:云函数先、页面后;
/readyz与设置页"检查连接"均显示 v2.8.0 即为对齐。
提交:main @ b2547f2 · 回滚:上一版函数包 + git revert
北辰 v2.7.0-stateful · 页面 v2.6.20
北辰版本更新日志
2026-09-04 · 后端 v2.7.0-stateful / 页面 v2.6.20
一句话结论
本次更新已经完成正式部署。此前页面一直显示“中转服务未就绪”,根本原因不是页面请求格式错误,而是云函数部署检查脚本误判了腾讯云返回结果。修正后,云函数、共享 Redis 和页面之间已经重新对齐。
1. 本次更新解决的问题
旧版本的会话、动态验证码使用记录、次数和重复提交记录主要保存在单个云函数实例的内存里。云函数重启、冷启动或出现多个实例时,可能出现以下问题:
- 一个实例记住了验证状态,另一个实例却不认识;
- 次数在不同实例之间不同步;
- 网络重试可能造成重复结算;
- Redis 出现问题时,页面无法明确知道服务到底能不能用;
- 云函数实际已经恢复运行,但部署脚本因为读取了一个不稳定的“代码大小”字段,误报部署超时。
2. 后端改动
2.1 使用共享 Redis 保存关键状态
以下内容统一写入共享 Redis:
- 动态验证码的使用记录;
- 登录后的会话票据;
- 普通对话的次数占用与释放记录;
- 星图生成后的待结算状态;
X-Request-ID对应的重复提交收据。
Redis 不可用时,服务不会偷偷切回单机内存,而是拒绝新的关键请求,避免不同实例各自计算次数。
2.2 保持原有页面请求方式
页面原有的聊天、星图生成和确认结算请求格式保持兼容:
- 普通聊天仍按原页面格式发送;
- 星图请求仍使用原来的高预算标记;
- 星图结算仍通过原来的
/run/complete和X-Request-ID完成; - 模型名称、上游地址和密钥仍由后端控制,浏览器不保存密钥。
2.3 增加真实就绪检查
云函数提供:
/healthz:检查服务是否能响应;/readyz:同时检查后端配置、上游配置和 Redis 是否可用。
只有 /readyz 返回完整的就绪结果,页面设置中的“检查连接”才会显示“正常”。如果页面版本和后端版本不一致,页面会提示“需同步”。
2.4 修正部署脚本的误判
本次排查确认:
- 腾讯云函数配置已经成功写入;
- 代码上传后函数状态已经从
Updating变为Active; - 旧脚本仍然要求返回一个大于 0 的
CodeSize; - 腾讯云当前返回中这个字段可能为空或为 0;
- 脚本因此把已经运行的函数误判成“上传失败”。
现在改为以云函数状态 Active 或 Running 作为完成依据,不再依赖这个不稳定字段。
3. 前端同步范围
页面只同步后端变化确实需要的部分:
- 页面版本号保持为
v2.6.20; - 设置页增加真实的
/readyz检查; - 显示后端版本和页面版本;
- 增加“未就绪”“需同步”“无法连接”等明确提示;
- 保持原有聊天界面、提示词、样式、消息解析和请求流程不变。
4. 正式部署记录
本次部署使用正式仓库 yusheng266186-beep/beichen 的代码,私有交接库只用于读取部署所需的受控配置。真实密钥没有写入正式仓库、README、更新日志或部署输出。
部署时沿用已经创建的腾讯云函数、Redis 和网络资源,没有另外创建第二套资源。部署包包含后端运行依赖,确保云函数启动时能够正常加载 Redis 连接库。
5. 实际验收结果
远程部署任务的“部署到腾讯云”步骤已成功完成,随后直接访问生产函数的 /readyz 进行检查,结果如下:
| 检查项目 | 实际结果 |
|---|---|
| HTTP 状态 | 200 |
| 服务就绪标记 | ready: true |
| 后端配置 | providerConfigured: true |
| 状态保存方式 | redis |
| Redis 连接 | stateStoreReachable: true |
| 后端版本 | v2.7.0-stateful |
| 页面版本 | v2.6.20 |
这表示页面所依赖的后端配置和共享次数记录已经准备好。打开网页后,在“设置”中点击“检查连接”,预期显示“正常”。
6. 部署收尾
- 一次性部署工作流已从私有交接库移除;
- 临时部署压缩包已从私有交接库移除;
- 正式仓库没有新增密钥文件;
- 正式仓库原有持续集成检查仍保留;
- 本次更新不改变旧版页面存档和无关前端内容。
7. 用户验收方法
- 打开 北辰在线页面;
- 进入“设置”;
- 点击“检查连接”;
- 确认状态显示“正常”;
- 输入有效动态码后,再进行一次普通对话和一次星图生成测试。
如果手机仍显示旧的“未就绪”,先关闭旧页面,再重新打开网页;也可以用浏览器无痕页面打开一次,排除手机浏览器缓存影响。
8. 安全说明
本次公开日志只记录配置类别、版本和验收结果,不记录任何真实的密钥、验证码种子、Redis 密码或云平台身份信息。正式使用一段时间并确认稳定后,建议按常规安全流程轮换曾经放在交接材料中的云平台密钥和相关凭据。
北辰 v2.7.0 · 前后端统一版本
北辰版本更新日志
2026-09-04 · v2.7.0(前后端统一版本)
一句话结论
本次更新在共享状态版本完成正式部署的基础上,把页面和后端的对外版本统一为 v2.7.0。此前页面一直显示“中转服务未就绪”,根本原因不是页面请求格式错误,而是云函数部署检查脚本误判了腾讯云返回结果。修正后,云函数、共享 Redis 和页面之间已经重新对齐。
1. 本次更新解决的问题
旧版本的会话、动态验证码使用记录、次数和重复提交记录主要保存在单个云函数实例的内存里。云函数重启、冷启动或出现多个实例时,可能出现以下问题:
- 一个实例记住了验证状态,另一个实例却不认识;
- 次数在不同实例之间不同步;
- 网络重试可能造成重复结算;
- Redis 出现问题时,页面无法明确知道服务到底能不能用;
- 云函数实际已经恢复运行,但部署脚本因为读取了一个不稳定的“代码大小”字段,误报部署超时。
2. 后端改动
2.1 使用共享 Redis 保存关键状态
以下内容统一写入共享 Redis:
- 动态验证码的使用记录;
- 登录后的会话票据;
- 普通对话的次数占用与释放记录;
- 星图生成后的待结算状态;
X-Request-ID对应的重复提交收据。
Redis 不可用时,服务不会偷偷切回单机内存,而是拒绝新的关键请求,避免不同实例各自计算次数。
2.2 保持原有页面请求方式
页面原有的聊天、星图生成和确认结算请求格式保持兼容:
- 普通聊天仍按原页面格式发送;
- 星图请求仍使用原来的高预算标记;
- 星图结算仍通过原来的
/run/complete和X-Request-ID完成; - 模型名称、上游地址和密钥仍由后端控制,浏览器不保存密钥。
2.3 增加真实就绪检查
云函数提供:
/healthz:检查服务是否能响应;/readyz:同时检查后端配置、上游配置和 Redis 是否可用。
只有 /readyz 返回完整的就绪结果,页面设置中的“检查连接”才会显示“正常”。如果页面版本和后端版本不一致,页面会提示“需同步”。
2.4 修正部署脚本的误判
本次排查确认:
- 腾讯云函数配置已经成功写入;
- 代码上传后函数状态已经从
Updating变为Active; - 旧脚本仍然要求返回一个大于 0 的
CodeSize; - 腾讯云当前返回中这个字段可能为空或为 0;
- 脚本因此把已经运行的函数误判成“上传失败”。
现在改为以云函数状态 Active 或 Running 作为完成依据,不再依赖这个不稳定字段。
3. 前端同步范围
页面只同步后端变化确实需要的部分:
- 页面版本号由
v2.6.20更新为v2.7.0; - 后端对外版本由过渡标记
v2.7.0-stateful统一为v2.7.0; - 页面要求的后端版本同步更新为
v2.7.0,避免设置页把同一正式版本误判为不一致; - 设置页增加真实的
/readyz检查; - 显示后端版本和页面版本;
- 增加“未就绪”“需同步”“无法连接”等明确提示;
- 保持原有聊天界面、提示词、样式、消息解析和请求流程不变。
4. 正式部署记录
本次部署使用正式仓库 yusheng266186-beep/beichen 的代码,私有交接库只用于读取部署所需的受控配置。真实密钥没有写入正式仓库、README、更新日志或部署输出。
部署时沿用已经创建的腾讯云函数、Redis 和网络资源,没有另外创建第二套资源。部署包包含后端运行依赖,确保云函数启动时能够正常加载 Redis 连接库。
5. 实际验收结果
远程部署任务的“部署到腾讯云”步骤已成功完成,随后直接访问生产函数的 /readyz 进行检查,结果如下:
| 检查项目 | 实际结果 |
|---|---|
| HTTP 状态 | 200 |
| 服务就绪标记 | ready: true |
| 后端配置 | providerConfigured: true |
| 状态保存方式 | redis |
| Redis 连接 | stateStoreReachable: true |
| 后端版本 | v2.7.0 |
| 页面版本 | v2.7.0 |
这表示页面所依赖的后端配置和共享次数记录已经准备好。打开网页后,在“设置”中点击“检查连接”,预期显示“正常”。
6. 部署收尾
- 一次性部署工作流已从私有交接库移除;
- 临时部署压缩包已从私有交接库移除;
- 正式仓库没有新增密钥文件;
- 正式仓库原有持续集成检查仍保留;
- 本次更新不改变旧版页面存档和无关前端内容。
7. 用户验收方法
- 打开 北辰在线页面;
- 进入“设置”;
- 点击“检查连接”;
- 确认状态显示“正常”;
- 输入有效动态码后,再进行一次普通对话和一次星图生成测试。
如果手机仍显示旧的“未就绪”,先关闭旧页面,再重新打开网页;也可以用浏览器无痕页面打开一次,排除手机浏览器缓存影响。
8. 安全说明
本次公开日志只记录配置类别、版本和验收结果,不记录任何真实的密钥、验证码种子、Redis 密码或云平台身份信息。正式使用一段时间并确认稳定后,建议按常规安全流程轮换曾经放在交接材料中的云平台密钥和相关凭据。
北辰 v2.6.18 · v2 重构版正式发布
本次将 v2 重构版的全部迭代并入正式库。旧版(v1)代码原样保留于 legacy/ 目录,并可用 legacy-v1 标签随时回溯;线上 beichen 云函数未做任何改动。
主要内容
- 双聊法:夜航(自由谈心,第5轮起实时评估、满15轮固定给点亮入口)/领航(每轮选项,满十轮自动星图、失败只走按钮不重复扣额度)
- 星图:专业解析悬浮卡(推荐分析+就业方向)、三级宽容解析绝不卡死、思考低语等待体验
- 服务端:GLM-5.2 深思考 max、星图轮/日常轮思考预算分档(4096/2048)、额度幂等记账与绕过防护、TOTP 一次性消费+限流
- 性能:字体主源 Google Fonts 大陆边缘(实测 0.3s/片、缓存一年),页面 load 后注入不拖进度条,失败自动回退自托管字体
- 修正:超长输入本地拦截、400/413 文案不再误报网络问题、圆角卡滚动条出界、验证票据 localStorage 持久化(7天跨标签页)