# Kopia changelog > Fast, encrypted, deduplicating backup. - Vendor: Kopia - Category: Productivity - Platforms: Desktop - Official site: https://kopia.io - Tracked by: What's New (https://whatsnew.fyi/product/kopia) - Harvested from: GitHub (kopia/kopia) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v0.23.1 - Date: 2026-06-16 - Version: v0.23.1 - Original notes: https://github.com/kopia/kopia/releases/tag/v0.23.1 - Permalink: https://whatsnew.fyi/product/kopia/releases/v0.23.1 - Labels: Platforms: Desktop - **fixed** — Fix a rare race condition that might lead to data loss ###### Summary Kopia v0.23.1. is a bugfix release which fixes a rare race condition which might lead to a data loss - an upgrade is recommended - See https://github.com/kopia/kopia/issues/5371 ###### Repository * Basic tests for getting epoch manager blob set ([#5418](https://github.com/kopia/kopia/issues/5418)) by Julio López * selection of next epoch to compact ([#5373](https://github.com/kopia/kopia/issues/5373)) by Julio López ###### Storage Providers * no_extra_providers build tag ([#5375](https://github.com/kopia/kopia/issues/5375)) by Julio López ###### Linter * annotations for other platforms ([#5413](https://github.com/kopia/kopia/issues/5413)) by Julio López ###### Graphical User Interface ### v0.23.0 - Date: 2026-05-12 - Version: v0.23.0 - Original notes: https://github.com/kopia/kopia/releases/tag/v0.23.0 - Permalink: https://whatsnew.fyi/product/kopia/releases/v0.23.0 - Labels: Platforms: Desktop - **security** — Restrict insecure unauthenticated server to loopback binds - **added** — Registration mechanism for storage providers - **added** — Hash benchmarking count - **changed** — Leverage x/term.IsTerminal - **fixed** — Handle potential conversion overflow when setting progress default - **removed** — Remove support for LZ4 - **fixed** — Retained log size double counting - **changed** — Make counters and size stats uint64 for consistency - **fixed** — Address potential conversion overflows - **fixed** — Do not include concatenated entries in log - **changed** — Move SafeLongFilename to ospath - **changed** — Add byte units to maintenance stat summaries - **fixed** — Sync index blob file before closing - **fixed** — Failures when exceeding Windows MAX_PATH - **fixed** — ErrorEntry policy resolution to use child policy - **fixed** — Inaccessible entry causes parent directory to be skipped - **changed** — Warn messages for extra storage providers - **changed** — Perform maximum of 2 attempts in PutBlobInPath - **fixed** — Cleanup temporary file on put blob failure - **fixed** — Sync file in FS provider to ensure data is persisted ###### Command-Line Interface * **[BREAKING CHANGE]** restrict insecure unauthenticated server to loopback binds ([#5354](https://github.com/kopia/kopia/issues/5354)) by Jarek Kowalski * registration mechanism for storage providers ([#5350](https://github.com/kopia/kopia/issues/5350)) by Julio López * hash benchmarking count ([#5312](https://github.com/kopia/kopia/issues/5312)) by Julio López * leverage x/term.IsTerminal ([#5308](https://github.com/kopia/kopia/issues/5308)) by Julio López * handle potential conversion overflow when setting progress default ([#5271](https://github.com/kopia/kopia/issues/5271)) by Julio López ###### KopiaUI App * skip htmlui tests that are timing out ([#5257](https://github.com/kopia/kopia/issues/5257)) by Julio López ###### General Improvements * bigmapbench profiling ([#5321](https://github.com/kopia/kopia/issues/5321)) by Julio López * clean nits ([#5313](https://github.com/kopia/kopia/issues/5313)) by Julio López * remove support for LZ4 ([#5296](https://github.com/kopia/kopia/issues/5296)) by Julio López * retained log size double counting ([#5302](https://github.com/kopia/kopia/issues/5302)) by Julio López * make counters and size stats uint64 for consistency ([#5262](https://github.com/kopia/kopia/issues/5262)) by Julio López * address potential conversion overflows ([#5266](https://github.com/kopia/kopia/issues/5266)) by Julio López * string nits ([#5265](https://github.com/kopia/kopia/issues/5265)) by Julio López * cleanup nits ([#5236](https://github.com/kopia/kopia/issues/5236)) by Julio López * do not included concatenated entries in log ([#5231](https://github.com/kopia/kopia/issues/5231)) by lif * move `SafeLongFilename` to `ospath` ([#5227](https://github.com/kopia/kopia/issues/5227)) by Julio López * add byte units to maintenance stat summaries ([#5178](https://github.com/kopia/kopia/issues/5178)) by Julio López ###### Repository * sync index blob file before closing ([#5292](https://github.com/kopia/kopia/issues/5292)) by Julio López * failures when exceeding Windows `MAX_PATH` ([#5226](https://github.com/kopia/kopia/issues/5226)) by Julio López ###### Snapshots * ErrorEntry policy resolution to use child policy ([#5234](https://github.com/kopia/kopia/issues/5234)) by Baixiaochun * inaccessible entry causes parent directory to be skipped ([#5217](https://github.com/kopia/kopia/issues/5217)) by Julio López ###### Storage Providers * warn messages for extra storage providers ([#5324](https://github.com/kopia/kopia/issues/5324)) by Julio López * perform maximum of 2 attempt in `PutBlobInPath` ([#5168](https://github.com/kopia/kopia/issues/5168)) by Julio López * require.NoError ([#5166](https://github.com/kopia/kopia/issues/5166)) by Julio López * update injected error message ([#5165](https://github.com/kopia/kopia/issues/5165)) by Julio López * make tests with injected errors more robust ([#5164](https://github.com/kopia/kopia/issues/5164)) by Julio López * cleanup temporary file on put blob failure ([#5157](https://github.com/kopia/kopia/issues/5157)) by Julio López * notify after releasing the lock ([#5154](https://github.com/kopia/kopia/issues/5154)) by Julio López * sync file in FS provider to ensure data is persisted ([#5150](https://github.com/kopia/kopia/issues/5150)) by Julio López ###### Testing * prefer assert.NoError ([#5299](https://github.com/kopia/kopia/issues/5299)) by Julio López * nits in TestSnapFail tests ([#5228](https://github.com/kopia/kopia/issues/5228)) by Julio López * `TestSnapshotFail`* ([#5225](https://github.com/kopia/kopia/issues/5225)) by Julio López ###### Infrastructure * tweak copilot instructions ([#5278](https://github.com/kopia/kopia/issues/5278)) by Julio López * update agent instructions ([#5153](https://github.com/kopia/kopia/issues/5153)) by Julio López ###### CI/CD * split out linux-based lint targets ([#5349](https://github.com/kopia/ko _[Truncated at 4000 characters — full notes: https://github.com/kopia/kopia/releases/tag/v0.23.0]_ ### v0.22.3 - Date: 2025-12-02 - Version: v0.22.3 - Original notes: https://github.com/kopia/kopia/releases/tag/v0.22.3 - Permalink: https://whatsnew.fyi/product/kopia/releases/v0.22.3 - Labels: Platforms: Desktop - **fixed** — Fix regression in dependency used for compression - **added** — Add localfs support for passing options ###### Defect Fixes * Fixes regression in dependency used for compression ([#5049](https://github.com/kopia/kopia/issues/5049)) ###### Snapshots * **New Feature** localfs support for passing options ([#5044](https://github.com/kopia/kopia/issues/5044)) by Jarek Kowalski ###### CI/CD * Remove ineffective omitempty tags ([#5037](https://github.com/kopia/kopia/issues/5037)) by Julio López ### v0.22.2 - Date: 2025-11-26 - Version: v0.22.2 - Original notes: https://github.com/kopia/kopia/releases/tag/v0.22.2 - Permalink: https://whatsnew.fyi/product/kopia/releases/v0.22.2 - Labels: Platforms: Desktop - **fixed** — Fix regression where rclone was executed with a cancelling context - **fixed** — Allow S3 versioned tests cleanup to succeed ###### Storage Providers * Fix regression #5039: execute rclone with non-cancelling context ([#5040](https://github.com/kopia/kopia/issues/5040)) by Julio López ###### Testing * allow S3 versioned tests cleanup to succeed ([#5038](https://github.com/kopia/kopia/issues/5038)) by Julio López ###### CI/CD * make PR title options consistent with chlog ([#5036](https://github.com/kopia/kopia/issues/5036)) by Julio López ### v0.22.1 - Date: 2025-11-25 - Version: v0.22.1 - Original notes: https://github.com/kopia/kopia/releases/tag/v0.22.1 - Permalink: https://whatsnew.fyi/product/kopia/releases/v0.22.1 - Labels: Platforms: Desktop - **fixed** — Fix issue showing an empty UI for some users - **changed** — Make purpose a string parameter ###### Graphical User Interface * Fix issue showing an empty UI for some users ([#5006](https://github.com/kopia/kopia/issues/5006), [#5029](https://github.com/kopia/kopia/issues/5029),[#5034](https://github.com/kopia/kopia/issues/5034),[#5035](https://github.com/kopia/kopia/issues/5035)) by Jarek Kowalski and Julio López. ###### Other Improvements * make `purpose` a `string` parameter ([#5015](https://github.com/kopia/kopia/issues/5015)) by Julio López ###### Testing Improvements * leverage `testing.T.Context` in testlogging ([#5008](https://github.com/kopia/kopia/issues/5008)) by Julio López * use contexts in tests ([#5009](https://github.com/kopia/kopia/issues/5009)) by Julio López * pass context in helpers for running Docker ([#5012](https://github.com/kopia/kopia/issues/5012)) by Julio López * cleanup `TestKopiaRunner` ([#5010](https://github.com/kopia/kopia/issues/5010)) by Julio López ###### CI/CD * enable noctx linter ([#4972](https://github.com/kopia/kopia/issues/4972)) by Nathan Baulch * prevent writing outside of installation target directory ([#5003](https://github.com/kopia/kopia/issues/5003)) by Julio López ### v0.22.0 - Date: 2025-11-18 - Version: v0.22.0 - Original notes: https://github.com/kopia/kopia/releases/tag/v0.22.0 - Permalink: https://whatsnew.fyi/product/kopia/releases/v0.22.0 - Labels: Platforms: Desktop - **fixed** — Fix potential overflow in integer conversion - **changed** — Make --progress flag visible and use it in sync-to command - **fixed** — Ensure auto-maintenance errors are propagated - **changed** — Enable quick maintenance by default on repository creation - **added** — Extend stats for content verification - **changed** — Add additional safeguard for dangerous commands - **deprecated** — Deprecate dangerous repo repair sub-command - **changed** — Reword message for dangerous commands - **removed** — Remove deprecated no-op flags - **fixed** — Handle errors closing writable descriptors - **fixed** — Check for nil before dereferencing field - **fixed** — Check bounds for memory allocation - **added** — Fix display errors for maintenance stats - **added** — Add stats to maintenance run - SnapshotGC - **removed** — Remove dry run option for blob retention extension - **added** — Add maintenance stats for rewrite contents phase - **added** — Add maintenance stats for clean up logs phase - **added** — Add maintenance stats for delete unreferenced packs phase - **added** — Add maintenance stats for drop deleted contents and compact indexes ###### Command-Line Interface * potential overflow in integer conversion ([#4993](https://github.com/kopia/kopia/issues/4993)) by Julio Lopez * make --progress flag visible and use it in sync-to command ([#3542](https://github.com/kopia/kopia/issues/3542)) ([#4877](https://github.com/kopia/kopia/issues/4877)) by yinheli * ensure auto-maintenance errors are propagated ([#4851](https://github.com/kopia/kopia/issues/4851)) by Julio Lopez * enable quick maintenance by default on repo creation ([#4840](https://github.com/kopia/kopia/issues/4840)) by Julio Lopez * **New Feature** extend stats for content verification ([#4830](https://github.com/kopia/kopia/issues/4830)) by Julio Lopez * additional safeguard dangerous commands ([#4767](https://github.com/kopia/kopia/issues/4767)) by Julio Lopez * deprecate dangerous repo repair sub-command ([#4766](https://github.com/kopia/kopia/issues/4766)) by Julio Lopez * reword message for dangerous commands ([#4765](https://github.com/kopia/kopia/issues/4765)) by Julio Lopez * remove deprecated no-op flags ([#4764](https://github.com/kopia/kopia/issues/4764)) by Julio Lopez ###### General Improvements * handle errors closing writable descriptors ([#4998](https://github.com/kopia/kopia/issues/4998)) by Julio Lopez * avoid wrapping always-nil error ([#4997](https://github.com/kopia/kopia/issues/4997)) by Julio Lopez * check for nil before de-refencing field ([#4996](https://github.com/kopia/kopia/issues/4996)) by Julio Lopez * check bounds for memory allocation ([#4995](https://github.com/kopia/kopia/issues/4995)) by Julio Lopez * fix typos ([#4986](https://github.com/kopia/kopia/issues/4986)) by Julio Lopez * **New Feature** fix display errors for maintenance stats ([#4984](https://github.com/kopia/kopia/issues/4984)) by lyndon-li * omitzero JSON tag in policy structs ([#4910](https://github.com/kopia/kopia/issues/4910)) by Julio Lopez * **New Feature** add stats to maintenance run - SnapshotGC ([#4964](https://github.com/kopia/kopia/issues/4964)) by lyndon-li * leverage `stats.CountSum` in maintenance stats ([#4963](https://github.com/kopia/kopia/issues/4963)) by Julio Lopez * remove dry run option for blob retention ext ([#4962](https://github.com/kopia/kopia/issues/4962)) by Julio Lopez * maintenance stats for rewrite contents phase ([#4961](https://github.com/kopia/kopia/issues/4961)) by lyndon-li * `extendBlobRetentionTime` ([#4960](https://github.com/kopia/kopia/issues/4960)) by Julio Lopez * **New Feature** maintenance stats for clean up logs phase ([#4959](https://github.com/kopia/kopia/issues/4959)) by lyndon-li * consistent use "pack" where possible ([#4952](https://github.com/kopia/kopia/issues/4952)) by Julio Lopez * fix field names in ExtendBlobRetentionStats ([#4958](https://github.com/kopia/kopia/issues/4958)) by Julio Lopez * **New Feature** maintenance stats for delete unreferenced packs phase ([#4955](https://github.com/kopia/kopia/issues/4955)) by lyndon-li * **New Feature** maintenance stats for drop deleted contents and compact indexes ([#4948](https://github.com/kopia/kopia/issues/4948)) by lyndon-li * fix field names in CompactSingleEpochStats ([#4947](https://github.com/kopia/kopia/issues/4947)) by Julio Lopez * use explicit return values ([#4940](https://github.com/kopia/kopia/issues/4940)) by Julio Lopez * **New Feature** add stats to maintenance run - AdvanceEpoch ([#4937](https://github.com/kopia/kopia/issues/4937)) by lyndon-li * diskCommitedContentIndexCache ([#4939](https://github.com/kopia/kopia/issues/4939)) by Julio Lopez * buildinfo helpers ([#4936](https://github.com/kopia/kopia/issues/4936)) by Julio Lopez * improve randRead helper ([#4934](https://github.com/kopia/kopia/issues/4934)) by Julio Lopez * index.maxContentLengths ([#4932](https://github.com/kopia/kopia/issues/4932)) by Julio Lopez * simplify function and generics signatures ([#4930](https://github.com/kopia/kopia/issues/4930)) by Julio Lopez * lastSettledEpochNumber() he _[Truncated at 4000 characters — full notes: https://github.com/kopia/kopia/releases/tag/v0.22.0]_ ### v0.21.1 - Date: 2025-07-22 - Version: v0.21.1 - Original notes: https://github.com/kopia/kopia/releases/tag/v0.21.1 - Permalink: https://whatsnew.fyi/product/kopia/releases/v0.21.1 - Labels: Platforms: Desktop ###### Server * fixed scheduling bug ([#4732](https://github.com/kopia/kopia/issues/4732)) by Jarek Kowalski ###### Storage Providers * **New Feature** Azure Federated Identity support ([#4728](https://github.com/kopia/kopia/issues/4728)) by Julio Lopez ### v0.21.0 - Date: 2025-07-20 - Version: v0.21.0 - Original notes: https://github.com/kopia/kopia/releases/tag/v0.21.0 - Permalink: https://whatsnew.fyi/product/kopia/releases/v0.21.0 - Labels: Platforms: Desktop ###### Command-Line Interface * **New Feature** human-readable sizes for kopia ls ([#4696](https://github.com/kopia/kopia/issues/4696)) by Kian Kasad * **New Feature** add --disable-file-logging to suppress log file output ([#4686](https://github.com/kopia/kopia/issues/4686)) by Leonardo Cecchi * fix path printed by "kopia snapshot fix" commands ([#4638](https://github.com/kopia/kopia/issues/4638)) by Kian Kasad ###### General Improvements * cleanup clock bounds check ([#4720](https://github.com/kopia/kopia/issues/4720)) by Julio Lopez * **New Feature** check for clock skew on write session creation ([#4719](https://github.com/kopia/kopia/issues/4719)) by Julio Lopez * rename variable to `humanReadable` for consistency ([#4709](https://github.com/kopia/kopia/issues/4709)) by Julio Lopez * use require to cleanup snapshot tests ([#4708](https://github.com/kopia/kopia/issues/4708)) by Julio Lopez * add {peta,exa}byte prefixes ([#4707](https://github.com/kopia/kopia/issues/4707)) by Julio Lopez * use snapshot end time as tie breaker for equal start time ([#4705](https://github.com/kopia/kopia/issues/4705)) by Julio Lopez * minor cleanups ([#4704](https://github.com/kopia/kopia/issues/4704)) by Julio Lopez * migrate remnant piece to crypto/hkdf ([#4691](https://github.com/kopia/kopia/issues/4691)) by Julio Lopez * migrate to `crypto/{hkdf,pbkdf2,sha3}` ([#4678](https://github.com/kopia/kopia/issues/4678)) by Julio Lopez * small misc. cleanups ([#4666](https://github.com/kopia/kopia/issues/4666)) by Julio Lopez * typos ([#4659](https://github.com/kopia/kopia/issues/4659)) by Nathan Baulch * misc cleanups ([#4652](https://github.com/kopia/kopia/issues/4652)) by Julio Lopez * enable `forcetypeassert` linter ([#4624](https://github.com/kopia/kopia/issues/4624)) by Julio Lopez * minor cleanups ([#4621](https://github.com/kopia/kopia/issues/4621)) by Julio Lopez * upload tests ([#4619](https://github.com/kopia/kopia/issues/4619)) by Julio Lopez * misc cleanups ([#4615](https://github.com/kopia/kopia/issues/4615)) by Julio Lopez * minor cleanups in snapshot GC ([#4612](https://github.com/kopia/kopia/issues/4612)) by Julio Lopez * convenience make targets to install tools ([#4616](https://github.com/kopia/kopia/issues/4616)) by Julio Lopez * s/interface{}/any/ ([#4614](https://github.com/kopia/kopia/issues/4614)) by Julio Lopez * fix `TestSnapshotNoLeftoverCheckpoints` slowness ([#4611](https://github.com/kopia/kopia/issues/4611)) by Julio Lopez ###### Repository * create minimal cache.Storage interface ([#4618](https://github.com/kopia/kopia/issues/4618)) by Jarek Kowalski ###### Server * fix snapshot scheduling in the event of machine goes to sleep ([#4682](https://github.com/kopia/kopia/issues/4682)) by Jarek Kowalski ###### Snapshots * **New Feature** Add periodic JSON progress output to snapshot verify ([#4645](https://github.com/kopia/kopia/issues/4645)) by Nick * completely ignore unsupported entries instead of reporting them as ignored errors to avoid snapshot warnings ([#4613](https://github.com/kopia/kopia/issues/4613)) by Jarek Kowalski ###### Storage Providers * Azure client cert env var ([#4726](https://github.com/kopia/kopia/issues/4726)) by Julio Lopez * rename `Options.ClientCertificate` for clarity ([#4724](https://github.com/kopia/kopia/issues/4724)) by Julio Lopez * add omitempty JSON tags in azure.Options ([#4721](https://github.com/kopia/kopia/issues/4721)) by Julio Lopez * add tags in azure.Options ([#4716](https://github.com/kopia/kopia/issues/4716)) by Julio Lopez ###### CI/CD * upgrade to Go 1.24 ([#4675](https://github.com/kopia/kopia/issues/4675)) by Julio Lopez * pin actions ([#4657](https://github.com/kopia/kopia/issues/4657)) by Julio Lopez * upgrade Go toolchain to 1.23.10 ([#4656](https://github.com/kopia/kopia/issues/4656)) by Julio Lopez * include date-time in temp dir name used for tests ([#4651](https://github.com/kopia/kopia/issues/4651)) by Julio Lopez ###### Grap _[Truncated at 4000 characters — full notes: https://github.com/kopia/kopia/releases/tag/v0.21.0]_ ### v0.20.1 - Date: 2025-05-26 - Version: v0.20.1 - Original notes: https://github.com/kopia/kopia/releases/tag/v0.20.1 - Permalink: https://whatsnew.fyi/product/kopia/releases/v0.20.1 - Labels: Platforms: Desktop ###### Command-Line Interface * minor cleanups in diff tests ([#4594](https://github.com/kopia/kopia/issues/4594)) by Julio Lopez ###### Server * fixed server-based notifications ([#4598](https://github.com/kopia/kopia/issues/4598)) by Jarek Kowalski ###### Snapshots * fixed snapshotting of \\server\share ([#4603](https://github.com/kopia/kopia/issues/4603)) by Jarek Kowalski * Remove checkpoints after a complete snapshot ([#4439](https://github.com/kopia/kopia/issues/4439)) by shniubobo ###### Notifications * fixed notification severities on snapshot creation ([#4604](https://github.com/kopia/kopia/issues/4604)) by Jarek Kowalski ###### CI/CD * enforce consistent formatting of KopiaUI code ([#4586](https://github.com/kopia/kopia/issues/4586)) by Jarek Kowalski ###### Graphical User Interface * reformat code to 120 characters per line ([#338](https://github.com/kopia/htmlui/issues/338)) by Jarek Kowalski * fixed 'Set Policy' button ([#337](https://github.com/kopia/htmlui/issues/337)) by Jarek Kowalski * SMTP credentials should not be required ([#336](https://github.com/kopia/htmlui/issues/336)) by Jarek Kowalski * ignore exceptions when making incremental changes to the policy ([#335](https://github.com/kopia/htmlui/issues/335)) by Jarek Kowalski * report code coverage ([#334](https://github.com/kopia/htmlui/issues/334)) by Jarek Kowalski * globally apply prettier formatting ([#333](https://github.com/kopia/htmlui/issues/333)) by Jarek Kowalski ### v0.20.0 - Date: 2025-05-20 - Version: v0.20.0 - Original notes: https://github.com/kopia/kopia/releases/tag/v0.20.0 - Permalink: https://whatsnew.fyi/product/kopia/releases/v0.20.0 - Labels: Platforms: Desktop ###### Command-Line Interface * **New Feature** helper functions to get preceding snapshots for `diff` ([#4559](https://github.com/kopia/kopia/issues/4559)) by Rohit-BM18 * Fix crash when doing `kopia policy show ` ([#4560](https://github.com/kopia/kopia/issues/4560)) by Donatas Abraitis * rename function to setListBlobsParallelismFromFlags ([#4564](https://github.com/kopia/kopia/issues/4564)) by Julio Lopez * **New Feature** --stats-only flag for the diff command ([#4557](https://github.com/kopia/kopia/issues/4557)) by Rohit-BM18 * add flag for rclone's startup timeout ([#4543](https://github.com/kopia/kopia/issues/4543)) by Julio Lopez * cleanup `cli.repositoryAccessMode` ([#4541](https://github.com/kopia/kopia/issues/4541)) by Julio Lopez * clarify documentation regarding per-user and per-host ([#4512](https://github.com/kopia/kopia/issues/4512)) by blenderfreaky * create cache marker in log directories ([#4517](https://github.com/kopia/kopia/issues/4517)) by Julio López * set build info version and info when not set ([#4498](https://github.com/kopia/kopia/issues/4498)) by Julio López * misc cleanups in internal/diff ([#4484](https://github.com/kopia/kopia/issues/4484)) by Julio López * add details to persistent password error message ([#4480](https://github.com/kopia/kopia/issues/4480)) by Julio López * add newline after policy export output ([#4476](https://github.com/kopia/kopia/issues/4476)) by Julio López * **New Feature** compute snapshot diff stats ([#4444](https://github.com/kopia/kopia/issues/4444)) by Rohit-BM18 * diff test ([#4422](https://github.com/kopia/kopia/issues/4422)) by Julio López ###### KopiaUI App * adjust handling of default repository ([#4561](https://github.com/kopia/kopia/issues/4561)) by remigius42 ###### General Improvements * cleanup `forbidigo` linter config ([#4540](https://github.com/kopia/kopia/issues/4540)) by Julio Lopez * cleanup linter config ([#4538](https://github.com/kopia/kopia/issues/4538)) by Julio Lopez * avoid removing error cause ([#4536](https://github.com/kopia/kopia/issues/4536)) by Julio Lopez * enable wsl for all go files ([#4524](https://github.com/kopia/kopia/issues/4524)) by Matthieu MOREL * cleanup a few tests ([#4519](https://github.com/kopia/kopia/issues/4519)) by Julio Lopez * leverage `os.CreateTemp` ([#4513](https://github.com/kopia/kopia/issues/4513)) by Julio López * minor cleanups and other nits ([#4507](https://github.com/kopia/kopia/issues/4507)) by Julio López * `tempfile.Create` on Linux (x64/arm64) ([#4504](https://github.com/kopia/kopia/issues/4504)) by Julio López * use correct error in call to errors.Wrap ([#4477](https://github.com/kopia/kopia/issues/4477)) by alingse * prevent infinite loop while resolving ignore file symlinks ([#4413](https://github.com/kopia/kopia/issues/4413)) by Julio López ###### Repository * **New Feature** role assumption for S3 storage ([#4182](https://github.com/kopia/kopia/issues/4182)) by ashmrtn ###### Server * add empty line between headers and body in email payload ([#4545](https://github.com/kopia/kopia/issues/4545)) by Julio Lopez * prevent maintenance task on read-only repos ([#4408](https://github.com/kopia/kopia/issues/4408)) by Julio López ###### Snapshots * extracted snapshot.FindPreviousManifests() ([#4453](https://github.com/kopia/kopia/issues/4453)) by Jarek Kowalski * refactored uploader into separate package ([#4450](https://github.com/kopia/kopia/issues/4450)) by Jarek Kowalski ###### Storage Providers * human-friendly persistence of role durantion ([#4546](https://github.com/kopia/kopia/issues/4546)) by Julio Lopez * **New Feature** Azure Blob client certificate authentication ([#4535](https://github.com/kopia/kopia/issues/4535)) by Julio Lopez ###### CI/CD * fix HTMLUI changelog ([#4579](https://github.com/kopia/kopia/issues/4579)) by Jarek Kowalski * auto-generate clean htmlui changelog ([#4578](https://github.com/kopia/kopia/issues/4578)) by Jarek Kowalski * u _[Truncated at 4000 characters — full notes: https://github.com/kopia/kopia/releases/tag/v0.20.0]_