Task autolinks
Task autolinks turn typed and pasted task identifiers into live link chips. Anywhere the rich text editor runs, a string like PAR-482 becomes a chip you can hover for a preview and click to jump straight to the task.
You get them in every editor surface:
- Task descriptions
- Task comments
- Wiki pages
- Board node content
The chip is inline, small, and consistent across all four surfaces. Hovering shows a preview popover with the task name, current state, priority, and the first few assignees. Clicking opens the task.
The three ways to insert one
Type #PAR-482. As soon as you finish the digits, the #PAR-482 run
collapses into a chip. The # is a trigger character only; it is not stored on
the chip.
Type # alone. A small popover opens, fuzzy-searching recent tasks in the
workspace by title or by IDENT-N shorthand. Arrow keys or the mouse to pick,
Enter or Tab to insert. Escape dismisses the popover without inserting anything.
Paste. Pasting a bare identifier (PAR-482) or an in-app URL like
https://ithura.com/{workspace}/browse/PAR-482 converts to a chip. You do not
need the # on paste because pasting is already an intent signal.
What matches
The identifier grammar is {PROJECT}-{N}, where:
PROJECTis 2 to 10 characters, the first is a letter, the rest are letters or digits. This is the same identifier your project uses (PAR,WEB,INF, and so on).Nis one or more digits, the task's sequence number in that project.
Examples that resolve: PAR-482, WEB-17, INF2-9.
Examples that do not: par-482 (lowercase), PAR482 (no dash), A-1 (project
prefix too short).
Scope is workspace-local
Every workspace has its own project identifiers. A WEB-17 you type in one
workspace resolves to that workspace's WEB project, not to another
workspace's. If the identifier does not exist in your current workspace, the
chip renders normally but the preview popover says "not found" and the chip
does not link anywhere useful.
The permission model is the same one the project list uses:
- Workspace admins can see every project in the workspace.
- Members can see public projects and projects they are a member of.
- Guests can see only projects they are a member of.
A task in a project you cannot see returns "not found" in the preview, so an autolink never leaks the existence of a task you do not have access to.
What the preview shows
The hover popover fetches the task from the workspace and renders:
- The
PROJECT-Nidentifier and the task title. - The current state (name and colour).
- The task priority, when it is not
none. - Up to five assignees, with avatars.
- The start and target dates, when set.
The preview loads on the first hover and caches for a minute so repeated hovers do not re-hit the server. A "not found" answer is cached for the rest of the session and does not retry.
Click behaviour
Clicking a chip goes to /{workspace}/browse/{identifier}. That route resolves
the identifier server-side and lands you on the task in its project. If the
identifier no longer exists (the task was deleted, or was moved to another
workspace) the browse page shows a "Task not found" screen with a back link to
the workspace home.
What it does NOT do
- Autolinks do not create tasks. Typing
#PAR-999whenPAR-999does not exist leaves a chip that hovers to "not found". Create the task first. - Autolinks do not span workspaces. There is no cross-workspace routing.
- Autolinks are not markdown link syntax. If you write
[label](/{ws}/browse/PAR-482)the editor keeps it as a plain markdown link, not an autolink chip. Only bare identifiers and in-app URLs convert.
Behind the scenes
GET /workspaces/{slug}/issues/by-identifier/{identifier}returns the preview payload. Response includes id, project id, project identifier, sequence id, name, state, priority, assignees (capped at 5), start and target dates, and last-updated timestamp.- A Tiptap Node (
issueAutolink) is registered in the shared editor. HTML round-trip shape is<a data-issue-autolink="PAR-482" href="/{workspace}/browse/PAR-482">PAR-482</a>so pasted and stored HTML survives a reload. - The
#popover is backed by the existing/workspaces/{slug}/issue-lookup/typeahead. No new search index; the same rows that back the wiki page#-embed drive this popover.