Skip to content
- docker: Scope bun install to the root package, skip website workspace
- ci: Trigger website deploy when CHANGELOG.md changes
- deps: Override ws and undici to patch discord.js transitive vulns
- typecheck: Point types at @types/bun instead of its transitive bun-types
- weather: Attach forecast image to day-before reminder
- weather: Correct wind direction arrow to point where wind blows to
- weather: Allow /weather to take an explicit location and date
- weather: Attach a PNG forecast panel to /weather replies
- scheduler: Restrict day-before reminders to 9am-10pm
- weather: Resolve forecast location from GPX start point or explicit city
- weather: Add on-demand /weather command and richer forecasts
- weather: Add weather forecast to day-before reminders
- ci: Use correct server path and strip v prefix from docker image tag
- sqlite: Use CAST(AS TEXT) in queries to prevent Discord snowflake precision loss
- ci: Pin exact version tag on deploy instead of relying on latest
- Prevent bot crash when announcement channel post fails
- Prevent bot crash from unhandled rejections in all Discord handlers
- Use fetchStarterMessage() to reliably edit forum thread starter message
- Isolate scheduler errors per ride and add catch on tick()
- Use exact hostname matching to prevent URL substring bypass (CWE-020)
- Add explicit permissions: read to CI workflow jobs (CWE-275)
- sqlite: Store Discord IDs as TEXT to prevent snowflake precision loss
- Register missing SQLite migrations 007 and 008 in db.ts
- Shorten modal label to stay within Discord’s 45-char limit
- Single-source changelog via symlink from docs to root CHANGELOG.md
- Harden config validation — unknown adapter, numeric chat ID, remove dead guards
- Resolve all lint warnings in config.ts and config.test.ts
- Add FAQ, migration guide, enrich Telegram troubleshooting; add JSON-LD schema
- landing: Add /pastrides to commands ref; rewrite hero sub + add CTA button
- Validate config at startup and warn on unused adapter vars
- Add findPast() to RideRepository — returns past rides sorted by date DESC
- Add /pastrides command on Discord and Telegram
- Add optional participant cap and waitlist
- Enrich llms.txt with architecture, commands, env vars, and tech stack
- Document i18n system in architecture and configuration pages
- Document i18n in architecture and configuration pages
- Add i18n support (EN/FR) via LANG env var
- Add i18n support (EN/FR) via LANG env var
- Fix formatting in configuration.md
- observability: Log unexpected errors in handlers before re-throwing
- Add SchedulerService tests with fake timers
- Add PostgreSQL integration tests + CI job with postgres service
- Add RideService integration tests with SQLite in-memory
- Add status badges to README
- Add commands reference, troubleshooting and changelog pages
- Attach iCal file to ride announcements
- Attach iCal file to ride announcements
- Add multi-arch Docker build (amd64 + arm64)
- Add multi-arch Docker build (amd64 + arm64)
- Fix formatting on commands and troubleshooting pages
- Update import path in messaging/shared/parse.ts after adapter reorganization
- typecheck: Use bunx tsc and resolve grammy type errors
- typecheck: Use bunx tsc and resolve grammy type errors
- Resolve remaining lint errors
- website: Consolidate documentation into Starlight site
- Remove ARCHITECTURE.md — content lives on the website
- readme: Add link to doc site, fix broken ARCHITECTURE.md link, update title
- readme: Update all sections to mention Telegram alongside Discord
- contributing: Fix broken SETUP.md link, add link to doc site
- website: Move adapter installation guides under adapters/
- Update file structure references after adapter reorganization
- Add GPX file upload + static route map generation
- Add Docker HEALTHCHECK via heartbeat file
- docker: Add HEALTHCHECK via heartbeat file
- Group adapters by type under messaging/ and database/
- Add tests for importers and shared/parse
- Add tests for importers, gpx parser and shared parse utils
- Store pinnedMessageId as string to avoid snowflake precision loss
- website: Add Starlight documentation site with Mermaid support
- Log startup config summary (version, adapter, database, timezone)
- Prevent double join
- lint: Extend oxlint scope to tests/ and fix await-thenable errors
- lint: Resolve all oxlint warnings
- discord: Skip deployCommands if slash commands are unchanged
- docker: Copy website/package.json so bun workspace resolves during install
- discord: Add adapter README with sequence diagrams
- Document TZ env var for reminder timezone configuration
- discord: Add /help command
- telegram: Add /help command and register bot commands menu
- Surface domain errors to users instead of silent failures
- website: Add landing page deployed to group-ride.slashgear.dev
- website: Add Pierre Reynaud as co-creator in footer
- Add git-cliff for changelog generation
- telegram: Extract commands into separate files
- telegram: Add /cancel and /edit commands, fix propose() message sequence
- UserId as string, NaN guard on scheduler, graceful shutdown, ORDER BY
- Create data dir with correct ownership and fix volume mount path