Skip to content

chore(imports): packages/loopover-ui-kit drifted from #9221's extension convention (introduced by #9239) #9240

Description

@JSONbored

Context

#9221 added npm run import-specifiers:check (wired into test:ci) to keep relative-import specifiers uniform per resolution zone: files under src/**/scripts/**/test/** (Bundler resolution) must be extensionless; files under packages/** (their own NodeNext-resolved, published-ESM tsconfigs) must use .js.

#9239 ("relocate streaming-text, use-streaming-text, typing-indicator from loopover-miner-ui") merged 8 minutes after #9221/#9231, into packages/loopover-ui-kit, with relative imports that don't carry the required .js extension:

$ npm run import-specifiers:check
  packages/loopover-ui-kit/src/components/streaming-text.test.tsx: "../hooks/use-streaming-text" — this file's own package is NodeNext-resolved ESM and requires `.js`
  packages/loopover-ui-kit/src/components/streaming-text.test.tsx: "./streaming-text" — this file's own package is NodeNext-resolved ESM and requires `.js`
  packages/loopover-ui-kit/src/components/streaming-text.tsx: "../hooks/use-streaming-text" — this file's own package is NodeNext-resolved ESM and requires `.js`
  packages/loopover-ui-kit/src/components/typing-indicator.test.tsx: "./typing-indicator" — this file's own package is NodeNext-resolved ESM and requires `.js`
  packages/loopover-ui-kit/src/hooks/use-streaming-text.test.ts: "./use-streaming-text" — this file's own package is NodeNext-resolved ESM and requires `.js`

Most likely cause: #9239's branch was created/last-CI'd against a main commit that predated #9221/#9231, and nothing required it to be rebased before merging — an ordinary race between two PRs, not a gate bypass.

Requirements

  1. Add the .js extension to each relative specifier listed above (and any others import-specifiers:check still reports by the time this is picked up — re-run the command rather than trusting this exact list, in case further drift has landed).
  2. npm run import-specifiers:check exits 0 afterward.

Expected outcome

main is clean against its own drift guard again.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions