Skip to content

v2.9.0 — consistency pass

Choose a tag to compare

@kiefeng kiefeng released this 23 Oct 00:42
· 4 commits to master since this release

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 parses memory.md back 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, and lan_forget behave alike and the profile cannot resurrect the fact.
  • Settings API allowlist matches the settings — added maxManualBytes, maxEntryChars, maxPinnedEntryChars, journalPendingDays, journalPendingMax; removed unused autoOrganize / 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 ifMatch protection.
  • Docs and storefront — settings screenshot regenerated for the six-tab UI; the obsolete panel contract moved to docs/legacy/; lan_recall description 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.