From b54d1c746966ba1e6ef3846bb4e28f10e4ec5dd8 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sat, 7 Nov 2026 16:13:22 +0800 Subject: [PATCH] Finish provider acceptance and reader handoff [skip ci] --- AGENTS.md | 2 +- README.md | 4 ++-- docs/auth-integration.md | 8 ++++---- docs/paper-api.md | 6 +++--- src/app/about/page.tsx | 5 ++++- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 9b2a49c..d797392 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,7 @@ - 源数据只读;不复制整库,不从浏览器直连 SQLite 或持有数据库凭据。 - 阅读与文章列表优先,无 KPI 仪表盘。默认 Vignelli;Editorial、Tufte 可切换。UI Craft Editorial 的衬线默认按用户现代简洁偏好及选定主题调整。 - 项目级技能在 .agents/skills;beautiful-article 内含 Vignelli/Tufte authoring profiles,两者不是独立上游 skill。Beautiful Article 只在另行请求单篇 HTML 文章时进入其完整 harness。 -- 英文品牌 Thesisly、中文名研迹;远程仓库为 `ssh://git@gitea.entroia.com:22222/Zayden-Jung/Thesisly.git`。用户已在 FOUNDRY_PROJECTS 新增 thesisly 回调,并复用当前正式 Core 二进制完成仅配置重载;新旧项目路由、Google/Slack 跳转和取消回调通过,Google真实首次注册登录及用户侧刷新/新标签保持、退出已确认;Slack与邮件实际链路仍待验收。main 仅允许本次已授权的空初始化提交,其余代码走工作分支与人工 PR 合并。 +- 英文品牌 Thesisly、中文名研迹;远程仓库为 `ssh://git@gitea.entroia.com:22222/Zayden-Jung/Thesisly.git`。用户已在 FOUNDRY_PROJECTS 新增 thesisly 回调,并复用当前正式 Core 二进制完成仅配置重载;新旧项目路由、Google/Slack 跳转和取消回调通过,Google/Slack真实授权登录及用户侧刷新、新标签保持、退出均已确认,Google首次授权已完成注册;邮件投递与验证未实测。main 仅允许本次已授权的空初始化提交,其余代码走工作分支与人工 PR 合并。 - 论文库已由「调查云盘占用原因」任务完成 PostgreSQL 迁移、验收与切换;Foundry Core 的只读论文 API 正在按已发布 schema 联调。服务器已配置专用 SELECT 账号,连接串仅保存在服务器受保护文件中。不部署已撤回的 SQLite 方案,也不要求添加 FOUNDRY_RESEARCH_DATABASE。 diff --git a/README.md b/README.md index bb6cca2..b7887b2 100644 --- a/README.md +++ b/README.md @@ -48,13 +48,13 @@ pnpm test:session 类型检查与16项测试已通过:除了Cookie/样本策略,测试直接调用生产认证代理,覆盖兑换、登录/邮件验证、续期、退出、错误、凭据隔离与请求限制。它们使用进程内模拟的Core响应,不代表真实OAuth成功,也不需要启动Next.js或编译。 -12项隔离样本模式桌面/手机浏览器测试已通过,覆盖搜索、分页、空结果、文章摘要与引用复制、三种主题持久化、登录/注册表单和404恢复;截图用于人工核对布局;样本dev运行在17323,不占用17322预览。另有7项浏览器会话测试,使用隔离的实际Next dev副本和生产代理连接模拟Core,验证刷新/新标签恢复、HttpOnly Cookie、跨标签退出、故障重试、失效清理、Google/Slack模拟PKCE和邮箱验证的一次性兑换。测试不复制.env,不访问真实账户,结束后清理副本;新增2项隔离浏览器回归验证搜索错误恢复及异常数据处理,合计9项隔离浏览器测试通过;这些测试的Core响应仍为合成数据。另已在真实库上检查桌面/手机首页、简介、领域和全文搜索、超时后缩小搜索恢复。Google真实注册登录已到达后端,用户已确认刷新、新标签保持及退出正常;Slack和邮件实际链路尚未验收。生产构建按用户要求未执行。前端目录为 `/Users/zzyang/thesisly`,远程已连接 Zayden-Jung/Thesisly,main 仅有用户授权的空初始化提交;论文 HTTP API 已纳入本目标,由代理在 Foundry Core 的 codex/research-api 分支实现。 +12项隔离样本模式桌面/手机浏览器测试已通过,覆盖搜索、分页、空结果、文章摘要与引用复制、三种主题持久化、登录/注册表单和404恢复;截图用于人工核对布局;样本dev运行在17323,不占用17322预览。另有7项浏览器会话测试,使用隔离的实际Next dev副本和生产代理连接模拟Core,验证刷新/新标签恢复、HttpOnly Cookie、跨标签退出、故障重试、失效清理、Google/Slack模拟PKCE和邮箱验证的一次性兑换。测试不复制.env,不访问真实账户,结束后清理副本;新增2项隔离浏览器回归验证搜索错误恢复及异常数据处理,合计9项隔离浏览器测试通过;这些测试的Core响应仍为合成数据。另已在真实库上检查桌面/手机首页、简介、领域和全文搜索、超时后缩小搜索恢复。Google和Slack真实登录均已到达后端,用户分别确认刷新、新标签保持及退出正常;邮件实际投递与验证未实测。生产构建按用户要求未执行。前端目录为 `/Users/zzyang/thesisly`,远程已连接 Zayden-Jung/Thesisly,main 仅有用户授权的空初始化提交;论文 HTTP API 已纳入本目标,由代理在 Foundry Core 的 codex/research-api 分支实现。 ## 当前后端依赖 论文库已完成 PostgreSQL 迁移及独立验收。当前本地忽略配置通过 SSH 回环隧道连接 ECS 上的临时 Core(真实库已验证3,526,999篇);浏览器不持有数据库连接串。临时 Core 仅启用真实论文只读连接,账户仍访问正式 Core。宽泛全文计数可能超时,页面会保留搜索表单并提示缩小范围,不显示伪造总数或退回样本。 -用户已配置 Thesisly 的 FOUNDRY_PROJECTS,正式 Core 已通过仅配置重载生效,原有项目保留;Google/Slack 跳转与取消回调通过,Google真实账户及会话检查已由服务端观察和用户实测确认,Slack和邮件链路仍待验收。研究 API 的新代码尚未合入或部署正式后端。本阶段不触发CI,交付使用Gitea [skip ci]提交与PR标记并核对运行记录;本地build未执行,不采用SQLite sidecar,也不需要FOUNDRY_RESEARCH_DATABASE。 +用户已配置 Thesisly 的 FOUNDRY_PROJECTS,正式 Core 已通过仅配置重载生效,原有项目保留;Google/Slack 跳转与取消回调通过,Google/Slack真实身份及会话检查已由服务端观察和用户实测确认;邮件投递未实测。研究 API 的新代码尚未合入或部署正式后端。本阶段不触发CI,交付使用Gitea [skip ci]提交与PR标记并核对运行记录;本地build未执行,不采用SQLite sidecar,也不需要FOUNDRY_RESEARCH_DATABASE。 ## Endoleap 参考 diff --git a/docs/auth-integration.md b/docs/auth-integration.md index 99af3f2..d7b6a32 100644 --- a/docs/auth-integration.md +++ b/docs/auth-integration.md @@ -23,9 +23,9 @@ ## 真实验收状态 -Google 已完成真实首次授权与注册登录:服务端观察到Thesisly的Google身份及有效会话,用户随后明确确认刷新保持、新标签保持、退出后刷新三项均正常。浏览器控制工具连接超时,因此浏览器操作结果以用户实测反馈为据,不冒称自动浏览器验收,也未读取个人浏览器Cookie或token。 +Google和Slack均已完成真实授权登录:服务端分别观察到Thesisly的两种提供方身份记录,用户随后分别明确确认刷新保持、新标签保持、退出后刷新三项均正常。Google首次授权还完成了项目账户注册。浏览器控制工具连接超时,因此浏览器操作结果以用户实测反馈为据,不冒称自动浏览器验收,也未读取个人浏览器Cookie或token。 -Slack 的授权入口与取消回调已验证,实际授权及会话检查已请求用户完成,尚未收到结果;邮件实际投递与验证仍未实测。HTTP 302、单测或模拟token测试不等于这些真实链路通过。 +授权入口与取消回调也已分别验证。邮箱表单及验证回调的接线有自动化覆盖,但邮件实际投递和收件验证未实测;不将该可选链路表述为已完成真实投递验收。 ## 代理验收 @@ -33,7 +33,7 @@ App Router 的 route.ts 直接调用 src/lib/auth-gateway.mjs。tests/auth-gatew ## 2026-11-07 配置更新 -用户已确认新增 Thesisly 的 FOUNDRY_PROJECTS 回调。FOUNDRY_RESEARCH_DATABASE 为已撤回的 SQLite 路径方案,无需添加。论文库已完成 PostgreSQL 迁移及验收,Core 的论文 API 已通过临时回环服务接入前端。正式 Core 项目注册现已生效,新旧四个项目匿名 auth/me 均返回401;Google/Slack 实际授权地址和取消回调已验证。Google真实授权及用户侧会话保持/退出检查已通过;Slack和邮件实际链路仍待验收。 +用户已确认新增 Thesisly 的 FOUNDRY_PROJECTS 回调。FOUNDRY_RESEARCH_DATABASE 为已撤回的 SQLite 路径方案,无需添加。论文库已完成 PostgreSQL 迁移及验收,Core 的论文 API 已通过临时回环服务接入前端。正式 Core 项目注册现已生效,新旧四个项目匿名 auth/me 均返回401;Google/Slack 实际授权地址和取消回调已验证。Google/Slack真实授权及用户侧会话保持、退出检查均已通过;邮件实际投递与验证未实测。 配置重载第一次因公网 TLS 探测超时而回退,已确认旧服务健康;随后按现有部署脚本使用回环 TLS、真实 SNI 与证书验证完成切换。服务器受保护验收记录为 foundry/verification/thesisly-config-foundry-core-1595929e8395.json,包含未变更的发布二进制 SHA256 和旧路由备份位置,不含认证凭据。 @@ -42,4 +42,4 @@ App Router 的 route.ts 直接调用 src/lib/auth-gateway.mjs。tests/auth-gatew `pnpm test:session` 使用系统 Chrome 和独立端口17323/17324:复制应用源文件到可清理的临时目录,运行真实 Next dev、App Router 代理与浏览器,只有 Core 响应为合成服务。它不会读取项目 .env、占用17322预览、发送真实密码或连接真实 OAuth。其中7项测试验证HttpOnly/SameSite Cookie及客户端无token、刷新/新标签恢复、跨标签退出、暂时故障后重试、失效清理、退出失败保留会话,以及Google/Slack模拟PKCE和邮箱验证的一次性消费。它证明前端会话接线,不证明真实Core数据、邮件投递、提供方授权或生产配置。 -另外2项浏览器用例使用同一隔离dev和合成论文API,验证400/429/503/504时保留搜索条件、隐藏未知总数和分页、缩小查询后恢复,以及格式异常响应不会显示成空结果或退回样本。共9项浏览器回归已通过。真实库上也验证了宽泛搜索超时后修改为CartoonGAN可恢复3条结果;宽泛全文计数的性能仍待优化。 +另外2项浏览器用例使用同一隔离dev和合成论文API,验证400/429/503/504时保留搜索条件、隐藏未知总数和分页、缩小查询后恢复,以及格式异常响应不会显示成空结果或退回样本。共9项浏览器回归已通过。真实库上也验证了宽泛搜索超时后修改为CartoonGAN可恢复3条结果;宽泛全文精确计数可能超出8秒预算,这是当前已知限制,用户可保留条件直接缩小查询或重试。 diff --git a/docs/paper-api.md b/docs/paper-api.md index a07c792..6472894 100644 --- a/docs/paper-api.md +++ b/docs/paper-api.md @@ -30,9 +30,9 @@ source_records按paper_id关联;作者兼容[family,given,suffix]数组与字 ## 读取边界 -已核对实际 PostgreSQL schema、编码标记和索引,并在服务器创建专用 SELECT 账号及受保护连接配置。已通过 SSH 回环隧道验证真实全库首页和详情(桌面/手机无页面异常和横向溢出),查询性能仍在调整;临时 Core 不是正式部署。不部署 SQLite sidecar,不复制整库,不从浏览器持有数据库连接串。 +已核对实际 PostgreSQL schema、编码标记和索引,并在服务器创建专用 SELECT 账号及受保护连接配置。已通过 SSH 回环隧道验证真实全库首页和详情(桌面/手机无页面异常和横向溢出),非常宽泛查询可能超出8秒预算;临时 Core 不是正式部署。不部署 SQLite sidecar,不复制整库,不从浏览器持有数据库连接串。 -最多两个并行查询、8秒查询预算;繁忙返回429,超时/存储异常明确报错。已补建作者和领域索引,并局部关闭 JIT、调整过滤取页顺序。实测作者搜索146条、cs.AR领域9457条、CartoonGAN搜索3条、多词全文检索8653条均返回200;非常宽泛的检索仍可能超出8秒预算,需继续优化。语料库是共享公开数据;账户与未来私有收藏仍须按项目隔离。 +最多两个并行查询、8秒查询预算;繁忙返回429,超时/存储异常明确报错。已补建作者和领域索引,并局部关闭 JIT、调整过滤取页顺序。实测作者搜索146条、cs.AR领域9457条、CartoonGAN搜索3条、多词全文检索8653条均返回200;非常宽泛的检索仍可能超出8秒预算,这是当前已知的性能限制。语料库是共享公开数据;账户与未来私有收藏仍须按项目隔离。 ## 联调前置 @@ -41,7 +41,7 @@ source_records按paper_id关联;作者兼容[family,given,suffix]数组与字 - 用户已确认新增 FOUNDRY_PROJECTS;无需添加 FOUNDRY_RESEARCH_DATABASE。PostgreSQL 后端连接仅放服务器受保护的 research.env,不放 Gitea Variables 或前端配置。 - 本地忽略文件 PAPER_API_ORIGIN 现指向 127.0.0.1:17325/projects/thesisly/research/,通过 SSH 连接 ECS 临时 Core。隧道和临时服务停止时应显式报错,不退回样本。 - 前端仓库为Zayden-Jung/Thesisly,不配置CI/CD;本地build按用户最新要求暂不执行。 -- 正式 Core 已仅重载项目配置,Thesisly 匿名 auth/me 当前返回401,原有项目保留;论文 API 新代码仍未发布正式后端。Google真实首次注册登录和用户侧刷新/新标签保持、退出已确认;Slack、邮件投递和验证仍待实际验收。302与fixture测试不代表这些未验收链路成功。 +- 正式 Core 已仅重载项目配置,Thesisly 匿名 auth/me 当前返回401,原有项目保留;论文 API 新代码仍未发布正式后端。Google/Slack真实授权和用户侧刷新、新标签保持、退出均已确认;邮件实际投递和验证未实测。302与fixture测试不代表邮件真实投递成功。 ## 查询失败后的恢复 diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index 992c18b..37c1529 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -1 +1,4 @@ -export default function About() { return
ABOUT THE INDEX

让研究,
更容易被阅读。

这里将论文标题、作者、摘要与原始出处放在同一个阅读空间里。

当前数据范围

未配置论文 HTTP API 时,页面使用 2026-11-06 从既有 Paper Atlas SQLite 数据库导出的前 20 条论文记录。它们是真实的历史记录,并不代表热门论文、最新成果或完整数据库。搜索、领域与分页均只针对这份样本。

三种阅读方式

Vignelli 以无衬线字体、网格和细分隔线组织内容;Editorial 以柔和的衬线阅读节奏呈现;Tufte 以低装饰和清楚的证据信息为主。可以用顶部的主题菜单比较。

账户与共享后端

身份认证通过已有 Foundry Core 完成。本站的项目回调尚需在后端注册后,才能完成 Google、Slack 与邮件验证登录。已有会话由服务端 Cookie 维持。

; } +export default function About() { + const live = Boolean(process.env.PAPER_API_ORIGIN); + return
ABOUT THE INDEX

让研究,
更容易被阅读。

这里将论文标题、作者、摘要与原始出处放在同一个阅读空间里。

当前数据范围

{live ? "本站从完整论文索引读取原始标题、作者、摘要与出处。默认按收录顺序列出,发表日期由原始来源提供。" : "当前展示 2026-11-06 导出的 20 条历史样本记录。搜索、领域与分页只覆盖这份样本。"}

三种阅读方式

Vignelli 以无衬线字体、网格和细分隔线组织内容;Editorial 以柔和的衬线阅读节奏呈现;Tufte 以低装饰和清楚的证据信息为主。可以用顶部的主题菜单比较。

账户与登录

论文可以直接浏览,无需账户。可使用 Google 或 Slack 登录;同一浏览器刷新页面或打开新标签时会保持登录状态。退出时结束当前会话。

; +}