mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-05-26 00:55:16 -07:00
feat: expand hot-reload to logging, jimaku, subsync, and Anki sub-fields
- Mark logging.level, stats keys, jimaku.*, subsync.*, and granular ankiConnect fields (knownWords, nPlusOne, fields, isLapis, isKiku, behavior) as hot-reloadable - Refactor classifyConfigHotReloadDiff to path-walk diffing instead of per-key branches - Wire setLogLevel, invalidateTokenizationCache, refreshSubtitlePrefetch, refreshCurrentSubtitle into hot-reload applied handler - Exclude ai.* and ankiConnect.ai.* prefixes from config window; hide fields.translation - Update docs and config.example.jsonc hot-reload annotations
This commit is contained in:
@@ -99,7 +99,28 @@ Hot-reloadable fields:
|
||||
- `keybindings`
|
||||
- `shortcuts`
|
||||
- `secondarySub.defaultMode`
|
||||
- `ankiConnect.ai`
|
||||
- `stats.toggleKey`
|
||||
- `stats.markWatchedKey`
|
||||
- `logging.level`
|
||||
- `youtube.primarySubLanguages`
|
||||
- `jimaku.*`
|
||||
- `subsync.*`
|
||||
- `ankiConnect.ai.enabled`
|
||||
- `ankiConnect.behavior.autoUpdateNewCards`
|
||||
- `ankiConnect.knownWords.highlightEnabled`
|
||||
- `ankiConnect.knownWords.refreshMinutes`
|
||||
- `ankiConnect.knownWords.addMinedWordsImmediately`
|
||||
- `ankiConnect.knownWords.matchMode`
|
||||
- `ankiConnect.knownWords.decks`
|
||||
- `ankiConnect.nPlusOne.enabled`
|
||||
- `ankiConnect.nPlusOne.minSentenceWords`
|
||||
- `ankiConnect.fields.word`
|
||||
- `ankiConnect.fields.audio`
|
||||
- `ankiConnect.fields.image`
|
||||
- `ankiConnect.fields.sentence`
|
||||
- `ankiConnect.fields.miscInfo`
|
||||
- `ankiConnect.isLapis.sentenceCardModel`
|
||||
- `ankiConnect.isKiku.fieldGrouping`
|
||||
|
||||
When these values change, SubMiner applies them live. Invalid config edits are rejected and the previous valid runtime config remains active.
|
||||
|
||||
@@ -107,6 +128,7 @@ Restart-required changes:
|
||||
|
||||
- Any other config sections still require restart.
|
||||
- Shared top-level `ai` provider settings still require restart.
|
||||
- AnkiConnect transport/proxy/media/deck/tag fields still require restart unless listed above.
|
||||
- SubMiner shows an on-screen/system notification listing restart-required sections when they change.
|
||||
|
||||
### Configuration Options Overview
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
// Logging
|
||||
// Controls logging verbosity.
|
||||
// Set to debug for full runtime diagnostics.
|
||||
// Hot-reload: logging.level applies live while SubMiner is running.
|
||||
// ==========================================
|
||||
"logging": {
|
||||
"level": "info" // Minimum log level for runtime logging. Values: debug | info | warn | error
|
||||
@@ -337,6 +338,7 @@
|
||||
// ==========================================
|
||||
// Auto Subtitle Sync
|
||||
// Subsync engine and executable paths.
|
||||
// Hot-reload: subsync changes apply to the next subtitle sync run.
|
||||
// ==========================================
|
||||
"subsync": {
|
||||
"defaultMode": "auto", // Subsync default mode. Values: auto | manual
|
||||
@@ -470,7 +472,7 @@
|
||||
// ==========================================
|
||||
// AnkiConnect Integration
|
||||
// Automatic Anki updates and media generation options.
|
||||
// Hot-reload: ankiConnect.ai.enabled updates live while SubMiner is running.
|
||||
// Hot-reload: ankiConnect.ai.enabled, knownWords, nPlusOne, fields.word/audio/image/sentence/miscInfo, behavior.autoUpdateNewCards, isLapis.sentenceCardModel, and isKiku.fieldGrouping update live while SubMiner is running.
|
||||
// Shared AI provider transport settings are read from top-level ai and typically require restart.
|
||||
// Most other AnkiConnect settings still require restart.
|
||||
// ==========================================
|
||||
@@ -550,6 +552,7 @@
|
||||
// ==========================================
|
||||
// Jimaku
|
||||
// Jimaku API configuration and defaults.
|
||||
// Hot-reload: Jimaku changes apply to the next Jimaku request.
|
||||
// ==========================================
|
||||
"jimaku": {
|
||||
"apiBaseUrl": "https://jimaku.cc", // Base URL of the Jimaku subtitle search API.
|
||||
@@ -560,6 +563,7 @@
|
||||
// ==========================================
|
||||
// YouTube Playback Settings
|
||||
// Defaults for managed subtitle language preferences and YouTube subtitle loading.
|
||||
// Hot-reload: primarySubLanguages applies to the next YouTube subtitle load.
|
||||
// ==========================================
|
||||
"youtube": {
|
||||
"primarySubLanguages": [
|
||||
|
||||
Reference in New Issue
Block a user