T-TJCU-vault-settings-ungated-open-note
State: planning/draft · Impact: high · Complexity: medium
Ship the feature to users: the two settings tabs leave the dev-features gate, the prototypes from the proposal PR become wired components, and sessions gain an Open button.
| Location | Role today |
|---|---|
apps/pumice/src-nuxt/app/components/SettingsPage.vue | Vault and Templates tabs behind useDevMode().showDevFeatures |
apps/pumice/src-nuxt/app/components/SettingsVault.vue | prototype from the proposal PR, props-driven |
apps/pumice/src-nuxt/app/components/VaultPicker.vue | prototype |
apps/pumice/src-nuxt/app/components/NoteWriteStatus.vue | prototype |
apps/pumice/src-nuxt/app/components/OpenNoteButton.vue | prototype |
apps/pumice/src-nuxt/app/components/TemplateEditor.vue | textarea plus <pre> preview |
apps/pumice/src-nuxt/app/components/RecentSessions.vue | optional OpenNoteButton per row from the proposal, unwired; tracked sessions already list here |
apps/pumice/src-nuxt/app/components/JournalScreen.vue | no post-submit action |
apps/pumice/src-nuxt/tests/e2e/capture-appearance.e2e.ts | passes { devFeatures: true } for the two tabs |
Proposed
Section titled “Proposed”SettingsPage mounts the wired SettingsVault and SettingsFormat unconditionally. Tabs follow
D-W3KP-pumice-profile-kinds-and-settings-layout: General, Profiles, Journal, Sounds, Vault,
Format, Data. SettingsFormat replaces SettingsTemplates: “Write as” at the top, then the
Properties table (rows, the tags and cssclasses switches, rename-all), body template and Bases
button for a note
per session, or the entry template and daily heading for the daily list. The Vault tab keeps
folder, switch, vault type, daily-note location, status and Advanced; in daily-list mode the
sessions folder and the daily-create switch are hidden, and the status row says “Entry written”
with Open on the daily note. TemplateEditor previews through MdViewer.
RecentSessions rows and the journal screen carry OpenNoteButton with a written indicator from
note_written_at. Vitest covers the new components. Live-app captures are refreshed and embedded in
the PR.
Approach
Section titled “Approach”- Wire store methods into the components; remove the gate.
MdViewerpreview inTemplateEditor.- Open buttons in
RecentSessionsandJournalScreen. - Vitest; update the capture spec; regenerate screenshots.
| Area | Note |
|---|---|
apps/pumice/src-nuxt/app/components/SettingsPage.vue | ungate, wiring |
apps/pumice/src-nuxt/app/components/SettingsVault.vue | wiring |
apps/pumice/src-nuxt/app/components/SettingsTemplates.vue | wiring |
apps/pumice/src-nuxt/app/components/TemplateEditor.vue | MdViewer preview |
apps/pumice/src-nuxt/app/components/RecentSessions.vue | open button |
apps/pumice/src-nuxt/app/components/JournalScreen.vue | open button |
apps/pumice/src-nuxt/tests/e2e/capture-appearance.e2e.ts | drop the flag; new captures |
apps/pumice/docs/screenshots/ | refreshed |
Acceptance criteria
Section titled “Acceptance criteria”- Release build shows Vault and Templates in settings.
- Switching the write mode on the Format tab swaps its body between the two sets of controls, covered by vitest.
- A row added or renamed on the Format tab appears in the preview; a duplicate or reserved key is refused inline.
- Screenshots for every new surface, light and dark, committed and embedded in a PR comment.
-
moon run pumice:checkandpumice:testgreen; vitest covers the four new components.
Out of scope
Section titled “Out of scope”- A markdown-rendered template preview; the preview stays plain text until
MdVieweris registered in the Storybook and app. - Notification action buttons (T-0MYM-completion-notification-open-note-action).
- Removing the dev-features gate from any tab other than Vault and Templates.