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
Originally posted by: Akarsh-Hegde
All four review comments addressed — pushed as 751dd72.
Fixed:
rel="noopener noreferrer"— addednoopenerto the anchor. (noreferrerimplies 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_urlnormalised 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):
WorklogIteminterface —task_title: string | nullandtask_url: string | nullwere already added in the original commit; the reviewer may have seen an intermediate diff.Not a blocker noted:
ml-autoflex child andtask_titleis constrained bytruncate, so in practice the badge is not displaced. Happy to tighten further if you see a real regression.Ticket changed by: adityaharishch
Originally posted by: adityaharishch
🎉 This PR is included in version 1.46.0 🎉
The release is available on:
v1.46.0Your semantic-release bot 📦🚀