Chat — Team Messaging
- Area: Workspace
- Path:
products/horizontal/chat/ - Kind: Team messaging platform (Slack / Mattermost style)
- App version: 0.1.5
- Status: Active
Role in the stack
Chat is Koder's team messaging platform. Channels, direct messages, threads, file sharing, integrations, real-time WebSocket updates. It serves as the internal communications backbone across Koder products.
Chat is the sibling (not competitor) of suite/talk:
- Chat — business teams, server-side stored history, threads + integrations
- Talk — private contacts, E2E encryption, voice + channels
Primary couplings
| Consumer | Relationship |
|---|---|
products/horizontal/chat/engine |
Go backend; channels, messages, files, WebSocket |
data/kdb |
Stores channels, threads, messages, files |
foundation/id |
Authenticates users; dev.koder.chat OIDC client registered in prod |
foundation/kompass |
Tenant scoping for business teams |
suite/drive |
File attachments |
engines/sdk/koder_ipc |
IPC transport (armv7 build fix applied v0.1.2) |
Flutter app (products/horizontal/chat/app)
- Platforms: Android, iOS, Linux, Windows, macOS, Web
- Auth: Koder ID OIDC PKCE via koder_kit
KoderAuthon all surfaces incl.web (no local form, Google-Chat model). The app gate bridges koder_kit's completed OIDC sign-in into a Chat session via
POST /api/v1/auth/koder-id. Redirect URIs (koder-chat client): webhttps://chat.koder.dev/auth/callback, Androiddev.koder.chat://auth, desktop loopback127.0.0.1:18787/auth. - State:
ChatProvider extends ChangeNotifier(provider package) - Real-time: WebSocket via
ChatConn(koder_chat SDK) - Store slug:
koder-chat(Hub: Linux AppImage + Android arm64x86_64armv7)
Changelog
| Version | Date | Notes |
|---|---|---|
| 0.1.4 | 2026-05-26 | CHAT-005: web OIDC migrated to koderkit (dropped flutterappauth, which has no web impl); canonical redirect URIs reconciled on the live koder-chat client. CHATE-016: native Hub release — Linux AppImage + Android (3 ABIs) published to hub.koder.dev/apps/koder-chat. chat.koder.dev vhost: dropped the `/auth |