hobokenchicken
cb8aeddde6
fix(pwa): generate icons, network-first HTML, bust stale cache
2026-07-01 16:14:29 -04:00
hobokenchicken
33dc63b94c
fix: stop double-posting messages (WS + HTTP both appended)
2026-07-01 15:59:31 -04:00
hobokenchicken
48a99d58ee
fix: use APP_URL for email links instead of host:port
...
DUMPSTER_PORT=8080 (internal) was baked into email reset links,
producing http://dumpster.dustin.coffee:8080/reset-password which
doesn't resolve through Caddy. Added Config.AppURL() that reads
APP_URL env var (set to https://dumpster.dustin.coffee on server),
falls back to http://host:port for dev.
2026-06-30 15:59:55 -04:00
hobokenchicken
c80a36bacb
fix: move DUMPSTER banner back inside login card, centered
2026-06-30 15:56:45 -04:00
hobokenchicken
65de4efb0d
fix: span DUMPSTER banner full-width above login card
2026-06-30 15:55:14 -04:00
hobokenchicken
b8ae43e250
fix: center DUMPSTER and LOGIN headings on login screen
2026-06-30 15:53:04 -04:00
hobokenchicken
82ddf914e4
feat: add forgot password UI flow
...
- ForgotPasswordPage: email input, sends reset request, shows success
- ResetPasswordPage: reads token from ?token= query param, password
+ confirm inputs, validates min length, shows success with login link
- LoginForm: added [FORGOT PASSWORD?] link below the form
- App.tsx: /forgot-password and /reset-password routes (public, no auth)
- auth store: requestPasswordReset + resetPassword actions
- Backend routes already existed at POST /auth/request-password-reset
and POST /auth/reset-password
2026-06-30 15:49:23 -04:00
root
f4437c5e1d
feat: add SMTP email support and fix profile/permissions bugs
2026-06-30 19:29:08 +00:00
hobokenchicken
4ded582dc4
chore: add deploy.sh for server-side build + deploy
...
Single script: git pull, make build, systemctl restart.
Nvm is sourced inside the script (server now has node v22.23.1 installed).
Run via: ssh dumpsterchat /opt/dumpsterChat/deploy.sh
2026-06-30 13:52:49 -04:00
hobokenchicken
3ef753ff69
fix: remove stale idx_webhooks_token index from migration
...
The token column was dropped in a previous migration step
(ALTER TABLE webhooks DROP COLUMN IF EXISTS token), but the
CREATE INDEX referencing it still ran, causing migration failure
on databases where the column was already removed.
2026-06-30 13:49:50 -04:00
hobokenchicken
215f931311
fix: wire permission checks into message/channel handlers
...
- Add CheckChannelPermission to permissions.Checker (layers channel overrides on top of role permissions)
- Refactor requireChannelAccess to accept required permission bitmap
- Message Create checks SEND_MESSAGES; List/Search check VIEW_CHANNEL
- BulkDelete uses Checker.CheckPermission for MANAGE_MESSAGES
- Channel handler List filters out channels user cannot view
- Remove dead checkPermission method from message handler
- Fix frontend avatar upload: parse response URL, call updateProfile
2026-06-30 13:47:08 -04:00
root
cc8ebc1f8a
docs: update repository audit report after re-audit
2026-06-30 17:36:58 +00:00
hobokenchicken
2caedc172b
fix: resolve 7 audit issues - webhook tokens, cookie security, avatar save, TUI fallback, dead code, valkey default
2026-06-30 13:29:34 -04:00
root
6f43e4f3a0
docs: add repository audit report
2026-06-30 17:22:54 +00:00
hobokenchicken
a13546bdf6
fix: timestamp format to [dd.mm.yyyy @ hh:mm]
2026-06-30 13:12:06 -04:00
hobokenchicken
6efd7b9e19
docs: mark phase 8.1 complete in roadmap
2026-06-30 12:51:35 -04:00
hobokenchicken
d663638387
feat(phase8.1): server groups — table, CRUD handler, collapsible channel sections
2026-06-30 12:50:53 -04:00
hobokenchicken
6d66d7775f
docs: mark phase 7 complete in roadmap + parity
2026-06-30 12:42:57 -04:00
hobokenchicken
cc6ed741f0
feat(phase7): per-channel notification settings and read receipts
...
Phase 7.1 — Per-channel notification settings
- New notification_settings table (user_id, channel_id, level)
- GET/PUT/DELETE handlers under /channels/{channelID}/notifications
- Push dispatch and @mention loops filtered by notification level
- Frontend: bell icon per channel cycling all/mentions/none
Phase 7.4 — Read receipts
- New read_states table (user_id, channel_id, last_read_message_id)
- PUT /channels/{channelID}/read and GET /users/me/read-states
- Auto-mark-read when messages load in ChatArea
- Unread dot for channels never opened
Also: favicon/icon refresh in index.html
2026-06-30 12:39:14 -04:00
hobokenchicken
ab3e6053c8
docs: mark phase 6 complete in roadmap + parity
2026-06-30 12:29:17 -04:00
hobokenchicken
775bd953b0
feat(phase6): video grid, noise suppression, whisper system
...
- New VideoGrid component: live camera feeds (local + remote) in VoicePanel
- Camera toggle in VoiceControls: enable/disable video per participant
- Noise suppression toggle in VoiceControls + voice store
- VOICE_WHISPER WS event: backend routes whisper to target user only
- Whisper UI: per-participant whisper button, notification toasts with dismiss
- Fix circular import between voice.ts and ws.ts (use lazy accessor)
2026-06-30 12:21:53 -04:00
hobokenchicken
3c063d4f56
docs: update roadmap, feature parity, and readme through phase 5
2026-06-30 11:53:33 -04:00
hobokenchicken
6db4e3cc2d
feat(phase5): scheduling/availability - DB, API, UI in server settings
2026-06-30 11:29:43 -04:00
hobokenchicken
74d2153ffa
feat(phase5): list channels - todo/in_progress/done columns, CRUD
2026-06-30 11:26:15 -04:00
hobokenchicken
dbebc1f381
feat(phase5): docs channels - CRUD, wiki sidebar, markdown editor
2026-06-30 11:19:32 -04:00
hobokenchicken
e65ce54e36
feat(phase5): calendar channels - events, RSVPs, calendar view
2026-06-30 11:15:40 -04:00
hobokenchicken
58ce09cc18
feat(phase4): rich profiles, badges DB, block list
2026-06-30 11:04:32 -04:00
hobokenchicken
368172e3d6
feat(phase3): forum channels + tags + card UI
2026-06-30 10:44:52 -04:00
hobokenchicken
f3f03df710
feat(phase3): threads backend + thread panel UI
2026-06-30 10:36:18 -04:00
hobokenchicken
bd260183ef
feat(phase2): channel permission overrides + expanded role UI + audit log cleanup
2026-06-30 10:28:03 -04:00
hobokenchicken
d7c84647e5
feat(phase2): bulk delete + audit log; update roadmap/parity docs
2026-06-30 10:20:57 -04:00
hobokenchicken
d3b7f39b9e
fix(build): make build-web works; gofmt all Go files
2026-06-30 10:01:11 -04:00
hobokenchicken
30e159cbdb
sync: phase 1 backend + frontend from server
2026-06-30 09:26:03 -04:00
hobokenchicken
d4cdd89544
docs: 8-phase roadmap to Guilded feature parity
2026-06-30 08:38:37 -04:00
hobokenchicken
1945703893
fix: case-insensitive login for username and email
2026-06-30 08:24:41 -04:00
hobokenchicken
e380d4e381
docs: feature parity comparison with Discord, Guilded, TeamSpeak 6, Fluxer
2026-06-30 08:18:23 -04:00
hobokenchicken
bbd7992e12
fix: nil pushHandler crash in message Create
2026-06-29 16:06:00 -04:00
hobokenchicken
6c8defb6fd
feat: realtime status, mentions, push notifications
2026-06-29 15:52:34 -04:00
hobokenchicken
282a436995
fix: construct invite URL from code on frontend
2026-06-29 15:35:22 -04:00
hobokenchicken
6a737c3db3
fix: invite handler used creator_id but DB column is created_by
2026-06-29 15:32:24 -04:00
hobokenchicken
7261ebaafa
fix: invite routes were double-nested under /invites causing 404->SPA fallback
2026-06-29 15:30:20 -04:00
hobokenchicken
2d3bf48e66
fix: add invite button, voice join dedup, voice panel immediate render
2026-06-29 15:28:05 -04:00
hobokenchicken
a8a09cf7b4
fix: CSRF and WS origin check trust request Host header (same-origin)
2026-06-29 14:38:18 -04:00
hobokenchicken
7f56571004
fix: WS origin check now uses hostname matching instead of exact strings
2026-06-29 14:33:39 -04:00
hobokenchicken
369737565e
fix: WebSocket cookie auth + connect on layout mount
2026-06-29 14:30:29 -04:00
hobokenchicken
90289fede1
sync: all server-side fixes and features
2026-06-29 14:24:45 -04:00
hobokenchicken
c189bd2d83
fix: return messages in chronological order (oldest first)
2026-06-29 14:18:56 -04:00
hobokenchicken
175ec90705
fix: blank page on channel click + logout issue
2026-06-29 14:16:32 -04:00
hobokenchicken
a7da8104d7
fix: channel List reads serverID from URL param, not query string
2026-06-29 14:11:33 -04:00
hobokenchicken
368d1f9427
fix: ensure reply_to column exists via ALTER TABLE in migration
2026-06-29 14:05:56 -04:00