Releases: duca-club/duca-sentinel
Release list
v3.0.0
Welcome to DUCA Sentinel v3.0.0!
This is a major release. The bot is rebuilt around CommandKit v1 with a new app layout, scheduled news digest and alert tasks backed by @commandkit/tasks and SQLite, runtime feature flags from Supabase, and a refreshed environment + runtime story (Node 24+, pnpm, Biome).
Note
If you are upgrading from v2.x, treat this as a re-deploy: update dependencies, rebuild with the new codebase, replace removed environmental variables, and provision any new Supabase tables.
Known limitations / operational notes
- Scheduled tasks use a local SQLite store at
./tasks.db(seecommandkit.config.ts). Plan backups or persistence if you run multiple replicas or ephemeral disks. - News alerts use a fixed cron timezone (
Asia/Kolkata) in code to match RSS timestamp behavior. Digests useNEWS_TIMEZONE(defaultAustralia/Sydney). Seesrc/app/tasks/news-alerts.tsandsrc/app/tasks/news-digest.ts.
Highlights
-
CommandKit v1 toolchain:
pnpm run build→commandkit build,pnpm start→commandkit start,pnpm run dev→commandkit dev. -
News pipeline v2: scheduled digest (top unseen articles) and keyword alerts, with dedupe/claim logic and posting helpers under
src/lib/news/.Example Alert:
-
Supabase-backed feature flags: global provider in
src/app.tsusingSupabaseFlagProviderand thefeature_flagstable. -
Stricter configuration model: required
DISCORD_TOKEN,MEMBER_ROLE_ID,NEWS_CHANNEL_ID,SUPABASE_URL, andSUPABASE_SECRET_KEY. Optional cron/keyword tuning documented in the README.
Breaking Changes (migration from v2.x)
- Package manager & Node: use pnpm and Node.js 24+ per README.
- Build/run scripts: no longer
tsc+tsxas the primary workflow. Use CommandKit’sbuild/dev/start. - Environment variables: v2’s optional Supabase / guild / dev-role style setup is not carried forward as-is. You must align with
src/lib/envConfig.tsand the README table (notablySUPABASE_SECRET_KEYinstead of anon-only flows, and requiredNEWS_CHANNEL_ID). - Project layout: commands/events live under
src/app/with CommandKit conventions. Tasks live insrc/app/tasks/. - Lint/format: Biome (
pnpm run biome) replaces the older Prettier-centric setup.
What's Changed
🚀 Features
- CommandKit v1 application structure with cache + tasks plugins (
commandkit.config.ts). - Scheduled news digest task (
src/app/tasks/news-digest.ts) with cron + timezone from env defaults. - Scheduled news alerts task (
src/app/tasks/news-alerts.ts) with configurable keywords and hourly-style default scheduling. - Supabase-driven feature flags (
src/providers/supabaseFlagProvider.ts, wired insrc/app.ts).
🌟 Enhancements
- Dependency refresh across
discord.js,commandkit, and@supabase/supabase-js(seepackage.json). - Command caching + rate limiting.
⚠️ Breaking
- Major runtime and configuration changes as summarized above. Review
.env.exampleagainst your current deployment secrets and role IDs.
🔧 Maintenance
- Tooling migration to Biome and TypeScript 6.x dev stack (
package.json).
Full Changelog: v2.2.2...v3.0.0
v2.2.2
Welcome to DUCA Sentinel v2.2.2!
This patch release improves the /verify command UX by making verification confirmation non-ephemeral, ensuring successful verification feedback is visible where intended.
Note
This release is being published retroactively as part of our first formal release rollout.
The changes in this tag reflects earlier work that was shipped informally at the time. We are publishing historical notes now for completeness and version tracking.
What's Changed
🐛 Bug Fixes
- fix(verify): made verification confirmation non-ephemeral by @thelocalfrogman in 8b01afa
🔧 Maintenance
- chore: bump version to v2.2.2 by @dec1belPP in 65cf0e8
Full Changelog: v2.2.1...v2.2.2
v2.2.1
Welcome to DUCA Sentinel v2.2.1!
This patch release fixes duplicate article posting in the automatic Hacker News feed pipeline.
Note
This release is being published retroactively as part of our first formal release rollout.
The changes in this tag reflects earlier work that was shipped informally at the time. We are publishing historical notes now for completeness and version tracking.
What's Changed
🐛 Bug Fixes
- fix(utils): fixed the auto news posting from The Hacker News RSS feed from repeating the same articles by @thelocalfrogman in 4b2e9af
Full Changelog: v2.2.0...v2.2.1
v2.2.0
Welcome to DUCA Sentinel v2.2.0!
This release introduces automated cybersecurity news posting from The Hacker News into a dedicated Discord channel, including critical-news handling and setup documentation.
Note
This release is being published retroactively as part of our first formal release rollout.
The changes in this tag reflects earlier work that was shipped informally at the time. We are publishing historical notes now for completeness and version tracking.
Highlights
- Automatic Hacker News posting to a dedicated channel
- Critical-article detection and posting behavior
- Environment-variable support and docs for news channel configuration
What's Changed
🚀 Features
- feat(utils): add automatic news posting from The Hacker News into dedicated channel by @thelocalfrogman in 98482c4
🐛 Bug Fixes
- fix(utils): fixed bot posting 3 articles when detecting critical news by @thelocalfrogman in 66e03cc
📚 Documentation
- docs(readme): added news channel environment variable by @thelocalfrogman in 8a420e8
New Contributors
- @thelocalfrogman made their first contribution in #8
Full Changelog: v2.1.0...v2.2.0
v2.1.0
Welcome to DUCA Sentinel v2.1.0!
This release makes Supabase integration optional, allowing deployments to run with reduced dependencies while gracefully disabling database-backed features when credentials are not provided.
Note
This release is being published retroactively as part of our first formal release rollout.
The changes in this tag reflects earlier work that was shipped informally at the time. We are publishing historical notes now for completeness and version tracking.
Highlights
- Optional Supabase integration support
- Graceful fallback behavior in
/verifyand/calendar - Safer member cache handling when Supabase is unavailable
- Updated environment documentation for optional Supabase setup
What's Changed
🚀 Features
- feat(config): make Supabase integration optional by @dec1belPP in d2357e0
- feat(lib): conditionally initialize Supabase client by @dec1belPP in 68b993d
🌟 Enhancements
- refactor(utils): handle missing Supabase in memberCache by @dec1belPP in 080fdd0
- refactor(commands): gracefully handle missing Supabase in verify and calendar by @dec1belPP in 6b8f716
🐛 Bug Fixes
- fix: missed version bump by @dec1belPP in 4ef90f8
📚 Documentation
- docs(env): update environment variable docs for optional Supabase by @dec1belPP in 8feb217
Full Changelog: v2.0.1...v2.1.0
v2.0.1
Welcome to DUCA Sentinel v2.0.1!
This is a focused hotfix release that corrects command references and emoji IDs after the TypeScript migration.
Note
This release is being published retroactively as part of our first formal release rollout.
The changes in this tag reflects earlier work that was shipped informally at the time. We are publishing historical notes now for completeness and version tracking.
What's Changed
🐛 Bug Fixes
- fix(emoji): update command references and emoji IDs by @dec1belPP in 2996a62
Full Changelog: v2.0.0...v2.0.1
v2.0.0
Welcome to DUCA Sentinel v2.0.0!
This release modernizes the codebase with a TypeScript migration and project-wide cleanup. It also includes documentation and CI updates to support the new structure.
Note
This release is being published retroactively as part of our first formal release rollout.
The changes in this tag reflects earlier work that was shipped informally at the time. We are publishing historical notes now for completeness and version tracking.
Highlights
- TypeScript migration across the project
- CI and pipeline updates for the refactored codebase
- Emoji and project configuration refresh
- Documentation refresh for the updated setup
What's Changed
🚀 Features
- refactor: Typescript migration by @dec1belPP in 5877983
🌟 Enhancements
- chore: update bot emojis by @dec1belPP in 47239d9
- chore: add project wide code format standard + pre commit hook by @dec1belPP in d06cb48
- refactor: update GitLab pipeline by @dec1belPP in 38e79d7
📚 Documentation
- docs: add contribution guide + env example by @dec1belPP in e82d176
- docs(README.md): fix typo by @dec1belPP in ee96615
Full Changelog: v1.0.0...v2.0.0
v1.0.0
Welcome to DUCA Sentinel v1.0.0!
This is the first public release of DUCA Sentinel. It establishes the core bot setup, command foundations, and server-specific configuration updates.
Note
This release is being published retroactively as part of our first formal release rollout.
The changes in this tag reflects earlier work that was shipped informally at the time. We are publishing historical notes now for completeness and version tracking.
What's Changed
🚀 Features
- chore: initial repository bootstrap commit by @dec1belPP in d505067
- feat: initial project baseline and bot scaffolding by @dec1belPP in c738ec3
🐛 Bug fixes
- chore: change bot help command from
/commandsto/helpby @dec1belPP in a319c7b - fix(verify): correct bucket name for Supabase table by @dec1belPP in 793ff46
- fix(verify): correct channel ID in the successful verification embed by @dec1belPP in 352fcce
📚 Documentation
- docs: update README.md by @dec1belPP in 6a85a32
Full Changelog: https://github.com/duca-club/duca-sentinel/commits/v1.0.0