Pro 版本更新¶
当前处于 Pro 文档环境,仅展示生产版本的更新记录。
环境说明
切换到 Test 文档后,这里会自动显示测试版本更新。
当前版本¶
v0.3.0 · 2026-08-14 · Pro · 最新
- 提交:
v0.2.0..6fb4696,共 6 个非合并提交(忽略 Burp 抓包导出、posts 回复/点赞、friendships 关注/取关、proto 目录前缀、sdk-roadmap 文档、E2E 无返回值写方法夹具修复)。 - 变更:proto 目录前缀(GitHub issue #2):全部
proto/*.proto移至proto/threads/,FileDescriptorProto.name由裸文件名改为threads/<name>.proto,在 protobuf 进程级 descriptor pool 中全局唯一,threads_sdk可与其他同样使用裸common.proto/posts.proto的 SDK(如twitter_sdk)在同一 Python 进程共存,不再触发duplicate file name;生成脚本改喂proto/threads/*.proto(-Iproto),Python stub 规范化识别from threads import并改为包内相对 import,_generated/仍扁平。posts:新增回复ReplyToPost、点赞LikeMedia、取消点赞UnlikeMediaRPC,并对齐真机发帖请求指纹。friendships:新增关注FollowUser、取关UnfollowUserRPC,按真机补齐关系状态模型。文档:新增docs/sdk-roadmap.md双列完成度主文档与能力盘点取证规则。 - 兼容性:向后兼容,无 wire 破坏性变更。 proto 目录前缀只改变
AddSerializedFile的文件名字符串;package、gRPC 方法全名(仍threads.<mod>.v1.<Service>)、Python import 路径(from threads_sdk import ThreadsClient)、线上已持久化的AccountState序列化数据均不变。新增 RPC 为 additive,旧调用方不受影响。Go server 与 Python SDK 建议同版本0.3.0配套。 - 验证:
release_tag.py create执行离线门禁——uv sync --locked、gofmt、go mod verify、go vet ./...、go test -race ./...全部通过;Python 离线测试(distribution / api_inventory / facade / account_state_go_blackbox / rpc_recording)通过;wheel、sdist 与可复制包干净安装验证;scripts/llms_docs.py check通过。跨 SDK 共存复现:先向 Default pool 注册裸common.proto+posts.proto(模拟twitter_sdk),再import threads_sdk成功。 - E2E:
passed(真实执行,部分覆盖,如实记录)。2026-08-14 从公开threads_sdk门面经真实 gRPC 调真实i.instagram.com(账号davidson10532,经授权设置THREADS_TEST_ENABLE_WRITES=1,脱敏完整往返记录留存):真机通过 13 项——发帖 create/delete、回复、点赞/取消点赞(首次真机验收,判据为重新读回该帖has_liked正反翻转)、资料读取与edit_profilenoop、feed/search、whoami、完整状态注入契约与参数边界。关注/取关(follow/unfollow)跳过:真实推荐流未返回可用目标账号,写操作本次未执行;图片上传/单图帖未跑(未提供图片夹具);真实登录 attested 未跑(未提供账密、未授权登录)。 - 部署:计划发布
0.3.0/latestGo server 镜像、0.3.0Python SDK 正式 Release 附件,以及/pro/0.3.0/、/pro/latest/和根级/latest/文档。部署前确认非 loopback 监听已配置 TLS 证书与私钥(或已由外层 sidecar 终止 TLS 并显式放行),否则 server 拒绝启动。keybox.xml 仍以只读方式打包进 Go server 镜像。 - Python SDK:发布
threads_sdk-0.3.0-py3-none-any.whl、threads_sdk-0.3.0.tar.gz和threads_sdk-0.3.0-copy.zip;三类产物内置同版本 protobuf/gRPC stub。descriptor pool 文件名改为threads/*.proto,可与使用裸文件名的其他 SDK 同进程共存。必须与0.3.0Go server 配套,不得与0.2.x混用。 - 已知限制:关注/取关(
FollowUser/UnfollowUser)、图片上传/单图帖(UploadImage/CreateImagePost)与真实登录 attested 本次均未经真机 E2E 验收——代码已实现但尚未经真实服务器确认,生产使用前建议先在测试线补齐。CAA/Bloks 登录默认要求服务端硬件 signer,长期稳定性仍未验证。 - 升级与回滚:从
0.2.0升级需将 Go server 与 Python SDK 同时升到0.3.0;无 wire 破坏性变更,AccountState持久化数据无需迁移。回滚将两者一并退回0.2.0镜像/包即可;proto 文件名前缀变更不影响已持久化数据,回滚安全。
历史生产版本¶
v0.2.0 · 2026-07-29
- 提交:
v0.1.6..32b0da8,共 17 个非合并提交。对应测试线test-v0.1.7至test-v0.3.0的累计内容。 - 变更:本次生产发布合并两批测试线成果。
账号契约与传输安全(测试线
test-v0.2.0):公开AccountState、LoginDevice、LoginSession改为只读安全值对象,文本表示不再输出 Session、设备标识和代理凭据;LoginRequest.proxy从 field 4 迁至 field 7;load_account_state()会把 v0.1.5 及更早持久化的proxy_url恢复成强类型Proxy, 解析失败即抛错而非静默直连;非 loopback gRPC 监听不再允许明文启动,除非显式设置THREADS_GRPC_ALLOW_INSECURE=1(供外层已终止 TLS 的 mTLS sidecar 使用);上游失败不再统一回INTERNAL,internal/server.upstreamError按失效类型分类并把上游原始正文限制在服务端日志内, gRPCdetails()只回结构化摘要;上游失败时刷新后的AccountState经 trailing metadatax-threads-account-state-bin回传,SDK 自动采纳,不再沿用过期 RUR、claim 和 MID;图片上传显式声明 16 MiB gRPC 消息上限(THREADS_GRPC_MAX_RECV_BYTES可调)与 8 MiB 业务上限。 Bloks 解析改造(测试线test-v0.3.0,GitHub issue #1):登录链路的 Bloks 响应解析从「在序列化 DSL 文本上打正则」改为「解码 → 解析语法树 → AST 查询」,新增internal/bloks包(S-表达式 tokenizer/parser、Fields()按字段位取值、KVMap()键值表、Collect()遍历全部字符串叶子、 按bk.action.caa.HandleLoginResponse契约从 CAA payload 的headers表提取会话四件套)。修复三类 静默取错值:① 弹窗正文正则的\\.分支吃掉字符串终止符\",把整段 DSL 当正文(线上实测 16 字符 膨胀到 131 字符);② 屏响应预置的未触发 UI 模板弹窗被首个正则匹配取走,在任何一步「没推进」时把自身 解析失败谎报成上游错误,现只认与error_info同树的弹窗;③two_step_verification_context原按 「全文最长 base64」定位(实测余量仅 2232 vs 890 字符),现按名取。新增失败类型two_factor_verification_failed;2fa/totp生成前检查 TOTP 剩余有效期,不足 5 秒等到下一窗口; 会话提取改为结构化主路径 + 正则兜底并标注parse=;上游未归类失败再按 HTTP 状态细分 gRPC code; 传输层记录请求体改用req.GetBody()可重放副本;SDK 采纳失败 trailer 的AccountState前先校验。 - 兼容性:破坏性发布,Go server 与 Python SDK 必须同时升级到
0.2.0,禁止混用。 四处不兼容: ①LoginRequest.proxy由 field 4 移至 field 7,0.1.xwheel 调用0.2.0server 时代理会成为 unknown field 被静默丢弃,server 未加 unknown field 检测,因此不得存在版本错配窗口; ② 公开AccountState不再是 protobuf 消息,CopyFrom、HasField、字段赋值和MessageToDict均失效,SerializeToString()仅作只读兼容保留并等价于dump_account_state(); ③ 非 loopback 明文部署将启动失败,须配置 TLS 证书与私钥或显式设置THREADS_GRPC_ALLOW_INSECURE=1; ④ 上游失败的 gRPC 状态码由INTERNAL改为分类状态码(UNAUTHENTICATED、PERMISSION_DENIED、FAILED_PRECONDITION、RESOURCE_EXHAUSTED、DEADLINE_EXCEEDED、ABORTED、UNIMPLEMENTED、UNAVAILABLE;400/404 仍为INTERNAL),按INTERNAL判断上游失败的调用方必须改按code()分流,details()不再包含上游原始正文。此外LoginStep.failure_kind新增枚举值two_factor_verification_failed,穷举该字段的调用方需补分支。Proto 消息编号本次未再变动。 - 验证:
gofmt -l internal/ cmd/、go vet ./...、go test -race -count=1 ./...全部通过; Python 离线测试 124 项 + 42 项 subtests 通过;scripts/llms_docs.py check通过。金样本回归 (Burp 抓包含真实凭据,不进 git,需THREADS_GOLDEN_BURP_DIR):49 个真实 Bloks 响应解析出 902 棵 语法树、零语法错误;2FA 每一跳解析出的屏号与绑定与迁移前完全一致;3 份抓包的会话提取 100% 走结构化 路径且 token 与旧正则逐字节一致。创建 Tag 时发布脚本重新执行了全部离线质量门禁,包括 wheel、sdist 和可复制包的干净安装验证。 - E2E:
skipped。用户在本次生产发布中明确选择跳过重复执行。同一提交32b0da8已在测试线test-v0.3.0完成真实全量 E2E 并记为 passed:2026-07-29 从公开threads_sdk门面经真实 gRPC 调 真实i.instagram.com,2FA 登录全链路逐步通过(extract_context按名取到 context、2fa/totp守卫 报告窗口剩余 5 秒、verify_code换到 IGT:2 且 rur/www-claim 齐全parse=structured、fetch_onetap与即时 whoami 身份一致、token 170 字节未截断),真实只读用例 91 项通过,经明确授权设置THREADS_TEST_ENABLE_WRITES=1后资料保存回写与发帖/删帖 2 项写入用例通过并完成清理。生产 Tag 指向 同一提交,故未重复执行;本条不得被描述为「生产环境已独立验收」。 - 部署:计划发布
0.2.0/latestGo server 镜像、0.2.0Python SDK 正式 Release 附件, 以及/pro/0.2.0/、/pro/latest/和根级/latest/文档。部署前确认非 loopback 监听已配置 TLS 证书与私钥(或已由外层 sidecar 终止 TLS 并显式放行),否则 server 会拒绝启动。 - Python SDK:发布
threads_sdk-0.2.0-py3-none-any.whl、threads_sdk-0.2.0.tar.gz和threads_sdk-0.2.0-copy.zip;三类产物内置同版本 protobuf/gRPC stub,使用者也可直接复制完整threads_sdk/,但必须与0.2.0Go server 配套,不得与0.1.xserver 混用。 - 已知限制:本次生产 Tag 未独立执行真实 E2E(依据同提交的测试线验收)。Bloks DSL 的结构号与字段位
(弹窗
fom 13799的 40/35、屏导航的 35/45)绑定 Threads Android421.0.0.50.67,换版本必须重新 逆向核对,代码内已标 TODO。另一条 2FA 流程com.bloks.www.ap.two_step_verification.*(上下文参数名context_data)本仓库不实现。generic dialog 是否等价于「TOTP 码被拒」仍无抓包证据, 故新失败类型只陈述「verify_code 未换到 IGT:2」而不断言原因;Meta 是否对 TOTP 给 ±1 窗口容差同样 未验证,窗口守卫按「无容差」实现。reIGTToken/reNonce/reRur/reWwwClaim仍作会话解析兜底 保留,待parse=regex_fallback比例归零后再删。失败 trailer 超过 4 KiB 时不回传刷新状态。 图片帖真实 E2E 因缺图片夹具未执行。登录与 keybox attestation 的长期稳定性仍未验证。 - 升级与回滚:Go server 与 Python SDK 必须一起升级到
0.2.0,并按上面四条兼容性清单迁移AccountState调用、代理传递、错误码分流和 TLS 配置。如登录成功率、状态迁移、错误处理、镜像、SDK 或文档异常,回滚到不可变的0.1.6镜像与0.1.6SDK,并同时回退两侧,不得混用版本;已持久化的0.2.0AccountState回退后需按0.1.6契约重新登录生成。
v0.1.6 · 2026-07-27
- 提交:
v0.1.5..03f7b23,共 2 个非合并提交。 - 变更:Python SDK 统一以完整
AccountState作为账号边界;根ThreadsClient只保存服务地址、TLS 和 API key,client.account(state)返回进程内持有最新账号状态的模块客户端。所有登录后 RPC 都由 SDK 自动注入并刷新完整状态,公开方法只返回业务对象;代理统一为强类型Proxy,同账号请求在单进程内 串行、不同账号可并发。同步更新 Proto、Go handler、生成 stub、Python 门面、真实 E2E、文档和 AI 契约。 - 兼容性:这是破坏性契约调整,Go server 与 Python SDK 必须同时升级到
0.1.6。旧的 token、设备 和 UUID 分散参数以及proxy_url状态字段不再接受;调用方应迁移并持久化完整AccountState,从AccountClient.state读取每次任务结束后的最新副本。 - 验证:
go test -race ./...、go vet ./...、66 项 Python SDK 测试及 28 个 subtests、3 项 本地真实 gRPC 边界测试、wheel/sdist/可复制 ZIP 干净安装和scripts/llms_docs.py check已通过; 另由公开 Python SDK 完成 8 组登录后真实业务测试并记录 19 条脱敏 gRPC 交换。创建 Tag 时发布脚本 将重新执行全部离线质量门禁。 - E2E:
skipped;用户明确要求复用现有 Session 并跳过登录 RPC。当前用户、资料读取与原值回写、关系、 文本帖创建/删除、图片上传/创建/删除、Feed、回复和搜索均通过,测试帖子已清理;但因为没有执行真实登录 与 keybox attestation,本次不构成完整生产 E2E,不得描述为 passed。 - 部署:计划发布
0.1.6/latestGo server 镜像、0.1.6Python SDK 正式 Release 附件, 以及/pro/0.1.6/、/pro/latest/、/latest/文档和公开 SDK 下载页;远程部署取决于 production Environment 配置。 - Python SDK:发布
threads_sdk-0.1.6-py3-none-any.whl、threads_sdk-0.1.6.tar.gz和threads_sdk-0.1.6-copy.zip;三类产物内置同版本 protobuf/gRPC stub,使用者也可直接复制完整threads_sdk/,但必须与0.1.6Go server 配套。 - 已知限制:登录与 keybox attestation 未在本次真实测试中执行;SDK 只保证同一进程内的账号状态串行, ARQ 多进程之间仍需使用者通过数据库锁、版本号或 CAS 协调同一账号;旧状态必须先迁移或重新登录。
- 升级与回滚:生产环境的 Go server 与 Python SDK 必须一起升级到固定版本
0.1.6。如状态迁移、 代理、镜像、SDK 或文档异常,两者一起回滚到0.1.5;不得混用版本、移动已推送 Tag,或用浮动latest代替固定版本完成审计与回滚。
v0.1.5 · 2026-07-26
- 提交:
v0.1.4..ed6e198,共 9 个非合并提交。 - 变更:新增 Python
Proxy/ GoProxyConfig强类型代理,完整支持带认证、IP 白名单、HTTP(S)、 SOCKS5/SOCKS5H;补齐 Go server 与 Python SDK 的 gRPC TLS、API key、优雅停机、健康检查和账号隔离 HTTP client 池。列表响应升级为结构化ListPage,删除没有真实实现依据的 Insights/Mentions 公共 RPC 和旧threads_client兼容层;所有 Python E2E 统一从公开threads_sdk门面进入。公开文档站 新增环境隔离的“版本更新”分类,生产页面只展示v*记录。 - 兼容性:存在公共契约调整,Go server 与 Python SDK 必须同时升级到
0.1.5。原RawList.raw_json消费方需改为读取ListPage.items/paging/metadata;threads_client导入路径不再提供; Insights/Mentions 不再作为公共 RPC 暴露。旧proxy_url字符串入口继续兼容一个版本周期,推荐迁移到 强类型Proxy;跨机器连接必须启用 TLS 和至少 32 字符的 API key。 - 验证:50 项公开 SDK 参数映射、可选字段、状态序列化、分发和 E2E 入口门禁测试通过;此前
test-v0.1.8与test-v0.1.9发布已通过 Go race、52 项 Python SDK 离线测试、61 项发布/文档 测试、AI 文档检查、SDK wheel/sdist/可复制包干净安装及生产 Docker 构建。创建本 Tag 时发布脚本将对 当前提交重新执行全部离线质量门禁。 - E2E:
skipped;本次实际启动了公开threads_sdk→ gRPC → Go server → Threads 的真实全量验收, 结果为 58 项通过、9 项失败并记录 37 条脱敏 gRPC 交换。主测试账号被上游明确判定为accounts/suspended,备用 Session 返回login_required/logout_reason=2;没有成功上传图片或创建 帖子。用户确认账号封禁属于外部测试账号状态,可以跳过本次真实 E2E 并继续正常生产发布;不得将该结果 描述为 passed。 - 部署:计划发布
0.1.5/latestGo server 镜像、0.1.5Python SDK 正式 Release 附件, 以及/pro/0.1.5/、/pro/latest/、/latest/文档和公开 SDK 下载页;远程部署取决于 production Environment 配置。 - Python SDK:发布
threads_sdk-0.1.5-py3-none-any.whl、threads_sdk-0.1.5.tar.gz和threads_sdk-0.1.5-copy.zip;三类产物内置 protobuf/gRPC stub,并与同版本 Go server 配套使用。 - 已知限制:当前没有可用于真实全量验收的活跃测试账号,本版本的真实上游业务能力未通过发布时 E2E;
服务端尚无运行时版本兼容协商;连接池容量 512 与 idle TTL 15 分钟当前不可配置;固定
keybox.xml继续作为 Go server 镜像构建输入,Python SDK 不携带 keybox。 - 升级与回滚:生产环境必须同时升级到固定镜像和 SDK
0.1.5,不得混用不同X.Y.Z。若代理、TLS、 列表响应、SDK 分发或文档异常,server 与 SDK 一起回滚到0.1.4;不得移动已推送 Tag,也不得以浮动latest作为审计或回滚依据。
v0.1.4 · 2026-07-26
- 提交:
v0.1.3..71f39ce1ff9ca0b2c127e372781678f36d2afbe7,共 9 个非合并提交。 - 变更:正式发布 Python SDK 客户端交付链路;登录只接收账号、密码、可选 2FA seed 和可选代理,成功后
返回可持久化的完整账号、设备与 Session 状态,后续独立任务可恢复状态直接发帖;同步发布 wheel、sdist、
可复制
threads_sdk/ZIP、公开下载页和 AI 直接接入页。修正真实 E2E 在未配置代理时错误发送显式空proxy_url的测试构造,确保可选字段保持 absent。 - 兼容性:Proto、Go server、生成 stub 和 Python SDK 统一升级到
0.1.4;需要完整状态往返能力的调用方 必须同步升级 server 与 SDK。未使用代理时不传proxy_url;显式空字符串仍是非法输入。SDK 只负责 gRPC 客户端调用,不承担 ARQ 调度、账号锁、重试或状态持久化。 - 验证:真实全量 E2E 修正后 42 项测试全部通过并记录 52 条脱敏 gRPC 交换;22 项代理、状态序列化和公开 SDK → Go server 黑盒回归通过。创建 Tag 时由发布脚本重新执行 Go race、28 项 Python 离线测试、59 项 发布脚本测试、AI 文档检查、SDK 三类发行物干净安装及生产 Docker 构建。
- E2E:
passed;用户明确授权真实登录和写操作。通过服务端固定 keybox 完成 attested 登录与即时 whoami, 完成资料原值保存、文本发帖、图片上传与单图发帖;文本帖和图片帖均删除成功,文本帖删除后重新读取主页确认 目标 media id 已消失。证据保存在受保护的本地目录/tmp/go-threads-api-v0.1.4-e2e-fixed.lzHV2D/,日志已脱敏且未提交。 - 部署:计划由 Tag 流水线发布
0.1.4/latestGo server 镜像、0.1.4Python SDK 正式 Release 附件,以及/pro/0.1.4/、/pro/latest/、/latest/文档和公开 SDK 下载页;远程部署 取决于 production Environment 配置。 - Python SDK:发布
threads_sdk-0.1.4-py3-none-any.whl、threads_sdk-0.1.4.tar.gz和threads_sdk-0.1.4-copy.zip;三类产物内置 protobuf/gRPC stub,并与同版本 Go server 配套使用。 - 已知限制:真实登录响应仍标记为不保证长期自动化稳定;远程 gRPC 尚未提供 TLS、服务端认证和运行时版本 握手,不得直接暴露到不受信公网;遗留真实全接口测试仍有直接 gRPC stub 覆盖,不能替代公开 SDK 门面的 持续迁移。
- 升级与回滚:生产环境同时升级到固定镜像
0.1.4和 SDK0.1.4,不得混用不同X.Y.Z。出现兼容、 下载或部署问题时 server 与 SDK 一起回滚到0.1.3,不得以浮动latest作为审计或回滚依据。
v0.1.3 · 2026-07-25
- 提交:
v0.1.2..be93f4cdeb87c15131a4241cae1115271a41eaee,共 2 个非合并提交。 - 变更:gRPC Server 支持通过
THREADS_KEYBOX_FILE加载 keybox attestation signer;生产镜像将仓库 根目录版本化keybox.xml以0400权限固化到/run/secrets/threads-keybox.xml,生产 Compose 不再依赖宿主机 bind mount;同步增加 Go、Python gRPC 与 Docker 配置测试、部署文档和 AI 能力文档; Tag 发布 Skill 收窄为版本规划、Tag 创建、推送及远端核对。 - 兼容性:不修改 Proto、既有 RPC 字段或 Python 公共方法。生产镜像新增内置 keybox,轮换必须提交新
keybox.xml并发布新版本镜像;原有仅依赖运行时挂载的部署流程不再是默认路径。 - 验证:
go test ./...、26 项发布与 Docker 配置脚本测试、AI 文档一致性和生产 Compose 配置检查通过; 实际生产 Docker 镜像构建成功,容器内 keybox 权限为threads:threads 0400,gRPC Server 成功加载 signer;创建 Tag 时由发布脚本重新执行 Go race、Python 离线测试、发布工具测试和 Docker 构建门禁。 - E2E:
skipped;用户选择跳过本次真实 Python gRPC 全量验收,因为真实登录及资料保存、发帖、删帖可能 触发 Threads 账号风控,并接受 keybox signer 与生产镜像真实上游路径未重新验收的风险。 - 部署:计划由 Tag 流水线发布
0.1.3/latest镜像及/pro/0.1.3/、/pro/latest/、/latest/文档;是否远程部署取决于 production Environment 配置。 - 已知限制:本次未验证真实 attested 登录、会话长期稳定性及完整写操作;keybox 已进入 Git 历史和镜像层, 泄露或撤销时必须以新提交和新版本镜像轮换;远程生产服务的实际换版与业务状态需在部署后单独验证。
- 升级与回滚:生产环境应使用固定镜像
0.1.3;升级后核对 gRPC Server keybox 加载日志与登录业务状态, 如出现兼容或启动问题则回滚到固定镜像0.1.2,并注意回滚版本不包含本次内置 signer 链路。
v0.1.2 · 2026-07-25
- 提交:
v0.1.1..0cb192327639c907c45544e02c0f2d3af32f9f62,共 7 个非合并提交。 - 变更:公开文档站收口为纯 API 内容;新增按项目接入、业务模块、用户任务和调用步骤组织的使用指南;
逐接口补充用途、前置条件、全部直接请求参数来源、响应取值、后续接口和所属工作流;Python/gRPC
AI 文档与
capabilities.json同步生成模块、工作流和步骤间字段映射;同时增加 Test / Pro 独立 CHANGELOG 发布门禁,并明确视频发布当前不可用。 - 兼容性:不修改 Proto、Go SDK、gRPC handler 或 Python 公共方法。
capabilities.jsonschema_version从1.0升级为2.0,机器消费者应兼容新增modules、workflows和接口使用语义; 新增/docs/api/guide/,原 llms、Python、gRPC 和 Proto 地址继续保留。 - 验证:文档生成器 47 项脚本测试、AI 文档一致性、Python 示例语法、发布目录链接、站点源构建和 MkDocs YAML 解析已通过;创建 Tag 时由发布脚本重新执行 Go、Python 离线测试和生产 Docker 构建。
- E2E:
skipped;用户确认本次仅包含 API 文档与发布规则调整,无运行时接口实现变更,且同一提交已通过test-v0.1.4本地质量门禁与测试发布验证,因此接受不重新执行真实 Threads 全量 E2E 的风险。 - 部署:计划由 Tag 流水线发布
0.1.2/latest镜像及/pro/0.1.2/、/pro/latest/、/latest/文档;是否远程部署取决于 production Environment 配置。 - 已知限制:视频上传和视频创建仍无可用 RPC;真实上游行为沿用既有验收基线,本次未重新执行; 远程生产服务的实际换版与业务状态需要在部署启用后单独验证。
- 升级与回滚:AI 消费者应兼容
capabilities.json2.0 工作流结构;生产环境必须使用固定镜像0.1.2,如文档或消费端不兼容则回滚到固定镜像0.1.1,不得以latest作为审计或回滚依据。
v0.1.1 · 2026-07-25
- 提交:
bf16b8a6fef32179715a2aa3481db7682330a6f0 - 变更:补齐图片上传与单图发布、头像和 banner 更新、资料字段扩展、结构化帖子采集、 per-request 代理隔离,以及 CAA/Bloks 登录 gRPC/Python 能力。
- 兼容性:新增 RPC、请求字段和 Python 门面方法;既有 Proto 字段号保持不变。需要使用新增能力的 调用方必须升级生成 stub 与 Python 客户端。
- 验证:
go mod verify、go vet ./...、go test -race ./...、8 项 Python 离线测试、37 项发布工具测试、AI 文档检查和生产 Docker 构建通过。 - E2E:
skipped;本次为 patch 发布,全量真实登录及写操作的账号风险高于发布收益,接受未执行 真实上游全量回归的风险。 - 部署:已发布
ghcr.io/robin528919/go-threads-api:0.1.1和生产文档;镜像摘要为sha256:e3408eb680864206cc3ef45aaa98da0ad1f1e00142b3fbdecedd5857ba3891b7。 远程生产部署未启用,服务器未自动换版。 - 已知限制:真实上游登录持久性、账号风控和新增写接口未在本版本执行全量 E2E;GHCR 包为私有可见性。
- 升级与回滚:生产部署必须使用固定镜像
0.1.1;需要回滚时使用固定镜像0.1.0, 不得以latest作为审计或回滚依据。
v0.1.0 · 2026-07-25
- 提交:
d1aeb99b4f332e56bcde98482505ed938c1e8990 - 变更:建立首个生产发布基线,包含严格 SemVer annotated Tag、结构化质量证据、生产镜像、 Test / Pro 分组文档站与生产发布授权流程。
- 兼容性:首个生产版本,无前序生产版本兼容承诺。
- 验证:Go、Python 离线测试、发布工具测试、AI 文档检查和生产 Docker 构建通过。
- E2E:
skipped;用户明确选择跳过该次生产发布的真实全量 E2E。 - 部署:生产镜像与文档发布状态以对应流水线记录为准;远程生产服务部署状态未在原发布记录中留存。
- 已知限制:真实 Threads API 业务验收未执行,不能把离线门禁结果视为真实上游已验证。
- 升级与回滚:首个生产版本;生产运行必须使用固定镜像
0.1.0,出现问题时停止部署并保留证据。