Context
Attachments default to Files/ (configurable in code via attachmentsFolder in src/utils/systemFolder.ts) but the Settings UI does not surface this. Some users prefer attachments/, _assets/, or whatever convention their Obsidian vault used — and currently they have to know the internal helper exists to override it.
Mirrors issue #27 (trash folder rename) — same shape, different field.
Where to look
src/utils/systemFolder.ts — attachmentsFolder helper with .get() / .set().
src/stores/settingsStore.ts — where the persisted field lives.
src/components/modals/SettingsModal.tsx — Settings → Vault section, near the trash settings.
src/utils/attachments.ts — saveAttachment reads attachmentsFolder.get() for new saves.
Acceptance criteria
Complexity
Small.
For first-time contributors
Read CONTRIBUTING.md. npm install, npm run dev. PR against dev. If you also tackle the rename-on-update case, mention it in the PR and we can keep both behind one shipped feature.
Context
Attachments default to
Files/(configurable in code viaattachmentsFolderinsrc/utils/systemFolder.ts) but the Settings UI does not surface this. Some users preferattachments/,_assets/, or whatever convention their Obsidian vault used — and currently they have to know the internal helper exists to override it.Mirrors issue #27 (trash folder rename) — same shape, different field.
Where to look
src/utils/systemFolder.ts—attachmentsFolderhelper with.get()/.set().src/stores/settingsStore.ts— where the persisted field lives.src/components/modals/SettingsModal.tsx— Settings → Vault section, near the trash settings.src/utils/attachments.ts—saveAttachmentreadsattachmentsFolder.get()for new saves.Acceptance criteria
Files.trashMode).Complexity
Small.
For first-time contributors
Read
CONTRIBUTING.md.npm install,npm run dev. PR againstdev. If you also tackle the rename-on-update case, mention it in the PR and we can keep both behind one shipped feature.