Context
Issue #98 was fixed by PR #99 with a compatibility adapter that returns an empty getSettingDefinitions() result, keeping the existing imperative display() lifecycle active on Obsidian 1.13+.
This is intentionally a hotfix. The settings implementation should be cleaned up so the compatibility behavior is explicit, testable, and no longer depends on the temporary module split.
Improvement plan
Acceptance criteria
- The settings page renders and refreshes correctly on all supported Obsidian versions.
- No temporary compatibility adapter or duplicated settings module remains.
- Lifecycle and refresh behavior are covered by regression tests.
pnpm test, pnpm lint, and pnpm build pass.
Follow-up to #98 and PR #99.
Context
Issue #98 was fixed by PR #99 with a compatibility adapter that returns an empty
getSettingDefinitions()result, keeping the existing imperativedisplay()lifecycle active on Obsidian 1.13+.This is intentionally a hotfix. The settings implementation should be cleaned up so the compatibility behavior is explicit, testable, and no longer depends on the temporary module split.
Improvement plan
settings.ts/settings-implementation.tsadapter split.display()implementation and remove the declarative compatibility method entirely, orupdate()behavior.Settingtest mock so DOM assertions can distinguish framework markup from plugin-owned markup.Acceptance criteria
pnpm test,pnpm lint, andpnpm buildpass.Follow-up to #98 and PR #99.