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
spec: the Virtual Data Engine wire protocol block (DataEngineRequestSchema and its arms) has zero readers — decide ADR-0049 enforce-or-remove; its note says "tracked separately" but nothing tracks it #27028
Filing gate: ② a governing note that says "tracked separately" with no tracker. Measured by the contract review on PR #27007 (#26954; record 6458779713, ③ flag 2). Filed by domain:spec seat 3 · os-support-ai · session session_01WGufzgbJhFoXYsLSe5WSPP. ⛔ Not a claim. No grade: triage sets the lane and the grade (spec lane suggested).
Business reason.packages/spec/src/data/data-engine.zod.ts publishes a whole "Virtual ObjectQL" wire protocol: DataEngineRequestSchema, DataEngineFindRequestSchema, DataEngineFindOneRequestSchema, DataEngineContractSchema and the rest of the block. Its own note (#4618) says every arm has zero readers in this repo and there is no Virtual Data Engine implementation. A generated client or an AI author reading the published surface sees a protocol nothing serves. The note says the enforce-or-remove question "is tracked separately", but no open card tracks it. Card #26954, the last one that touched the block, closes with PR #27007 and aligned four members without deciding the question; the seat's ruling there was align, not retire.
The review re-measured on origin/mainacc9c57d0a: no code outside packages/spec parses DataEngineRequestSchema, DataEngineFindRequestSchema, DataEngineFindOneRequestSchema or DataEngineContractSchema. The hits are the generated reference page's import line, the export ledgers and CHANGELOG prose. The only runtime reader in the file's neighbourhood reads EngineQueryOptionsSchema.shape keys (runtime/src/action-execution.ts ~:2047), which is outside the block.
Wanted (for triage to grade and route)
Decide ADR-0049 for the block. One option is to enforce it, which means naming a reader that parses it. The other is to retire it from the published surface through the published-surface removal process. Retiring is a major change, so it may need the maintainer's ruling. Either way, rewrite the note so it names this card instead of "tracked separately".
Dedupe
search_issues on this repo, "Virtual Data Engine DataEngineRequestSchema enforce or remove ADR-0049 retire published wire protocol", returned #26954 (the source; it aligns four members and does not decide the block), #4618 (the batch? retirement, closed, which left this standing) and #25159 (a different surface, closed). New.
Read fresh. The whole "Virtual ObjectQL" wire protocol block in data-engine.zod.ts (DataEngineRequestSchema and its arms) has zero readers in the repo, and its "tracked separately" note had no tracker. This card is now the tracker.
p3: nothing runs on it, and nothing is wrong at runtime. Under 「低优先级的先不考虑」 it waits.
⚠️Removing a published wire protocol is a protocol-surface decision, not an ordinary enforce-or-remove of a property. The block's own note says so. When the seat takes it, it measures the external readers it can (published API surface, generated clients, docs) and brings a decision card with the four facets to the maintainer before removing anything. Enforcing it would need a Virtual Data Engine that does not exist.
Claim: PM loop round 2 · 2026-10-28T14:41Z
Session: session_01WGufzfhobWEgUUrjz4rrbh
Account: os-support-ai
Branch: claude/project-thread-9f4fjb (card thread session_01WGufziUAPh2YojDuNQpVXp. The platform assigns the thread's branch and the thread can push only that one, so the branch is written as measured instead of claude/issue-27028-<slug>.)
Worktree: objectstack-issue-27028
Domain: domain:spec
Seat: domain:spec#1
File surface:
packages/spec/src/data/data-engine.zod.ts deletes the 10 request schemas, DataEngineContractSchema, the 5 types and the 5 private helpers, with an in-file note where the block stood. RPC_QUERY_ALIAS_SLOTS, foldQueryAliasSlots, aliasConflictIssue, every *OptionsSchema and the query-transport schemas stay.
ADR-0087: one D3 semantic entry 18.data-engine-rpc-protocol-retired plus 10 retired-defs/18.data__DataEngine*Request.ts entries.
Regenerated baselines and references: api-surface, export-origins, declaration-map, json-schema.manifest, authorable-surface/defaults, dropped-refinements, docs-import-surface, unemitted-schemas, variant-docs, and the reference page and index. Also the type-alias-convention.pin.test.ts rows and census.
The test suites and parity rows move. The content/docs/kernel/contracts/data-engine.mdxbatch? member and example are fixed. Three comment sites change, one of them in packages/objectql/src/engine.ts, plus the 2 DEVELOPMENT_PLAN.md rows.
A root .changeset: @objectstack/spec minor, and @objectstack/objectql patch if its comment moves.
{
"issue": 27028,
"status": "done",
"branch": "claude/project-thread-9f4fjb",
"pr": "https://github.com/objectstack-ai/objectstack/pull/27324",
"session": "session_01WGufziUAPh2YojDuNQpVXp",
"premise_still_valid": true,
"summary": "Ruling A (#27274, record 6472013580) executed. Deleted from data/data-engine.zod.ts: DataEngineRequestSchema and its 9 arms, DataEngineContractSchema, 5 types (DataEngineRequest, DataEngineRequestParsed, DataEngineExecuteRequest, DataEngineInsertRequest, DataEngineVectorFindRequest) and 5 private helpers (RpcQueryOptionsSchema, foldRpcQueryOptions, RpcLegacyFilterMixin, foldRpcLegacyFilter, RPC_WHERE_SLOT); RPC_QUERY_ALIAS_SLOTS, foldQueryAliasSlots, aliasConflictIssue, every *OptionsSchema and the query-transport schemas stay. Route 3: 10 retired-defs/18.data__DataEngine*Request.ts + D3 semantic data-engine-rpc-protocol-retired, no tombstone, no D2. Manifest (-10) and authorable-surface (-35) deleted deliberately; authorable-defaults, dropped-refinements (-8, totals 252->244 / 900->892), unemitted-schemas (-1), docs-import-surface (-6), variant-docs (-1), api-surface/export-origins/declaration-map/reference docs/strictness-ledger/test-typecheck-debt regenerated; no skills/*/references/_index.md moved, so not Tier H. Iso_ census 799->796. New tree-scoped pin data-engine-rpc-protocol-retirement.test.ts in vitest.repo-tests.json. content/docs/kernel/contracts/data-engine.mdx drops the retired batch? member and example. Comment rewords in contracts/data-engine.ts, ui/view-grouping-query.ts, objectql engine.ts (objectql patch); DEVELOPMENT_PLAN rows struck. Root changeset: spec minor + objectql patch, Clause-② no (narrowing), Metadata-protocol narrowed, adr-0087 registered data-engine-rpc-protocol-retired. Merged origin/main a0aa8a1f3 (15 commits) via os-regen-merge.sh; no regeneration was needed after it. 1975 changed lines.",
"tests": "head 644adb1e7 (merged): spec build exit 0; spec check:generated exit 0 (14/14); spec typecheck exit 0; spec vitest --project local Test Files 748 passed (748), Tests 22293 passed | 1 todo. spec test:repo (pre-merge head e0536fb2): 82/83 files, 1370/1371 tests; the one failure is scripts/def-key-collisions.test.ts MODULE_NOT_FOUND on the fixture's tsx shim path (env, before its guard; not this diff), re-seen in a targeted run on 644adb1e7 where the new pin passed (16/16). objectql typecheck exit 0 after the objectql^... closure build. No ablation (deletion only).",
"gates": "dispatch-gates --commands: 111 families on head face3dad; 99 exit 0, 11 exit 3 (prerequisite: spec dist predated an edited test file) + check:generated exit 1 (stale dist + test-typecheck ledger) -> all 12 re-run after rebuild, all exit 0. check-adr-0087-registration: registered data-engine-rpc-protocol-retired (new here). check-changeset-no-major: no major, protocol lockstep ok. Merged head 644adb1e7: build, check:generated, typecheck, spec test re-run green. CI check-runs pending at report time.",
"dogfood_battery": "644adb1e7 · os-verify-lock VERDICT command-exit 0 (37m51s) · Test Files 348 passed | 3 skipped (351) · Tests 2806 passed | 20 skipped (2826) · no failures",
"mcp_calls": "GitHub MCP read only: issue_read #27028 (get, get_comments x3), issue_read #27274 get_comments; no write tool",
"api_writes": "relay: pr_create #27324 (assignee os-support-ai); pr_request_reviewers #27324 (os-support-ai); comment #27028 (this report). git push x5 to claude/project-thread-9f4fjb (not REST).",
"open_questions": [],
"out_of_scope_findings": [
"carrier: #27028 · noted, not filed — content/docs/kernel/contracts/data-engine.mdx taught the retired engine.batch?.() with a copyable example; fixed in this PR as the ruling ordered",
"class: none · reach: none · scripts/def-key-collisions.test.ts fails locally with MODULE_NOT_FOUND (fixture symlinks packages/spec/node_modules into a tmp clone; the pnpm .bin/tsx shim resolves a path that does not exist there) · noted in Acceptance notes, CI Test Core is the reading"
]
}
PR #27324 merged through the queue at 9ac5ae5b. It was Tier H, and os-zhuang re-queued it by hand. 9ac5ae5b is an ancestor of origin/main. On all 37 paths the PR touched, the merge tree matches the accepted head 609a2715 byte for byte.
The unserved Virtual ObjectQL request protocol is retired, as the maintainer ruled on #27274 (A). That removes 11 value exports and 5 type exports from @objectstack/spec/data (DataEngineRequestSchema, its nine arms, DataEngineContractSchema) and 10 JSON Schema defs. Each def is registered in RETIRED_DEFS_BY_MAJOR[18], and the D3 entry data-engine-rpc-protocol-retired carries the prescription. The doors that remain are IDataEngine, ctx.api.object(name), REST /data/:object and POST {basePath}/batch. The ADR-0119 anchor is now file-level.
Follow-up #27346 carries the review's three prose should-fixes. The card closed through Fixes #27028, and this seat removes pm:dispatched. Decision card #27274 closes with this landing.
Activity
objectstack-fleet commentedon Oct 28, 2026
Triage:
domain:spec, p3,area:api· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-28T02:55Z⛔ Not a claim.
data-engine.zod.ts(DataEngineRequestSchemaand its arms) has zero readers in the repo, and its "tracked separately" note had no tracker. This card is now the tracker.pm:queue.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Claim: PM loop round 2 · 2026-10-28T14:41Z
Session:
session_01WGufzfhobWEgUUrjz4rrbhAccount:
os-support-aiBranch:
claude/project-thread-9f4fjb(card threadsession_01WGufziUAPh2YojDuNQpVXp. The platform assigns the thread's branch and the thread can push only that one, so the branch is written as measured instead ofclaude/issue-27028-<slug>.)Worktree:
objectstack-issue-27028Domain:
domain:specSeat:
domain:spec#1File surface:
packages/spec/src/data/data-engine.zod.tsdeletes the 10 request schemas,DataEngineContractSchema, the 5 types and the 5 private helpers, with an in-file note where the block stood.RPC_QUERY_ALIAS_SLOTS,foldQueryAliasSlots,aliasConflictIssue, every*OptionsSchemaand the query-transport schemas stay.18.data-engine-rpc-protocol-retiredplus 10retired-defs/18.data__DataEngine*Request.tsentries.type-alias-convention.pin.test.tsrows and census.content/docs/kernel/contracts/data-engine.mdxbatch?member and example are fixed. Three comment sites change, one of them inpackages/objectql/src/engine.ts, plus the 2DEVELOPMENT_PLAN.mdrows..changeset:@objectstack/specminor, and@objectstack/objectqlpatch if its comment moves.check:generatedmoves askills/*/references/_index.md, the PR becomes Tier H.Container & model:
M,mode:thread,model: TIER_DEFAULT,effort: highClause-②: no (narrowing)
Metadata-protocol: narrowed
Responsibility: n/a. This is the tracker for the chore(spec): retire IDataEngine.batch? per ADR-0119 D3 — declared-but-unimplemented, zero callers #4618 "tracked separately" note (triage
6459409175).Thread-read: 6459409175
Premise: held at
origin/main1287b2fa, measured by the dev in phase 1 (decision card [Decision] Retire the unserved "Virtual ObjectQL" wire protocol in data-engine.zod.ts (A), or keep it as a planned contract (B)? (#27028) #27274). There are zero readers in this repo and in hotcrm, objectui and docs.objectos.ai.Serial constraints cleared: yes. No card in hand edits
data-engine.zod.ts.Ruling-ref: maintainer A on [Decision] Retire the unserved "Virtual ObjectQL" wire protocol in data-engine.zod.ts (A), or keep it as a planned contract (B)? (#27028) #27274 (2026-10-28T14:38Z); see the ruling record on [Decision] Retire the unserved "Virtual ObjectQL" wire protocol in data-engine.zod.ts (A), or keep it as a planned contract (B)? (#27028) #27274.
wip(spec): regenerate artifacts and ledgers for the Virtual ObjectQL …
wip(spec): changeset for the Virtual ObjectQL retirement (#27028)
wip(spec): re-record the test-typecheck debt after the Iso_ rows left (…
objectstack-fleet commentedon Oct 28, 2026
os-dev-report
{ "issue": 27028, "status": "done", "branch": "claude/project-thread-9f4fjb", "pr": "https://github.com/objectstack-ai/objectstack/pull/27324", "session": "session_01WGufziUAPh2YojDuNQpVXp", "premise_still_valid": true, "summary": "Ruling A (#27274, record 6472013580) executed. Deleted from data/data-engine.zod.ts: DataEngineRequestSchema and its 9 arms, DataEngineContractSchema, 5 types (DataEngineRequest, DataEngineRequestParsed, DataEngineExecuteRequest, DataEngineInsertRequest, DataEngineVectorFindRequest) and 5 private helpers (RpcQueryOptionsSchema, foldRpcQueryOptions, RpcLegacyFilterMixin, foldRpcLegacyFilter, RPC_WHERE_SLOT); RPC_QUERY_ALIAS_SLOTS, foldQueryAliasSlots, aliasConflictIssue, every *OptionsSchema and the query-transport schemas stay. Route 3: 10 retired-defs/18.data__DataEngine*Request.ts + D3 semantic data-engine-rpc-protocol-retired, no tombstone, no D2. Manifest (-10) and authorable-surface (-35) deleted deliberately; authorable-defaults, dropped-refinements (-8, totals 252->244 / 900->892), unemitted-schemas (-1), docs-import-surface (-6), variant-docs (-1), api-surface/export-origins/declaration-map/reference docs/strictness-ledger/test-typecheck-debt regenerated; no skills/*/references/_index.md moved, so not Tier H. Iso_ census 799->796. New tree-scoped pin data-engine-rpc-protocol-retirement.test.ts in vitest.repo-tests.json. content/docs/kernel/contracts/data-engine.mdx drops the retired batch? member and example. Comment rewords in contracts/data-engine.ts, ui/view-grouping-query.ts, objectql engine.ts (objectql patch); DEVELOPMENT_PLAN rows struck. Root changeset: spec minor + objectql patch, Clause-② no (narrowing), Metadata-protocol narrowed, adr-0087 registered data-engine-rpc-protocol-retired. Merged origin/main a0aa8a1f3 (15 commits) via os-regen-merge.sh; no regeneration was needed after it. 1975 changed lines.", "tests": "head 644adb1e7 (merged): spec build exit 0; spec check:generated exit 0 (14/14); spec typecheck exit 0; spec vitest --project local Test Files 748 passed (748), Tests 22293 passed | 1 todo. spec test:repo (pre-merge head e0536fb2): 82/83 files, 1370/1371 tests; the one failure is scripts/def-key-collisions.test.ts MODULE_NOT_FOUND on the fixture's tsx shim path (env, before its guard; not this diff), re-seen in a targeted run on 644adb1e7 where the new pin passed (16/16). objectql typecheck exit 0 after the objectql^... closure build. No ablation (deletion only).", "gates": "dispatch-gates --commands: 111 families on head face3dad; 99 exit 0, 11 exit 3 (prerequisite: spec dist predated an edited test file) + check:generated exit 1 (stale dist + test-typecheck ledger) -> all 12 re-run after rebuild, all exit 0. check-adr-0087-registration: registered data-engine-rpc-protocol-retired (new here). check-changeset-no-major: no major, protocol lockstep ok. Merged head 644adb1e7: build, check:generated, typecheck, spec test re-run green. CI check-runs pending at report time.", "dogfood_battery": "644adb1e7 · os-verify-lock VERDICT command-exit 0 (37m51s) · Test Files 348 passed | 3 skipped (351) · Tests 2806 passed | 20 skipped (2826) · no failures", "mcp_calls": "GitHub MCP read only: issue_read #27028 (get, get_comments x3), issue_read #27274 get_comments; no write tool", "api_writes": "relay: pr_create #27324 (assignee os-support-ai); pr_request_reviewers #27324 (os-support-ai); comment #27028 (this report). git push x5 to claude/project-thread-9f4fjb (not REST).", "open_questions": [], "out_of_scope_findings": [ "carrier: #27028 · noted, not filed — content/docs/kernel/contracts/data-engine.mdx taught the retired engine.batch?.() with a copyable example; fixed in this PR as the ruling ordered", "class: none · reach: none · scripts/def-key-collisions.test.ts fails locally with MODULE_NOT_FOUND (fixture symlinks packages/spec/node_modules into a tmp clone; the pnpm .bin/tsx shim resolves a path that does not exist there) · noted in Acceptance notes, CI Test Core is the reading" ] }Generated by Claude Code
docs(adr): ADR-0119 names the retired DataEngineRequest without a sym…
Merge origin/main into claude/project-thread-9f4fjb (#27028)
chore(spec): regenerate after merging origin/main (#27028)
objectstack-fleet commentedon Oct 29, 2026
Landed ·
domain:specseat 1 (#6017) · sessionsession_01WGufzfhobWEgUUrjz4rrbh· 2026-10-29T03:01ZPR #27324 merged through the queue at
9ac5ae5b. It was Tier H, and os-zhuang re-queued it by hand.9ac5ae5bis an ancestor oforigin/main. On all 37 paths the PR touched, the merge tree matches the accepted head609a2715byte for byte.The unserved Virtual ObjectQL request protocol is retired, as the maintainer ruled on #27274 (A). That removes 11 value exports and 5 type exports from
@objectstack/spec/data(DataEngineRequestSchema, its nine arms,DataEngineContractSchema) and 10 JSON Schema defs. Each def is registered inRETIRED_DEFS_BY_MAJOR[18], and the D3 entrydata-engine-rpc-protocol-retiredcarries the prescription. The doors that remain areIDataEngine,ctx.api.object(name), REST/data/:objectandPOST {basePath}/batch. The ADR-0119 anchor is now file-level.Follow-up #27346 carries the review's three prose should-fixes. The card closed through
Fixes #27028, and this seat removespm:dispatched. Decision card #27274 closes with this landing.chore(spec): regenerate the authorable surface on the merged tree (#2…