Skip to content

finding: objectstack build lowers a hook body calling ctx.api.object('x').create() although the QuickJS sandbox installs no create leaf — the extractor ledger advertises the verb, the lint rules read it as a live write, and the body throws TypeError: not a function on its first run #16249

Description

@claude

Found while landing #15394 (PR #16248), out of that card's scope; filed unassigned.

What was measured (origin/main 159dbad)

Suggested shape

Refuse .create( at lowering the way .sudo( is refused (a FORBIDDEN_PATTERNS entry whose reason names .insert() as the spelling the sandbox has), and drop create from the extractor's advertised api-crud-literal syntax and API_WRITE_METHODS so the advisory rule stops grading a call that cannot run. Alternatively install a create alias in installCtx — but the spec contract declares insert only, so the refusal is the contract-first route.

Not this

The host-side ObjectRepository.create() alias is reachable by in-process handlers and actions and is not the defect; only the L2 body surface is.


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions