Uh oh!
There was an error while loading. Please reload this page.
fix(meta): /meta/object/:name reports the __search companion, agreeing with the list read (#8038) - #8255
Conversation
…g with the list read (#8038) The two `/meta` reads of an object answered "does this object have a `__search` column?" two different ways, split cleanly by PROVENANCE. Measured end-to-end on the showcase, booted from a compiled artifact with `OS_SEARCH_PINYIN_ENABLED=true` (69 objects served): all 22 companion-bearing package objects carried it on `GET /meta/object` and were served WITHOUT it by `GET /meta/object/:name` and by `?layers=true`'s `effective`; all 45 companion-bearing platform objects carried it on both. Nothing about an object caused this; where its by-name read was ANSWERED FROM did. The companion is provisioned at the SchemaRegistry's object-materialization seam, so the list read — composed from `listItems('object')` — serves a materialized body, while the by-name read consults the `metadata` SERVICE first and on an artifact-booted deployment that service holds the author's declaration, captured before materialization. Fixed the way #6562 ruled this same seam (Option B: the read serves the effective runtime schema and the minority converges on the registry-backed majority) — at the read exits, from the registry that made the deployment-gated provisioning decision, so the pass and the decision cannot disagree. The `?layers=true` `code` and `overlay` layers stay byte-verbatim. The read adds a real field declaration, so the write path takes it back off again, as #6562's strip does for the injected columns: a runtime-created object's stored row went from `fields: [name]` to `fields: [__search, name]` on a single GET -> PUT before this. The strip is exact — only an entry byte-identical to what the provisioning seam would stamp is removed, recomputed from that function rather than transcribed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013bJJCxvDx9Z8uJQG5CikMj
…rch-companion-route-divergence
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
📓 Docs Drift CheckThis PR changes 2 package(s): 16 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
⛔ 2 release-owned page(s) also reference the affected code. These are read-only:
|
Uh oh!
There was an error while loading. Please reload this page.
Fixes#8038
Opened by the PM on the dev agent's behalf. The cloud dev container cannot reach the GitHub API (403 on every call); it can only
git push. The branch, commits, tests and changeset are entirely the dev's work.What this is
The two
/metareads of an object answered "does this object have a__searchcolumn?" two different ways, split cleanly by provenance — measured end-to-end on the showcase, booted from a compiled artifact withOS_SEARCH_PINYIN_ENABLED=true(69 objects served).Full rationale is in the changeset (
.changeset/meta-object-search-companion-agreement.md), which is the dev's own text and the authoritative description.Shape
packages/metadata-protocol/src/protocol.ts— +106/−?packages/objectql/src/registry.ts— +92packages/rest/src/meta-object-search-companion-agreement.test.ts— +366 (new)packages/runtime/src/…/meta-object-search-companion-roundtrip.test.ts— +196 (new)patch)820 insertions, 7 deletions, across
objectqlandmetadata-protocol.packages/metadata-protocol/src/protocol.tsandpackages/objectql/src/registry.ts, both of which had concurrent editors in this lane today.origin/mainis already merged into the branch (see the merge commit). Any conflict goes to the merge queue — ⛔ do not hand-order.Review status
Draft pending my review of the source diff and CI convergence. Reviewed against this diff and
origin/main, ⛔ not against a self-reported summary — the dev's structured report is stranded in its container by the same 403.Generated by Claude Code