Releases: NoctilumeDev/DarkRoomLibrary
Release list
DarkRoomLibrary v1.2.5
DarkRoomLibrary v1.2.5
This security patch updates the HTML sanitizer dependency without changing product behavior.
Changes
- Updated
org.jsoup:jsoupfrom1.22.2to1.23.1. - Resolved
GHSA-pmhh-3w7g-xqp8, which affects Cleaner configurations that permit custom raw-text elements. - Made no business logic, database schema, API, or frontend changes.
Verification boundary
- Dependabot PR #9 passed the complete CI and Security workflows before merge.
- The merge commit passed CI, Security, and GitHub Pages, and GitHub marked the alert as fixed.
- The release workflow reruns complete CI on the tag commit and requires a successful Security workflow for the same commit.
- Existing single-instance, browser, concurrency, middleware-degradation, and historical three-instance evidence remains explicitly dated; this dependency-only patch does not claim to have rerun those real chains.
DarkRoomLibrary v1.2.4
DarkRoomLibrary v1.2.4
This patch release freezes the verified v1.2.x backend and database boundary while strengthening public delivery evidence.
Changes
- Updated the locked
nanoidtransitive dependency to addressGHSA-2v37-7h3g-55p8. - Fixed the local browser workflow by routing development API requests through the Vite same-origin proxy instead of weakening CSP.
- Added independent CodeQL, dependency review, and npm audit security gates.
- Added repository architecture and release-version checks to CI.
- Added a tag-gated release workflow that reruns CI, requires a successful Security run on the same commit, and verifies main ancestry.
- Added reproducible ZIP, SHA-256, manifest, and SPDX SBOM release assets.
- Increased the Pages deployment wait boundary after GitHub timed out while the deployment remained in progress.
Verification boundary
- Backend: 282 tests, no failures, errors, or skips; 70% line-coverage gate passed.
- Frontend: 68 critical-logic tests, ESLint, production build, demo build, and high-severity npm audit passed.
- Six fixed identities completed 70 real page API responses across borrowing, permissions, procurement, logistics, and warehouse intake.
- Redis and RabbitMQ each passed available and unavailable/degraded checks without blocking database-backed core operations.
- The 20-scenario concurrency suite passed 393 requests; browser diagnostics passed 116 routes, 456 API responses, and 6,114 network responses with no reported runtime, network, or layout errors.
- The three-instance 8-scenario/176-request result remains explicitly dated 2026-08-02; it was not rerun on the 16 GB host during this patch acceptance.
DarkRoomLibrary v1.2.3
边界加固
- 增加
X-Request-ID响应头、日志 MDC 与跨域预检支持,非法调用方 ID 自动替换为 UUID。 - 为生产 Nginx 和静态入口增加 CSP、Referrer、Permissions、
nosniff与禁止嵌入策略。 - 收紧生产/Compose 限流默认值,生产 Profile 拒绝弱 RabbitMQ 密码和缺失告警 Webhook。
- 增加 RabbitMQ 两个死信队列监控、Redis 跨实例告警抑制与本地故障回退。
- 抽离并测试 Vue 路由守卫,补充登录与个人资料组件测试。
验证结果
- 后端
282/282,行覆盖率72.23%。 - 前端
68/68,关键逻辑范围行覆盖率71.47%;ESLint、生产构建、演示构建和 npm 官方审计通过。 - 三实例、六身份、并发一致性和浏览器/F12 基线继续通过;最终浏览器记录为 116 个路由、456 次 API、6,206 次网络响应。
- 最终真实容器复核确认 CORS 请求 ID、毒消息转死信、三实例单次告警、四队列归零和数据库不变量正常。
本版本没有数据库结构变更。首次安装仍只需执行 sql/init-dark-room-library.sql。
DarkRoomLibrary v1.2.2
v1.2.2
安全、可靠性与可观测性冻结修订。
- 增加受信代理 CIDR 与统一客户端 IP 解析。
- 增加 Redis Lua 敏感端点令牌桶。
- 增加 RabbitMQ 毒消息队列与通知终态 Webhook。
- 生产环境默认密钥 fail-fast。
- 临时公开文件仅允许图片匿名预览。
- 修复鉴权网络失败、采购消息分页和已读锁边界。
- GitHub Actions 增加后端与前端覆盖率门禁和公开报告。
验证:后端 272/272,前端 58/58;三实例、六身份、并发一致性和 116 路由浏览器诊断全部通过。
DarkRoomLibrary v1.2.1
DarkRoomLibrary v1.2.1
面向单机与小团队部署的最终验收冻结版本。本次只收口安全边界、跨实例一致性、采购物流状态机和交付证据,不再扩展大型业务模块。
主要修复
- JWT 增加
auth_version,密码、角色、协调员能力和账号状态变化后,三个实例立即共同拒绝旧令牌。 - 登录失败统一 BCrypt 校验成本、通用错误和“账号 + 来源 IP”计数,并增加 JWT 前置 IP 接入限流。
- 采购员与管理员只能推进到“已下单”;发货、到货和入库必须由物流状态流转产生。
- 采购协作消息改为游标分页,只确认当前真实展示的消息 ID;采购图书选择改为后端远程搜索。
- Demo、README、部署指南、系统设计、架构审查、模块图和最终验收报告统一到 v1.2.1。
最终验收证据
- 后端测试:
245/245 - 前端测试:
41/41,ESLint、生产构建、Demo 构建通过,官方 npm 审计0 vulnerabilities - 三实例一致性:
8个场景、262次请求 - 跨实例边界:
4个场景、76次请求 - 六个固定权限身份真实业务闭环通过
- 浏览器/F12:
116个路由、456次 API、5,988次网络响应,运行时错误与横向溢出为0 - MySQL:24 张表、34 条外键,库存、借阅、预约、推荐事件、采购入库和邮箱配额不变量违规为
0 - Redis AOF 正常;RabbitMQ 两个队列无待消费或未确认消息
交付附件
release.zip:仅包含提交1d77f08的 Git 跟踪文件release.zip.sha256:SHA-256 校验文件
公开部署前请修改六个演示账号密码,并设置独立的 JWT、数据库、邮件和 CORS 配置。
DarkRoomLibrary v1.2.0
DarkRoomLibrary v1.2.0
本版本完成可解释荐书闭环和最终交付收口。
主要更新
- 内容召回与真实协同信号组合的 CONTENT / HYBRID 推荐
- “不感兴趣”入口、30 天候选过滤和数据库原生幂等事件写入
- Redis 全局/读者版本令牌,Redis 不可用时回退 MySQL 聚合指纹
- ECharts 按核心、折线、柱状和饼图拆分,普通页面首屏不加载统计依赖
- GitHub Pages 六身份在线演示、README、HTML、PPT 与三份 PDF 同步更新
- 修复推荐连续关闭的前端响应乱序,并压缩 PDF 重复字体资源
验证结果
- 后端测试:241/241
- 前端单测:37/37
- 六个固定身份真实全链路通过
- 三个后端实例推荐首次生成只产生一个批次,真实 HYBRID 结果一致
- 浏览器诊断:116 个路由、352 次 API、6,102 次网络响应,运行时错误为 0
- npm audit:0 vulnerabilities
- 数据库:24 张物理表、34 个外键,推荐孤儿、跨用户事件和重复事件均为 0
SHA-256 校验值见附件 release.zip.sha256。
DarkRoomLibrary v1.1.1
DarkRoomLibrary v1.1.1
修复多实例并发注册时的邮箱账号配额一致性与隐私边界。
修复
- 同一规范化邮箱最多关联 3 个账号
- 注册在邮箱验证前不泄露账号、署名或配额状态
- 联系邮箱换绑必须验证新邮箱
- 物理删除用户后释放邮箱名额
- 配额行从首条语句取得排他锁,消除 MySQL 共享锁升级死锁
- 修复全链路脚本对固定第一页数据的隐含依赖
验证
- 后端测试:229/229
- 前端单测:36/36
- 三实例 100 请求:3 成功、97 明确配额拒绝、0 其他失败
- 注册隐私、换绑和删除释放名额真实链路通过
- 六个固定身份完整业务链路通过
- 浏览器诊断:116 个路由,Console、Network、布局均无异常
- npm audit:0 vulnerabilities
SHA-256 校验值见附件 release.zip.sha256。
DarkRoomLibrary v1.1.0
DarkRoomLibrary v1.1.0
2026-07-27 公开交付基线新增零成本在线演示,并用真实 Issue → PR → CI → 合并流程完成验证。
主要变化
- GitHub Pages 浏览器演示,支持六个固定身份直接进入与会话重置
- 借还库存、预约收藏、书评留言、采购物流与幂等入库等关键状态流转
- 上传下载、邮件、注册、注销和导出能力边界明确,未知写操作不会伪造成功
- GitHub Pages Actions、Bug/Feature Issue 模板和同步部署文档
- 后端、前端与文档版本统一到 1.1.0
验证结果
- 后端测试:226/226
- 前端单元测试:36/36
- ESLint、生产构建、演示构建、Compose 配置:通过
- npm 官方 registry 审计:0 vulnerabilities
- 本地浏览器:六身份、23 个演示页面、借还与采购入库流程通过
- Pages:128 个静态文件逐个返回 200,JavaScript MIME 正确,Console warning/error 为 0
在线演示仅使用浏览器会话数据,不替代 Spring Boot、MySQL、Redis、RabbitMQ 或真实并发验证。ECharts 图表块仍约 548 KB(gzip 186.62 KB),但登录首屏不加载,仅在图表页面按需下载。
SHA-256 校验值见附件 release.zip.sha256。
DarkRoomLibrary v1.0.0
DarkRoomLibrary v1.0.0
首个正式开源版本,完成从课程项目到可重复交付版本的整理。
主要内容
- 完整的读者借阅、预约续借、书评互动、后台治理、采购物流与库存入库闭环
- Spring Boot 3.5.16、Vue 3.5.40、Vite 8.1.5
- 可选 Docker Compose 完整环境
- MySQL、Redis、RabbitMQ 和受保护健康检查
- GitHub Actions 持续集成
- README 真实截图与完整部署文档
- 单份 SQL 初始化入口
验证结果
- 后端测试:226/226
- 前端单测:31/31
- 六个固定身份全链路通过
- 三实例并发一致性验证通过
- 浏览器诊断:116 个路由、414 次 API、5,678 次网络响应
- npm audit:0 vulnerabilities
SHA-256 校验值见附件 release.zip.sha256。