Skip to content

Conversation

@chhoumann
Copy link
Owner

@chhoumann chhoumann commented Feb 1, 2026

Summary

  • resolve capture targets as folder vs file without requiring a trailing slash when the folder exists and no same-name file exists
  • include folder paths in Capture suggestions and clarify trailing '/' guidance in the UI
  • add ChoiceAbortError + notice when target file is missing and create-file is disabled, with coverage tests

Repro

  • Create a Capture choice, set Capture to = journals (folder exists), disable Create file if it doesn't exist
  • Run the choice

Testing

  • bun run test

Issues

Notes

  • Capture target resolution order is documented in-code; folder vs file ambiguity is resolved by preferring an existing folder only when no same-name .md file exists.

Open with Devin

Summary by CodeRabbit

  • Bug Fixes

    • Missing target files now abort with proper error notice instead of silently failing
    • Improved folder vs file path resolution when setting capture targets
  • New Features

    • Enhanced autocomplete suggestions for capture paths, including vault folders and existing files
    • Better support for folder path semantics using trailing slash notation
  • Tests

    • Added tests for missing target file error handling
    • Added tests for folder and file path resolution scenarios

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel
Copy link

vercel bot commented Feb 1, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
quickadd Ready Ready Preview Feb 1, 2026 2:33pm

@coderabbitai
Copy link

coderabbitai bot commented Feb 1, 2026

📝 Walkthrough

Walkthrough

The PR introduces a new ChoiceAbortError class and restructures capture target resolution logic in CaptureChoiceEngine to properly classify paths as vault, tag, folder, or file. It adds error handling for missing targets when file creation is disabled, enhances autocomplete suggestions with vault folders and existing markdown files, and includes tests for folder versus file resolution scenarios.

Changes

Cohort / File(s) Summary
Error Handling
src/errors/ChoiceAbortError.ts
New error class extending MacroAbortError for choice-related abort scenarios.
Engine Logic
src/engine/CaptureChoiceEngine.ts
Introduces resolveCaptureTarget method to classify capture paths; throws ChoiceAbortError when target file is missing and creation is disabled; replaces ad-hoc parsing with structured dispatch for vault, tag, folder, and file paths.
Engine Tests
src/engine/CaptureChoiceEngine.notice.test.ts, src/engine/CaptureChoiceEngine.selection.test.ts
Adds test for notice emission when target file is missing with creation disabled; adds folder versus file resolution tests with different folder existence scenarios; imports isFolder and mocks getAbstractFileByPath.
UI Suggestions
src/gui/ChoiceBuilder/captureChoiceBuilder.ts
Imports getAllFolderPathsInVault; updates descriptions for vault-relative paths and folder semantics; expands autocomplete suggestions to include all vault folder paths and existing markdown files with deduplication via Set.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • #1017: Modifies CaptureChoiceEngine and related tests with changes to templater and file-opening flows that may interact with the same code paths as this PR.

Suggested labels

released

Poem

🐰 A choice engine polished with care,
Folders and files now resolve fair,
When targets are missing, we abort with grace,
And suggestions bloom all over the place!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main changes: improving capture folder resolution and adding a missing-file notice when create is disabled.
Linked Issues check ✅ Passed The PR addresses issue #729 by handling missing target files when 'Create file if it doesn't exist' is disabled and resolving folder paths correctly.
Out of Scope Changes check ✅ Passed All changes align with the stated objectives: adding ChoiceAbortError, improving folder resolution logic, expanding UI suggestions, and adding test coverage.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/issue-729-capture-folder

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Feb 1, 2026

Deploying quickadd with  Cloudflare Pages  Cloudflare Pages

Latest commit: c366fec
Status:⚡️  Build in progress...

View logs

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 4 additional flags.

Open in Devin Review

@chhoumann chhoumann merged commit c6cc64a into master Feb 1, 2026
4 of 5 checks passed
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.

[BUG] Cannot capture to file

2 participants