Skip to content

[codex] Configure canonical TaskNote path generation#1867

Draft
johnyoonh wants to merge 2 commits intocallumalpass:mainfrom
johnyoonh:codex/configurable-task-title-formatting
Draft

[codex] Configure canonical TaskNote path generation#1867
johnyoonh wants to merge 2 commits intocallumalpass:mainfrom
johnyoonh:codex/configurable-task-title-formatting

Conversation

@johnyoonh
Copy link
Copy Markdown

@johnyoonh johnyoonh commented May 5, 2026

Summary

This PR fixes inline TaskNote conversion when a task already contains a canonical [[...|note]] link, then adds configuration for the generated canonical path style.

What changed

  • Use existing canonical [[...|note]] links as the target TaskNote path during inline conversion.
  • Preserve the existing checkbox/task title during NLP parsing, while still allowing NLP to enrich metadata.
  • Add an existing-TaskNote conflict setting for inline conversion: ask, reuse existing path, or create a unique copy.
  • Add an ask-with-diff modal so users can choose whether to keep existing or incoming metadata/body content.
  • Add configurable title-derived filename styles, including lowercase snake_case slugs.
  • Add configurable TaskForge/source-list folder styling, including Title Case folders.
  • Configure the test vault for lowercase snake_case filenames and Title Case source folders.

Why

Previously, canonical inline links could be ignored or regenerated from parsed/NLP text, which produced incorrect paths such as skill review duration.md from Monthly skill review. When the expected file already existed, conversion could fail with File already exists or create a duplicate path instead of offering a deliberate reuse path.

Validation

  • npm test -- --runTestsByPath tests/unit/utils/taskTitleFormatter.test.ts tests/unit/utils/filenameGenerator.title-style.test.ts tests/unit/services/InstantTaskConvertService.test.ts tests/unit/services/TaskService.test.ts
  • npm run typecheck
  • npm run build:test
  • /Applications/Obsidian.app/Contents/MacOS/obsidian-cli plugin:reload id=tasknotes vault=test
  • /Applications/Obsidian.app/Contents/MacOS/obsidian-cli dev:errors vault=test

dev:errors only reported the pre-existing indexing error for 99_meta/reminders/lists/automation.md.

@johnyoonh johnyoonh changed the title [codex] Add configurable task title formatting [codex] Configure canonical TaskNote path generation May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant