Menu

#252 feat(ui): show task title and PM-tool link on worklog cards

closed
nobody
released (243)
2026-06-11
2026-06-11
Anonymous
No

Originally created by: Akarsh-Hegde

Summary

  • Worklog review cards previously showed only the ticket key (e.g. KAN-157) with no indication of what the task actually is.
  • The worklogs API (GET /api/worklogs) now LEFT JOINs pm_tasks on task_key, exposing task_title and task_url on each WorklogItem.
  • The card meta row renders the title next to the key (truncated for long titles). When the task has a URL, key + title link out to the ticket in the tracker (new tab, ↗ indicator, hover underline). Worklogs whose ticket isn't in pm_tasks degrade gracefully to plain key with no link.

Test plan

  • [x] tsc --noEmit — no new errors (only pre-existing bun:test resolution issues in test files)
  • [x] Verified the join against a live meridian.db: drafts return full title + https://…atlassian.net/browse/KAN-… URL
  • [ ] Visual check on the Worklogs page: title visible, link opens the ticket in Jira

🤖 Generated with Claude Code

Related

Tickets: #256

Discussion

  • Anonymous

    Anonymous - 2026-06-11

    Originally posted by: Akarsh-Hegde

    All four review comments addressed — pushed as 751dd72.

    Fixed:

    1. rel="noopener noreferrer" — added noopener to the anchor. (noreferrer implies it in modern browsers but the explicit pair is the cross-browser safe form and matches every other external link in the codebase.)
      2+3. task_url normalised at the route layer: r.task_url?.startsWith('https://') ? r.task_url : null — this handles both the empty-string-to-null coercion and the scheme validation in one expression. Any non-https URL (including empty string, javascript:, data:, etc.) is nulled out before it reaches the component.

    Already done (pre-push):

    1. WorklogItem interface — task_title: string | null and task_url: string | null were already added in the original commit; the reviewer may have seen an intermediate diff.

    Not a blocker noted:

    1. Visual layout on narrow viewports — the status badge sits in an ml-auto flex child and task_title is constrained by truncate, so in practice the badge is not displaced. Happy to tighten further if you see a real regression.
     
  • Anonymous

    Anonymous - 2026-06-11

    Ticket changed by: adityaharishch

    • status: open --> closed
     
  • Anonymous

    Anonymous - 2026-06-11

    Originally posted by: adityaharishch

    🎉 This PR is included in version 1.46.0 🎉

    The release is available on:

    Your semantic-release bot 📦🚀

     

Log in to post a comment.