docs(ql3): record delivered native log navigation artifacts

This commit is contained in:
whyour
2026-09-04 03:31:51 +08:00
parent ce8c3a7d2a
commit 9708a37154
5 changed files with 16 additions and 8 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
- D-431/ADR-0533(原生 Console 源码候选):Task、Trigger、Run 列表接入既有 keyset API,开放下一页、回到首页和当前页刷新,每次最多 64 条并替换 DOM,不缓存历史页、不轮询或扩大后端查询。验证规范 cursor、页内/跨页顺序与继续边界;请求/选择代次防止旧列表、错误、详情和 Secret catalog 覆盖当前页面。客户端与生产 HTTP parser 集成 15/15、完整 Local API 114/114,静态资产共 111,857 bytes;默认 headless/Cluster 不变。远端 CI、浏览器证据和 exact 阶段实物分别核验,不借用 D-430 archive。
- D-430/ADR-0532原生 Console 源码候选):在原生运行详情中开放日志下一片段、回到开头与当前片段刷新,固定 32 KiB 替换窗口,不累计全文或后台轮询。严格验证响应身份、字节范围与前进 cursor,按不含凭据的选择代次丢弃过期响应,防止切换或断开后覆盖新详情。复用既有 API/Policy/Audit,不新增包、依赖、迁移或后端 authority;默认 headless 与 Cluster 不变。客户端行为测试和真实 Chromium 预览覆盖分页、重复点击、过期响应与字节边界;远端 CI 和 exact 双架构 Console 实物尚待验证
- D-430/ADR-0532exact Console 双架构阶段实物已交付):在原生运行详情中开放日志下一片段、回到开头与当前片段刷新,固定 32 KiB 替换窗口,不累计全文或后台轮询。严格验证响应身份、字节范围与前进 cursor,按不含凭据的选择代次丢弃过期响应,防止切换或断开后覆盖新详情。复用既有 API/Policy/Audit,不新增包、依赖、迁移或后端 authority;默认 headless 与 Cluster 不变。提交 `12ed38b7d72fe6366ad8f1ac84aebb1bb772f3b5` 主 CI run `33793623200` 为 42 success/3 expected skip/0 fail,独立 Kubernetes run `33793623184` 成功;Console artifact run `33793687627` 为 43 success/2 expected skip/0 fail。amd64/arm64/milestone artifact `9909229721`/`9909131639`/`9909265138` 实际下载后的 checksum、bundle v8 与 milestone v7 auditor 均通过;两个 archive 内的原生 JS 都与该提交逐字节一致。该实物不包含后续 D-431 列表分页,不等同完整 3.0 或 Public Release
- D-429/ADR-0531exact 双架构 Console 阶段实物已交付):现有面板的 Cron “日志”入口不恢复 2.x `/api/crons/:id/log` 或文件系统日志权威,而是复用规范 v3 Run/Attempt/Artifact 链。`BoundedRunListItem` 仅增加经 128 字节无控制字符验证的可选 `triggerId`;页面按 `triggerId + taskId` 在 Edge 64/Standalone 256 条 Run 总预算中定位最新 Run,再读取 detail 的 latest Attempt 与 16/32 KiB 首个日志片段,明确呈现 pending/retired/truncated。所有请求继续走 Bearer、Project Policy、durable audit、credential reconfirm 与 Artifact retention;不暴露路径、Artifact id、Secret 或其他 Run 私有字段。QL3 Action 列只开放日志,列表关闭旧 10 秒轮询,日志关闭旧 2 秒轮询,仅由初次进入、点击与手动刷新驱动;2.x 行为保持不变。没有新增 package、dependency、migration、schema、listener、连接或后台进程,headless 与 Cluster authority 不变。本地 runtime-core 594/594、Local API 93/93、全包/后端/架构审计、Node 20 production build、240 files / 11,965,017 bytes 闭包审计和真实 Chromium journey 均通过;浏览器稳定 15 秒只有一次 Cron list,日志稳定 5 秒只有 Run list/detail/log 各一次。运行时代码提交 `09ef1745226c05521a9a44accb9d9ef95dd46c85` 的主 CI run `33787481413` 为 42 success / 3 expected skip / 0 failConsole artifact run `33789576578` 为 43 success / 2 expected skip / 0 failamd64/arm64/milestone artifact `9907367021`/`9907250404`/`9907412968` 保留至 2026-10-03,下载后的 `SHA256SUMS` 与 v7 离线 auditor 均返回 `compatible=true`
@@ -1,6 +1,6 @@
# ADR-0532:原生 Console 的日志窗口导航
- 状态:AcceptedD-430 源码候选;远端 CI 与 exact Console 实物待验证
- 状态:AcceptedD-430 exact Console 双架构阶段实物已交付
- 日期:2026-09-04
- 关联:QL-RFC-0001 D-430、ADR-0515、ADR-0531
@@ -24,4 +24,12 @@
本地验证:客户端行为测试 6/6、完整 Local API 99/99、后端 1685 项(1683 pass / 2 环境条件 skip / 0 fail),Local image 与 package boundary audit 均 compatible。原生 JS 为 74,695 bytes,三项资产合计 106,216 bytes,均在既有硬上限内。
源码与本地门通过不等同阶段镜像交付。远端完整 CI、exact Console 双架构构建与离线实物校验仍需闭合;此前 ADR-0531 的 `09ef1745` artifact 不包含本切片。
## 阶段实物
提交 `12ed38b7d72fe6366ad8f1ac84aebb1bb772f3b5` 的主 CI [run 33793623200](https://github.com/whyour/qinglong/actions/runs/33793623200) 为 42 success / 3 expected skip / 0 fail;独立 Kubernetes deployment [run 33793623184](https://github.com/whyour/qinglong/actions/runs/33793623184) 成功。显式 Console artifact [run 33793687627](https://github.com/whyour/qinglong/actions/runs/33793687627) 为 43 success / 2 expected skip / 0 fail。
该 run 交付 amd64/arm64/milestone artifact `9909229721`/`9909131639`/`9909265138`GitHub ZIP 大小为 `239032779`/`234432459`/`6797` bytesUTC 保留至 2026-10-03。三份实际下载产物的 `SHA256SUMS` 全部通过,两个 bundle v8 auditor 和 milestone v7 auditor 均返回 `compatible=true`,绑定相同 source revision、Console variant、workflow/run/attempt 与两个架构。
本机还将两个下载 bundle 的 manifest SHA-256 与 milestone 索引逐一比对,并直接读取 Docker archive 中 Application 最终层的 `console.js`;两者都与该提交的源码逐字节一致,均为 74,695 bytesSHA-256 为 `ad1a7d1e8f85f158268f9375b2db5e8c52fbb03ada5888a973f57020c36d4c02`。这确认日志导航确实进入镜像,而非只改了标签或文档。本机执行的是下载后离线校验,不是额外启动真实部署。
此前 ADR-0531 的 `09ef1745` artifact 不包含本切片;本次 `12ed38b7` artifact 同样不含后续 D-431 列表分页。阶段实物仍是 `alpha_candidate_not_public_release`,不声明完整 3.0、Cluster 页面或生产升级已经完成。
+1 -1
View File
@@ -535,7 +535,7 @@
| [ADR-0529](./ADR-0529-bounded-read-only-local-panel-cron-adapter.md) | 有界只读 Local 旧面板 Cron Adapter | AcceptedD-427 双架构阶段实物已交付) |
| [ADR-0530](./ADR-0530-bounded-local-panel-capability-bootstrap.md) | 有界 Local 面板能力发现与启动适配 | AcceptedD-428 exact Console 双架构阶段实物已交付) |
| [ADR-0531](./ADR-0531-canonical-run-log-bridge-for-legacy-panel.md) | 现有面板到规范 Run 日志的有界桥接 | AcceptedD-429 exact Console 双架构阶段实物已交付) |
| [ADR-0532](./ADR-0532-native-console-log-window-navigation.md) | 原生 Console 日志窗口导航 | AcceptedD-430 源码候选;实物待验证 |
| [ADR-0532](./ADR-0532-native-console-log-window-navigation.md) | 原生 Console 日志窗口导航 | AcceptedD-430 exact Console 双架构阶段实物已交付 |
| [ADR-0533](./ADR-0533-native-console-ledger-pagination.md) | 原生 Console 任务、定时与运行列表分页 | Accepted(D-431 源码候选;实物待验证) |
## 规则
+2 -2
View File
@@ -81,8 +81,8 @@ Console quickstart 还会通过 strong local operator 创建一个默认不自
`alpha-first-automation`。在页面输入 `owner-credential.json` 中的 token,选择该 Task
核对 revision/content digest 后显式运行;它只执行 `/bin/echo` 固定标记,不使用网络、
SecretRef 或 Trigger。D-429 已交付产物选择该 Run 后,会经既有 `artifact.read` 权限链展示 latest
Attempt 首个 32 KiB 日志。D-430 源码候选在原生 `/console` 增加手动分段导航;其 exact 双架构
产物尚待验收,不应把旧 archive 当作支持翻页的版本。版本与入口差异见
Attempt 首个 32 KiB 日志。D-430 已交付的 `12ed38b7` 双架构产物在原生 `/console` 增加手动日志分段导航;
它不包含后续 D-431 Task/Trigger/Run 列表分页,也不应将更旧的 archive 当作支持日志翻页的版本。版本与入口差异见
[页面功能与下载版本](./ql3-local-web-console.md#页面功能与下载版本)。页面不会自动轮询或下载整份日志。
headless 不创建示例 Task,因此低配默认档没有示例数据或稳态开销。
+2 -2
View File
@@ -20,7 +20,7 @@ D-418 已闭合独立 Console image/Trial KitD-419 的 v5 quickstart 进一
| 阶段 | 页面能力 | 交付依据 |
| --- | --- | --- |
| D-429 | 原生 Task/Trigger/Secret/Run 操作;适配后旧面板登录、只读 Cron 列表与首片日志 | `09ef1745226c05521a9a44accb9d9ef95dd46c85`[Console milestone run 33789576578](https://github.com/whyour/qinglong/actions/runs/33789576578),已交付,见 [ADR-0531](../adr/ADR-0531-canonical-run-log-bridge-for-legacy-panel.md) |
| D-430 | 原生 `/console` 日志“下一片段”“回到开头”“刷新当前片段” | `12ed38b7d72fe6366ad8f1ac84aebb1bb772f3b5`[Console artifact run 33793687627](https://github.com/whyour/qinglong/actions/runs/33793687627) 已启动,尚未完成阶段实物验收,见 [ADR-0532](../adr/ADR-0532-native-console-log-window-navigation.md) |
| D-430 | 原生 `/console` 日志“下一片段”“回到开头”“刷新当前片段” | `12ed38b7d72fe6366ad8f1ac84aebb1bb772f3b5`[Console artifact run 33793687627](https://github.com/whyour/qinglong/actions/runs/33793687627) 已交付,两个下载 bundle 与 milestone 均通过离线审计,见 [ADR-0532](../adr/ADR-0532-native-console-log-window-navigation.md) |
上表的旧面板是 bundle 自带的适配版本,不是未修改的 2.x 静态页面;旧账号密码/JWT、现有 2.x 数据和 Cluster 管理能力不会因页面可打开而自动接通。
@@ -98,7 +98,7 @@ D-424 阶段实物的原生 `/console` 可操作闭环是内建 argv command Tas
- 日志整文件下载、终端、文件管理或 2.x 数据迁移;
- LAN/public 暴露、TLS termination、多用户 Web session 或 Cluster 管理。
原生 `/console` 的三项静态资产受 192 KiB 总闭包和单文件 96 KiB 门约束;D-430 源码候选合计 106,216 bytes。D-429 兼容面板经裁剪后为 240 files / 11,965,017 bytes,上限 256 files / 13 MiB / 单文件 3 MiB,不携带 `.gz` 副本或 Monaco Editor。Console 镜像仍按 12-package 闭包及 768 files / 20 MiB 门审计,exact 文件数与字节数以该次构建结果为准,不能沿用旧镜像统计。AI 依赖仍被排除;默认 headless Edge 不携带 Console/API/兼容面板资产、listener 或 Secret mutation surface。
原生 `/console` 的三项静态资产受 192 KiB 总闭包和单文件 96 KiB 门约束;D-430 阶段实物合计 106,216 bytes。D-429 兼容面板经裁剪后为 240 files / 11,965,017 bytes,上限 256 files / 13 MiB / 单文件 3 MiB,不携带 `.gz` 副本或 Monaco Editor。Console 镜像仍按 12-package 闭包及 768 files / 20 MiB 门审计,exact 文件数与字节数以该次构建结果为准,不能沿用旧镜像统计。AI 依赖仍被排除;默认 headless Edge 不携带 Console/API/兼容面板资产、listener 或 Secret mutation surface。
静态资源采用 64 KiB 流式发送;Edge 为 API 保留 4 个并发名额、另给静态资源 16 个,Standalone 分别为 32/64。兼容面板残留的外部图标和装饰图片会被严格 CSP 阻止,不影响登录、只读 Crontab 或原生 `/console`;不要为恢复装饰资源放宽 CSP 或联网边界。