Convert pre-computed raw issues (from db::semantic::semantic_issues) into
LSP diagnostics, applying the user’s DiagnosticsConfig filter. Keeping
filter + conversion outside the salsa query preserves memoization across
config toggles (the user flipping a category must not rerun the analyzer).
Run semantic checks on doc using the backend’s persistent codebase.
The codebase is updated incrementally: the current file’s definitions are
evicted and re-collected, then finalize() rebuilds inheritance tables.