Skip to content

fix(i18n): make columnLabels.scheduled + columnHelp.scheduled optional - #29103

Closed
Ryan-Beahm wants to merge 1 commit into
NousResearch:mainfrom
Ryan-Beahm:fix/i18n-scheduled-optional
Closed

fix(i18n): make columnLabels.scheduled + columnHelp.scheduled optional#29103
Ryan-Beahm wants to merge 1 commit into
NousResearch:mainfrom
Ryan-Beahm:fix/i18n-scheduled-optional

Conversation

@Ryan-Beahm

Copy link
Copy Markdown

Summary

web/src/i18n/en.ts declares scheduled keys under columnLabels and
columnHelp (lines 661 and 671), but the Translations interface in
web/src/i18n/types.ts doesn't include them. tsc -b && vite build
(which hermes dashboard invokes on launch) fails with TS2353:

src/i18n/en.ts(661,7): error TS2353: Object literal may only specify known
  properties, and 'scheduled' does not exist in type '{ triage: string; …
src/i18n/en.ts(671,7): error TS2353: …

hermes dashboard then exits before binding a port.

Fix

Mark the property optional (scheduled?: string) in both columnLabels
and columnHelp. This satisfies en.ts without forcing the 15 other
untranslated locale files to add it. Once translations land in the other
locale files, the ? can be removed at the maintainer's discretion.

Reproduce before

cd web && npm run build
# tsc emits TS2353 at en.ts:661 and en.ts:671 → build aborts

Verify after

cd web && npm run build       # ✓ built in ~5s (vite emits ../hermes_cli/web_dist/...)
hermes dashboard --port 8090  # binds → HTTP 200 at http://127.0.0.1:8090

Scope

  • 2 lines added, 1 file (web/src/i18n/types.ts).
  • No runtime behavior change for already-translated locales.
  • Untranslated locales now render undefined for the scheduled column
    label/help (graceful — same as any unset i18n key) instead of failing
    the entire build.

en.ts uses 'scheduled' in kanban columnLabels and columnHelp but the
Translations interface in types.ts omits it, breaking 'npm run build'
(tsc TS2353 'Object literal may only specify known properties' at
en.ts lines 661 and 671). 'hermes dashboard' then fails to start.

Marking the property optional (scheduled?: string) satisfies en.ts
without forcing the 15 other untranslated locale files to add it.
Build then succeeds and 'hermes dashboard --port N' binds cleanly.

Repro before: cd web && npm run build  -> TS2353 at en.ts:661,671
Verified: build passes (vite emits web_dist), dashboard HTTP 200.

Signed-off-by: Ryan-Beahm <Rbeahm@outlook.com>
@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/tui Terminal UI (ui-tui/ + tui_gateway/) javascript duplicate This issue or pull request already exists labels May 20, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

Duplicate of #28549 (merged 2026-05-19). That PR already added scheduled as a required field to columnLabels and columnHelp in types.ts. The diffs are byte-for-byte identical. See also #28534 (merged) which added the locale translations, and #28656 (closed) which took the same optional-field approach and was superseded.

@teknium1

Copy link
Copy Markdown
Contributor

This has already been fixed on main. Thanks for the concise report and the small targeted patch.

Automated hermes-sweeper review evidence:

Closing as implemented on main.

@teknium1 teknium1 closed this Jun 15, 2026
@teknium1 teknium1 added the sweeper:implemented-on-main Sweeper: behavior already present on current main label Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/tui Terminal UI (ui-tui/ + tui_gateway/) duplicate This issue or pull request already exists P3 Low — cosmetic, nice to have sweeper:implemented-on-main Sweeper: behavior already present on current main type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants