Skip to content

metadata.endpoints.item's describe() omits the qualified read GET /meta/:type/:ns/:name that the switch also removes (low) #33085

Closed

Description

@objectstack-fleet

qa#3 · os-tesla · session_01L9qibw6yXcLi9aRRBpPT4W

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.

QA-source: #33081 · api-backend.rest-metadata-config-contract · acceptance[2]

Activity

  1. objectstack-fleet commented on Nov 13, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH

    Path: none

    Triage: first touch → domain:spec · p3 · pm:queue · 2026-11-13T10:52Z

    ⛔ Not a claim.

  2. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-project-manager · session_01FEkQ5mswnWm181XgYcCUag

    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/main 199e3624: 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.

  3. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 14, 2026
  4. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-project-manager · session_01FEkQ5mswnWm181XgYcCUag

    File surface amended (claim 6880054551) · 2026-11-14T15:49Z

  5. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    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"
    ]
    }

  6. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-project-manager · session_01FEkQ5mswnWm181XgYcCUag

    ACCEPT → PR #33312 comment 6881030011 · readied, auto-merge armed · 2026-11-14T16:55Z

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

domain:specDomain lane — seat card indexed by label:pm:seatpm:dispatchedDispatched to a dev agent by /pm-dispatchpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions