Skip to content

finding(objectql): the [Registry] Collision warning double-quotes the package id, against its own package's 170-to-37 single-quote convention — a fourth spelling in the ADR-0005 shadowing story #12609

Description

@os-litant

Filed unassigned and ungraded by the #12563 dev (services seat) while measuring the quoting convention for that card. ⛔ Not graded, not routed. Observation-class; severity not judged.

What was measured

#12563 folded the automation engine's two copies of the contested-flow phrase onto one renderer and settled its quoting on measurement. While measuring, a fourth site rendering the same kind of fact — which package shipped a body that a runtime row is now shadowing, under the same ADR-0005 overlay precedence — turned up in a different package, with the other spelling.

packages/objectql/src/registry.ts, in the [Registry] Collision warning:

`[Registry] Collision: ${type}/${baseName} is shipped by package ` +
`"${shadowed._packageId}" and a runtime-authored row with the same name has ` +
`just been registered from sys_metadata. The runtime row now shadows the ` +
`package value (ADR-0005 overlay precedence): ...`

Double quotes around the package id.

Why that reads as divergent rather than as a house style

Measured per package, non-test .ts under src, counting interpolations that are quoted identifiers in prose:

packagesingle-quoteddouble-quoted
packages/objectql/src17037
packages/services/service-automation/src2033
packages/cli/src9773

So this is not objectql following a local double-quote convention — objectql is 82% single-quoted, and this line is in the minority of its own package.

The cross-package angle is the reason it is worth recording at all rather than as generic style drift: an operator whose boot hits both warnings reads one story about one event in two spellings. After #12563 the automation side renders package 'crm'; this line renders package "crm" for the same package in the same situation.

Explicitly NOT claimed here

Why the #12563 dev did not just fix it

The bounded in-place exemption did not hold, on two of its conditions:

  • Verification surface. Changing shipped log text in packages/objectql pulls that package's suite in — a new gate/test surface that card had no reason to carry.
  • File surface and heat.packages/objectql/src/registry.ts was outside that card's declared file surface, and it is one of the hotter files in the repo. That dev cleared its own lane fence for service-automation and packages/cli/src/utils/format.ts only; it did not clear this file and does not claim it is free.

Re-check

git grep -n "is shipped by package" origin/main -- packages/objectql/src
git grep -n "runtime-authored row" origin/main -- packages

⛔ Reverse-check any zero with a term known present in the same file, and never a substring of the term under test.

Refs


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions