Origin of idea
Every app launch re-parses every mod's About/About.xml. For 300+ mods this is wasteful — XML parsing is expensive.
Suggestion / proposed solution
Cache parsed AboutXmlMod data keyed by mod path + mtime. Store in an aiosqlite database (reuse pattern from StartupImpactDb at core/services/startup_impact_service/db.py). On refresh, check mtime — if unchanged, use cached data. Invalidate on mod deletion or path change.
Piggyback cache invalidation on the mod discovery pipeline in core/mod_service.py.
Alternatives considered
No response
Additional context
Parsing at core/models/metadata/parsing.py. Discovery at core/mod_service.py. Existing DB pattern at core/services/startup_impact_service/db.py.
Origin of idea
Every app launch re-parses every mod's About/About.xml. For 300+ mods this is wasteful — XML parsing is expensive.
Suggestion / proposed solution
Cache parsed AboutXmlMod data keyed by mod path + mtime. Store in an aiosqlite database (reuse pattern from StartupImpactDb at core/services/startup_impact_service/db.py). On refresh, check mtime — if unchanged, use cached data. Invalidate on mod deletion or path change.
Piggyback cache invalidation on the mod discovery pipeline in core/mod_service.py.
Alternatives considered
No response
Additional context
Parsing at core/models/metadata/parsing.py. Discovery at core/mod_service.py. Existing DB pattern at core/services/startup_impact_service/db.py.