Skip to content

Extend the orphan-key direction beyond apps.*.navigation — or close this as superseded when objectstack#16310 lands #1727

Description

@os-steve

Blocked-by: #1874

⏸️ Moved pm:queue → pm:blocked by the repo:hotcrm seat (#1353), R60, 2026-09-10T09:2xZ. ⛔ Nothing about the finding has changed.

⚠️ The card's own reason for staying pm:queue — "precisely so it stays visible in ordinary take order" — no longer holds, and this is the correction. Its declared scope is test/i18n-references.test.ts, which is inside epic #1579's test/** fence; the fence is live and is itself now a maintainer question in #1874. A card that cannot be taken is not made takeable by a label, and leaving it in take order was inflating this lane's dispatchable count. It returns to pm:queue when #1874 closes.

⚠️⚠️ A conflict that must be read before this card is ever dispatched, and which the card could not have known when it was filed: epic #1585 is "Retire the local i18n reference test and the severity-promoting i18n gate, once strict covers the i18n/missing-* and translation-target rules." ⇒ This card asks to EXTEND the very file that #1585 asks to DELETE. Both cannot be right. Whoever re-prices this after #1874 must resolve that against #1585 first — ⛔ extending a file scheduled for retirement is work with a negative expected value, and neither card currently cites the other.

⭐ Note also that the card's own supersession clause may fire before any of this matters: if objectstack#16310 lands in a pinned release, this closes as superseded with no argument needed. That condition is unchanged and still un-watched — ⚠️ per the card's own standing note, nothing evaluates a Restart-when: on its own, and the seat re-scans after each platform pin bump.


Filed by the repo:hotcrm PM seat (R66) as the ruled follow-up to #1262 — question 2 of PR #1726's report. ⛔ Recorded as a card rather than left as an intention, because an intention that lives only in a dev report is one nobody re-reads.

What #1262 shipped, and what it deliberately did not

PR #1726 added the orphan direction to test/i18n-references.test.ts for one keyspace: apps.*.navigation. That was the 2026-08-25 grading's own instruction — start where the keyspace is flat and the app tree sits beside it, generalise once the shape is agreed.

The shape is now agreed and shipped, so the remaining keyspaces are the open half: objects.*, actions.*, dashboards.* and whatever else the bundles carry.

Why this is not hypothetical

The orphan risk in objects.* has been demonstrated twice, both times by a near-miss rather than an outage:

when what
PR #1261 (#1259) deleted four navigation entries; their five apps.*.navigation keys in three locale packs were removed by hand. Had they not been, pnpm verify would have been green with 15 dead keys. This is the near-miss #1262 was filed about.
PR #1718 (#1707), this week deleted a form view; its four objects.crm_lead._sections.lead_details keys were removed by hand, on the same reasoning. Measured there: with the keys left in, lint reports four warnings and pnpm verify is still green.

⇒ Both times the cleanup happened because the author noticed. That is exactly the property #1262 exists to remove, and it is currently removed for one keyspace out of several.

⚠️ This card may be superseded, and that is a normal outcome

objectstack#16310 asks the platform to make translation-target-unknown failable — it already reports every keyspace and every app, in every locale; what it lacks is a severity or a namespace a gate can reach. A platform answer covers all of this at once and makes a repo-side sweep redundant.

⇒ If objectstack#16310 lands in a pinned release before this card is dispatched, close this as superseded. No argument needed, and ⛔ nobody should re-litigate it.

Restart-when: either (a) a pinned @objectstack/* release makes translation-target-unknown fail a run — then close as superseded; or (b) a maintainer decides not to wait for it.

⚠️ Per the standing lane rule, nothing evaluates a Restart-when: on its own — the PM seat re-scans blocked and deferred predicates after every platform pin bump.

Scope when taken

Refs: #1262 · PR #1726 · PR #1718 (#1707) · PR #1261 (#1259) · objectstack#16310 · ⚠️ #1585 (the epic card that would delete this file) · #1874 (the fence ruling this waits on)

Activity

  1. added theissue type on Sep 6, 2026
  2. objectstack-fleet commented on Sep 25, 2026

    @objectstack-fleet
    Contributor

    repo:hotcrm seat, session_01X8U3asekbiC7yWoEPWR4Dg · stock re-triage group 4 (maintainer-confirmed ten-card group; maintainer reply verbatim: 「同意」) · 2026-09-25T02:32Z

    Blocked-by: #1874 is a dead pointer: hotcrm#1874 returns 404 (consistent with a banned author). What it carried was the question of whether epic #1579 fences all of test/**. That fence does not hold today: the epic PM's declared territory is its sub-issue tree only (5552855048, "Nothing else in either repo"), main has touched 185 test paths since 2026-09-09, and the epic seat has been vacant since 2026-09-10. So this card is judged on its own merits.

    Closed not_planned — superseded upstream

    The platform delivered the orphan-key direction: objectstack#16310, via PR #17777, merged 2026-09-12. The file this card would extend (test/i18n-references.test.ts) is the one epic #1579's child #1585 is to delete, so closing this also removes that collision.


    Generated by Claude Code

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

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions