You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
GET /meta/:type/:name answers two different body shapes on the same request — the cached branch (the DEFAULT) returns the bare document, the non-cached branch returns the spec-declared { type, name, item } envelope #5563
Detect the getMetaItem response envelope ({ type, name, item, lock, … }) … The cached read path and getMetaItems element shape hand back the already-unwrapped document instead, so translation helpers must distinguish the two
CACHED BRANCH BODY = {"name":"customer","label":"Customer","fields":{}}
NONCACHED BRANCH BODY = {"type":"object","name":"customer","item":{"name":"customer","label":"Customer","fields":{}}}
Activity
baozhoutao commentedon Aug 5, 2026
进维护者决策收件箱(cli 车道 PM,
session_016FNvXhtSdnEGEfLEsMmvxh,已打needs-user-decision;domain 标签留分诊席)待拍板(公开契约定案,不代拍;完整证据链在 issue 正文与 #5545 的 needs_decision 回报):
主问题:
GET /meta/:type/:name唯一响应形状定哪种?{type,name,item}信封(plugin-rest-api.zod.ts:773),同一次删掉 5 处isMetaEnvelope运行时嗅探。dev 与本席均推荐 A(declared = enforced,唯一不需要改契约的选项;lock承载的 ADR-0008 OCC 链保留)。代价须由您确认:对默认配置(缓存分支)的既有读者是破坏性变更,含client-react/src/metadata-hooks.tsx:113-140与其 docstring,需同一次一并改。lock需另找承载)。meta.getItem没有声明返回类型(载荷为unknown),而并排的meta.getItems有 —— 同一表面上相邻两个方法的类型化不对等 #5545 关单,as any诱因永久留在 SDK 面上)。附带问题(同链路,建议一并拍):
SaveMetaItemResponseSchema是实际返回的真子集(实现多发version/seq/state/projectionApplied,version正是 OCC If-Match 链在用的)。dev 推荐先把这些字段补进 spec 再给meta.saveItem标注解;若只想小步走,另开单优于直接标子集类型。下游挂账(拍板后随实施吸收,均已记录暂不立单):#5545(blocked,注解随 A/B 落地跟进)、11 个
unwrapResponse<any>的 meta.* 方法(spec 无响应 schema,逐条定契约与本单定案耦合)、client-react hooks 的裸文档预期。Generated by Claude Code
baozhoutao commentedon Aug 6, 2026
维护者裁定(2026-08-06,经 cli 车道 PM
session_01DWUR56YsttL5sTF72Q75TQ誊写):A —— 全部收敛到 spec 已声明的{ type, name, item }信封,同一次删掉isMetaEnvelope运行时嗅探(5 处调用 +import-prepare.ts定义)。理由锚点:spec 为权威(与 #4828 子决策 4 同一原则);lock保住 ADR-0008 OCC(If-Match)链的承载;嗅探的存在本身就是分裂的度量,须随收敛一并消灭。附带问题一并裁定:
SaveMetaItemResponseSchema按「先补齐 spec 字段」处置 ——version/seq/state/projectionApplied补进 spec 声明(version正是 OCC 在用),之后meta.saveItem才标注解;spec 半边另立单转 spec 座位(contract-first,不阻塞本单主问题)。实施口径(裁决翻公开语义 ⇒ 全仓一轮翻完,SKILL step 5):
?layers=true第三形状一并对齐或显式另立 schema,实施时如实报告;rest-server.ts5 处嗅探、runtimedomains/meta.ts两处裸文档兜底、client-react/metadata-hooks.tsx:113-140及其 docstring、client/src/client.test.ts替身 —— 翻转后的断言须承载新语义(信封字段真被读到),不是删旧断言;下游:#5545 保持
pm:blocked至本单实施合入(注解要对着真实收敛后的线上形状标,先标即撒谎)。标签:摘
needs-user-decision→pm:queue,归 cli 车道排程(v17 相关;文件面横跨 rest/runtime/client/client-react,与在飞 #5085/#5674 及 #5588 第一棒同包,严格串行,排 #5588 第一棒之后)。Generated by Claude Code
baozhoutao commentedon Aug 6, 2026
认领:PM 循环第 5 轮(cli 车道,v17 相关,独占窗口)
会话:
session_01DWUR56YsttL5sTF72Q75TQ分支:
claude/issue-5563-meta-getitem-envelope-convergenceWorktree:
objectstack-issue-5563域:
domain:cli文件面(四包,窗口内本车道不派任何其他单):
packages/rest(rest-server.ts5 处嗅探与 meta handler、import-prepare.ts、相关测试)+packages/runtime(domains/meta.ts两处裸文档兜底)+packages/client(client.test.ts替身)+packages/client-react(metadata-hooks.tsx:113-140及 docstring)+ changeset(major);⛔ 不触packages/spec(信封已声明;SaveMetaItemResponseSchema 补字段属 #5745,spec 座位)执行依据:维护者 2026-08-06 已拍 A(裁决评论在本 thread 03:40Z):全收敛 spec 信封 + 同一轮删
isMetaEnvelope嗅探;?layers=true第三形状对齐或如实报告;翻转后的断言须承载新语义。churn:rest-server.ts今日已被 #5821(openapi 段)动过、meta.ts所在 runtime 被 #5774 动过,以最新 origin/main 为准;#5545 保持 blocked 至本单合入。Generated by Claude Code
docs(rest): 把两处旁证发现的单号写进注释(#5881 / #5882)
test(dogfood): 把 served-pipeline 的两个读者翻正为信封 (#5563)
baozhoutao commentedon Aug 6, 2026
验收:ACCEPT(cli 车道 PM,
session_01DWUR56YsttL5sTF72Q75TQ,2026-08-06 12:0xZ)→ PR #5895isMetaEnvelope定义 + 调用点(实测 8 处,issue 写 5 偏低,PR 正文如实修正)+ 公开导出 + 同族 import-mapping 拆包逻辑全部删除,PM 亲核分支 grep 零命中(残余unwrapEnvelope命中系 artifact-bundle 同名异物,已甄别——规程「幸存家族子串命中」的标准形状);client-reactuseObject/useFields与 docstring、client 替身、qa/dogfood 两个 HTTP 路径消费方(首轮 CI 抓到的 grep 盲区,PR 正文留档)全部翻正且断言承载新语义。packages/spec与packages/metadata-protocol零触碰(cached 分支在消费侧重包信封,type 按 meta overlays: unnormalized type segment creates phantom rows that shadow the code-authored listing and cannot be deleted #4432 折规范单数);顺带修掉的data.item ?? data永真守卫属信封读取路径内的正确收口。d8de110)25 检查 0 failure,ESLint conclusion=success;major changeset 带 before/after 迁移处方,Check Changeset 绿。?layers=true:按裁决预留的「如实报告」出口处置——对齐会删掉三层诊断本身,已立GET /meta/:type/:name?layers=true应答一个 spec 未声明的第三形状 —— 路由只声明了一个responseSchema#5882(声明缺口,处置 A/B 动公开契约)转 spec 座位定夺,handler 就地注释留档。合规。requiresService组件门禁在GET /meta/:type/:name的缓存分支(默认路径)被完全跳过 #5881(dashboardrequiresService门禁在默认缓存路径被跳过,ADR-0057 D10 的 declared≠enforced,带探针实测)已立单待分诊。转 ready + 挂 auto-merge;MERGED 后在 #5545 留解锁评论(注解可对真实收敛形状标),独占窗口关闭、接续派发 #5673。
Generated by Claude Code
ci(dx): 按裁决(option A)在合并树上全量重校准,三个热包记档 +10 余量
fix(rest): GET /meta/:type/:name answers 404 RESOURCE_NOT_FOUND for a…