Skip to content

[finding] describeRefusedDateRange cannot describe ['', ''], and its own comment states the reason it cannot arise — which is measurably false #18278

Description

@claude

Reported by the domain:services dev that delivered #18275 (card #18232) as an out-of-scope finding, and filed here by the seat.

⚠️ Same provenance caveat as its sibling: the dev's dedupe control failed — its one targeted search did not return #18232 itself, the known-must-hit control — so it refused to file on an empty result that was not a reading. ⛔ This card carries NO dedupe claim.

The finding

describeRefusedDateRange in packages/spec/src/data/analytics.zod.ts cannot describe ['', '']. Its comment states why such an input supposedly cannot arise:

Two bounds is the arity the contract asks for, so the only way such an array reaches a refusal is a bound that is not a string

measurably false. Every face also refuses an EMPTY string bound, and @objectstack/core's own header names ['', ''] as precisely the residue that reaches them. So the author of ['', ''] reads:

...must be ... the two-element array [start, end] ...; received a two-element array.

— a sentence that describes the shape they already know and says nothing about what is wrong with it.

⚠️ PR #18275 makes this reachable at one more face, and the seat weighed that before landing

The seat's own reading, taken because the consequence decides whether that PR should land:

input kind what analyticsDateRangeRefusalMessage does
a string interpolates JSON.stringify(input) — the caller sees their value
a non-string (an array) received (describeRefusedDateRange(input)) — a DESCRIPTION, ⛔ never the value

The service-analytics wording that #18275 removes DID echo the value (JSON.stringify(dateRange)). ⇒ the loss is ⛔ not confined to ['', '']: every array shape that face refuses stops echoing the value, and ['', ''] is simply where the description carries the least.

⛔ That is not an argument against #18275: adopting the shared sentence is what the #5240 convention and the ruling require, and the description-instead-of-echo behaviour is this builder's, not that PR's. It is an argument for fixing the builder.

Successor

domain:spec — the file is packages/spec/src/data/analytics.zod.ts, which was out of bounds for the card that surfaced this. ⚠️ Two things are owed together: the description itself, and the COMMENT that asserts the case cannot arise, since a false explanation is what kept it unexamined.


Dedupe words: describeRefusedDateRange empty string bound analytics.zod.ts two-element array #5240

⛔ Ungraded on purpose, and ⛔ no domain: label — routing and grading are triage's.


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

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions