- Add hasContiguousJournalCoverageThroughFloor to check if current
batchJournal contiguously covers back through the old retained floor
- Add reconcileManualBackupBatchJournalCoverage that clears stale
coverage when actual journals have bridged the gap
- Self-clean during normalizeGraphRuntimeState (load-time) and
appendBatchJournal (write-time)
- findJournalRecoveryPoint now uses reconciled coverage so stale
manual backup floors no longer block valid reverse-journal recovery
- Add regression tests for gap-not-yet-bridged and bridged scenarios
- Add extractActionMode setting (default: pending) to settings-defaults.js
- Panel refresh restores dropdown from settings.extractActionMode
- Dropdown change event persists selection via _patchSettings
- Extract button reads settings as fallback when DOM value missing
- Add default value assertion in tests/default-settings.mjs