Skip to content

Todoist-synced tasks should link back to their source page in Obsidian #720

Description

@mekuhl

Problem

When a task syncs to Todoist, the task title gets the vault-relative source path(s) tacked on as raw text (e.g. Draft executive intro email 05-Areas/People/Internal/X.md) — not clickable, and the description is empty apart from the internal [dex:task-id] marker. You have to go find the right page yourself. This is a worse experience than Todoist's own Gmail/Slack integrations, where a task created from an email or Slack message is directly clickable back to its source.

Fix

parse_tasks_file in work_server.py now splits the trailing | path1 path2 ... reference list off the display title into a separate source_paths field, instead of leaving it baked into the title (the old cleanup regex assumed a bare People//Active/ prefix and silently failed to match the current 05-Areas/People/... convention).
Found and fixed a related bug in extract_file_refs_from_task: an unanchored pattern matched People/... as a substring of the correct 05-Areas/People/... path, producing a second, truncated, invalid duplicate for every reference.
task_sync.py builds an obsidian://open?vault=&file= URI for each source_paths entry, and picks a primary one (preferring a meeting/project/company page over a person page, since that's usually where the task's real context lives).
The Todoist adapter (.claude/hooks/adapters/todoist.cjs) now renders the task title as title and lists every referenced page as its own link in the description, alongside the existing sync-loop marker.

Caveats for a general fix

This assumes Obsidian usage — vault name is derived from the vault folder's name, which works but isn't configurable. Worth gating behind obsidian_mode (already tracked in user-profile.yaml) and/or generalizing for non-Obsidian vaults.
Only affects newly-created tasks — the Todoist adapter has no update operation, so tasks already synced before this fix keep their old plain-path format. Retrofitting existing tasks would need real update support.

Verified end-to-end against a live vault: clean title, correct link, click-through confirmed in the Todoist app.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions