# R6 任务报告

## 目标

完成 Web 导航加载范围与全局增量刷新重构：资源切换只加载目标资源；切期保留大范围加载；手动和自动刷新保留旧内容、增量更新实际所需数据并保护编辑草稿；先验证开发 4317，再自动发布生产 4319。

## 交付

- GitHub issue：pikainc/selfmedia#52。
- Artificer 功能提交：`92f61c5782fbb1669e1e7dec58102c6dadcabf04`。
- 并发边界修正：`d07e436a01daf6a0bc611b62bbb8038ec7467ecd`。
- 功能 PR：pikainc/selfmedia#53。
- master 合并提交：`cb0ae1d1e6e8ede83e0da433724887999edce1a7`。
- 首次 master→release PR #54 因生产 PaC add/add 历史冲突关闭。
- 协调分支合并提交：`1d6b5f9c945f4454bb71af3e1b5179a36020a92b`，双亲为 release `48e92b2` 与 master `cb0ae1d`；合并树与 origin/master 内容零差异。
- 生产发布 PR：pikainc/selfmedia#55，release 合并提交 `91c23dd0e45916336e03e65532dea7daa73b0323`。
- 生产首次 cache miss 暴露的 BuildKit 收尾超时已在子任务 R6.1 / issue #56 修复。
- 最终生产 release 提交：`1b8117de839d6274535e43f17bd2fbb7114ba2a1`。

## 功能行为

- `config/server.yaml#spec.webRefresh` 是唯一配置真相：
  - 默认 5000ms；
  - 可选 5000/10000/30000/60000ms；
  - 允许关闭。
- 全局刷新协调器只刷新健康、系统、期次列表、任务、当前期次详情、当前可见资源及打开的元数据。
- 手动和自动刷新保留旧内容，不出现整页加载，不清空当前期次或生产信号链。
- 同一请求在途时不重叠；资源保存只排队一次尾随刷新。
- 刷新响应以 request id 和 edition identity 双重隔离，旧期次响应不能覆盖新期次。
- dirty/saving/conflict 状态保留本地草稿；后台新 revision 只提示，不覆盖编辑内容。
- 切资源只更新资源路由和资源工作台；切期仍清空旧期内容并显示目标期次大范围加载。
- Web 保持中文、紧凑、直角工业风。

## 自动化验证

- Artificer 修正后：18 个测试通过、101 个断言通过。
- Web build 通过。
- 双视口 E2E：2 个测试、26 个断言通过。
- E2E 覆盖双期次、禁用 abort、延迟旧响应、切期加载和资源保存唯一尾随刷新。
- 开发功能 PipelineRun：`selfmedia-nc01-cb0ae1d1e6e8ede83e0da433724887999edce1a7-kkbs5`，Succeeded，79 秒，env reuse hit。
- 最终开发 PipelineRun：`selfmedia-nc01-a97f87756923bf9c82dca9ff5d9956a603f068ff-txkxm`，Succeeded，88 秒。
- 最终开发 GitOps revision：`15a48f1585abc45c7998ed504e0c7696482cddbb`，Argo Synced/Healthy。
- 最终生产 PipelineRun：`selfmedia-production-nc01-1b8117de839d6274535e43f17bd2fbb7j4w42`，Succeeded，59 秒。
- 最终生产 GitOps revision：`b80059b19aeb4edf6b018c986f17e9d496915f1f`，Argo Synced/Healthy，运行副本 1/1。
- 开发入口：`http://152.53.229.148:4317`。
- 生产入口：`http://152.53.229.148:4319`。

## 生产浏览器验收

- 登录鉴权和公网 IP 访问正常。
- 自动刷新实际默认值为 `5000`。
- 选项为：关闭、5 秒、10 秒、30 秒、1 分钟。
- 来源证据切换到口播文案：
  - 当前期次标题保持；
  - 生产信号链 loading 数量 0；
  - 生产信号链 loading mutation 数量 0。
- 手动刷新：
  - 当前期次标题和资源内容保持；
  - 生产信号链 loading 数量 0；
  - loading mutation 数量 0。
- 未保存草稿在增量刷新后保持，状态为“未保存”，生产信号链 loading 数量和 mutation 数量均为 0。
- 通过浏览器侧 500ms 延迟目标期次详情请求，明确观察到切期的大范围 loading，随后目标期次正常 ready。
- 1920×1080 桌面截图通过视觉核验：
  - `/tmp/selfmedia-r6-prod-desktop.png`
  - SHA-256：`82cd37358a42d077af8a2ffd572b44bbfc0a8175a5c2a94636448e8d0c441725`
- 390×844 移动端：
  - viewport、body 与 scrollWidth 均为 390；
  - 刷新控件 x=12、y=67、width=366、height=35；
  - masthead x=0、y=0、width=390、height=148；
  - 无横向溢出。
- 移动端截图：
  - `/tmp/selfmedia-r6-prod-mobile.png`
  - SHA-256：`782fd23c7c7b31d67189289edefa5eede14cd02edc41610d5a4b0c260237a9a6`

## 发布约束

全程通过 GitHub PR merge 自动触发 PaC。没有手工 PipelineRun、Argo sync/refresh、Pod patch、mirror sync 或运行面补齐。
