Repository navigation
Releases: lukeet332/immich-shared-albums
Releases · lukeet332/immich-shared-albums
Release list
v1.3.1
v1.3.0
1.3.0 (2026-10-06)
Features
- reunite: either half of a reunion can undo it (#199) (4953a11)
- ui: an album's name opens that album (#188) (50e00a5)
- ui: one Material design system, and native switches everywhere (#182) (1f0acb2)
Bug Fixes
- comments: wake the comment lane for a relayed comment, and pin the one-mirror rule (#194) (53bcbfb)
- sync: an album permission changed in Immich follows the album's chain (#192) (719999b)
- sync: an un-reunified share comes back at once, and without a stale reunion claim (#197) (6c84bf7)
- sync: un-reunite gives the inviter's album back, not just the adopter's (#198) (93149df)
- ui: the snackbar fills the gutter, swipes away, and answers every action (#184) (85e279e)
- wake the lane a change makes stale, so shares, joins and uploads land in seconds (#193) (d4990ab)
v1.2.2
1.2.2 (2026-10-01)
Bug Fixes
- a declared hostname travels with the link, so a DDNS move keeps it reachable (#176) (343c24f)
- a withdrawal is confirmed before the mirror dies (#174) (9dbca1f)
- keep the stored addresses behind a declared one, and dial one peer at a time (#178) (8f54d9d)
- refresh a stored hint from the address that answers (#180) (2396cbd)
v1.2.1
v1.2.0
1.2.0 (2026-09-28)
Features
- bind the peer transport to a stable UDP port (#71) (befe01e)
- carry the reunified category with the share (#95) (de458ac)
- cut the e2e suite from 499s to ~320s by waiting on convergence, not clocks (#55) (c83b178)
- failed purges are retried, and a dead dependency no longer reads as a bad request (#157) (45d26b1)
- give the personal panel a heading and a way out (#87) (760a8f8)
- invite and accept a reunion from the panel (#113) (6a537fd)
- match two people's split albums by name, owner and dates (#81) (1daa7f7)
- nudges name their channel, and the timers become the backstop (#160) (f676e0a)
- one root URL that opens the right panel (#88) (cd32f9a)
- per-user panel scaffold (/me) — keystone for reunification (#49) (c756ba6)
- port the sidecar to Rust and ship it by default (6ee6a2e)
- publish a person's owned albums so a linked peer can match them (#82) (4e79bdd)
- record that an album is reunified, and never delete an adopted one (#93) (f05ed7b)
- reunite partial albums from the panel (#102) (0a2496c)
- seed an adopted album's ledger, so none of it is offered back (#91) (0b90c1e)
- show possible reunions in the per-user panel (#83) (b042ee5)
- tell a person whether it worked (#115) (92d8842)
- the admin panel asks through the same dialog, and says less (#118) (817a69a)
- the reunion flow is nudge-driven, and open panels follow it (#128) (beff0cc)
- the wire oracle is a Rust example (02faa3e)
Bug Fixes
- a person's stand-in keeps their own face, and our bot names itself (#125) (fa9d926)
- a photo Immich has not measured is never mirrored as a square stub (#130) (2458939)
- a relayed photo is attributed by the person's id on their own server (#161) (1b7813c)
- a reunion hands the other half over at once, not at the next sweep (#129) (658b994)
- a reunion merges both ways, instead of only into the side that accepted (#123) (7f779ca)
- answer a proxied rejection instead of hanging the caller (#109) (f9a68a3)
- e2e: reset sidecar state properly, and fail fast when the rig is dirty (#57) (8a2d30b)
- exit on SIGTERM so a container stop does not wait out its grace period (#60) (700283c)
- give a peer dial its own 10s budget so an offline owner fails closed fast (#64) (f0ada02)
- hand Immich the bare share path, so the framed album keeps its metadata (#106) (a5d31bb)
- name the album-reunion problem in the reader's terms (#86) (85d1e76)
- never offer a photo whose owner the user cache has not seen (#73) (082190a)
- per-user panel reads the caller's albums as the caller (#78) (e197972)
- record an accept-flow reunion as reunified, and stop offering one already made (#108) (982cb7b)
- refuse to provision a utility account for a server being unlinked (#72) (2592890)
- retire a mapping whose peer keeps answering 404, and stop logging every retry (#74) (3bb6ac8)
- show one reunion row per pairing a person can tell apart (#112) (e382689)
- stop matching against a peer's albums once it withdraws them (#107) (1465ba0)
- stub bytes are served only to callers Immich itself would serve (#156) (a8523e2)
- tell peers the address to dial when the relay is off (#158) (bc820ee)
- the album's trail records an un-reunite (#126) (77fdafa)
- the installer proves the key, names its volume, and tells the truth about its...
v1.1.1
v1.1.0
Immutable
release. Only release title and notes can be modified.
What's Changed
- feat: admin toggle to store shared assets locally by @lukeet332 in #45
- ci: skip-github-release so release-please stops failing on v1.0.0 by @lukeet332 in #46
- chore(main): release 1.1.0 by @lukeet332 in #47
Full Changelog: v1.0.2...v1.1.0
v1.0.2
Immutable
release. Only release title and notes can be modified.
What's Changed
- fix: mirror stubs carry the origin aspect ratio (was 1x1) by @lukeet332 in #43
- fix: bot accounts use .internal email domain (was .invalid) by @lukeet332 in #42
- chore: release 1.0.2 by @lukeet332 in #44
Full Changelog: v1.0.1...v1.0.2
v1.0.1
Immutable
release. Only release title and notes can be modified.
What's Changed
- ci: stop the release job racing release-please to create the release by @lukeet332 in #8
- feat: carry websocket upgrades so the sidecar can front Immich alone by @lukeet332 in #9
- feat!: rename the route prefix to /immich-shared-albums by @lukeet332 in #11
- feat: share albums by inviting a household in Immich's own picker by @lukeet332 in #12
- feat!: share albums per person, and manage server links from the panel by @lukeet332 in #13
- chore: add a fast gate — unit tests, lint, prettier, cycles, on save and in CI by @lukeet332 in #14
- fix: enable strictNullChecks, and fix the two real bugs it found by @lukeet332 in #15
- chore!: clear the v1 housekeeping while the clean-break window is open by @lukeet332 in #16
- feat!: one account per remote person, and stop the sidecar overruling a human by @lukeet332 in #17
- feat: link two servers on their own, instead of via an album share link by @lukeet332 in #18
- refactor!: the two front-end pages become Preact TSX, and one table says what exists by @lukeet332 in #19
- fix(e2e): assert the mirror-owner account by id, not by its display name by @lukeet332 in #21
- docs: project conventions, the two bedrock docs, and the fast gate enforced in code by @lukeet332 in #20
- feat!: the share page becomes ours — native album framed under the join card by @lukeet332 in #25
- feat!: all peer traffic moves to iroh — dial keys, not URLs by @lukeet332 in #26
- chore(main): release 1.0.0 by @lukeet332 in #10
- revert: the 1.0.0 release — the v1 breaking window stays open by @lukeet332 in #28
- feat: the admin key shrinks from 'all' to sixteen enumerated permissions by @lukeet332 in #27
- docs: rewrite the README — Immich's shape, a human's voice by @lukeet332 in #31
- docs: the linked docs catch up with iroh by @lukeet332 in #32
- feat(install): IPP option, proxy choice, installer accuracy sweep by @lukeet332 in #35
- fix: e2e flakes — duplicate-stub race, unlink-survivor miscount by @lukeet332 in #34
- docs: hardening tiers, and hosting guidance delegates to Immich's docs by @lukeet332 in #33
- feat(state)!: schema v1 — real tables, versioned, raw keys, honest names by @lukeet332 in #36
- feat(config)!: the ISA_ env contract — one namespace, strict parsing by @lukeet332 in #37
- feat(p2p)!: wire-contract completions — negotiation, codes, 410, hardening by @lukeet332 in #38
- feat: one-show pairing, configurable TTL, vanilla-Immich parity (iron rule 8) by @lukeet332 in #39
- feat(naming): don't stack 'server' when a household is already named one by @lukeet332 in #40
- chore(main): release 1.0.0 by @lukeet332 in #30
- chore: release 1.0.1 by @lukeet332 in #41
Full Changelog: v0.5.0...v1.0.1