All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Cross-workspace
#channellinks resolve to native local channels when the channel is part of the same sync; otherwise use workspace archive URLs with a code-formatted fallback @mentionsand#channellinks in federated messages are now resolved on the receiving instance (native tags when mapped/synced, fallbacks otherwise)ENABLE_DB_RESETis now a boolean (true/1/yes) instead of a Slack Team ID; requiresPRIMARY_WORKSPACEto match
PRIMARY_WORKSPACEenv var: must be set to a Slack Team ID for backup/restore to appear. Also scopes DB reset to that workspace.
- Multi-workspace message sync: messages, threads, edits, deletes, reactions, images, videos, and GIFs
- Cross-workspace @mention resolution (email, name, and manual matching)
- Workspace Groups with invite codes (many-to-many collaboration; direct and group-wide sync modes)
- Pause, resume, and stop per-channel sync controls
- App Home tab for configuration (no slash commands)
- Cross-instance federation (optional, HMAC-authenticated)
- Backup/restore and workspace data migration
- Bot token encryption at rest (Fernet)
- AWS deployment (SAM/CloudFormation) with optional CI/CD via GitHub Actions
- GCP deployment (Terraform/Cloud Run) with interactive deploy script; GitHub Actions workflow for GCP is not yet fully wired
- Dev Container and Docker Compose for local development
- Structured JSON logging with correlation IDs and CloudWatch alarms (AWS)
- PostgreSQL, MySQL, and SQLite database backends
- Alembic-managed schema migrations applied at startup