Skip to content

[finding] check-widening-tells T1 is still blind to FILE-LOCAL declaring factories — a new writable key through placeholderFree( on objectstack's own judged surface passes a Clause-②: no in silence #18702

Description

@os-justin

Class a — reproducible defect, probe named. The sibling of #18560, left open by its own PR on purpose.

Probe (run by the #18560 dev at PR #18700's head 7f1a81419; the seat's reading of the report, the probe is one command)

A one-line diff adding

+  snapshotPath: placeholderFree(z.string(), 'persistence.snapshotPath').optional(),

to packages/spec/src/data/driver/memory.zod.ts, judged with node scripts/pm/check-widening-tells.mjs --declaration no --diff FILE on the default board, exits 0 with the file JUDGED (not NOT-MEASURED) and zero tells. That is a genuinely new author-writable key passing a no in silence — the same class as #18560, on this repo's own surface.

Why PR #18700 does not close it

PR #18700 repairs the vocabulary as a NAMED list of shared, exported helpers (SCHEMA_PROPERTY_FORMS, two registers, every form pinned by a counterfactual fixture). A list of shared helpers cannot name a factory private to one file, and its header refuses a name-shaped heuristic (*Refusal( / *Arm() because it would recognise lines on evidence they do not carry. What closes this class is a reading that resolves the factory's own value, which is a different mechanism and a different card. The header of check-widening-tells.mjs at that head carries the overturn condition and names the populations below.

Measured populations

At objectstack 6dfa3ea77: placeholderFree( 23 key lines, strictIdent( 12, INLINE_CREDENTIAL_REFUSED( 10, ruleArrayFilterError( 10, objectBlockHistory( 9, emptyProps( 9, belongsInConfig( 8, strictIdentOrNull( 8. At objectui 15f01223d: chatbotRequestBodyArm( 2 (and three siblings), retiredDeclarativeKanbanKey( 1.

Remedy shape (the successor's)

Resolve a key line's value through the factory's OWN definition when the factory is file-local (the file is in the diff's tree, so its body is readable at the judged head), and classify by what that body returns — a z.never/refusing predicate declines, anything else is a writable key. Keep the shared-helper list as the fast path. Pin with the same counterfactual shape #18700 uses: one fixture per file-local factory, both arms.

Provenance

Raised by the #18560 dev (report 5717123702, class a); filed by the skills seat. Dedupe words: check-widening-tells vocabulary, file-local declaring factory, SCHEMA_PROPERTY blind spot, placeholderFree, T1 key-line recognition. Checked against the 533 open issues at 15:10Z: #18560 (shared helpers, closing via PR #18700), #18640 (T1/T2 on options-object lines), #18629 (the z.unknown() reverse direction) and #18488 (matchingCloser −1) are neighbours; none is this.


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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions