Skip to content

feat(twitter): 支持 x-monkey 归档后端与 JWT 续签 - #145

Merged
xiaoland merged 15 commits into
mainfrom
feat/twitter-x-monkey
Oct 20, 2026
Merged

xiaoland merged 15 commits into
mainfrom
feat/twitter-x-monkey

Conversation

@xiaoland

@xiaoland xiaoland commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

增强 inkcre/twitter,让原版 x-monkey 使用 InKCre 存储原生帖子、作者与媒体元数据,并与 Bookmark 补充同一信息。配套 impl-ts #140、docs #38。

Twitter 自有共同模型供 Official API、Twikit、持久化和 Resolver 使用;x-monkey 固定 DTO、协议限制和状态留在 Adapter。稀疏字段、计数观察时间、事务合并及旧根升级保持 Block ID、JSON 和引用兼容;依赖 Pydantic2.12 的标准字段投影。

/twitter/x-monkey/account 自托管连接页在内存用 WebCrypto 将已有部署 Secret 签为60秒普通 Peer JWT,同源 Bearer /session 复用 require_peer_jwt 后建立 Secure/HttpOnly/SameSite=None Cookie。页面不加载第三方脚本、不发送或持久化Secret,CSP仅开放nonce脚本和同源连接;再请求session确认Cookie生效,才显示Connected、Peer和期限。用户必须确认输入页面是自己的可信HTTPS部署。首次连接无需Web/MF,已撤回browser-form能力广告。

不增加PAT、refresh token或会话表。Core/DB取消强制JWT最大寿命,签发默认由环境配置:普通Core60秒、普通Web24小时、归档7天,半寿命续签。JWT仍具完整Peer权限,断开清Cookie但不能撤销已复制凭据。

媒体只保存元数据,保存/query/文本索引不读本体、不创建内容Block或下载Job,显式展开沿用HTTP Storage。Twitter producer文档已初始化global四页与Python运行页,保留真实同步/阅读截图。

源码e55bed3,共享合同ff82097。本轮16项HTTP脚本、Ruff/Pyrefly通过;仓库检查、隔离数据库通过。此前共同模型修正的74项独立PostgreSQL/HTTP验证保留其适用范围。相对基线6e6ad1e,正式tests/无改动;新增验证均在scripts/tests。

新路径 pnpm verify:twitter 1/1通过(2.2分钟):全新浏览器状态先直接打开Core账户页,实际WebCrypto签名→同源Bearer→真实Cookie会话→Cookie保存/query,且Secret未进入页面请求或Core local/sessionStorage;之后才配置独立Web Peer/MF,验证持久形状、索引检索、内容阅读、展开前零读取、503反馈、其他图片来源及最高码率MP4/Blob。

另在Helium实际通过新Core页面连接,显示Connected、core-py-pr-145及7天到期时间;截图已保存。原版油猴的本轮重新检测因输入控制问题未完成,临时未保存地址已撤销;此前真实脚本保存/重放/续签仅作为未改协议的既有证据,不冒充本轮新连接路径的油猴验收。

producer两scope构建、10页28链接检查及按当前源码离线pack通过,未发布Registry。Core连接页 · Web预览。S3/媒体持久化和完整Provider原始响应存储不在范围;视频fixture只证明选源/Blob,不证明实际播放。回退保持记录兼容,不清空信息库;未合并或生产发布。

- 通过会话、查询和提交协议接收 User、Post、Media 原生事实
- 复用 Bookmark 身份与 Graph 事务,媒体只保存按需读取指针
- 将 JWT 寿命改为可配置签发默认值,并追加数据库迁移
- 补齐真实 PostgreSQL 与 HTTP 回归和分发说明
- 在同一事务按 resolver 与 URL 集合定位和创建 HTTP 指针
- 保留 Storage 身份、稳定复用与相同 URL 去重行为
- 用代表批次往返上界和指针复用回归防止远程数据库超时
- 不预建会被全库索引读取的普通媒体内容块
- 移除不再使用的批量内容指针查询
- 通过真实词法维护和检索验证归档与 Bookmark 零媒体读取
- 按输入身份和缺失引用占位追踪本次创建的根
- 验证共享作者目标不会被关联清理误删
- 说明 x-monkey 连接、续签、同步和按需阅读流程
- 保存真实脚本同步及 Web 阅读截图供扩展文档使用
- 区分媒体元数据保存与媒体本体持久化
- 将 x-monkey 从首页移至独立功能页,补充 Bookmark 和检索媒体工作流
- 复用共享文档模板,为 global 与 python 接入静态构建和打包约定
- 保留不安装 Web 分发时的现有 OAuth 请求示例与成功检查
- 补充依赖、授权期限与应用替换冲突说明
- 将新增用例与 fixture 全部移出 tests,保留显式运行入口
- 复用既有验证环境并同步手动命令说明
- Official API、Twikit、持久化与 Resolver 使用 Twitter 自有模型
- 固定 DTO 与逐项协议状态留在 x-monkey Adapter
- 广告浏览器 session 能力并保持现有 Cookie 生命周期
- 同步扩展文档并将验证保留在 scripts/tests
- 复用普通 Bearer 鉴权建立既有归档 Cookie
- 页面以 WebCrypto 签短期 JWT 并验证实际会话
- 移除交接能力广告,同步扩展文档与候选验证
- 将共享文档固定到 Hub main,保留已验收的产品实现。
@xiaoland
xiaoland merged commit 10ac178 into main Oct 20, 2026
7 checks passed
@xiaoland
xiaoland deleted the feat/twitter-x-monkey branch October 20, 2026 10:50

This branch was successfully deployed

1 active deployment
preview — ec704efa Deployed Oct 20, 2026 by xiaoland via Retire preview resources #462
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant