## Problem `ContestSummary.display_name` defaults to `None`, which serializes to JSON `null` → Lua `vim.NIL`. The contest picker displayed "vim.NIL" for every entry. Additionally, `start_time` was always stored even when null, because `vim.NIL` is truthy in Lua. ## Solution Pass `display_name=name` explicitly in `_parse_contests_page` so JSON never emits `null`. In `cache.lua` `set_contest_summaries`, coerce `display_name` via a `~= vim.NIL` guard and apply the same guard before storing `start_time`. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| atcoder.py | ||
| base.py | ||
| codechef.py | ||
| codeforces.py | ||
| cses.py | ||
| kattis.py | ||
| language_ids.py | ||
| models.py | ||
| timeouts.py | ||
| usaco.py | ||