feat: refactor immersion tracker queries and session word tracking

Add comprehensive query helpers for session deletion with word aggregate
refresh, known-words-per-session timeline, anime-level word summaries,
and trends dashboard aggregation. Track yomitanLookupCount in session
metrics and support bulk session operations.
This commit is contained in:
2026-03-17 19:52:59 -07:00
parent a5a6426fe1
commit 55ee12e87f
13 changed files with 1735 additions and 39 deletions

View File

@@ -242,11 +242,7 @@ export function applyImmersionTrackingConfig(context: ResolveContext): void {
}
const dailyRollupsDays = asNumber(src.immersionTracking.retention.dailyRollupsDays);
if (
dailyRollupsDays !== undefined &&
dailyRollupsDays >= 0 &&
dailyRollupsDays <= 36500
) {
if (dailyRollupsDays !== undefined && dailyRollupsDays >= 0 && dailyRollupsDays <= 36500) {
retention.dailyRollupsDays = Math.floor(dailyRollupsDays);
} else if (src.immersionTracking.retention.dailyRollupsDays !== undefined) {
warn(
@@ -274,7 +270,11 @@ export function applyImmersionTrackingConfig(context: ResolveContext): void {
}
const vacuumIntervalDays = asNumber(src.immersionTracking.retention.vacuumIntervalDays);
if (vacuumIntervalDays !== undefined && vacuumIntervalDays >= 0 && vacuumIntervalDays <= 3650) {
if (
vacuumIntervalDays !== undefined &&
vacuumIntervalDays >= 0 &&
vacuumIntervalDays <= 3650
) {
retention.vacuumIntervalDays = Math.floor(vacuumIntervalDays);
} else if (src.immersionTracking.retention.vacuumIntervalDays !== undefined) {
warn(