54 lines
3.4 KiB
Markdown
54 lines
3.4 KiB
Markdown
# Thesisly 研迹
|
||
|
||
论文索引与阅读前端:Next.js App Router + TypeScript + Tailwind CSS;shadcn/ui Button组合模式基于Radix Slot与CVA,Lucide提供图标,Sonner提供复制/退出等反馈。不配置CI/CD,不部署,不创建新的业务后端。
|
||
|
||
## 本地开发
|
||
|
||
用户最新要求暂不执行本地 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 build
|
||
```
|
||
|
||
## 页面
|
||
|
||
- `/`:论文列表、标题/作者/摘要搜索、领域过滤、收录顺序/标题排序与分页。
|
||
- `/papers/{id}`:原始摘要、作者、日期、来源元数据、引用复制与原文链接。
|
||
- `/login`:Google/Slack OAuth入口及邮箱注册登录。
|
||
- `/auth/callback`:一次性凭据兑换与邮箱验证。
|
||
- `/about`:数据范围与主题说明。
|
||
- 空结果、404、加载中与数据服务错误均有对应状态。
|
||
|
||
默认Vignelli,顶部可切换Editorial/Tufte;仅主题偏好存于localStorage,绝不保存认证token。英文品牌已确定为 Thesisly;中文名为研迹,Gitea 仓库链接待用户提供,尚未注册域名或商标。
|
||
|
||
## 数据与后端
|
||
|
||
`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或编译。
|
||
|
||
生产构建、开发服务器、浏览器交互及真实OAuth尚未通过验收;此前构建/预览被自动审批阻止,随后用户要求暂不 build。前端目录为 `/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条导出仅用于视觉与交互开发,绝不代表全库已接通。
|