|
|
@@ -28,7 +28,7 @@ This is the persistent context file for Claude Code. Keep it concise and useful.
|
|
|
|
|
|
## Architecture
|
|
|
- `main.go` → `cmd/root.go` (app init) → `internal/ui/` (TUI layers)
|
|
|
-- `internal/ui/chat/` — core chat UI: `messages_list.go` (rendering/keybinds), `attachment_handler.go`, `embed_renderer.go`, `url_extractor.go`, `message_input.go`, `guilds_tree.go`, `attachments_picker.go`
|
|
|
+- `internal/ui/chat/` — core chat UI: `messages_list.go` (rendering/keybinds), `attachment_handler.go`, `embed_renderer.go`, `url_extractor.go`, `message_input.go`, `guilds_tree.go`, `attachments_picker.go`, `reaction_viewer.go`
|
|
|
- `internal/markdown/renderer.go` — AST→styled lines, handles Discord markdown flavors
|
|
|
- `internal/config/` — `config.go` (struct + loader), `config.toml` (defaults, embedded), `keybinds.go`, `theme.go`, `editor.go`
|
|
|
- `internal/consts/` — app name, cache dir
|
|
|
@@ -55,7 +55,7 @@ This is the persistent context file for Claude Code. Keep it concise and useful.
|
|
|
- **Security hardening**: path traversal prevention, HTTPS-only downloads, bounded downloads (100MB), `exec.LookPath` validation, atomic writes, restrictive perms, direct `exec.Command` (no `sh -c`)
|
|
|
- **Bug fixes**: Brotli body leak, cache type assertion panic, MarkRead uses newest fetched message ID
|
|
|
- **Code structure**: extracted `url_extractor.go`, `embed_renderer.go`, `attachment_handler.go` from `messages_list.go`; replaced `open-golang` with stdlib
|
|
|
-- **Reactions display**: renders below content (`drawReactions`), bold for own, real-time gateway updates; `e` opens emoji picker to add reactions (`emoji_picker.go`); picker defaults to browse/scroll mode; `f` toggles favorites (★, up to 10, persisted to `~/.cache/discordo/emoji_favorites.json`)
|
|
|
+- **Reactions display**: renders below content (`drawReactions`), bold for own, real-time gateway updates; `e` opens emoji picker to add reactions (`emoji_picker.go`); picker defaults to browse/scroll mode; `f` toggles favorites (★, up to 10, persisted to `~/.cache/discordo/emoji_favorites.json`); `v` opens reaction viewer popup showing who reacted with each emoji (`reaction_viewer.go`)
|
|
|
- **Search picker**: `/` opens fuzzy search over current channel messages (`search_picker.go`)
|
|
|
- **Thread indicators**: "Thread: name" display, `T` navigates to thread (was `t`)
|
|
|
- **User info popup**: `w` shows author info overlay (`user_info.go`)
|
|
|
@@ -100,6 +100,7 @@ To add a new site-specific URL label, edit `ui.LinkDisplayText()` in `internal/u
|
|
|
- `keybinds.messages_list.toggle_timestamps` — runtime timestamp toggle (default: `t`)
|
|
|
- `keybinds.messages_list.toggle_replies` — collapse/expand reply quotes (default: `Z`)
|
|
|
- `keybinds.messages_list.add_reaction` — open emoji picker (default: `e`)
|
|
|
+- `keybinds.messages_list.view_reactions` — view who reacted popup (default: `v`)
|
|
|
|
|
|
## Build & Run
|
|
|
- Build: `go build -o discordo-plus .`
|