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
metadata.endpoints.item's describe() omits the qualified read GET /meta/:type/:ns/:name that the switch also removes (low) #33085
RestServerConfig.metadata.endpoints.item (packages/spec/src/api/rest-server.zod.ts) describes itself as "the whole per-item face — …" and names 13 routes. The mount-table pin packages/rest/src/rest-config-mount-table.pin.test.ts (green at 8e3d4a5) shows the switch removes 14: the 13 plus GET {prefix}/:type/:ns/:name, the ADR-0150 D5 qualified by-name read (#31691). metadata.endpoints.maintenance's describe() already names all four of its routes.
Fix: add the qualified read to the item describe() string and regenerate anything derived from it.
Row: a describe() string lists 13 of the 14 routes the switch removes, so the documentation is short by one. The behaviour is right and the mount-table pin is green, which makes this a wording fix (p3).
Claim: PM loop round 1 · 2026-11-14T15:48Z
Session: session_01FEkQ5mswnWm181XgYcCUag (seat); card thread session_01FEkQ5oCewffujRRbsX1TaR is the dev
Account: os-project-manager
Branch: claude/project-thread-bgvfrd (the card thread's designated branch; the platform lets a thread push only that branch, so not claude/issue-33085-*)
Worktree: objectstack-issue-33085
Domain: domain:spec
Seat: domain:spec#1
File surface: packages/spec/src/api/rest-server.zod.ts (the metadata.endpoints.item describe and same-file prose with the same route-count drift) and the artefacts it regenerates; a docs page only if it lists the per-item routes; root .changeset/. packages/rest/** read-only (stop on breach; explain in the report)
Container & model: S, mode:thread, model: default tier (describe prose, no accept-set change), effort: medium
Clause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: 6850771234
Premise: holds at origin/main199e3624: rest-server.zod.ts:536–541 lists the per-item face without GET /meta/:type/:ns/:name. Taken under the maintainer's standing order 「p1 p2 处理完了,就可以处理 p3」 (2026-10-26; Ruling-ref), the spec lane holding no dispatchable p1/p2 (seat record 6879949667). Order: /mnt/project-files/pm-orders/spec/order-33085.md (project share).
Serial constraints cleared: the only open PR naming rest-server.zod.ts is #33273 (qa checklist text, no code overlap); seat 2's in-flight #33154/#33214/#33232 declare no packages/spec/src/api/** file.
Not added:packages/rest/src/rest-server.ts docblock counts and its maintenance list, and docs/qa/platform-checklist/areas/api-backend.json. Other lanes' files; the dev reports them as out_of_scope_findings and the seat files them.
domain:spec#1 · os-project-manager · session_01FEkQ5oCewffujRRbsX1TaR
os-dev-report
{
"issue": 33085,
"status": "done",
"branch": "claude/project-thread-bgvfrd",
"pr": "#33312",
"session": "session_01FEkQ5oCewffujRRbsX1TaR",
"premise_still_valid": true,
"summary": "On origin/main fd7b378 the mount-table pin lists 14 routes under metadata.endpoints.item and the describe() named 13, missing GET /meta/:type/:ns/:name (ADR-0150 D5); no other route in the row moved since filing. The describe now names the package-qualified by-name read (answers through the item read's own handler); the liveness/metadata_endpoints.json endpoints.item note now says fourteen mounts (folded under the rule-3 bounded fix, surface amended by the seat in 6880069048); the references mdx row regenerated via check:generated --fix (only check:docs was stale). spec patch changeset, Clause-② no, Metadata-protocol none. packages/rest/** untouched; head cc5adeb.",
"tests": "cc5adeb4: pnpm --filter @objectstack/spec typecheck exit 0; spec vitest src/api/rest-server: Test Files 1 passed (1), Tests 53 passed (53); read-only measurement pnpm --filter @objectstack/rest exec vitest run src/rest-config-mount-table.pin.test.ts: Tests 24 passed (24). Description-only change: no new test, no ablation (no tested behaviour moved).",
"gates": "cc5adeb4: dispatch-gates --commands --repo objectstack-ai/objectstack derived 101; 100 exit 0; pnpm check:dual-build-cjs-loads exit 3 PREREQUISITE NOT MET (needs every package's dist; only spec, lint, objectql, client, client-react closures built) = NOT MEASURED, left to CI. --ran: '101 derived famil(ies) accounted for — 100 run, 1 NOT-MEASURED'. Record /mnt/project-files/pm-orders/spec/33085-gates-ran.txt. check-nul-bytes exit 0. CI check-runs: in_progress at report time (not waited on, per os-dev.md).",
"dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
"line_budget": "+17 / -3 over 4 files (dispatch-gates count), under the 3000 human-merge threshold",
"files_changed": [
".changeset/33085-item-describe-qualified-read.md",
"content/docs/references/api/rest-server.mdx",
"packages/spec/liveness/metadata_endpoints.json",
"packages/spec/src/api/rest-server.zod.ts"
],
"deviations": "None against the order. One surface amendment requested and granted before the edit was committed (liveness note, 6880069048). PR opened with no labels: the order names none and skip-changeset does not apply (the diff ships in @objectstack/spec).",
"mcp_calls": "3 — mcp__github__issue_read (get x1, get_comments x2); no MCP write",
"api_writes": "2 relay writes so far + 1 git push: pr_create via fleet-write fw-20261114T162434Z-5f7c65 (run 43615448318, read-back identical, PR #33312); this os-dev-report comment via post-stamped. git push of claude/project-thread-bgvfrd is not a REST write.",
"open_questions": [],
"security_findings": "none",
"out_of_scope_findings": [
"class: b · Seam: spec:RestServerConfig.metadata.endpoints.item → runtime: packages/rest/src/rest-server.ts#registerMetadataEndpointsInner (registerPerItemRoute docblock) · reach: named producer, the mount-table pin measures 14 routes on fd7b378 · evidence: the docblock says the per-item face is 'thirteen mounts' and omits GET {metaPath}/:type/:ns/:name; comment only, not in rest dist · dedupe words: thirteen mounts, registerPerItemRoute, per-item face, qualified read",
"class: b · Seam: spec:RestServerConfig.metadata.endpoints.maintenance → runtime: packages/rest/src/rest-server.ts normalized-config endpoints member docblock · reach: named producer, the pin lists 4 maintenance routes · evidence: the docblock names /diagnostics, /_drafts, POST /_migrate-stored and omits POST /_migrate-record-currency-codes; comment only, not in rest dist · dedupe words: maintenance, _migrate-record-currency-codes, whole-store operations, docblock",
"class: b · Seam: spec:RestServerConfig.metadata.endpoints.item → consumer: none (QA checklist docs/qa/platform-checklist/areas/api-backend.json, api-backend.rest-metadata-config-contract) · reach: named producer, the pin measures 14 · evidence: the item says 'thirteen mounts' in three places (step text, clause, 'switch:endpoints.item (13 mounts)') and does not name the qualified read; open PR #33273 edits qa checklist text and may overlap · dedupe words: 13 mounts, rest-metadata-config-contract, endpoints.item, qualified by-name read"
]
}
Activity
objectstack-fleet commentedon Nov 13, 2026
triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH
Path: none
Triage: first touch →
domain:spec· p3 ·pm:queue· 2026-11-13T10:52Z⛔ Not a claim.
metadata.endpoints.itemdescribe() lists twelve per-item routes, but the switch unmounts thirteen —GET /meta/app/:appId/bundle(#28287) is missing from the declaration #28934 and metadata.endpoints.item radius: three comments outside the spec describe still say "twelve" mounts after the bundle route made it thirteen #29035 (closed) fixed the same string at twelve. Grep the other comments when you fix it.objectstack-fleet commentedon Nov 14, 2026
domain:spec#1 · os-project-manager · session_01FEkQ5mswnWm181XgYcCUag
Claim: PM loop round 1 · 2026-11-14T15:48Z
Session:
session_01FEkQ5mswnWm181XgYcCUag(seat); card threadsession_01FEkQ5oCewffujRRbsX1TaRis the devAccount:
os-project-managerBranch:
claude/project-thread-bgvfrd(the card thread's designated branch; the platform lets a thread push only that branch, so notclaude/issue-33085-*)Worktree:
objectstack-issue-33085Domain:
domain:specSeat:
domain:spec#1File surface:
packages/spec/src/api/rest-server.zod.ts(themetadata.endpoints.itemdescribe and same-file prose with the same route-count drift) and the artefacts it regenerates; a docs page only if it lists the per-item routes; root.changeset/.packages/rest/**read-only (stop on breach; explain in the report)Container & model:
S,mode:thread,model: default tier(describe prose, no accept-set change),effort: mediumClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: 6850771234
Premise: holds at
origin/main199e3624:rest-server.zod.ts:536–541lists the per-item face withoutGET /meta/:type/:ns/:name. Taken under the maintainer's standing order 「p1 p2 处理完了,就可以处理 p3」 (2026-10-26; Ruling-ref), the spec lane holding no dispatchable p1/p2 (seat record 6879949667). Order:/mnt/project-files/pm-orders/spec/order-33085.md(project share).Serial constraints cleared: the only open PR naming
rest-server.zod.tsis #33273 (qa checklist text, no code overlap); seat 2's in-flight #33154/#33214/#33232 declare nopackages/spec/src/api/**file.objectstack-fleet commentedon Nov 14, 2026
domain:spec#1 · os-project-manager · session_01FEkQ5mswnWm181XgYcCUag
File surface amended (claim 6880054551) · 2026-11-14T15:49Z
packages/spec/liveness/metadata_endpoints.json, theendpoints.itemrow note that says "thirteen mounts since Seam: one request opens a record — a record-page payload (record + related counts and first rows + field access + lock) and an app-scoped metadata bundle, so a record open is 2–3 requests instead of 23–45 serialized in three stages #27627" (same count drift as the describe; ships in the spec package; same spec gate family). Requested by the card thread, os-dev rule 3 bounded fix.packages/rest/src/rest-server.tsdocblock counts and its maintenance list, anddocs/qa/platform-checklist/areas/api-backend.json. Other lanes' files; the dev reports them asout_of_scope_findingsand the seat files them.objectstack-fleet commentedon Nov 14, 2026
domain:spec#1 · os-project-manager · session_01FEkQ5oCewffujRRbsX1TaR
os-dev-report
{
"issue": 33085,
"status": "done",
"branch": "claude/project-thread-bgvfrd",
"pr": "#33312",
"session": "session_01FEkQ5oCewffujRRbsX1TaR",
"premise_still_valid": true,
"summary": "On origin/main fd7b378 the mount-table pin lists 14 routes under metadata.endpoints.item and the describe() named 13, missing GET /meta/:type/:ns/:name (ADR-0150 D5); no other route in the row moved since filing. The describe now names the package-qualified by-name read (answers through the item read's own handler); the liveness/metadata_endpoints.json endpoints.item note now says fourteen mounts (folded under the rule-3 bounded fix, surface amended by the seat in 6880069048); the references mdx row regenerated via check:generated --fix (only check:docs was stale). spec patch changeset, Clause-② no, Metadata-protocol none. packages/rest/** untouched; head cc5adeb.",
"tests": "cc5adeb4: pnpm --filter @objectstack/spec typecheck exit 0; spec vitest src/api/rest-server: Test Files 1 passed (1), Tests 53 passed (53); read-only measurement pnpm --filter @objectstack/rest exec vitest run src/rest-config-mount-table.pin.test.ts: Tests 24 passed (24). Description-only change: no new test, no ablation (no tested behaviour moved).",
"gates": "cc5adeb4: dispatch-gates --commands --repo objectstack-ai/objectstack derived 101; 100 exit 0; pnpm check:dual-build-cjs-loads exit 3 PREREQUISITE NOT MET (needs every package's dist; only spec, lint, objectql, client, client-react closures built) = NOT MEASURED, left to CI. --ran: '101 derived famil(ies) accounted for — 100 run, 1 NOT-MEASURED'. Record /mnt/project-files/pm-orders/spec/33085-gates-ran.txt. check-nul-bytes exit 0. CI check-runs: in_progress at report time (not waited on, per os-dev.md).",
"dogfood_battery": "n/a — no
!in the PR title and no (narrowing) arm","line_budget": "+17 / -3 over 4 files (dispatch-gates count), under the 3000 human-merge threshold",
"files_changed": [
".changeset/33085-item-describe-qualified-read.md",
"content/docs/references/api/rest-server.mdx",
"packages/spec/liveness/metadata_endpoints.json",
"packages/spec/src/api/rest-server.zod.ts"
],
"deviations": "None against the order. One surface amendment requested and granted before the edit was committed (liveness note, 6880069048). PR opened with no labels: the order names none and skip-changeset does not apply (the diff ships in @objectstack/spec).",
"mcp_calls": "3 — mcp__github__issue_read (get x1, get_comments x2); no MCP write",
"api_writes": "2 relay writes so far + 1 git push: pr_create via fleet-write fw-20261114T162434Z-5f7c65 (run 43615448318, read-back identical, PR #33312); this os-dev-report comment via post-stamped. git push of claude/project-thread-bgvfrd is not a REST write.",
"open_questions": [],
"security_findings": "none",
"out_of_scope_findings": [
"class: b · Seam: spec:RestServerConfig.metadata.endpoints.item → runtime: packages/rest/src/rest-server.ts#registerMetadataEndpointsInner (registerPerItemRoute docblock) · reach: named producer, the mount-table pin measures 14 routes on fd7b378 · evidence: the docblock says the per-item face is 'thirteen mounts' and omits GET {metaPath}/:type/:ns/:name; comment only, not in rest dist · dedupe words: thirteen mounts, registerPerItemRoute, per-item face, qualified read",
"class: b · Seam: spec:RestServerConfig.metadata.endpoints.maintenance → runtime: packages/rest/src/rest-server.ts normalized-config endpoints member docblock · reach: named producer, the pin lists 4 maintenance routes · evidence: the docblock names /diagnostics, /_drafts, POST /_migrate-stored and omits POST /_migrate-record-currency-codes; comment only, not in rest dist · dedupe words: maintenance, _migrate-record-currency-codes, whole-store operations, docblock",
"class: b · Seam: spec:RestServerConfig.metadata.endpoints.item → consumer: none (QA checklist docs/qa/platform-checklist/areas/api-backend.json, api-backend.rest-metadata-config-contract) · reach: named producer, the pin measures 14 · evidence: the item says 'thirteen mounts' in three places (step text, clause, 'switch:endpoints.item (13 mounts)') and does not name the qualified read; open PR #33273 edits qa checklist text and may overlap · dedupe words: 13 mounts, rest-metadata-config-contract, endpoints.item, qualified by-name read"
]
}
objectstack-fleet commentedon Nov 14, 2026
domain:spec#1 · os-project-manager · session_01FEkQ5mswnWm181XgYcCUag
ACCEPT → PR #33312 comment 6881030011 · readied, auto-merge armed · 2026-11-14T16:55Z