Repository navigation
Ask 18 settings questions instead of 29 - #18
Merged
Merged
Conversation
Several settings turned out to be one question split across several controls, and one pair the code could not even tell apart. On save replaces "Live check on save / open" and "Fix format issues on save": both gated the same handler, so it was always a ladder — do nothing, check, check and fix — rather than two independent axes. The old name also promised something it never had: opening a note was always validated unconditionally, and it must be, because the report pane's active-note section reads that verdict and would otherwise go stale behind a tab. Incomplete index.md replaces "Auto-generate index.md", "Generate index.md on startup", and "Report index gaps". Writing and reporting are answers to one question — what to do about a folder whose listing is missing — which the old layout left the reader to work out. And "Generate index.md on startup" did nothing at all with auto-generation off: it was only ever read as autoGenerateIndex && generateIndexOnStartup. Warn about missing fields replaces two toggles and is now per field, so a vault names what it wants warned about instead of answering the same judgment four times. This one needs storage: the field list can't be derived from the old pair, so loadSettings maps a saved vault forward. Portent's four check toggles and five field-name boxes become one row each. Rebuild existing index.md and Subdirectory description section stay independent, and stay live in every index mode, because both Generate/refresh index.md commands write regardless of the mode — greying them out would hide two live controls, one of them destructive. Loading now copies only keys that still exist, so warnBrokenLinks (which had no read sites anywhere), checkReservedFiles, and promptVersionBumpOnMigrate stop being written back into data.json on every save and age out of the vault. Closes #17 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #17.
Several settings turned out to be one question split across several controls, and one pair the code could not even tell apart.
What merged
title,description,generated,tagstype,lifecycle,belongs_to,related_tostatus=state, belongs_to=parentTwo of these fix real defects rather than only tidying the tab:
autoGenerateIndex && generateIndexOnStartup, so it was a rung of a ladder presented as an independent toggle.What stayed separate
Rebuild existing index.md and Subdirectory description section stay independent rows, and stay live in every index mode — including Ignore — because both Generate/refresh index.md commands write regardless of the mode. Greying them out would hide two live controls, one of them destructive.
Storage
Four of the five merges are presentation-only: the merged control reads and writes the same underlying booleans, so nothing in an existing
data.jsonneeds migrating.Warn about missing fields is the exception. A per-field list cannot be backed by the old two booleans, so it is a new stored field, and
loadSettings()derives it once for a vault saved before the change:warnRecommendedFields !== falsecontributestitle, description, generated, andwarnTagsField === trueaddstags. (I said in issue #17 that the whole consolidation was presentation-only; that was wrong for this one row.)The one combination no longer expressible is generating indexes and reporting gaps, which now reads as generating. With generation on there is rarely a gap left to find.
Loading also now copies only keys that still exist in the defaults, so three settings that had no effect —
warnBrokenLinks(no read sites anywhere),checkReservedFiles, andpromptVersionBumpOnMigrate(both long gone from the source) — stop being written back intodata.jsonon every save and age out of the vault.Verification
No test framework in this repo, so: a throwaway harness drives the real
settingSpecs()through a fakeSetting, and the realonload()against a stub app.origin/maingives 6 passed, 14 failed.tsc --noEmitclean;main.jsrebuilt from the committed sources.🤖 Generated with Claude Code