Lyrics Card Generator v3.8.1 Release Notes
Release date: 2026-06-30
v3.8.1 is a maintainability refactor release. It is not a feature-removal release and it is not a UI redesign. This update focuses on splitting the main editor out of a monolithic component into clearer defaults, step assembly, business actions, AI translation, preferences, and theme-token modules while keeping existing entry points, visuals, and export output stable.
Why This Refactor Happened
LyricEditor.tsxpreviously carried page layout, default state, business actions, AI translation, preferences, step assembly, and theme derivation in one place, which made the file too expensive to maintain.- Stacking that much logic in one component made later type fixes, regression work, and Web versus desktop debugging harder.
Split Result
LyricEditor.tsxnow mainly composes hooks, settings steps, and preview layout, so it acts as the page orchestration layer.components/editor/editor-defaults.tsholdsdefaultState,DEFAULT_LYRICS,DEFAULT_TRANSLATION, andDEFAULT_INSTRUMENTAL_TEXT.components/editor/useEditorSteps.tsxowns settings-step JSX assembly with explicit inputs.components/editor/hooks/useEditorActions.tsowns clear-content, style-change, example-load, and complete-export business actions.components/editor/hooks/useEditorAiTranslation.tsowns the AI panel toggle, streaming state, errors, cancellation, and translation requests.components/editor/hooks/useEditorPreferences.tsowns app preferences, first-launch language handling, settings persistence, and desktop window material sync.components/editor/hooks/useEditorThemeTokens.tsowns theme accent, background, and UI text-token derivation.components/editor/utils/normalizeAIErrorMessage.tsandcomponents/editor/utils/sizeSnapshot.tsnow provide pure utilities without extra business coupling or circular imports.
AI Provider Helpers and Runtime Boundaries
- The Web path still uses
app/api/ai/translate/route.tsfor/api/ai/translate. - The desktop path still uses Electron IPC and
safeStoragefor API key handling and translation requests. - This refactor only reorganizes pure provider request / response logic such as
getChatCompletionsUrl, DeepSeek thinking detection, request-body construction, and provider error normalization. - No Electron-only code was moved into the Next route, and no browser-only logic was moved into Electron main.
Feature Integrity, Version Sync, and Risk Control
- Existing entry points for song link parsing, local audio parsing, lyric fetching, AI translation, cover palette extraction, themes, desktop Acrylic, export, examples, languages, fonts, and layout settings all remain in place.
- The work was done through small-step extraction, responsibility migration, and regression checks rather than a one-shot rewrite, so the product position and user-visible behavior stay unchanged.
- Version metadata, README download filenames, and multilingual release-note entry points are now synced to
3.8.1.
Verification
- npm run typecheck
- npm run core:test
- npm run build
- npm run desktop:build