|
|
3c6d8cb891
|
feat(ssr): 帖子页全量 SSR——作者卡/目录首帧服务端渲染,消除冗余首屏请求
- 帖子快照携带作者主页资料与统计(authorProfile/authorStats),
SSR 端与客户端预热均取 /api/users/:id;PostAuthorCard 首帧直接渲染,
不再挂载后请求,统计数字不再显示 — 占位
- MainLayout 首帧从已 seed 的帖子快照派生右栏 outline(作者卡+文章目录),
修复 outline 仅靠 effect 上报导致 SSR 不渲染右栏的问题
- 壳层首屏请求门控:useAuth 有种子跳过 /api/me、branding 缓存命中不重拉、
侧栏三个区块首屏用 seed 缓存、未读数首屏跳过即时请求(轮询/事件刷新保留)
- serverDom(linkedom) 修复:DOMParser 片段包裹、属性顺序、SVG 自闭合展开
- 验证:首页与帖子页 hydration 后仅剩 pageview 上报,0 hydration 错误
|
2026-09-10 05:04:31 +08:00 |
|
|
|
2392768868
|
feat(ssr): 真 SSR 收尾——干净 hydration 与浏览器原生滚动恢复
- 修复 onRenderClient 引入 serverClient 导致浏览器 process is not defined:
抽出双端安全的 ssr/feedSeed.ts 作为唯一数据播种入口,serverClient 加 SSR 守卫
- 修复 React 19 Fizz Suspense Outlining:Suspense 边界从布局 Outlet 下移到
各懒加载路由,SSR 输出不再出现 <!--$?--> / $RB / template 探针标记
- 修复窄屏 React #418 hydration 致命错误:useMediaQuery 首帧恒 false,
useLayoutEffect 绘制前同步真实值;主题改 cookie 存储供 SSR 直出,
head 内联防闪烁/缩放脚本移除(缩放锁改为客户端 zoomGuard 模块)
- 清理假 SSR 残留:删除 StaticFeedList 镜像组件、SSR 图标生成脚本、
探针与死代码;列表接口裁剪正文,仅下发 excerpt/first_image
- Feed 与帖子详情改为窗口滚动(app-shell--doc-scroll):删除虚拟列表、
自研滚动快照与全局滚轮 hack;F5/前进后退滚动位置全部交给浏览器原生
历史恢复,HTML 响应头 no-cache 配合;锚点/楼层用 scrollIntoView +
scroll-margin-top 适配 sticky 顶栏
|
2026-09-09 20:53:28 +08:00 |
|
|
|
3702e3d1f2
|
chore: Tailwind CSS 3.4 迁移到 4.x(CSS-first 配置 + @tailwindcss/vite)
- 升级 tailwindcss@4.3 + @tailwindcss/vite,移除 postcss/autoprefixer/tailwindcss-animate
- tailwindcss-animate 替换为 tw-animate-css(v4 兼容的 animate-in/out 工具类)
- global.css 改用 @import "tailwindcss" + @theme inline 映射 shadcn 设计令牌
- @custom-variant dark 替代 darkMode:'class';@source 显式纳入 pages/ 目录
- 删除 tailwind.config.ts / postcss.config.js,components.json 同步 v4 约定
- vite.config.ts 接入 tailwindcss 插件,__dirname 改 import.meta.dirname
|
2026-09-09 02:54:56 +08:00 |
|
|
|
230006a905
|
chore: Docker 双服务 + Makefile/build.ps1 双进程目标 + README 架构更新
- Dockerfile 改为 Node 24 运行时:Vike 产物 + Go API 二进制共用镜像
- docker-compose 双容器:web(:3000 对外 SSR) + api(:3001 内部,持 /data 卷)
- entrypoint 改用 gosu 降权(Debian 基础镜像),健康检查用 node fetch
- Makefile/build.ps1:build 不再打包前端,新增 serve(本地双进程)与 web-build
- README 同步双服务架构、端口/环境变量、部署与开发说明
|
2026-09-09 02:48:28 +08:00 |
|
|
|
ba39376a0e
|
refactor: Go 端收缩,移除 SPA 服务与 embed_static
- 删除 embed_static(内嵌 SPA 静态资源)与 handler/ssr_home.go、ssr_icons.go
- router 移除前端页面服务,NoRoute 统一返回 404 JSON
- seo.go 仅保留 robots.txt / sitemap.xml / favicon.ico
- 数据聚合逻辑迁移到 handler/home_boot.go(/api/home-boot)
- 启动日志改为提示前端由 Node 渲染服务器提供
|
2026-09-09 02:41:53 +08:00 |
|
|
|
1ce0f123fa
|
feat: Node 渲染服务器(express + renderPage + API 反代)
- server/index.mjs:生产模式 Express 服务,静态资源 immutable 缓存
- /api /uploads /media 等前缀反代到 Go API,xfwd 透传客户端 IP
- Vike renderPage 承接 SSR,渲染失败返回 500 兜底页
- /healthz 健康检查端点
|
2026-09-09 02:41:39 +08:00 |
|
|
|
c99238c1e7
|
feat: Vike +data 服务端取数 / SEO Head 移植 / 404 错误页 / 服务端 DOM 模拟
- feedData.ts 聚合首页/板块/帖子详情数据,缺失内容 throw render(404)
- Go 侧 spa_meta/seo 的 head 生成逻辑移植到 src/ssr/head.ts
- _error 页复用站点壳渲染 404,+data 从 abortReason 恢复壳层数据
- linkedom 模拟服务端 DOM,DOMPurify 封装为 SSR 透传的 sanitizeHtml
- 新增 /api/home-boot 聚合端点(handler/home_boot.go)供 SSR 冷启动灌缓存
|
2026-09-09 02:41:30 +08:00 |
|
|
|
e71c77b5ca
|
feat: Vike 骨架(pages feed+spa / renderer 双端入口 / AppShell 拆分 / serverClient)
vite.config 接入 vike 插件并改产出 dist/client+dist/server;feed 白名单 route 匹配 /、/board/:id、/post/:id(.html);spa catch-all ssr:false;onRenderHtml renderToReadableStream 等 allReady 输出完整 HTML 并带主题/缩放脚本;onRenderClient 沿用样式表等待+冷启动预热+hydrate 回退;getHomeStoreState 作用域 + hydrating 变体入 RequestScope;删除 index.html 与 main.tsx
|
2026-09-09 01:21:58 +08:00 |
|
|
|
27132e89c2
|
feat: SSR 安全防卫与缓存作用域化(branding/limits/pages/auth/session)
theme/useTheme 服务端防卫 window/document;branding/limits/pages 缓存读请求作用域、seed 只写作用域;homeBoot 拆出 seedHomeBoot 与帖子详情快照构建器供 prefetchRoute 复用;getHomeStoreState 改返回 state 修复命令式访问
|
2026-09-09 01:05:12 +08:00 |
|
|
|
86a317c862
|
feat: SSR 请求级作用域(AsyncLocalStorage)+ homeStore 工厂化 + layoutCache 作用域适配
|
2026-09-09 00:35:19 +08:00 |
|
|
|
52d328ffc3
|
chore: 工具链升级到最新版本(Vite 8 / React 19 / react-router 8 / TS 7 / Go 1.26 依赖更新)
- 前端:vite ^8.2.2、react/react-dom ^19.2.8、react-router ^8.3.1(移除 react-router-dom)、typescript ^7.0.2、zustand ^5.0.15;适配升级带来的类型变化(react-hook-form Resolver、ProseMirror node.parent、tiptap focus 参数、timer undefined 等)
- 后端:升级 gin/jwt/minio-go/gorm/modernc-sqlite/x-crypto 等直接依赖至最新;gowebp v0.1.1 已是最新版本
- tsconfig 移除 baseUrl,paths 改为相对路径以兼容 TS7
|
2026-09-09 00:14:12 +08:00 |
|
|
|
711cd8b759
|
feat: 帖子全局/板块置顶支持权重排序,优化列表与详情渲染
|
2026-09-08 23:54:03 +08:00 |
|
|
|
de2f5e8be8
|
docs: changelog 排版优化,每个版本统一分隔线 + 📦 图标 + 日期格式统一
|
2026-09-02 19:51:12 +08:00 |
|
|
|
5c774f9a83
|
docs: 更新 changelog 为 v1.1.8
|
2026-09-02 19:49:13 +08:00 |
|
|
|
f3f50d7e90
|
chore: bump version to 1.1.8
v1.1.8
|
2026-09-02 19:40:35 +08:00 |
|
|
|
67bef6dc08
|
chore: 同步 Cursor 构建规则到 Trae,优化 .gitignore
- 新增 .trae/rules/build-scripts.mdc,与 Cursor 的 .cursor/rules/build-scripts.mdc 保持一致
- .gitignore 从忽略整个 .trae/ 改为仅忽略 .trae/documents/、.trae/chat/、.trae/image/ 等临时产物
- 保留 .trae/rules/ 可被 git 追踪,规则可跨机器同步
- 取消追踪已存在的 .trae/documents/ 临时规划文档
|
2026-09-02 19:34:49 +08:00 |
|
|
|
23e304ac53
|
chore: 在 .gitignore 中添加 .trae/ 目录
|
2026-09-02 19:30:33 +08:00 |
|
|
|
cad53942e8
|
fix: 修复消息未读数同步和帖子详情快照逻辑
- MessagesPage: 新增 updateConvUnread 统一更新会话未读数及 session 缓存,
缓存命中时仍调用 markConversationRead 并触发未读刷新,
全部标为已读时同步更新 session 缓存避免 stale 数据
- PostDetailPage: 仅 POP 导航类型使用 session 快照恢复,
非 POP 导航和下拉刷新始终强制重拉确保拿到最新数据
|
2026-09-02 19:29:01 +08:00 |
|
|
|
76be8926f2
|
feat: 完善表情选择与评论富文本展示
发帖编辑器支持 OwO 贴纸;评论区复用文章列表、段落与代码块阅读态,并优化表情面板间距与悬停反馈。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-02 03:57:41 +08:00 |
|
|
|
4d93e455f9
|
fix: 私信表情插入编辑框,不再作为图片附件发送
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-02 03:12:33 +08:00 |
|
|
|
c958dcfd80
|
chore: 发布 Docker 镜像版本 1.1.7
Co-authored-by: Cursor <cursoragent@cursor.com>
v1.1.7
|
2026-09-02 03:01:36 +08:00 |
|
|
|
84bfbd9a3e
|
fix: 帖子详情右栏默认头像与全站配色一致
作者卡占位头像改为深绿底白字,与 post-avatar 默认样式统一。
|
2026-09-02 02:50:23 +08:00 |
|
|
|
500e452c2f
|
feat: 重设计私信页并优化开源展柜体验
私信改为飞书风布局,支持缩略图表情/图片、按会话草稿与用户搜索发起会话;主页发私信直达消息页。开源展柜修复空列表粘滞并改版目录式 UI。
|
2026-09-02 02:45:29 +08:00 |
|
|
|
1c0f7ede55
|
fix: 待审通知实时回填审核态并重构消息页体验
|
2026-09-02 01:39:27 +08:00 |
|
|
|
2e9c42a34c
|
chore: 发布 Docker 镜像版本 1.1.6
同步更新日志与 README 下载链接;含编辑器链接/图片选择器与首页最新活动排序。
Co-authored-by: Cursor <cursoragent@cursor.com>
v1.1.6
|
2026-09-01 22:02:00 +08:00 |
|
|
|
dff60dde6a
|
fix: 首页默认排序改为最近活动时间线
reply 按发帖与最后评论的较晚时间混排,零回复新帖不再沉底;默认文案改为「最新」。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 21:54:44 +08:00 |
|
|
|
ea9e0058d4
|
fix: 链接对话框站内搜索收进高级选项
默认只显示网址与文字;展开高级选项后再搜站内内容,点选时同步更新链接文字。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 21:33:24 +08:00 |
|
|
|
d5aa36416c
|
feat: 增强编辑器链接对话框并统一图片插入选择器
链接支持网址/文字与站内搜索,新标签由全站设置控制;文章与评论共用已上传图片选择器。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 21:22:03 +08:00 |
|
|
|
2159280af5
|
style: 三栏主滚动区统一细绿色滚动条
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 19:12:24 +08:00 |
|
|
|
bc9a031890
|
feat: 单页详情右侧栏与帖子共用目录布局
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 18:34:59 +08:00 |
|
|
|
0d81787125
|
fix: 从正文同步派生帖子目录,避免预取缓存竞态导致空树
EOF
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 18:25:42 +08:00 |
|
|
|
68713c053b
|
docs: 增加更新日志并指向 Gitea Release 下载
让 Docker 与 Windows/Linux 用户能对照同一版本号获取新包。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 18:09:41 +08:00 |
|
|
|
94823c0821
|
chore: 发布 Docker 镜像版本 1.1.5
Co-authored-by: Cursor <cursoragent@cursor.com>
v1.1.5
|
2026-09-01 08:16:29 +08:00 |
|
|
|
b608ec85ba
|
fix: 桌面隐藏导航汉堡,恢复评论数与共 N 条右对齐
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 08:11:29 +08:00 |
|
|
|
6048d71759
|
fix: 帖行评论数勿贴右缘,手机 SSR 顶栏/页脚与 React 同构
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 08:06:57 +08:00 |
|
|
|
37d14a22d5
|
fix: 发版后软刷新检测入口壳并在 chunk 404 时硬刷新
避免 Logo/下拉刷新仍跑旧 index.js,以及站内消息预取失败弹出英文 toast。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 07:53:39 +08:00 |
|
|
|
a02d103cfe
|
fix: 排序栏 count 紧跟标签,FeedSortBar 与 SSR 统一为 a 标签
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 07:48:18 +08:00 |
|
|
|
21c6233fc0
|
feat: 排序标签强制刷新、推荐帖仅 featured,软刷新同步 limits/品牌文案
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 07:32:21 +08:00 |
|
|
|
4ca5c17e2e
|
fix: 拆除爬虫专用 HTML,并补齐 /favicon.ico 与 head 图标注入
人机统一走 SPA/首页 SSR;约定路径与 link rel=icon 便于爬虫识别站点图标。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 07:15:06 +08:00 |
|
|
|
cf7a37eccc
|
chore: 忽略 lucide path 抽取临时文件
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 07:08:47 +08:00 |
|
|
|
44eed97fe0
|
feat: 首页 Go SSR 与 React hydrate 同构,消壳层与帖行闪动
补齐侧栏/右栏图标与徽章、鉴权种子、StaticFeedList,并修正嵌套 a 与标题徽章对齐。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 07:07:38 +08:00 |
|
|
|
9e134916a4
|
fix: 软刷新齐套前保留旧画面,避免一点击就卸光
Logo/下拉静默预热后一次覆盖;commit 不再先 reset/loading;顺带会话预取与可配置 Feed 排序标签。
|
2026-09-01 04:56:10 +08:00 |
|
|
|
ba60a9b1c4
|
feat: 调整 Feed 排序为新评论/新帖子/推荐帖
默认按新评论;推荐排序优先 featured,并将用户可见「精华」文案改为「推荐」。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 01:59:01 +08:00 |
|
|
|
132ca5c82c
|
fix: 用 Zustand 缓存 Feed 列表,返回时恢复滚动且不重复请求
点击 Logo 仍强制刷新;后退忽略 history 上的 refreshFeed,并支持过期静默刷新与下拉刷新。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-01 01:50:33 +08:00 |
|
|
|
185649db7c
|
fix: 增加手机端排序栏顶部间距
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-08-31 23:56:40 +08:00 |
|
|
|
9d926750b2
|
chore: 发布 Docker 镜像 1.1.4
含城市中文映射补全与监控概览双通道口径对齐。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-08-31 09:07:50 +08:00 |
|
|
|
a91d917fa9
|
fix: 对齐监控概览双通道口径文案与诊断抽样
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-08-31 08:58:03 +08:00 |
|
|
|
34f3d088ad
|
fix: 补全 IP2Location 中国城市中文映射并按省消歧
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-08-31 08:40:12 +08:00 |
|
|
|
c6ce44f8b4
|
chore: 发布 Docker 镜像 1.1.3
包含网站监控与独立 monitor.db。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-08-31 07:58:54 +08:00 |
|
|
|
429956c594
|
feat: 管理端网站监控,浏览量写入独立 monitor.db
请求日志按日 JSONL;page_views 不进主库,避免统计数据撑大 jiang13.db。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-08-31 07:55:45 +08:00 |
|