Context. rules.ts already carries // TODO(post-v1): per-rule toggles.
Scope
settingsStore / userData/settings.json: add
wandRuleToggles: Record<ruleId, boolean>, defaulting every existing rule
id (including M17's new quote rule) to true if the field is absent —
this must be backward-compatible with settings files written before this
task existed.
- Settings view: new subsection listing each rule by its existing
name
field with a checkbox.
- The wand's invocation path filters
rules by the enabled ids before
folding — runRules/the wand transaction builder should only see enabled
rules.
- Confirm with Julia: does adding this optional field require bumping
SETTINGS_SCHEMA_VERSION per the project's schema-versioning convention
(../src/shared/schema.ts), or is an additive/backward-compatible field
exempt? Don't guess — ask before shipping.
Acceptance criteria
Context.
rules.tsalready carries// TODO(post-v1): per-rule toggles.Scope
settingsStore/userData/settings.json: addwandRuleToggles: Record<ruleId, boolean>, defaulting every existing ruleid (including M17's new quote rule) to
trueif the field is absent —this must be backward-compatible with settings files written before this
task existed.
namefield with a checkbox.
rulesby the enabled ids beforefolding —
runRules/the wand transaction builder should only see enabledrules.
SETTINGS_SCHEMA_VERSIONper the project's schema-versioning convention(
../src/shared/schema.ts), or is an additive/backward-compatible fieldexempt? Don't guess — ask before shipping.
Acceptance criteria
others still apply.
wandRuleTogglesfield behaves identically to current (all-rules-on) behavior.