58 lines
4.1 KiB
Markdown
58 lines
4.1 KiB
Markdown
# Thesisly 研迹
|
||
|
||
论文索引与阅读前端:Next.js App Router + TypeScript + Tailwind CSS;shadcn/ui Button组合模式基于Radix Slot与CVA,Lucide提供图标,Sonner提供复制/退出等反馈。不配置CI/CD,不部署,不创建新的业务后端。
|
||
|
||
## 本地开发
|
||
|
||
用户允许本地 dev,暂不执行本地 build。开发预览已启动并完成桌面/手机浏览器检查:
|
||
|
||
```sh
|
||
pnpm install
|
||
cp .env.example .env.local
|
||
pnpm dev
|
||
```
|
||
|
||
本地地址:`http://localhost:17322`。可匿名浏览论文;真实登录前先按[身份接入](docs/auth-integration.md)注册项目。没有账户时auth/me本地返回401,不向后端发送空token。
|
||
|
||
```sh
|
||
pnpm typecheck
|
||
pnpm test
|
||
# 在另一个终端已运行 pnpm dev 后,使用系统 Chrome
|
||
pnpm test:browser
|
||
```
|
||
|
||
## 页面
|
||
|
||
- `/`:论文列表、标题/作者/摘要搜索、领域过滤、收录顺序/标题排序与分页。
|
||
- `/papers/{id}`:原始摘要、作者、日期、来源元数据、引用复制与原文链接。
|
||
- `/login`:Google/Slack OAuth入口及邮箱注册登录。
|
||
- `/auth/callback`:一次性凭据兑换与邮箱验证。
|
||
- `/about`:数据范围与主题说明。
|
||
- 空结果、404、加载中与数据服务错误均有对应状态。
|
||
|
||
默认Vignelli,顶部可切换Editorial/Tufte;仅主题偏好存于localStorage,绝不保存认证token。英文品牌已确定为 Thesisly;中文名为研迹,Gitea 仓库为 Zayden-Jung/Thesisly,尚未注册域名或商标。
|
||
|
||
## 数据与后端
|
||
|
||
`src/data/papers.json`来自既有Paper Atlas的2026-11-06T13:58:30Z各表20行导出,按paper_id关联来源,保留标题、作者、摘要和metadata。首页显式标注“样本”;20条都是历史记录,不冒充热门或最新论文。
|
||
|
||
`PAPER_API_ORIGIN`为空使用样本;配置后只访问远程HTTP接口,错误会明确显示,不能静默退回样本。正在实现的共享后端接口见[论文API契约](docs/paper-api.md)。本机和浏览器不直连服务器SQLite、不保存数据库密码。
|
||
|
||
## 项目级技能
|
||
|
||
`.agents/skills/ui-craft-editorial`与其依赖`ui-craft`来自educlopez/ui-craft;`.agents/skills/beautiful-article`来自ConardLi/garden-skills。后者已包含`theme-profiles/vignelli.md`和`tufte.md`,不是两个单独上游skill。阅读页主题按这些authoring profiles在应用CSS中适配,不声称是ReActicle运行时。完整Beautiful Article harness仅在另行生成单篇HTML时应用。
|
||
|
||
## 当前验证边界
|
||
|
||
类型检查与13项测试已通过:除了Cookie/样本策略,测试直接调用生产认证代理,覆盖兑换、登录/邮件验证、续期、退出、错误、凭据隔离与请求限制。它们使用进程内模拟的Core响应,不代表真实OAuth成功,也不需要启动Next.js或编译。
|
||
|
||
12项桌面/手机浏览器测试覆盖搜索、分页、空结果、文章摘要与引用复制、三种主题持久化、登录/注册表单和404恢复;截图用于人工核对布局。真实OAuth尚未验收,生产构建按用户要求未执行。前端目录为 `/Users/zzyang/thesisly`,远程已连接 Zayden-Jung/Thesisly,main 仅有用户授权的空初始化提交;论文 HTTP API 已纳入本目标,由代理在 Foundry Core 的 codex/research-api 分支实现。
|
||
|
||
## 当前后端依赖
|
||
|
||
用户已配置 Thesisly 的 FOUNDRY_PROJECTS。论文库正在迁移至 PostgreSQL;本目标等待迁移完成后实现并接通 Core 的论文 API,不再采用 SQLite sidecar,也不需要 FOUNDRY_RESEARCH_DATABASE。当前本地20条导出仅用于视觉与交互开发,绝不代表全库已接通。
|
||
|
||
## Endoleap 参考
|
||
|
||
已核对 [Endoleap 主线 README](https://gitea.entroia.com/Zayden-Jung/Endoleap/src/branch/main/README.md)(blob `358824763e09811a85f8986526e93dda406fdb93`):沿用 App Router、同源身份代理、PKCE、HttpOnly Cookie、Core 控制的30天闲置/90天绝对会话期限与共享第三方回调。Thesisly 使用独立端口17322、项目键thesisly及服务端环境变量;不复制 Endoleap 的品牌、Canvas 功能或部署流程。浏览器表单测试不代表真实 Google/Slack 登录成功。
|