Repository navigation
v2.9.0 — consistency pass
v2.9.0 — consistency pass
A focused pass over feature boundaries, settings, and the compile pipeline. No new memory layer.
Fixed
- Dead UI removed — the old single-page
SettingsPage(about 14 KB, iframe/panel links) was unreachable since the tabbed page landed. It is gone; only the six-tab settings page remains. - Manual profile edits survive —
readMemoryProfile()now parsesmemory.mdback into the four compiled sections. Editing the file by hand no longer lets the next compile or daily rollover overwrite it from a stale in-memory copy. - Deleting a manual memory is consistent —
store.deleteMemory()now tombstones and removes same-text automatic facts, so the settings UI, HTTP API, andlan_forgetbehave alike and the profile cannot resurrect the fact. - Settings API allowlist matches the settings — added
maxManualBytes,maxEntryChars,maxPinnedEntryChars,journalPendingDays,journalPendingMax; removed unusedautoOrganize/organizeThreshold. - Idle compile actually fires — when a batch is below the count threshold, the compiler now reschedules for the moment the oldest item reaches
compileIdleMinutes, instead of checking once and never retrying. - Settings UI covers scheduling — the maintenance tab exposes the compile threshold and idle minutes, with
ifMatchprotection. - Docs and storefront — settings screenshot regenerated for the six-tab UI; the obsolete panel contract moved to
docs/legacy/;lan_recalldescription includes the automatic-fact layer.
Verification
68 node:test checks pass, including new cases for manual profile parsing, settings allowlist writes, manual-memory deletion tombstones, and idle rescheduling. node --check passes on the client and host modules.
Upgrade
Restart DSH Desktop to load the host changes; the settings page is a client bundle and updates on refresh after the host is current.