Immich-Go 0.32.0-bridge.6
Based on upstream v0.32.0, release source archive commit
3b8a9a071f68ac47f7f055ed8186c829de0d150b (checksum pinned in Dockerfile).
Modified 2026-10-24, 2026-10-25 and 2026-10-31 for Immich Bridge distribution.
BridgeReport exports only aggregate numeric counters and allowlisted skip codes.
The skip classifier uses final tracker state and the audited overloaded event
ProcessedMetadataUpdated in BetterOnServer, with distinct unknown/unmapped codes.
BridgeAffectedItems streams every final discard as NDJSON with its complete file
identity, event and reason code. A counted completion marker detects incomplete
transfers. No item/count/byte sample is applied; no full-library copy or sort is
allocated. It never writes private identities or free-form reasons to the public
aggregate report. Tests audit pinned discard call sites, context and complete
retention beyond the previous sample size.
Module files update x/text to v0.43.0, x/sys to v0.49.0, and selected x/sync to
v0.24.0 (Go directive 1.26.0). Built using Go 1.27.3, CGO disabled, timetzdata
and trimpath, with a distinct 0.32.0-bridge.6 version label. Original AGPL-3.0
license remains applicable. See Dockerfile importer and importer-source targets
for exact build/source. Bridge captures the actual DEBUG/JSON log through a private
pipe and authenticated per-attempt connection; the app redacts before storage.

The resumeJobs completion helper now returns immediately when
PauseImmichBackgroundJobs is false. Upstream v0.32.0 otherwise attempts to resume
jobs unconditionally, producing a blocked job-control ERROR at Bridge despite the
explicit false flag and zero asset errors. This guard respects that flag without
allowing any additional server operation or hiding any log severity.

AlreadyProcessed assets now retain the matched destination ID so album and stack
handling can reference the existing photo instead of an empty ID.
The upload group hook now forms stacks only from distinct nonempty destination
asset IDs, keeping the selected cover first when available. A group collapsing
to fewer than two destination assets is a warning and makes no stack request;
uploaded/existing photos remain intact. Genuine stack API failures remain ERROR.
Stacking events are recorded only after successful creation (or dry-run success).
The helper, regression tests and exact upstream hook patch are maintained in
deploy/importer/bridge_stacks*. A fresh preview is required after installing the
updated importer; no stored attempt status or import admission check is bypassed.

Modified 2026-11-01: when include-unmatched is false, the Google Photos
adapter now records each unmatched media entry as DiscardedFiltered at the
exclusion decision. These intentional exclusions appear as EXCLUDED_BY_OPTIONS
in aggregate reports and private affected-item details, including original
tracked byte counts. When enabled, unmatched media still enters processing.
No generic pending-to-skipped conversion, finalization override or Bridge import
admission exception is applied. Genuine unfinished/error states remain blocking.
The exact upstream patch is deploy/importer/bridge_unmatched.patch.
