Skip to content

Commit 135c32c

Browse files
committed
Release 0.6.1: Web Store rejection fixes + new features
Web Store rejection fixes (resubmission): - Drop unused "scripting" permission from manifest. - Drop omnibox keyword + handlers (the "im" + space shortcut) to satisfy the single-purpose / no-search-experience rule. Popup smart search remains the primary search surface. - Drop the minimal-mode Google search bar from the new-tab fallback page; minimal mode is now a clock-only view. - Update description, README, store listing, and dev docs to reflect the omnibox removal. New features in this release: - Video preview: play overlay + duration badge on every video card; click for an inline mini-player; "expand" button pops out a dedicated 960x600 player window. - Filter pills (All / Photos / Videos) on the popup gallery. - "Updated to vX.Y.Z" banner that surfaces once after a browser auto-update, linking to the matching GitHub release. - "Open in Maps" quick action: a fourth icon next to Share / Download. Choose Google Maps or Apple Maps (macOS only) in Settings - Features. Only lat/lng leave the device. - "Found a bug?" card on the About page opens a consent modal that previews the four system fields (extension version, browser, OS, Immich version) it will prefill into a GitHub issue. API key and server URL are explicitly excluded. - Settings - Connection now lists the required API key scopes with click-to-copy, mirroring the welcome page so users who skipped onboarding get the same guidance. - Tab rename: "Recent" -> "Saved" (matches what the tab actually shows: items saved via the extension). - Popup tab bar redesigned as a segmented pill control with icons. - "Show Immich matches on Google" defaults to off for new installs (existing users keep their setting). Privacy policy updated with new "Maps integration" and "Bug reporting" sections, scripting permission removed from the required-permissions table, last-updated date refreshed.
1 parent 42bb3b1 commit 135c32c

16 files changed

Lines changed: 760 additions & 146 deletions

DEVELOPMENT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Internal notes for building, releasing, and publishing Immich Companion. Not use
66

77
```
88
manifest.json MV3 manifest
9-
background.js service worker — context menus, omnibox, alarms, badge,
9+
background.js service worker — context menus, alarms, badge,
1010
message proxy for content scripts
1111
content.js / content.css runs on every page — toast UI, share-album toolbar,
1212
Google search-result card injection

PRIVACY.md

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Privacy Policy — Immich Companion
22

3-
_Last updated: 2026-04-25_
3+
_Last updated: 2026-04-29_
44

55
Immich Companion is a browser extension that connects to a self-hosted [Immich](https://immich.app) server you control. It does not have a backend service. All network traffic goes to one place: your Immich server.
66

@@ -30,7 +30,7 @@ The extension talks **only to the Immich server URL you configure**. Specificall
3030

3131
## Google search integration
3232

33-
The extension has an optional feature ("Show Immich matches on Google", on by default, toggleable in Settings → Features) that displays an inline result card on Google search pages with photos from your library that match the query.
33+
The extension has an optional feature ("Show Immich matches on Google", off by default, toggleable in Settings → Features) that displays an inline result card on Google search pages with photos from your library that match the query.
3434

3535
**No Immich data ever travels through Google's network.** When you search Google, the extension's content script reads your query from the URL and asks the extension's background service worker to perform a CLIP smart search against your Immich server. The HTTP request goes directly from the background service worker to your Immich server — Google's servers are not involved.
3636

@@ -51,6 +51,47 @@ The extension has an optional feature ("Show Immich matches on Google", on by de
5151

5252
To turn the feature off entirely (no requests fired on Google pages, no DOM injection): toggle **Show Immich matches on Google** off in Settings → Features.
5353

54+
## Maps integration
55+
56+
The extension has an optional feature ("Open in Maps", configurable in Settings → Features) that adds a map-pin button to each photo card in the popup. Clicking it opens the photo's GPS location in a third-party maps app. There are three settings:
57+
58+
- **Off** — no button is rendered. No data is transmitted.
59+
- **Google Maps** (default) — clicking the button opens `https://www.google.com/maps?q=<lat>,<lng>` in a new browser tab.
60+
- **Apple Maps** (macOS only) — clicking the button hands `maps://?q=<lat>,<lng>` to the OS, which launches the macOS Maps.app. The option is disabled on operating systems that have no handler for the `maps://` scheme.
61+
62+
Only one provider can be active at a time.
63+
64+
**What is sent to the third-party app/service when you click the button:**
65+
66+
- The latitude and longitude of the selected photo, encoded into the URL. This is a navigation (browser tab open or OS handoff), not an API call. The third party sees the request the same way it would if you'd typed the URL by hand.
67+
68+
**What is *not* sent:**
69+
70+
- The image itself, the thumbnail, the filename, the asset UUID, your Immich server URL, or your API key.
71+
- No metadata beyond the two numbers in the URL.
72+
73+
The button only appears for photos that actually have GPS coordinates in their EXIF data. If a photo has no location, the click surfaces a brief "No GPS info" error and nothing is transmitted. To turn the feature off entirely (no button rendered, no data ever sent): set **Open in Maps** to **Off** in Settings → Features.
74+
75+
## Bug reporting (opt-in, per-click)
76+
77+
The About section in Settings has a "Found a bug?" card that, when clicked, opens a consent modal showing exactly which fields will be added to a prefilled GitHub issue:
78+
79+
- Extension version (read from the bundled manifest).
80+
- Browser name and version (read from `navigator.userAgentData` or the User-Agent string).
81+
- Operating system (read from `navigator.userAgentData.platform` plus a high-entropy version pull when the browser exposes it).
82+
- Immich server version — only included when you have a server configured. The extension makes a single `GET /api/server/version` call to *your own Immich server* (using your stored API key), parses the response, and uses only the resulting `major.minor.patch` string. Nothing else from the response is read.
83+
84+
The consent modal previews these values before anything is sent. The information is transmitted only when you click **Continue** — at which point a new tab is opened to GitHub's prefilled issue form. You can edit any field on the GitHub form, and submitting the issue is a separate, deliberate action.
85+
86+
**What the bug-report flow never includes:**
87+
88+
- Your Immich API key.
89+
- Your Immich server URL or hostname.
90+
- Any photo, video, thumbnail, filename, asset id, search history, or upload history.
91+
- Any data beyond the four lines listed above.
92+
93+
The modal also offers a "Continue without info" button that opens the standard GitHub issue picker without any prefill.
94+
5495
## Required browser permissions
5596

5697
| Permission | Reason |
@@ -59,7 +100,7 @@ To turn the feature off entirely (no requests fired on Google pages, no DOM inje
59100
| `storage` | To save your settings locally. |
60101
| `contextMenus` | To add the right-click "Save to Immich" entries. |
61102
| `notifications` | To show desktop notifications when an upload finishes. |
62-
| `activeTab`, `scripting` | To render in-page upload toasts on the source tab. |
103+
| `activeTab` | To render in-page upload toasts on the source tab. |
63104
| `alarms` | To periodically check whether the Immich server is reachable. |
64105
| `clipboardWrite` | To copy share links to your clipboard via the "Save & share" feature. |
65106

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<p align="center">
1212
<strong>A community browser extension for self-hosted <a href="https://immich.app">Immich</a>.</strong><br/>
13-
Save anything you see on the web, smart-search your library from the address bar, and turn every new tab into a memory.
13+
Save anything you see on the web, smart-search your library from the toolbar popup, and turn every new tab into a memory.
1414
</p>
1515

1616
<p align="center">
@@ -28,8 +28,7 @@ Right-click any image or video on any website to upload it directly to your Immi
2828
One click uploads the asset, creates a public Immich share link, and copies it to your clipboard — ready to paste anywhere.
2929

3030
### Smart search, everywhere
31-
- **Address bar** — type `im` + space + a query for live CLIP-powered results.
32-
- **Toolbar popup** — phone-gallery-style timeline grouped by month, with sticky date headers and a year scrubber on the right edge. Same view for both your most recent items and search results, with three quick actions on every photo (copy to clipboard, share link, download original).
31+
- **Toolbar popup** — phone-gallery-style timeline grouped by month, with sticky date headers and a year scrubber on the right edge. Same view for both your most recent items and search results, with quick actions on every photo (copy to clipboard, share link, download original, open in maps).
3332
- **Google search results** — when you Google something, photos in your library that match the query appear in a card at the top of the results. The search runs entirely between your browser and your Immich; nothing is sent to Google.
3433

3534
### New tab as a memory feed

0 commit comments

Comments
 (0)