Skip to content

Comments

feat: @mentions with notifications + highlighted comment bodies#31

Closed
donnydongchen wants to merge 21 commits intoclawdeckio:mainfrom
donnydongchen:feat/mentions-notifications
Closed

feat: @mentions with notifications + highlighted comment bodies#31
donnydongchen wants to merge 21 commits intoclawdeckio:mainfrom
donnydongchen:feat/mentions-notifications

Conversation

@donnydongchen
Copy link

@donnydongchen donnydongchen commented Feb 9, 2026

Implements real agent @mentions with persistence, in-app notifications, and UI highlighting.

What’s included

  • Mention parsing + highlight rendering for supported agents (@machamp, @Blastoise, @Alakazam, @snorlax)
  • Persist mentions via join table (TaskCommentMention)
  • Create unread mention notifications (Notification kind=mention) and expose via API + bell dropdown
  • Live feed/comment payloads include highlighted HTML for mention tokens
  • Dev setup improvements (Homebrew Ruby guidance; Bundler platform symbols compatible with older Bundler parsers)

How to test

  1. Ensure Ruby 3.3 + Bundler 2.5.9 (see DEV_SETUP.md)
  2. Ensure Postgres is running locally
  3. bundle install
  4. bin/rails db:migrate
  5. bin/rails test
  6. Create/update a task comment containing @machamp and verify:
    • mention token highlighted in UI
    • notification appears under 🔔 and is unread until marked read

Notes

  • In the OpenClaw Codex sandbox environment, Postgres cannot be started due to shared-memory restrictions, so DB-backed tests could not be executed there. Please run the above steps locally/CI.

Jasper Donny Dong Chen and others added 13 commits February 5, 2026 08:59
* Test Kanban card updated-at tooltip uses formatted_timestamp

* Sanitize control chars in task API JSON

* Preload card associations + show age on task cards

* Kanban: hover lift + drag affordance polish

* Test: assert Created tooltip uses formatted_timestamp

* docs: clarify macOS Homebrew Ruby/Bundler setup

* Kanban: counter caches + UTF-8-safe agent labels

* Fix JSON BINARY warnings + keep Kanban card count tests accurate

* API: accept legacy task_comment payload for task comments

* Kanban: clarify overflow tag tooltip

* Board: add visible focus ring for task cards

* Kanban: show agent name in task card badge

* Board: show drop hint while dragging over columns

* Kanban: show insertion marker during drag

* Kanban: avoid layout shift on insert marker; drop-hint CSS hardening

* Rebrand UI/docs to PokéDeck

* Rebrand default page titles to PokéDeck

* Rubocop: remove trailing whitespace

* Rebrand page titles to PokéDeck

* API: make task url host configurable (PUBLIC_BASE_URL)

* Rebrand systemd unit descriptions to PokeDeck

* docs: rebrand LICENSE + CONTRIBUTING to PokéDeck

* docs: fix GitHub link text to clawdeckio/pokedeck

* Branding: update GitHub links to pokedeck

* Kanban: card footer relative timestamp

* Rebrand setup scripts output to PokéDeck

* Docs: clarify PokéDeck branding vs clawdeck identifiers

* chore: exclude branding identifiers doc from user-facing ClawDeck scan

* fix: stabilize task card relative time rendering

* chore: harden branding guard + macOS test note

---------

Co-authored-by: Jasper Donny Dong Chen <jasperdonnydongchen@Jaspers-Mac-mini.local>
@donnydongchen donnydongchen changed the title feat: @mentions create in-app notifications + bell dropdown feat: @mentions with notifications + highlighted comment bodies Feb 9, 2026
@donnydongchen
Copy link
Author

FYI GitHub Actions runs are showing 'action_required' (no jobs started), likely due to first-time contributor workflow approval on this repo. Once workflows are approved, CI should run normally.\n\nI also hit macOS system Ruby 2.6 locally, so I’m relying on CI for verification unless we install Ruby 3.3.

@donnydongchen
Copy link
Author

Fix: notifications API now includes deep-link fields.\n\n- Added Api::V1::NotificationSerializer emitting , , (plus existing nested task/task_comment payload).\n- Controller now uses serializer.\n- Tests assert deep-link fields in index + update responses.\n\nRefs ClawDeck task #44.

@donnydongchen
Copy link
Author

Fix: notifications API now includes deep-link fields.

  • Added Api::V1::NotificationSerializer emitting fields: at, task_id, comment_id (plus existing nested task/task_comment payload).
  • Controller now uses serializer.
  • Tests assert deep-link fields in index + update responses.

Refs ClawDeck task #44.

@donnydongchen
Copy link
Author

I’m unable to merge this PR with my current GitHub perms (MergePullRequest denied for donnydongchen). Maintainer: please squash-merge + delete branch when ready. Task tracking: https://clawdeck.io/boards/1/tasks/44

@donnydongchen donnydongchen closed this by deleting the head repository Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant