Filing gate: ① defects with a named landing site, packages/runtime/src/domains/meta.ts handleMetadataRequest. Every row is class (a), with reach: measured at a public door through dispatch(), the createHonoApp catch-all's delegate. Filed as the family's class-closure card after #20320: that card and PR #20404 close list projections, anonymous public reads and the item ?state=draft row.
Found by the os-dev round on #20320 (PR #20404); each row is a fixture of its census. The contract review of that PR (5865834559) confirmed that the PR states these residuals and does not close them. Filed by the domain:cli execution seat (#6024, session_01UYBdGBzWSrAMzpW8ah3GbP). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.
The rows (measured on origin/main b1cbd9277; each still present after PR #20404)
| # |
request |
dispatcher |
RestServer |
| 1 |
GET /meta/totally_invented_type, signed in |
200 {items: []} |
400 INVALID_REQUEST (refuseUnknownMetaListType, the read refusal) |
| 2 |
GET /meta/app?preview=DRAFT, a studio.access builder |
the published world |
lowercases the value and overlays the drafts |
| 3 |
GET /meta/app/crm, Accept-Language: zh-CN |
label CRM (no item translation) |
客户管理 (translateMetaEnvelope) |
| 4 |
GET /meta/doc/crm_intro?locale=zh-CN |
English label plus the whole translations map |
collapsed to the locale, translations dropped (resolveDocLocale) |
| 5 |
GET /meta/book/public_guide/tree |
404 ROUTE_NOT_FOUND signed in, 401 anonymous |
serves the book tree (ADR-0046) |
| 6 |
GET /meta/object/invoice?preview=draft, a builder |
the active object |
the draft object |
Row 2's exact-match parse also sits on the dispatcher's item ?preview=.
Read at source, not measured (for the claimant to measure first)
- The dispatcher threads
resolveActiveOrganizationId for every type, where RestServer threads organizationIdForMetaRead over the folded type.
- The dispatcher's object mask sets no
Cache-Control: private, no-store on an undetermined posture.
The contract
AGENTS.md 〈Route & surface ownership〉 rule 1: one implementation, two transports. Triage's direction on #20320 (5860344252) was 「extend the shared seam」, not retire the dispatcher's reads (ADR-0076 item 9 keeps the catch-all as the cloud fallback). PR #20404 builds that seam for the list chain (createMetaListAnswer in packages/rest/src/meta-item-read-gate.ts). These rows are the item-side and route-side remainder.
Duplicate check
Searched the board, open and closed:
None carries these rows. #20320, #20237 and #20193 are the family's earlier cards.
Generated by Claude Code
Filing gate: ① defects with a named landing site,
packages/runtime/src/domains/meta.tshandleMetadataRequest. Every row is class (a), withreach:measured at a public door throughdispatch(), thecreateHonoAppcatch-all's delegate. Filed as the family's class-closure card after #20320: that card and PR #20404 close list projections, anonymouspublicreads and the item?state=draftrow.Found by the
os-devround on #20320 (PR #20404); each row is a fixture of its census. The contract review of that PR (5865834559) confirmed that the PR states these residuals and does not close them. Filed by thedomain:cliexecution seat (#6024,session_01UYBdGBzWSrAMzpW8ah3GbP). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.The rows (measured on
origin/mainb1cbd9277; each still present after PR #20404)RestServerGET /meta/totally_invented_type, signed in{items: []}INVALID_REQUEST(refuseUnknownMetaListType, the read refusal)GET /meta/app?preview=DRAFT, astudio.accessbuilderGET /meta/app/crm,Accept-Language: zh-CNCRM(no item translation)客户管理(translateMetaEnvelope)GET /meta/doc/crm_intro?locale=zh-CNtranslationsmaptranslationsdropped (resolveDocLocale)GET /meta/book/public_guide/treeROUTE_NOT_FOUNDsigned in, 401 anonymousGET /meta/object/invoice?preview=draft, a builderRow 2's exact-match parse also sits on the dispatcher's item
?preview=.Read at source, not measured (for the claimant to measure first)
resolveActiveOrganizationIdfor every type, whereRestServerthreadsorganizationIdForMetaReadover the folded type.Cache-Control: private, no-storeon an undetermined posture.The contract
AGENTS.md 〈Route & surface ownership〉 rule 1: one implementation, two transports. Triage's direction on #20320 (
5860344252) was 「extend the shared seam」, not retire the dispatcher's reads (ADR-0076 item 9 keeps the catch-all as the cloud fallback). PR #20404 builds that seam for the list chain (createMetaListAnswerinpackages/rest/src/meta-item-read-gate.ts). These rows are the item-side and route-side remainder.Duplicate check
Searched the board, open and closed:
?id=,?object=, plural/meta/docsbodies, locale) and refuses apublicaudience to anonymous callers #20320 is the parent, closing.translateMetaItem's comment restates the translatable-type set by hand, so it goes stale every time the dispatch table grows #14378 is closed and unrelated.GET /api/v1/meta/<unknown-type>answers 200 with an empty collection while the write door refuses the same type #9488 added the REST read refusal row 1 lacks on the dispatcher. [finding]GET /meta/<unknown-type>/<name>says "item not found" — the single-item 404 cannot tell an unknown TYPE from an unknown ITEM #9744, meta-unknown-type-namespace: a/metatype name that is not a plural of anything still mints a namespace —PUT /meta/fieldz/xanswers 200 #8421 and getMetaItem 的 overlay 读用裸 catch 把「sys_metadata 不可达」吞成「该项不存在」—— GET /meta/:type/:name 在存储故障时回一个无 code 的 400「not found」 #5532 are other/metaunknown-type cards.None carries these rows. #20320, #20237 and #20193 are the family's earlier cards.
Generated by Claude Code