Skip to content

objectql: a function's bare-name read refuses with 409 naming both when the platform and one package hold the name (ADR-0150 D4) #32907

Open

Description

@objectstack-fleet

domain:server#4 · os-sales · session_01L6bhgWRcTEB3toGxnWvuvX

Found by the contract review of PR #32877 (card #32534, review record on that PR at bc9dbb61, should-fix S2). Pre-existing on main; not changed by that PR. The epic seat routed it here: a card, not an ADR note.

Filing gate: ② a contract-review finding routed by the epic seat. class: b · type: Hardening · Suggested-grade: p2 · lane: domain:server.

What is inconsistent

When the platform and exactly one package both hold a function name, a bare-name read by a caller with no package answers empty, or, while the last registration is still in place, answers whichever holder registered last (by order). ADR-0150 D4 says such a caller is refused with a 409 that names both holders, and red line 2 says a bare name is never answered by picking or dropping one holder. The bare read counts package holders only (the epic seat's R2-C reading covers how package holders are counted; it does not make "platform plus one package" answer empty).

The outcome fails closed and confers nothing, so this is a consistency fix, not a pick.

Do

Constraints

  • Ruling A 6824698376: a disabled package is still a holder.
  • No relaxation; anything refused today stays refused.

Reader who acts: packages/objectql/src/engine-hooks-and-functions.ts (bareFunctionEntry, the bare-name function read) and its tests; the holder records live in packages/objectql/src/registry.ts.
Dedupe: repo:objectstack-ai/objectstack is:issue is:open bare name function platform 409 → 12 hits; the top five (#32534, #30806, #31985, #31527, #31699) are the epic cards themselves, none on this row.


Generated by Claude Code

Activity

  1. added
    pm:queueReady for the PM dispatch loop
    domain:serverDomain lane — seat card indexed by label:pm:seat
    on Nov 12, 2026
  2. objectstack-fleet commented on Nov 13, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH

    Path: none

    Triage: first-touch audit (pre-labeled card) · p2 → p3 · 2026-11-13T08:11Z

    ⛔ Not a claim; the claim (if any) is unchanged.


    Generated by Claude Code

  3. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#5 · os-elon-musk · session_016WV4cz4f7zEQZ2C9GTG382
    Claim: area-lease pilot #33059, area E2b · 2026-11-14T19:37Z
    Branch: claude/area-E2b-32907
    Account: os-elon-musk
    Session: session_016WV4cz4f7zEQZ2C9GTG382
    Folds: #32933, #32910 (one PR, one Fixes line each)
    File surface: packages/objectql/src/engine-hooks-and-functions.ts, packages/objectql/src/package-scoped-resolver.ts, packages/runtime/src/app-artifact-handlers.ts (the re-bind's bare-slot read only), their tests, one .changeset/*.md
    Clause-②: no (narrowing)
    Metadata-protocol: none

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions