# RustChat Roadmap This roadmap describes the direction of RustChat as a continuing, independently developed self-hosted collaboration platform. It is a living document and will be updated as priorities evolve. > RustChat is under active development and moving toward a supported > self-hosted collaboration product. It is not yet production-ready for all > organizations. ## Current Phase — Production-Readiness and Repository Integrity **Theme**: Close the known production blockers, make repository/release signals authoritative, and publish the pending `v0.5.1` release as a normal continuing RustChat release. Priorities: - [~] **Repository integrity hardening** — Implement [ADR-006](docs/adr/ADR-006-repository-integrity-and-maintainability.md): authoritative green-main/security aggregation, verified artifact promotion, GitHub protection, release-tag enforcement, and bounded maintainability guards. — **In progress:** P001–P005 (green-main gates, verified protection, persistence-boundary guard, module-growth guard, docs/repository hygiene) are merged; P006 (migration/recovery evidence), P007 (Buzz compatibility record), and P008 (release verdict) remain. - [ ] **Publish v0.5.1** — Version metadata is already at `0.5.1` in source; validate release gates (backend, frontend, push-proxy, Docker Compose, migration/recovery evidence, smoke tests) and publish the tagged release. (A `v0.5.0` tag exists but no `v0.5.0` GitHub Release has been published; the latest published release is `v0.4.1`.) - [ ] **Realtime durability** — Durable event replay/outbox for reconnecting clients, graceful WebSocket shutdown, and explicit resync signaling instead of silent event drops. - [ ] **Authorization completeness** — Close remaining membership-revocation and scheduled-post authorization gaps. - [ ] **Audit and observability** — Broaden audit-log coverage beyond the current minimal set and keep readiness/migration state accurate. - [ ] **Message validation and pagination** — `client_msg_id` idempotency, cursor pagination on hot channel-history paths. - [x] **Rate limiting coverage** — File upload and search endpoints (wired: `upload_ip_rate_limit` and `websocket_ip_rate_limit` in `backend/src/api/v4/mod.rs`, `search_ip_rate_limit` in `backend/src/api/search.rs`; the Redis-backed service tests in `backend/tests/test_rate_limiting.rs` cover the limiting service — endpoint-level middleware tests are not yet present). - [x] **Defects** — Resolve the open compliance-export and audit-dashboard bugs honestly (working behavior or explicitly unsupported). — **Resolved (2026-09-28):** compliance export is explicitly unsupported in the admin UI (phantom endpoint removed; the feature is Phase 2); the audit-dashboard JSON export was fixed (it previously downloaded `{}` because a Blob was passed to `JSON.stringify`, and its request failed with a 400 because the raw filter object — empty-string params and bare `yyyy-MM-dd` dates — violated the backend's `AuditLogQuery` deserialization contract; both defects are fixed via a param builder shared with the list request, with a wire-format regression test); and the dashboard is relabeled honestly as "Membership Policy Audit" since all of its data (summary cards, failure stats, log table) comes from the membership-policy audit table. The system audit log keeps its own view. ## Next — Operational Hardening and Incremental Architecture Cleanup - [x] **Persistence-boundary guard** — Prevent new direct SQL persistence from accumulating in API handlers; migrate existing debt only in bounded, tested slices. (RI-C04 active; pilot: `backend/src/api/site.rs`.) - [x] **Module growth control** — Add responsibility/growth baselines and decompose only the highest-value oversized modules. (RI-C05 active; pilot: `backend/src/services/posts.rs`.) - [ ] **Test coverage** — Expand backend integration tests and frontend E2E coverage. - [ ] **Migration upgrade matrix** — Prove empty→latest and latest published stable→latest upgrades with application readiness evidence. (Scope note: CI already proves schema convergence continuously — empty→HEAD and latest-published-stable→HEAD via `scripts/migration-matrix.sh`, see `docs/development/ci-gates.md`. What remains open is the release-grade matrix with full application readiness evidence, per `docs/repo-current-state.md`.) - [x] **Backup & restore** — Documented and tested data protection procedures. (Documented: docs/operations/runbook.md "Backup Procedures" and "Restore Procedure and Verification". Tested: the CI **Backup Restore** job runs `scripts/backup-restore-check.sh` on schema/script changes, proving a custom-format `pg_dump` restores into a fresh database with identical schema objects, sqlx migration bookkeeping, row counts, content checksums, and referential integrity. Production backup scheduling remains operator-side.) - [ ] **Observability** — Structured metrics, health checks, and alerting guides. - [ ] **Search improvements** — Better indexing, filtering, and performance. ## Integration Ecosystem - [x] **Buzz integration phase 1 (optional outbound bridge)** — Isolated, opt-in connector with a durable outbox; RustChat remains authoritative and Buzz availability does not affect core posting ([ADR-005](docs/adr/ADR-005-rustchat-core-and-buzz-integration.md)). - [ ] **Buzz compatibility verification** — Pin and test the external protocol contract used by RustChat without depending on Buzz internals or latest upstream HEAD. - [ ] **Plugin framework** — Move beyond compatibility stubs to a working plugin model. - [ ] **RustShare deepening** — Richer permission-aware knowledge sync for agents. - [ ] **Mattermost API v4 parity** — Continue expanding mobile client compatibility coverage where it serves users. ## Later — Scaling, Compliance, and 1.0 - [ ] **Multi-team hardening** — Team isolation and cross-team features. - [ ] **Compliance** — Working compliance export, retention policy enforcement, and audit completeness. - [ ] **Federation research** — Evaluate server-to-server messaging protocols and interoperability options. - [ ] **Performance at scale** — Database query optimization, caching strategy, distributed SFU mesh for calls. - [ ] **1.0 stable release** — Declare production readiness with an LTS support policy. ## What We Are Not Planning To set clear expectations, the following are not on the current roadmap: - SaaS hosting by the core team (RustChat is strictly self-hosted) - Native desktop or mobile apps (we target Mattermost mobile app compatibility instead) - Commercial plugin marketplace - Replacing the RustChat backend, frontend, or data model with any external collaboration system Mattermost compatibility remains a supported RustChat strategy unless explicitly changed by a future ADR. ## How to Influence the Roadmap - Open a [feature request](https://github.com/kubedoio/rustchat/issues/new/choose) - Start a [discussion](https://github.com/kubedoio/rustchat/discussions) - For significant architectural proposals, write an ADR and open a PR ## Completed Milestones | Date | Milestone | |------|-----------| | 2026-09 | Runtime/bootstrap architecture cleanup — single AppState, supervised workers, typed runtime composition | | 2026-09 | Buzz phase-1 external integration — optional outbound bridge with durable outbox and isolated failure semantics | | 2026-06 | AI Agents & Ecosystem — agent runtime, RAG with pgvector, Tavily tools, analytics and feedback | | 2026-03 | Entity Foundation Complete — API keys, rate limiting, mobile compatibility (95.1%) | | 2026-02 | VoIP Push Notifications — Mobile call ringing for Android and iOS | | 2026-01 | V4 API Coverage — Broad Mattermost compatibility for mobile clients | | 2025-12 | Real-time WebSocket Layer — Redis-backed pub/sub clustering |