mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-02 06:22:42 -08:00
3.0 KiB
3.0 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, references, priority, ordinal
| id | title | status | assignee | created_date | updated_date | labels | dependencies | references | priority | ordinal | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-74 | Startup warmups: configurable warmup vs defer with low-power mode | Done | 2026-02-27 21:05 | 2026-03-01 04:14 |
|
medium | 7000 |
Description
Add startup warmup controls to allow per-integration warmup or deferred first-use loading.
Scope:
- New config section
startupWarmupswith toggles formecab,yomitanExtension,subtitleDictionaries, andjellyfinRemoteSession. - New
startupWarmups.lowPowerModepolicy: defer everything except Yomitan extension. - Keep default behavior as full warmup.
- Ensure deferred integrations lazy-load on first real usage path.
- Add test coverage for config parsing/defaults and warmup scheduling behavior.
Final Summary
Implemented:
- Added
startupWarmupsto config types/defaults/options/template/resolve. - Warmup scheduler now uses per-integration gating functions.
- Low-power mode now defers MeCab, subtitle dictionaries, and Jellyfin remote session warmups while still warming Yomitan extension.
- Tokenization path guarantees lazy first-use init for deferred dependencies (Yomitan extension, MeCab when missing, subtitle dictionaries).
- Added/updated tests across config and runtime warmup modules.
Validation:
bun run test:config:srcbun run test:core:srctsc --noEmit
Follow-up updates:
- Startup now triggers warmups earlier in app-ready flow (right after config validation/log-level setup) instead of waiting for initial args/overlay actions. Goal: tokenization warmup is already done or mostly done by first visible-subs toggle.
- Tokenization warmup scheduling consolidated as
subtitle-tokenizationstage; when enabled by toggles, it runs Yomitan extension first, then MeCab/dictionary warmups. - Added per-stage debug logs for warmup progress and skip reasons:
stage start/ready: yomitan-extensionstage start/ready: mecabstage start/ready: subtitle-dictionariesstage start/ready: jellyfin-remote-sessionstage skipped: jellyfin-remote-session (disabled|auto-connect off)
- Added regression tests for stage-level logging and earlier startup ordering:
src/main/runtime/startup-warmups.test.tssrc/main/runtime/startup-warmups-main-deps.test.tssrc/core/services/app-ready.test.ts