Skip to content

test(spec): metadata-type-schemas.test.ts pins the registry at closed 27 / types 28 and is bumped on every new metadata kind — state the rule in words, drop the counts #26437

Closed

Description

@objectstack-fleet

Filing gate: ③ maintainer-directed. Maintainer, 2026-10-27, in the director summon chat, to the seat's check-retirement sweep and its offer of three cards, verbatim: 「同意」 (the sweep was ordered by 「排查一下还有哪些检查应该退役」). Filed by the director seat (session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708, sweep record 6433263738). ⛔ Not a claim. Batch-of: 11 (director seat, 2026-10-27). Dedupe: 600 newest open + closed issues grepped for the check's file name → 0 unless stated. Part of #26431. Reader: domain:spec.

Measured: packages/spec/src/kernel/metadata-type-schemas.test.ts:656–657 — expect(closed.length).toBe(27); expect(types.length).toBe(28); with a comment log of each bump (25→26 picklist, 26→27, 27→28 sharing_rule on 2026-10-19). The invariant the file protects is stated two lines above the numbers: every registered type's authoring schema is closed (.strict()) except view.

Wanted: replace the two counts with the rule — the set of types whose schema is not closed equals ['view'] (or whatever the file names), computed from the registry; keep types.length > 0. The bump log moves to the file header as history. Acceptance: adding a closed metadata kind changes no test; git grep -n "closed.length).toBe(" packages/spec → 0. Size: XS. Clause-②: no. Metadata-protocol: none.

Activity

  1. added
    pm:queueReady for the PM dispatch loop
    domain:specDomain lane — seat card indexed by label:pm:seat
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    on Oct 27, 2026
  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: audit line · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T05:09Z

    ⛔ Not a claim, ⛔ not a dispatch. The filer's labels are read and kept; this is the triage line an execution seat needs before it claims.


    Generated by Claude Code

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

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1 · 2026-10-27T05:15Z
    Session: session_01WGufzfhobWEgUUrjz4rrbh
    Account: os-support-ai
    Branch: claude/project-thread-cjshdw (card thread session_01WGufzgtamNuTZbD2fSuQ3Y. 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-26437-<slug>.)
    Worktree: objectstack-issue-26437
    Domain: domain:spec
    Seat: domain:spec#1
    File surface: packages/spec/src/kernel/metadata-type-schemas.test.ts only. Stop on a breach and explain it in the report.
    Container & model: S, mode:thread, model: TIER_DEFAULT, default effort
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a. This is a test-shape card from the check-retirement sweep, not a defect card.
    Thread-read: none
    Premise: holds (read at origin/main: metadata-type-schemas.test.ts:656-657 pins expect(closed.length).toBe(27) / expect(types.length).toBe(28))
    Serial constraints cleared: yes. No open PR or claim names metadata-type-schemas.test.ts.
    Ruling-ref: maintainer 「同意」 to the director seat's check-retirement sweep (sweep record 6433263738, part of #26431)

  5. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 26437,
      "status": "done",
      "branch": "claude/project-thread-cjshdw",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/26509",
      "session": "session_01WGufzgtamNuTZbD2fSuQ3Y",
      "premise_still_valid": true,
      "summary": "Replaced the pinned expect(closed.length).toBe(27) / expect(types.length).toBe(28) in packages/spec/src/kernel/metadata-type-schemas.test.ts with the rule they protected: the registered types whose topLevelPosture is not strict, computed from listMetadataTypeSchemaTypes(), must equal STILL_STRIP (today ['view']); types.length > 0 kept. The bump log moved to a History section in the file header, and two prose lines that still referred to a count were updated. Branch is the platform-assigned card-thread branch per the Claim; file surface held to the one file.",
      "tests": "head 120bfb17. Under os-verify-lock: pnpm --filter @objectstack/spec exec vitest run --maxWorkers=2 src/kernel/metadata-type-schemas.test.ts -> Test Files 1 passed (1), Tests 134 passed (134), VERDICT command-exit 0. pnpm --filter @objectstack/spec build && typecheck -> VERDICT command-exit 0, check:test-typecheck OK. Ablation (src-resolved import, no dist leg): scripts/ablation-replace.mjs on packages/spec/src/data/picklist.zod.ts, anchor 'export const PicklistSchema = lazySchema(() => strictObject({' -> 'z.object({', anchor x1->x0, replacement x0->x1, blob 56447b6a03a5 -> 9ee381dbfaaf; new assertion red: 'expected [ picklist, view ] to deeply equal [ view ]', Tests 4 failed | 130 passed (the other 3 are pre-existing picklist per-type pins); restore blob == HEAD 56447b6a03a5, git diff HEAD empty. git grep -n 'closed.length).toBe(' packages/spec -> 0 hits (exit 1).",
      "gates": "dispatch-gates --commands at 120bfb17: 73 derived. All 73 run with exit codes captured before any pipe; --ran: '73 derived famil(ies) accounted for — 69 run, 4 NOT-MEASURED (4 DERIVED from a recorded exit 3)'. NOT MEASURED (exit 3 prerequisite): check-plugin-teardown-shape --self-test (shallow clone, pinned control commit unreachable); lint check:doc-formula-expressions (@objectstack/formula, @objectstack/lint unbuilt); check:dual-build-cjs-loads (other packages' dist absent); check:lean-entry-closure (@objectstack/objectql unbuilt). check-nul-bytes exit 0. PR check-runs: in_progress at report time.",
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "mcp_calls": "6 — issue_read get, issue_read get_comments x2, issue_read get_labels (wrong surface, error), pull_request_read get, plus this report's read-back; no write tools",
      "api_writes": "git push x1 (not REST). Relay stroke 1 (fleet-write run 40457973046): POST /repos/objectstack-ai/objectstack/pulls (draft), POST /issues/26509/assignees, POST /issues/26509/labels [skip-changeset]. Relay stroke 2: POST /issues/26437/comments (this report), POST /pulls/26509/requested_reviewers [os-support-ai] (requested by the project's PR-attribution rule).",
      "open_questions": [],
      "out_of_scope_findings": ["none"]
    }

    Generated by Claude Code

  6. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed · domain:spec seat 1 (#6017) · session session_01WGufzfhobWEgUUrjz4rrbh · 2026-10-27T06:50Z

    PR #26509 merged at 2e5746dc (merged 2026-10-27T06:50Z). 2e5746dc is an ancestor of origin/main. On every path the PR touched, the merge tree matches the accepted head 120bfb17 byte for byte.

    metadata-type-schemas.test.ts no longer pins closed/total counts. The open set computed from the registry must equal STILL_STRIP, so adding a closed metadata kind changes no test. The card closed through Fixes #26437, and this seat removes pm:dispatched.

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:specDomain lane — seat card indexed by label:pm:seatpriority:p2Medium: important, M3tech-debt

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions