dragonflight/services
claude 90a9e4361a feat(comments): persistent frame-anchored comments on asset detail
- migration 010: asset_comments table (id, asset_id, user_id, body,
  frame_ms, resolved, timestamps) with index on asset_id+created_at
- new routes mounted at /api/v1/assets/:assetId/comments — GET/POST/
  PATCH/DELETE with author join (display_name + initials), nullable
  user_id so comments still attach when AUTH_ENABLED is off
- Asset detail loads comments from the API on mount instead of the
  empty ZAMPP_DATA.COMMENTS seed; addComment POSTs and merges the
  returned row; resolved-toggle and delete are wired
- CommentsList: new trash-icon delete action per comment, helpful
  empty-state copy ('Add one below to mark a frame'), tooltips on
  the timestamp and resolved buttons

Now editor comments survive page reload, are visible to other users
via the same API, and pin reliably to frame_ms (integer) instead of
a parsed HH:MM:SS:FF string.
2026-05-23 04:21:11 +00:00
..
capture fix(recorders,library): empty-capture handling + right-click context menu 2026-05-23 03:52:30 +00:00
editor fix: override user-select:none on draggable media items to fix drag initiation 2026-05-19 14:45:47 -04:00
mam-api feat(comments): persistent frame-anchored comments on asset detail 2026-05-23 04:21:11 +00:00
node-agent fix(decklink): mount /dev/blackmagic in sidecar + remote node routing via node-agent 2026-05-21 18:51:09 -04:00
premiere-plugin feat: live HLS preview, proxy worker fixes, Settings tabs, growing-files + Premier panel 2026-05-22 19:12:53 -04:00
web-ui feat(comments): persistent frame-anchored comments on asset detail 2026-05-23 04:21:11 +00:00
worker fix(recorders,library): empty-capture handling + right-click context menu 2026-05-23 03:52:30 +00:00