- Novogenerate CHANGELOG.md and a public novedades page#268
- Novoruntime sitemap for dynamic pages + IndexNow#263
- Melhorialengthen the default meta descriptions#262
- Melhoriarate-limit public EMTUSA-backed endpoints#261
- Melhoriarender per-stop OG images at runtime#260
- Melhoriarepair broken localized links, schema URLs and OG tags (#244)#247
- Melhoriarepair localized links, schema URLs, OG tags and metadata (#244)#251
- Melhoriasurface the missing GitHub token at boot and in docs (#246)#248
- Melhoriagenerate French routes and serve locale fallbacks as 200#224
- Melhoriainclude public/ in the runtime image and harden the static map#222
- Novoadd an experimental live network map page#220
- Novoimprove trayecto map readability#219
- Novoadd a liveness endpoint and use it for health checks#212
- Novoautomatic 90-day retention prune#206
- Novostats page with day-of-week heatmap#201
- Novoper-stop peak times on /parada/[id]/#199
- Novoreactivate popular stops on /paradas/#198
- Novorecord weighted waiting signals from arrivals adapter#197
- Novopopularity module, schema and migration (Phase 2 of #188)#196
- Melhoriacorrect llegadas endpoint URL and bound @babel/runtime to 7.x#187
- Melhoriavalidate coordinates once via Coordinates value object (#148)#168
- Melhoriamodel unresolved trayecto stops explicitly (#150)#167
- Melhoriaunify the Búho B-prefix rule across isBuho and scheduleType (#147)#166
- Melhoriacompare ParadaTrayecto connection lineId with linea.id (#149)#165
- Melhoriadrop dead misleading finalId field (#151)#164
- Novoadd comprehensive test coverage for utilities, hooks, and API endpoints#115