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:

package single-quoted double-quoted
packages/objectql/src 170 37
packages/services/service-automation/src 203 3
packages/cli/src 97 73

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

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions