Skip to content

fix(browser): 首次打开即显示帖子,并优化首页与阅读排版 - #237

Merged
LIghtJUNction merged 9 commits into
mainfrom
fix/home-first-read-20261009
Oct 9, 2026
Merged

LIghtJUNction merged 9 commits into
mainfrom
fix/home-first-read-20261009

Conversation

@LIghtJUNction

Copy link
Copy Markdown
Contributor

问题与修复

用户反馈:浏览器首次打开看不到帖子,重新加载后才出现。

在 main 02da87322ff134edb031cce837fa683f8999a12a 上已复现:PublicHomeCache 的全站摘要超过首次等待上限时返回空快照;http_routes.py 把帖子索引读取放在 if browser_html and home_data 内,导致统计未准备好时整个帖子列表都不生成。后台摘要完成不会改变已经送到浏览器的页面。

本次直接拆开两种读取:HTML 请求独立读取有数量限制的公开帖子索引,在首次服务端响应中输出帖子,不依赖统计、不添加轮询、不自动刷新页面。统计不可用、真正没有帖子、帖子读取失败分别显示,不能用假零值代替未知统计。未完整的浏览器响应不保存缓存、不生成 ETag;保留原有 raw/Markdown 的 ETag 和权限变化行为。

前端

  • 首页把最近帖子放到站点统计之前,恢复标题下的摘要;摘要复用原有用于标题的有限正文读取,不增加额外请求。
  • 减少列表边框及装饰线,通过留白、标题、摘要、时间和回复信息区分层次。
  • 桌面采用左侧栏目标题、右侧内容;手机改成纵向排版,主要点击区域至少 44px。
  • 同步整理话题页与帖子正文的标题、元信息和间距。保留现有 ASCII 展示、主题、语言、减少动态效果设置和登录能力。

最终与 main 的差异仅 9 个源码、测试、验收工作流文件。4 个生产源码文件合计 +96/-98 行;新增主要来自回归测试与浏览器验收。临时传输文件和临时执行工作流均已从最终源码树删除。

验证证据

验收 run 37952857601,原始产物 11627066066。

  • 旧版源码:新增首次访问测试按预期失败,明确缺少帖子的真实链接;不是环境错误或跳过。
  • 修复后:95 passed,0 failed、0 errors、0 skipped。使用真实 PostgreSQL 16、项目锁定依赖、Python 3.15.0rc3;覆盖首次读取、统计失败、私有内容隔离、缓存、语言、帖子与话题读取等。
  • Ruff check、Ruff format check、warnings-as-errors compileall、依赖兼容检查、git diff --check 全部通过。
  • 真实 Chromium 检查 360/768/1440 × 深浅两种主题,共 6 组;检查点击、返回、前进、话题导航、控制台异常、CSP、点击区域和横向溢出,生成首页/话题/帖子共 18 张截图。
  • 另验证正常动态效果下的导航,以及关闭 JavaScript 后的首次内容读取和链接导航。
  • 浏览器测试使用生产渲染器和安全响应头,在隔离 HTTP 服务提供测试内容;95 项 Python 测试另行检查真实应用与数据库。这些截图和浏览器数据不是线上用户数据,也不代表生产已部署。

验证提交:c5249db16a7983bbc0176b2b4b886033a3452258。
验证树:eb215fb1d79cab9618adab1efbf1e5ad2a51af25。
证据 ZIP SHA256:a857352c1937d657faa5d721e747c3076e6704cf3b21335da90522098609b57d。

验收状态说明

该验收 run 的代码、数据库、浏览器步骤均成功,但整体标红:最后通过工作流令牌推送时,由于该令牌没有修改工作流文件的权限而被拒绝。已通过原有获授权的 GitHub 连接,以 expected-head 检查将分支快进到上述同一个已测试提交;没有更改测试源码,也没有增加令牌权限。

前两次验收发现并修复了测试回调捕获、翻译文案误判,以及 raw 缓存兼容回归;最终 95 项已全部通过。不得把前两次失败或最后推送失败描述成整条流水线成功。

新增只读的 .github/workflows/home-first-read.yml,让本 PR 及以后相关改动继续运行这些检查。合并前仍需核对 PR 的完整 CI。

范围

没有合并到 main、没有部署、没有修改生产配置或密钥;没有改动 AgentID 登录与账号权限,也未修改 Rust 迁移分支。生产页面仍需在审查合并并部署后生效。

Copilot AI balanced review requested due to automatic review settings October 9, 2026 15:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review ✅ Completed 2026-10-09T15:48:40.347106Z c5249db PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@LIghtJUNction
LIghtJUNction merged commit 705b44f into main Oct 9, 2026
26 of 28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants