mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-27 18:12:05 -07:00
feat(core): add Electron runtime, services, and app composition
This commit is contained in:
82
src/config/definitions/options-immersion.ts
Normal file
82
src/config/definitions/options-immersion.ts
Normal file
@@ -0,0 +1,82 @@
|
||||
import { ResolvedConfig } from '../../types';
|
||||
import { ConfigOptionRegistryEntry } from './shared';
|
||||
|
||||
export function buildImmersionConfigOptionRegistry(
|
||||
defaultConfig: ResolvedConfig,
|
||||
): ConfigOptionRegistryEntry[] {
|
||||
return [
|
||||
{
|
||||
path: 'immersionTracking.enabled',
|
||||
kind: 'boolean',
|
||||
defaultValue: defaultConfig.immersionTracking.enabled,
|
||||
description: 'Enable immersion tracking for mined subtitle metadata.',
|
||||
},
|
||||
{
|
||||
path: 'immersionTracking.dbPath',
|
||||
kind: 'string',
|
||||
defaultValue: defaultConfig.immersionTracking.dbPath,
|
||||
description:
|
||||
'Optional SQLite database path for immersion tracking. Empty value uses the default app data path.',
|
||||
},
|
||||
{
|
||||
path: 'immersionTracking.batchSize',
|
||||
kind: 'number',
|
||||
defaultValue: defaultConfig.immersionTracking.batchSize,
|
||||
description: 'Buffered telemetry/event writes per SQLite transaction.',
|
||||
},
|
||||
{
|
||||
path: 'immersionTracking.flushIntervalMs',
|
||||
kind: 'number',
|
||||
defaultValue: defaultConfig.immersionTracking.flushIntervalMs,
|
||||
description: 'Max delay before queue flush in milliseconds.',
|
||||
},
|
||||
{
|
||||
path: 'immersionTracking.queueCap',
|
||||
kind: 'number',
|
||||
defaultValue: defaultConfig.immersionTracking.queueCap,
|
||||
description: 'In-memory write queue cap before overflow policy applies.',
|
||||
},
|
||||
{
|
||||
path: 'immersionTracking.payloadCapBytes',
|
||||
kind: 'number',
|
||||
defaultValue: defaultConfig.immersionTracking.payloadCapBytes,
|
||||
description: 'Max JSON payload size per event before truncation.',
|
||||
},
|
||||
{
|
||||
path: 'immersionTracking.maintenanceIntervalMs',
|
||||
kind: 'number',
|
||||
defaultValue: defaultConfig.immersionTracking.maintenanceIntervalMs,
|
||||
description: 'Maintenance cadence (prune + rollup + vacuum checks).',
|
||||
},
|
||||
{
|
||||
path: 'immersionTracking.retention.eventsDays',
|
||||
kind: 'number',
|
||||
defaultValue: defaultConfig.immersionTracking.retention.eventsDays,
|
||||
description: 'Raw event retention window in days.',
|
||||
},
|
||||
{
|
||||
path: 'immersionTracking.retention.telemetryDays',
|
||||
kind: 'number',
|
||||
defaultValue: defaultConfig.immersionTracking.retention.telemetryDays,
|
||||
description: 'Telemetry retention window in days.',
|
||||
},
|
||||
{
|
||||
path: 'immersionTracking.retention.dailyRollupsDays',
|
||||
kind: 'number',
|
||||
defaultValue: defaultConfig.immersionTracking.retention.dailyRollupsDays,
|
||||
description: 'Daily rollup retention window in days.',
|
||||
},
|
||||
{
|
||||
path: 'immersionTracking.retention.monthlyRollupsDays',
|
||||
kind: 'number',
|
||||
defaultValue: defaultConfig.immersionTracking.retention.monthlyRollupsDays,
|
||||
description: 'Monthly rollup retention window in days.',
|
||||
},
|
||||
{
|
||||
path: 'immersionTracking.retention.vacuumIntervalDays',
|
||||
kind: 'number',
|
||||
defaultValue: defaultConfig.immersionTracking.retention.vacuumIntervalDays,
|
||||
description: 'Minimum days between VACUUM runs.',
|
||||
},
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user