fix: resolve Obsidian marketplace review findings - #324
Conversation
Adopt the Obsidian 1.13 APIs directly, remove vault-wide note enumeration, modernize settings and deletion behavior, and normalize async errors. Add live Obsidian coverage for settings transfer, streamed downloads, scoped note lookup, clipboard sharing, and rejection handling.
Deploying podnotes with
|
| Latest commit: |
1c6e068
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://da2a256a.podnotes.pages.dev |
| Branch Preview URL: | https://fix-marketplace-review-findi.podnotes.pages.dev |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1c6e068c6c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } catch (error) { | ||
| throw downloadRequestError(error); |
There was a problem hiding this comment.
Preserve probe validation errors
When the initial response exceeds the 2 GiB limit or advertises an oversized total, probeAndFetchFirstChunk intentionally throws a descriptive Error, but this catch passes it to downloadRequestError, which replaces every non-NetworkError with the generic “Failed to download episode.” Users therefore lose the actionable size-limit explanation that this path previously surfaced; preserve existing Error instances or only translate actual network failures.
Useful? React with 👍 / 👎.
| "Import preferences", | ||
| "Export preferences", |
There was a problem hiding this comment.
Add the displayed setting names to the search index
Because the tab exposes one declarative definition, Obsidian can search only its name and this alias list rather than the Setting controls created inside render. These aliases say “Import preferences” and “Export preferences,” while the displayed controls are named “Import settings” and “Export settings,” and “Include API keys” is omitted entirely, so searching for those visible labels produces no PodNotes result. Index every displayed control name, including these three.
Useful? React with 👍 / 👎.
Resolve the automated marketplace review failures for PodNotes 2.20.2 by adopting the supported Obsidian APIs directly instead of preserving compatibility shims for older hosts.
This removes vault-wide note enumeration in favor of inspecting only the expected folder, migrates settings to the declarative and searchable settings API, replaces deprecated DOM/settings/deletion APIs, removes unnecessary assertions, and normalizes promise rejection reasons through one shared helper. Episode downloads now use the bounded binary-append path guaranteed by the new compatibility floor.
manifest.jsonnow requires Obsidian 1.13.0. Publishedversions.jsonhistory is intentionally unchanged. Clipboard access also remains intentional because the user-invoked universal-link command copies its result to the clipboard.Verification completed:
npm run lintnpm run format:checknpm run typechecknpm run buildnpm run test -- --run- 1,152 tests across 78 filesuv run --with-requirements docs/requirements.txt mkdocs build -f docs/mkdocs.yml -d siteFocused review areas are the declarative settings render lifecycle and the raised minimum Obsidian version that lets the download path rely on
appendBinarywithout a fallback.