Skip to content

feat: surface startup restore failures with an aggregated notice - #24

Merged
luoxuanzao merged 1 commit into
mainfrom
feat/restore-failure-notices
Aug 17, 2026
Merged

feat: surface startup restore failures with an aggregated notice#24
luoxuanzao merged 1 commit into
mainfrom
feat/restore-failure-notices

Conversation

@luoxuanzao

Copy link
Copy Markdown
Member

Summary

  • Startup session restore no longer fails silently: a windowed diagnostics
    collector (src/core/diagnostics/restore-report.ts) gathers issues from
    four restore stages — tab layout read, per-tab rebuild, session metadata,
    and conversation history hydration — and the chat view surfaces a single
    aggregated notice (10s, localized in all 10 languages) when anything could
    not be restored. Every issue is also logged to the developer console with
    a [qoderian-restore:<stage>] prefix.
  • Users previously saw missing tabs or empty conversations with no
    explanation when persisted data was corrupt or unreadable. The notice now
    tells them something went wrong and where to look, while the restore flow
    stays best-effort: first-run vaults with no data never trigger a notice,
    and duplicate issues (the layout is read twice on startup) are deduplicated
    so the issue count reflects real root causes.

Verification

  • npm run typecheck
  • npm run lint
  • npm run test (3325 passed, including 17 new diagnostics tests)
  • npm run build
  • npm run release:check
  • npm run audit:prod
  • Tested affected qodercli behavior against a real CLI when applicable —
    manually verified in a real Obsidian vault: corrupting an active tab's
    session meta file produced the aggregated notice on reload, and restoring
    the file made the notice disappear on the next reload.

Safety

  • No credentials, private vault content, internal URLs, or personal paths are included
  • User-visible changes are documented in CHANGELOG.md

Add restore diagnostics: a windowed collector gathers issues from the
four restore stages (layout, tab, metadata, history) during startup and
the chat view drains them into a single aggregated notice. Each issue is
also logged to the developer console with a stage prefix.

- Report layout read failures, per-tab rebuild failures, session
  metadata read failures, and history hydration gaps instead of failing
  silently; first-run vaults with no data never report.
- Deduplicate repeated issues so the notice count reflects real root
  causes, and always close the report window from the restore path.
- Add localized notice copy in all ten languages and CHANGELOG entry.

Co-authored-by: QoderAI (Qwen 3.8 Max) <qoder_ai@qoder.com>
@luoxuanzao
luoxuanzao merged commit b6a70fc into main Aug 17, 2026
10 checks passed
@luoxuanzao
luoxuanzao deleted the feat/restore-failure-notices branch August 17, 2026 02:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant