Repository navigation
v1.1.0 — parity with droidconKE, and the first tests
The release that brings flutterconKE to parity with droidconKE, and gives the repo its first tests.
Baseline is v1.0.0 (5f18167), what has been serving since 2026-09-28 — and the first tag this repo has ever had. 32 commits.
The repo has tests now
It had none. Vitest is in, and CI runs it between lint and build so a failure
blocks a merge rather than being discovered later. The first suite pins the
four functions that had been quietly wrong: parseEat, sessionHasEnded,
feedbackWindowLabel and getTwitterUsername.
That ordering is deliberate — three of the fixes below were found by writing
those tests, not by anyone reporting them.
Feedback
- the device id stays stable without
localStorage, with a real v4 fallback
instead of a generator that collided - the event start date is read with
parseEat; without it the "Not open yet"
state was unreachable, so feedback looked open before the event began - the writes carry a sensible timeout — they are the requests that most need
one and had none - the fixed "Feedback has closed" banner was at 1.85:1 contrast, well under
the floor - the edit-window toast reads the
{ data: ... }envelope too, so it shows (#100) - the floating button only serves the event being viewed (#98)
An API that is down should render an empty page, not a 500
The same class of fix as dcke, for the same reason: every gSSP call was
unguarded, so a timeout or a 200 carrying null threw during render.
gSSPcalls catch and fall back to empty state, then the ones missed on the
first pass- a
200with anullpayload renders empty sections rather than a 500 (#97)
Accessibility and sessions
- the save control is a real
<button>— keyboard reachable, named, state not
colour-only aria-pressedcarries the state, so the accessible name stops shiftingbg-white/15never compiled;bg-white/20is on the scale- the
@belongs to a parsed handle, not to a LinkedIn link - a stored handle URL may already carry the
@— do not add a second - an empty
session_imagefalls back to the default artwork (#99) - day pills carry a session count, on the agenda and then past events (#92),
with the count dimmer than the label beside it
Offline
next-pwa registered the service worker more than once, which broke refreshes
while offline. The SW registers once, SSR pages are cached on front-end
navigation, and image caching is fixed.
Things that said undefined out loud
- the shared tweet carried
@undefinedwith no handle - a speaker with no socials rendered
href=undefined - GA ran with a placeholder id off-env and logged
config('undefined')per
page view; the scripts are gated on the environment
Housekeeping
schedulesis a day-keyedSchedule, notSchedule[]— the type had been
lying and every consumer worked around it@types/next-pwais a dev dependency- the dcke #168 parity bump: next 15.5.26, axios 1.20.0, sharp 0.35.5, and the
CI matrix moves to Node 20/24 - the chat-ops replies move off node12 (#103)
- the home page dropped a title that duplicated the back-to-top label, and the
back-to-top arrow was invisible on its own button
Deploying this
A Next.js build; no migrations and no new env keys. main is the released line
from this release on (#106) — the server has been deploying dev, and main
was 236 commits behind until now.