feat(settings): one-tap Siri shortcut install via iCloud share link - #13
Merged
Conversation
Adds a "Siri shortcut" card to the Settings page where the user pastes their published iCloud share URL. Once stored, the card renders an "Install Siri Shortcut on this iPhone" button that opens Apple Shortcuts with an "Add Shortcut" prompt. The URL lives in localStorage (under the existing prefs object, new `siriShortcutUrl: string | null` field) — purely client-side, zero server config, no env var. Validates that the URL points at icloud.com/shortcuts/ before showing the install button. Pairs with docs/shortcuts.md updates documenting both install paths (build from scratch vs install via iCloud) and a "sharing with fork users" note recommending the user replace their host with a `YOUR-QUICKLOGGER-HOST` placeholder before publishing the iCloud link, so installers do a one-time edit instead of inheriting the publisher's homelab URL. No new server endpoints, no breaking changes, additive only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
varunpan
enabled auto-merge (squash)
May 8, 2026 23:05
5 tasks
varunpan
added a commit
that referenced
this pull request
May 9, 2026
PR #13 added a Settings card where the user pasted an iCloud share URL and tapped to install. The framing implied "for future devices" — but iCloud already auto-syncs Shortcuts across all Apple devices on the same Apple ID, making the URL field redundant for the single-user case. The remaining real use case (sharing with a different Apple ID: fork users, family) doesn't justify the in-app UI for a tool with zero current fork users. Shifting that capability into docs only: how to publish an iCloud link from Shortcuts and share with someone who's not on your iCloud account. Reverts: - src/lib/client/prefs.ts — drop `siriShortcutUrl` field from Prefs + DEFAULT_PREFS - src/routes/settings/+page.svelte — drop the entire "Siri shortcut" section, the saveShortcutUrl() / isLikelyValidIcloudUrl() helpers, and their imports Updates: - docs/shortcuts.md — replace the "Two ways to install" section (which referenced the now-removed Settings card) with a single "Sharing a shortcut with someone else" subsection covering the iCloud-link share flow with the placeholder-host trick. Mentions upfront that iCloud auto-syncs to your own devices so no manual step is needed for personal portability. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
varunpan
added a commit
that referenced
this pull request
May 9, 2026
* revert(settings): remove Siri shortcut iCloud-link card PR #13 added a Settings card where the user pasted an iCloud share URL and tapped to install. The framing implied "for future devices" — but iCloud already auto-syncs Shortcuts across all Apple devices on the same Apple ID, making the URL field redundant for the single-user case. The remaining real use case (sharing with a different Apple ID: fork users, family) doesn't justify the in-app UI for a tool with zero current fork users. Shifting that capability into docs only: how to publish an iCloud link from Shortcuts and share with someone who's not on your iCloud account. Reverts: - src/lib/client/prefs.ts — drop `siriShortcutUrl` field from Prefs + DEFAULT_PREFS - src/routes/settings/+page.svelte — drop the entire "Siri shortcut" section, the saveShortcutUrl() / isLikelyValidIcloudUrl() helpers, and their imports Updates: - docs/shortcuts.md — replace the "Two ways to install" section (which referenced the now-removed Settings card) with a single "Sharing a shortcut with someone else" subsection covering the iCloud-link share flow with the placeholder-host trick. Mentions upfront that iCloud auto-syncs to your own devices so no manual step is needed for personal portability. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(shortcuts): honest framing for the iCloud links section The "Re-publishing iCloud links" intro said the links were for "future-you (or fork users) can install in one tap" — but iCloud already auto-syncs to all your own Apple devices, so that's misleading. The link is only useful for sharing across Apple IDs (fork users, family). Rewrites the intro to acknowledge iCloud auto-sync upfront and re-scopes the table's purpose to cross-Apple-ID sharing only. Adds a forward-pointer to the "Sharing a shortcut with someone else" section near the top of the doc for the placeholder-host trick. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
varunpan
added a commit
that referenced
this pull request
May 9, 2026
* revert(settings): remove Siri shortcut iCloud-link card PR #13 added a Settings card where the user pasted an iCloud share URL and tapped to install. The framing implied "for future devices" — but iCloud already auto-syncs Shortcuts across all Apple devices on the same Apple ID, making the URL field redundant for the single-user case. The remaining real use case (sharing with a different Apple ID: fork users, family) doesn't justify the in-app UI for a tool with zero current fork users. Shifting that capability into docs only: how to publish an iCloud link from Shortcuts and share with someone who's not on your iCloud account. Reverts: - src/lib/client/prefs.ts — drop `siriShortcutUrl` field from Prefs + DEFAULT_PREFS - src/routes/settings/+page.svelte — drop the entire "Siri shortcut" section, the saveShortcutUrl() / isLikelyValidIcloudUrl() helpers, and their imports Updates: - docs/shortcuts.md — replace the "Two ways to install" section (which referenced the now-removed Settings card) with a single "Sharing a shortcut with someone else" subsection covering the iCloud-link share flow with the placeholder-host trick. Mentions upfront that iCloud auto-syncs to your own devices so no manual step is needed for personal portability. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(shortcuts): honest framing for the iCloud links section The "Re-publishing iCloud links" intro said the links were for "future-you (or fork users) can install in one tap" — but iCloud already auto-syncs to all your own Apple devices, so that's misleading. The link is only useful for sharing across Apple IDs (fork users, family). Rewrites the intro to acknowledge iCloud auto-sync upfront and re-scopes the table's purpose to cross-Apple-ID sharing only. Adds a forward-pointer to the "Sharing a shortcut with someone else" section near the top of the doc for the placeholder-host trick. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(readme): mark v0.1.2 stable instead of "early" It's been daily-driven on the homelab through real fillups since the v0.1.2 release with no regressions. The "early" label was appropriate at v0.1.0 release; v0.1.2 has earned the stable label. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
varunpan
added a commit
that referenced
this pull request
May 9, 2026
* revert(settings): remove Siri shortcut iCloud-link card PR #13 added a Settings card where the user pasted an iCloud share URL and tapped to install. The framing implied "for future devices" — but iCloud already auto-syncs Shortcuts across all Apple devices on the same Apple ID, making the URL field redundant for the single-user case. The remaining real use case (sharing with a different Apple ID: fork users, family) doesn't justify the in-app UI for a tool with zero current fork users. Shifting that capability into docs only: how to publish an iCloud link from Shortcuts and share with someone who's not on your iCloud account. Reverts: - src/lib/client/prefs.ts — drop `siriShortcutUrl` field from Prefs + DEFAULT_PREFS - src/routes/settings/+page.svelte — drop the entire "Siri shortcut" section, the saveShortcutUrl() / isLikelyValidIcloudUrl() helpers, and their imports Updates: - docs/shortcuts.md — replace the "Two ways to install" section (which referenced the now-removed Settings card) with a single "Sharing a shortcut with someone else" subsection covering the iCloud-link share flow with the placeholder-host trick. Mentions upfront that iCloud auto-syncs to your own devices so no manual step is needed for personal portability. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(shortcuts): honest framing for the iCloud links section The "Re-publishing iCloud links" intro said the links were for "future-you (or fork users) can install in one tap" — but iCloud already auto-syncs to all your own Apple devices, so that's misleading. The link is only useful for sharing across Apple IDs (fork users, family). Rewrites the intro to acknowledge iCloud auto-sync upfront and re-scopes the table's purpose to cross-Apple-ID sharing only. Adds a forward-pointer to the "Sharing a shortcut with someone else" section near the top of the doc for the placeholder-host trick. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(readme): mark v0.1.2 stable instead of "early" It's been daily-driven on the homelab through real fillups since the v0.1.2 release with no regressions. The "early" label was appropriate at v0.1.0 release; v0.1.2 has earned the stable label. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * spec(v0.2.0): photo OCR (ollama + openrouter) + last-fillup card Design doc for the v0.2.0 feature pair brainstormed 2026-05-09: photo OCR for pump-display Volume + Cost extraction (optional, env-gated, ollama-or-openrouter or chained), and a compact last-fillup card on the form. Captures: architecture, file layout (flat — no new dirs, follows existing src/lib/server convention), data flow, error matrix, security (incl. prompt injection mitigations), env vars (with per-provider timeouts), audit log shape, frontend principles for the eventual frontend-design pass, testing strategy, doc updates, forward-compat for receipt OCR (v0.3.0), and a 4-phase build plan. Zero new npm dependencies — Canvas API for client-side resize, hand-written magic-byte sniff, hand-written schema validator, in-memory rate limiter extending the existing TtlCache pattern. Implementation plan happens in a new session via writing-plans. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
varunpan
added a commit
that referenced
this pull request
Jun 11, 2026
Review finding #13. .npmrc sets engine-strict=true but package.json had no engines field for it to gate on, so the flag enforced nothing: npm ci on an unsupported Node version proceeds silently and only fails later in a confusing way (e.g. the `import ... with { type: 'json' }` in vite.config.ts needs >=20.10). The project is firmly Node 22 (CI, Dockerfile, README), so pin that contract and let engine-strict actually reject an old runtime up front. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a Siri shortcut card to the Settings page where you paste an iCloud share link (the kind you get from Shortcuts app → Share → Copy iCloud Link). Once stored, the card renders an Install Siri Shortcut on this iPhone button that opens Apple Shortcuts with an "Add Shortcut" prompt.
siriShortcutUrl: string | nullon thePrefsinterface, defaultnull. localStorage only — zero server config.https://www.icloud.com/shortcuts/<id>before the install button shows. Mistyped URLs surface a friendly amber warning.docs/shortcuts.mdfor the build steps.docs/shortcuts.mdgains a "Two ways to install" section and a "Sharing a shortcut with fork users" subsection covering the placeholder-host pattern (publish withYOUR-QUICKLOGGER-HOST, installers edit once after install).This is additive — no breaking changes to existing pages or APIs.
Test plan
npm run lintclean (after adding the eslint-disable for the typed-routes rule on the external href)npm run check0 errors (6 pre-existing warnings)npm test60/60 passingnpm run buildsucceeds