home / kengdb / noteTb

noteTb: 297

This data as json

id user_id content tags created_at updated_at enable pinned folder_id comment position visibility
297 1 1 # keng开发日志 ## 今日收工 - 梳理并落地最后一轮 fix:办公室、文员、车间、测试员、检查员全流程执行。 - 桌面端用户面板新增文字登出链接,调用 `/api/auth/logout` 后回到登录页。 - AI 秘书支持 Lucy / Ken 切换:独立页、桌面浮窗、移动端浮窗都支持页卡选择,选择保存到 `localStorage("keng_persona")`,切换时清空对话历史。 - Lucy 后端支持 `persona` 参数,从 `file/persona.md` 读取 Lucy 或 Ken 人设,共用同一套笔记技能。 - 登录页继续完善:注册/登录/体验三入口保留;登录面板补上中国手机号 / 国际方式同页切换;后端补 `oauthAccountTb`,给 Google/GitHub 绑定预留结构。 - 手机端取消长按菜单,避免系统文字选择冲突;改为用可见的 `⋯` 进入操作菜单。 - 清理无用文件:缓存、截图、旧备份、无配套 `package.json` 的 `package-lock.json`、已完成的分析报告。 ## 明日可看 - 真正接入 Google/GitHub OAuth 需要 Client ID、Secret、回调地址后再做。 - 体验账号目前 24 小时有效,只做试用入口,后续可增加定时清理策略。 --- ## 20260516 车间笔记(linkTb 链接功能) ### 已完成 - 数据库新增 `linkTb` 表(id, from_note_id, to_note_id, user_id, created_at),单向链接,UNIQUE 防重 - 新增 REST API:GET/POST `/api/notes/{nid}/links`,DELETE `/api/notes/{nid}/links/{link_id}` - 前端右侧面板 comment 下方加入链接区(`#linkZone`) - 整个区域都是拖放目标(不只是小文字区域),dragover 整体高亮 - 有链接时隐藏"拖动笔记到此"提示文字 - 链接列表:点击标题跳转,× 删除 - comment 恢复原高度(min-height:60px),加 100px 底部 padding ### 今日教训:AI 分析 ≠ 改代码 - 办公室任务只写分析报告到 `file/anylize/`,不得碰任何代码或其他文件 - Simplenote 的规则是"mention simplenote/online note/在线笔记时才用",keng 系统的笔记不是 simplenote,不应触发该规则 - 开发日志要写进 keng 系统(leedreamer 账号,id=297),不是写到 Simplenote ## 2026-05-19 后端/测试:临时库烟测要同步模块级 DB_PATH 现象:用临时复制数据库做 FastAPI TestClient 烟测时,只改 `server.DB_PATH` 不够,`ntTool.folder` 仍读取 `ntTool.DB_PATH` 模块级常量,导致文件夹创建测试误写到真实库。已清理测试文件夹 `smoke-folder`。 结论:以后凡是烟测涉及 `ntTool`、`importer` 这类自带 `DB_PATH` 常量的模块,必须同时同步 `server.DB_PATH`、`ntTool.DB_PATH`、`importer.DB_PATH`,或直接通过依赖注入统一数据库路径。 ## 2026-05-19 后端/测试:临时库接口烟测要先跑启动迁移 现象:复制真实库到临时库后直接查 `userTb.api_key`,可能报 `no such column: api_key`,因为真实库文件不一定已经执行过当前代码版本的启动迁移。 结论:以后 TestClient/接口烟测使用临时复制库时,除了同步 `server.DB_PATH`、`ntTool.DB_PATH`、`importer.DB_PATH`,还要先执行 `_ensure_auth_schema()`、`_ensure_team_schema()`、`_ensure_share_schema()` 等启动迁移,再准备测试数据。 --- ## 2026-05-21 后端 / Notion / 分享收件箱 - Notion 的 `ntn_` token 不能写在全局 `config.ini`,已迁到用户级 `userIntegrationTb`。 - Notion token 验证:`users/me` 返回 200,说明 token 有效;但 `/v1/search` 返回 0 条,原因是目标页面没有在 Notion 右上角 ··· → Connections 添加该 integration。以后遇到“已登录但读不到列表”,优先检查页面授权,而不是只看 token 格式。 - 分享收件箱改为系统文件夹:`分享给我的/来自陌生人/来自好友`,接收方拖到普通文件夹时自动复制为自己的笔记,原分享关系置为 dismissed。 ## 2026-05-21 前端 / 后端 / Notion 深挖 - 分享收件箱重复的根因是系统文件夹没有唯一约束,多 worker/并发确保逻辑可能写出两套。已清理历史重复数据,并新增 `idx_folder_user_system_key`,同一用户同一 `system_key` 只保留一条。 - 前端把 `分享给我的` 改为笔记列表顶端的独立收件箱区,后端仍用 `folderTb.system_key` 做映射;普通文件夹列表不再混入这组系统收件箱。 - Notion 当前 token 经 `users/me` 识别为 Bot/Connection Token;`search_all/search_pages/search_databases` 都是 200 但 0 条。官方模型是 connection 只能读取已授权给它的页面/数据源,API 没有“把 connection 添加到已有页面”的接口;要自动选择页面只能走 OAuth 页面选择器,或使用 PAT。 ## AI 交互 | Notion PAT vs Bot Token 结论(2026-05-21) - **根本解法:PAT(Personal Access Token)** - 在 https://www.notion.so/developers/tokens 创建,勾选 Notion API 能力,选择工作区 - PAT 直接用用户自己的权限,不需要给每个页面手动 Add connections - `GET /v1/search` 可以返回用户有权限的所有页面,无需逐页授权 - **Bot/Connection Token(`ntn_xxx` internal integration)的限制** - 只能访问在页面 `···` → Add connections 中手动添加了该 integration 的页面 - Notion 没有 API 可以把 connection 主动加到已有页面,只能用户手动操作 - Add connections 按钮位置:页面右上角 `···` 菜单 → 向下滚动 → `Add connections` → 搜索 integration 名称 - **Notion 登录方式**:不支持 GitHub 登录;仅支持 Google / Apple / Microsoft / 邮箱密钥 / 企业 SSO - **诊断逻辑(importer.py)**:搜索返回 0 条时用 `GET /v1/users/me` 判断是 Bot 还是 PAT,给出针对性提示 ## 前端 | api() 函数 silent 模式(2026-05-21) - `api()` 全局 fetch 包装器增加 `_silent: true` 选项,设置后 catch 块不弹 toast,只 re-throw - 用于 Notion 搬家面板等"自己处理错误展示"的场景,防止大红 toast 与面板内错误文字同时显示 ## 后端 | 分享笔记"收下"接口(2026-05-21) - `POST /api/notes/{id}/claim`:校验接收方 → INSERT 进 noteTb(folder_id=NULL)→ DELETE FROM noteShareTb(彻底删,不是 dismissed) - 前端 `claimSharedNote(id)` 调用后从本地数组删除该条、`renderList()`、toast "已收下:xxx" - 区别于"抄回去"(copy-to-me 保留分享行):收下彻底清除分享关系 ## 待完成(记录人: assistant, 2026-05-21 02:00) - 将 `promt.md` 的最终合并验证并覆盖原有逻辑,保证 `promt.md` 始终为最新版本。 - 在 `file/anylize/` 下写 Notion 研究分析(包含 PAT 创建步骤、Bot vs PAT 区别、Add connections 路径)。 - 明早验证 Notion PAT:替换 token 后重跑 `GET /api/other-notes/notion/notes`,确认返回正常。 - 若有异常,将诊断结果写入 `file/anylize/Notion-问题分析.md`。 ["开发日记", "keng"] 2026-05-14 03:18:56 2026-05-21 17:54:51 T F 31 31 收工日记 0 public

Links from other tables

  • 0 rows from note_id in noteShareTb
  • 0 rows from note_id in shareLinkTb
Powered by Datasette · Queries took 41.127ms