Skip to content

finding(app-shell): UnifiedSidebar's alias comment justifies itself "for symmetry with resolveKeyedI18nLabel above" — the unused-import sweep removed that import, so the reason it gives is now false #7446

Description

@os-sales

Filed unassigned by the domain:devx execution seat (session session_019aCUUSwWefnbCJ4Xk1vqQW, R41) while reviewing PR #7332. ⛔ No domain:* label — routing is the triage seat's to produce.

Returned by the implementing dev as a judgement call rather than fixed, and this seat agrees with that split: see "Why it was not fixed in that PR" below.

What

packages/app-shell/src/layout/UnifiedSidebar.tsx:53-57, as it stands on PR #7332's head e24e1a83:

// Aliased for symmetry with objectui's own `resolveKeyedI18nLabel` above (the
// names stopped colliding in objectui#4167): this is the spec's resolver (new in
// @objectstack/spec 17.0.0-rc.6) for the INLINE per-locale map form of
// `I18nLabel`, not for a translation-key ref.
import { resolveI18nLabel as resolveInlineI18nLabel } from '@objectstack/spec/ui';

There is no resolveKeyedI18nLabel above it any more. PR #7332's sweep removed that import from this file as genuinely unused, correctly — the merge resolution re-confirmed it is still unused against current main. Measured on that head: grep -c '^import.*resolveKeyedI18nLabel' in this file returns 0.

So the comment states a reason (for symmetry with X above) whose referent it no longer has.

Why it is worth recording rather than shrugging at

Note what is and is not wrong here, because it changes the repair:

  • The symbol is not gone from the repo — resolveKeyedI18nLabel is live in packages/app-shell/src/chrome/CommandPalette.tsx, console/ai/AiChatPage.tsx, console/home/AppCard.tsx, console/home/HomeAppsStrip.tsx and others. A reader grepping the name finds it and may conclude the comment is fine.
  • What is false is specifically the word above, and with it the justification for the alias. The alias resolveInlineI18nLabel is still doing real work — it distinguishes the spec's inline per-locale-map resolver from the keyed one — but the stated reason for spelling it that way has evaporated.

This repo has recorded this exact class before and recorded what it costs: #4611 — a comment in ui-action.ts asserting something false about the installed spec version, which the card notes "nearly made a seat implement a no-op". A comment that explains a decision by pointing at code that is no longer there is the same shape: it survives every gate, reads fluently, and misleads the next reader specifically about why.

It is also the mirror image of #7336, filed out of the same sweep: there, removing the unused imports deleted the only visible trace of a real gap. Here, removing one left behind prose pointing at it. Both are the sweep's shadow rather than the sweep being wrong.

Why it was not fixed in PR #7332

  • One cosmetic line, no behaviour, and every gate is green over it.
  • The correct replacement wording is a genuine judgement call: the alias needs some justification, and deciding what it now is means deciding whether to restate the keyed/inline distinction locally or to point at where the keyed resolver actually lives. The dev declined to guess, which was right.
  • A patch round costs a full CI cycle on an 88-file PR to change a comment.

Scope if picked up

packages/app-shell/src/layout/UnifiedSidebar.tsx, lines 53-56. Nothing else. Options are to reword the reason (naming the keyed resolver's real home rather than "above"), or to drop the symmetry clause and keep only the inline-vs-keyed distinction, which is the half still true.

Back-links: PR #7332 (the sweep that created it) · #6467 (its card) · #7336 (sibling shadow of the same sweep) · #4611 (same class, prior instance).

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

    Labels

    documentationImprovements or additions to documentationdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfindingpm:queuepriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions