Skip to content

fix(mobile): show restored player from the sidebar picker - #507

Merged
chhoumann merged 3 commits into
masterfrom
fix/mobile-view-blank
Oct 18, 2026
Merged

chhoumann merged 3 commits into
masterfrom
fix/mobile-view-blank

Conversation

@chhoumann

@chhoumann chhoumann commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

Summary

Selecting Podcast Player in the mobile sidebar after a restart now shows its saved page. PodNotes mounts when Obsidian opens the view and relies on Obsidian's deferred views to keep hidden sidebars idle.

The removed gate came from #208's mitigation for a suspected startup loop on Obsidian 1.6.7. The supported minimum is now 1.13.0, and playback lives outside the view.

Fixes #505

Verification

  • npm run lint, npm run format:check, npm run typecheck, npm run build, npm run test, npm run test:tooling, and npm run docs:build pass on Node 22.23.2. 2,783 unit tests and 41 tooling tests pass.
  • npm run test:e2e passes all 242 tests on fresh isolated vaults with Obsidian 1.14.4 and 1.13.7 on Linux. The mobile journey uses 390 by 844 phone emulation. API playback and commands also passed a separate check with the restored view still deferred.
  • The picker journey fails on master, passes after the fix, and rejects a mutant that mounts only through activateView().
  • No measurable warm-reload slowdown across 40 loads per build. Plugin medians were 8.10 ms before and 8.05 ms after. Every load kept the view deferred with zero feed requests. Ranges, order reversal and loader diagnostics are in the evidence.
  • npm run size passes at 101,443 gzip bytes, 154 bytes below master and within the 103,000-byte budget.

Verification report · Raw logs, measurements and reproduction scripts

Before, blank sidebar · After, Library

Release impact

No migration. Settings, storage, the public API and URI handling are unchanged. Desktop still opens the view automatically only on a fresh install.

Docs at release

In docs/src/content/docs/mobile.md, under Open the player, add this sentence after the opening instructions:

If the player is already in your layout, swipe left from the right edge to open the sidebar, then select Podcast Player in its view picker.


Note

Medium Risk
Removes public IPodNotes view-mount hooks and changes when restored mobile leaves mount UI; behavior now depends on Obsidian deferred views instead of plugin gating.

Overview
Fixes #505 by dropping the mobile “dormant view” path that kept the Podcast Player from mounting until activateView() ran.

MainView now mounts the Svelte UI in onOpen whenever Obsidian opens the view, so a deferred restored leaf can show Library (and saved page state) after the user picks Podcast Player in the mobile sidebar picker—not only when the ribbon/command reveals the pane.

PodNotes no longer tracks a views set, podcastViewMountEnabled, or Platform-based startup gating. registerView returns a plain MainView; activateView only finds/creates the leaf and revealLeaf. IPodNotes drops shouldMountPodcastView / unregisterPodcastView.

Tests shed dormant-mount coverage and mocks; a new mobile e2e journey covers reload → deferred leaf → picker → Library UI with a single leaf.

Reviewed by Cursor Bugbot for commit f74d8a5. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix mobile restored Podcast Player view so it mounts when opened from sidebar picker

  • Removes the plugin-level views set and mobile podcastViewMountEnabled gating from PodNotes, along with the shouldMountPodcastView and unregisterPodcastView methods and the PodNotesViewRegistration interface in IPodNotes.ts.
  • MainView.onOpen in index.ts now mounts the Svelte PodcastView unconditionally when Obsidian opens the view, instead of staying dormant on mobile; the single-instance guard via podcastView remains.
  • PodNotes.activateView in main.ts now only finds or creates the right-sidebar leaf and reveals it, leaving mounting to the Obsidian view lifecycle.
  • Adds a mobile end-to-end journey in journey-mobile.test.ts that verifies a restored deferred sidebar leaf mounts its UI when picked from the view picker, without creating a duplicate leaf.
  • Risk: removes shouldMountPodcastView and unregisterPodcastView from the IPodNotes interface; any out-of-tree code or test doubles still providing these will now fail type checks, and restored mobile views mount immediately on open rather than staying deferred.

Macroscope summarized f74d8a5.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Deploying podnotes with  Cloudflare Pages  Cloudflare Pages

Latest commit: f74d8a5
Status: ✅  Deploy successful!
Preview URL: https://a0f0149b.podnotes.pages.dev
Branch Preview URL: https://fix-mobile-view-blank.podnotes.pages.dev

View logs

@chhoumann chhoumann linked an issue Oct 18, 2026 that may be closed by this pull request
@chhoumann
chhoumann merged commit 0515686 into master Oct 18, 2026
18 checks passed
@chhoumann
chhoumann deleted the fix/mobile-view-blank branch October 18, 2026 12:00
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.

PodNotes view is blank on mobile when opened from the sidebar

1 participant