From 3520d957c8c6146f98d0baa32cc10272ce9ef5f4 Mon Sep 17 00:00:00 2001 From: smail Date: Tue, 8 Sep 2026 23:08:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=97=A5=E5=BF=97=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E4=BF=9D=E7=95=99=E9=83=A8=E7=BD=B2=E4=B8=8E=E6=B5=8F?= =?UTF-8?q?=E8=A7=88=E5=99=A8=E9=AA=8C=E6=94=B6=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/日志改造任务.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/docs/日志改造任务.md b/docs/日志改造任务.md index 8396bf1..34c0aa6 100644 --- a/docs/日志改造任务.md +++ b/docs/日志改造任务.md @@ -15,13 +15,13 @@ ## 实施状态 -- [✓] 复审通过:需求确认与修改前 Git 检查点,`5faadcd`、`b77b272` 已成功推送至 `smail/main`。 +- [✓] 复审通过:需求确认与修改前 Git 检查点,`5faadcd`、`b77b272` 已成功推送至 `smail/main`;后续修正提交 `b4337dc`、`b3935d1` 也已推送。 - [x] 已完成,等待复审:三数据库兼容存储、30 天滚动清理及旧配置审计幂等迁移;SQLite 已真实执行,MySQL、PostgreSQL 等待专用连接验收。 - [x] 已完成,等待复审:操作及收发信记录接入;登录完成的身份与二次验证入口补充审计。 - [✓] 复审通过:运行日志日文件、七天压缩、边界日精确清理和压缩查询;损坏归档保留原文件;归档不阻塞当天已打开日志句柄追加。 - [✓] 复审通过:具体配置变更明细、敏感字段脱敏及审计导出回归。 -- [x] 已完成,等待复审:日志管理页面,访问权限、筛选、短页回退、过期文件切换、请求竞态回归通过,尚待真实浏览器验收。 -- [~] 进行中:完整构建、同步最新部署包至 `yunx-test`、重启及浏览器验收。 +- [x] 已完成,等待复审:日志管理页面,访问权限、筛选、短页回退、过期文件切换、请求竞态回归通过;浏览器已验证分类切换、筛选、历史审计详情和当前运行日志,真实业务写入与压缩文件查看尚未完整端到端验收。 +- [✓] 复审通过:完整构建并同步最新部署包至 `yunx-test`,后端重启成功,源码指纹及部署程序哈希校验通过;前端开发服务继续运行。 - [!] 暂缓或存在阻塞:MySQL、PostgreSQL 活库测试缺少本项目专用测试连接,不能用其他项目数据库替代。 ## 当前验证记录 @@ -29,11 +29,26 @@ - 全量回归:`test-log/run-2026-09-08T14-40-12-728Z-20120`,前端 144 项、部署 4 项及后端全包通过。 - 并发检测:`test-log/run-2026-09-08T14-44-59-839Z-25272`,运行日志与数据库日志包 `-race -count=1` 通过。 - 补充修正后的全量回归:`test-log/run-2026-09-08T14-51-24-127Z-17952`,前端 144 项、部署 4 项及后端全包通过,包含完整登录审计身份及致命错误落盘测试。 +- 最新部署源码全量回归:`test-log/run-2026-09-08T15-03-33-242Z-25356`,前端 145 项、部署 4 项及后端全包通过,执行退出码为 0;汇总在 `test-log/log-final-deployed-regression-20260908.log`。 +- 完整构建发现日志页错误使用 Axios 默认导出,已改为现有的命名导出 `http`,并新增导入契约回归。修正后的前端、三个插件、主程序及管理员工具均构建成功,记录在 `test-log/log-deploy-final-second-20260908.log`。 +- 部署包源码提交为 `b3935d1`,运行版本为 `dev-2f06b03f2afd`,数据库结构版本为 17。2026-09-08 23:06 再次执行 `node deploy/build-state.mjs verify --deployed`,退出码为 0;后续仅更新本文档不改变源码指纹。 - MySQL、PostgreSQL 日志专项集成入口:`node test/run.mjs backend -v -run TestLogStoreServerDatabaseIntegration ./services/logstore`。需设置 `SMAIL_TEST_MYSQL_DSN`、`SMAIL_TEST_POSTGRES_DSN`,只创建连接私有临时日志表,不改动既有业务表;测试连接断线后禁止自动重连。当前变量未设置,相关活库测试跳过。 +- MySQL、PostgreSQL 跳过记录:`test-log/run-2026-09-08T15-01-05-642Z-29732`。当前 SQLite 部署库只读核验记录在 `test-log/log-live-database-check-20260908.txt`,确认时间索引及分类时间索引存在;没有清空当前账号或邮件数据。 - 启动补清理,之后每小时执行,数据库每批最多删除 1000 条;查询立即应用最近 30×24 小时窗口。物理清理存在调度间隔,不声称每秒即时删除。 - 运行日志文件名采用 UTC 日期,每条记录含明确时区;后台显示本地时间。已压缩文件也按记录时间清理,压缩不重新计时。 - 模拟部署启动器的控制台诊断写入 `test-log/service-launch`,不在 `yunx-test/log` 重复生成散乱的启动文件;旧文件保留。 +## 浏览器与运行验收 + +- MCP 使用现有 Smail 窗口访问 `https://xuans.com/`,前端监听 80/443,后端监听 5201。后端使用 `yunx-test/smail.exe --dev-disable-admin-reset`;生产本地管理员恢复通道的权限要求未放宽。 +- 刷新后保留已有登录状态,设置导航末尾可进入日志页面;已依次切换配置审计、操作记录、收发信记录、运行日志。 +- 已查看 22 条导入的历史配置审计及详情。旧记录缺失修改前后值时明确说明,不补造历史详情。 +- 操作者编号筛选可返回空结果,清空后可恢复查询;当前运行日志文件与真实启动内容可读取。页面最终停留在运行日志分类。 +- 本轮未执行新的业务修改或真实收发信,因此操作记录和收发信页面只验证空状态;新配置变更明细、完整登录审计链路及真实邮件日志仍需后续端到端验收。 +- 压缩读取、七天压缩及三十天清理使用独立测试数据验证,未在真实部署目录伪造过期日志,也没有等待真实七天或三十天;压缩文件的浏览器读取仍未实测。 +- MCP 快照写入 `test-log` 被工具的工作区限制拒绝,没有生成快照文件;页面树已通过工具响应现场检查,不将不存在的文件作为验收证据。 +- 完整前端构建仍有既有编辑器分包大小告警:约 808.91 kB,gzip 后约 282.55 kB。此项不属于日志保留策略改造,未扩展修改。 + ## 验收边界 数据库连接沿用部署者当前配置,不能猜测或复用其他项目的密码。SQLite 实测通过不等于 MySQL、PostgreSQL 真实连接验收通过;方言检查与真实数据库测试必须分别报告。写入或清理失败必须可观察、可重试,不能无限排队或静默丢弃。