Kopia

ProductivityDesktop

Fast, encrypted, deduplicating backup.

Latest v0.23.1 · · Desktopby KopiaWebsitekopia/kopia

Release activity

Release activity — 6 releases across 6 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 19, 2026No releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026
MondayNo releases on Apr 20, 2026No releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026
TuesdayNo releases on Apr 21, 2026No releases on Apr 28, 2026No releases on May 5, 20261 release on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 20261 release on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026
WednesdayNo releases on Apr 22, 2026No releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 23, 2026No releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on Apr 24, 2026No releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on Apr 25, 2026No releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026

6 releases in the last year

Changelog

v0.23.1

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) by Julio López
  • selection of next epoch to compact (#5373) by Julio López
Storage Providers
  • no_extra_providers build tag (#5375) by Julio López
Linter
  • annotations for other platforms (#5413) by Julio López
Graphical User Interface
View originalPermalink
How v0.23.1 went

v0.23.0

Command-Line Interface
  • [BREAKING CHANGE] restrict insecure unauthenticated server to loopback binds (#5354) by Jarek Kowalski
  • registration mechanism for storage providers (#5350) by Julio López
  • hash benchmarking count (#5312) by Julio López
  • leverage x/term.IsTerminal (#5308) by Julio López
  • handle potential conversion overflow when setting progress default (#5271) by Julio López
KopiaUI App
  • skip htmlui tests that are timing out (#5257) by Julio López
General Improvements
  • bigmapbench profiling (#5321) by Julio López
  • clean nits (#5313) by Julio López
  • remove support for LZ4 (#5296) by Julio López
  • retained log size double counting (#5302) by Julio López
  • make counters and size stats uint64 for consistency (#5262) by Julio López
  • address potential conversion overflows (#5266) by Julio López
  • string nits (#5265) by Julio López
  • cleanup nits (#5236) by Julio López
  • do not included concatenated entries in log (#5231) by lif
  • move SafeLongFilename to ospath (#5227) by Julio López
  • add byte units to maintenance stat summaries (#5178) by Julio López
Repository
  • sync index blob file before closing (#5292) by Julio López
  • failures when exceeding Windows MAX_PATH (#5226) by Julio López
Snapshots
  • ErrorEntry policy resolution to use child policy (#5234) by Baixiaochun
  • inaccessible entry causes parent directory to be skipped (#5217) by Julio López
Storage Providers
  • warn messages for extra storage providers (#5324) by Julio López
  • perform maximum of 2 attempt in PutBlobInPath (#5168) by Julio López
  • require.NoError (#5166) by Julio López
  • update injected error message (#5165) by Julio López
  • make tests with injected errors more robust (#5164) by Julio López
  • cleanup temporary file on put blob failure (#5157) by Julio López
  • notify after releasing the lock (#5154) by Julio López
  • sync file in FS provider to ensure data is persisted (#5150) by Julio López
Testing
  • prefer assert.NoError (#5299) by Julio López
  • nits in TestSnapFail tests (#5228) by Julio López
  • TestSnapshotFail* (#5225) by Julio López
Infrastructure
  • tweak copilot instructions (#5278) by Julio López
  • update agent instructions (#5153) by Julio López
CI/CD
  • split out linux-based lint targets (#5349) by ashmrtn
  • license-check-go make target (#5347) by Julio López
  • skip setup step on PRs on MacOS (#5344) by Julio López
  • generate govulncheck SARIF report (#5300) by Julio López
  • avoid duplicate test failure output (#5222) by Julio López
  • add install-checklocks convenience target (#5152) by Julio López
Graphical User Interface
View originalPermalink
How v0.23.0 went

v0.22.3

Defect Fixes
  • Fixes regression in dependency used for compression (#5049)
Snapshots
  • New Feature localfs support for passing options (#5044) by Jarek Kowalski
CI/CD
  • Remove ineffective omitempty tags (#5037) by Julio López
View originalPermalink
How v0.22.3 went

v0.22.2

Storage Providers
  • Fix regression #5039: execute rclone with non-cancelling context (#5040) by Julio López
Testing
  • allow S3 versioned tests cleanup to succeed (#5038) by Julio López
CI/CD
  • make PR title options consistent with chlog (#5036) by Julio López
View originalPermalink
How v0.22.2 went

v0.22.1

Graphical User Interface
  • Fix issue showing an empty UI for some users (#5006, #5029,#5034,#5035) by Jarek Kowalski and Julio López.
Other Improvements
  • make purpose a string parameter (#5015) by Julio López
Testing Improvements
  • leverage testing.T.Context in testlogging (#5008) by Julio López
  • use contexts in tests (#5009) by Julio López
  • pass context in helpers for running Docker (#5012) by Julio López
  • cleanup TestKopiaRunner (#5010) by Julio López
CI/CD
  • enable noctx linter (#4972) by Nathan Baulch
  • prevent writing outside of installation target directory (#5003) by Julio López
View originalPermalink
How v0.22.1 went

v0.22.0

Command-Line Interface
  • potential overflow in integer conversion (#4993) by Julio Lopez
  • make --progress flag visible and use it in sync-to command (#3542) (#4877) by yinheli
  • ensure auto-maintenance errors are propagated (#4851) by Julio Lopez
  • enable quick maintenance by default on repo creation (#4840) by Julio Lopez
  • New Feature extend stats for content verification (#4830) by Julio Lopez
  • additional safeguard dangerous commands (#4767) by Julio Lopez
  • deprecate dangerous repo repair sub-command (#4766) by Julio Lopez
  • reword message for dangerous commands (#4765) by Julio Lopez
  • remove deprecated no-op flags (#4764) by Julio Lopez
General Improvements
  • handle errors closing writable descriptors (#4998) by Julio Lopez
  • avoid wrapping always-nil error (#4997) by Julio Lopez
  • check for nil before de-refencing field (#4996) by Julio Lopez
  • check bounds for memory allocation (#4995) by Julio Lopez
  • fix typos (#4986) by Julio Lopez
  • New Feature fix display errors for maintenance stats (#4984) by lyndon-li
  • omitzero JSON tag in policy structs (#4910) by Julio Lopez
  • New Feature add stats to maintenance run - SnapshotGC (#4964) by lyndon-li
  • leverage stats.CountSum in maintenance stats (#4963) by Julio Lopez
  • remove dry run option for blob retention ext (#4962) by Julio Lopez
  • maintenance stats for rewrite contents phase (#4961) by lyndon-li
  • extendBlobRetentionTime (#4960) by Julio Lopez
  • New Feature maintenance stats for clean up logs phase (#4959) by lyndon-li
  • consistent use "pack" where possible (#4952) by Julio Lopez
  • fix field names in ExtendBlobRetentionStats (#4958) by Julio Lopez
  • New Feature maintenance stats for delete unreferenced packs phase (#4955) by lyndon-li
  • New Feature maintenance stats for drop deleted contents and compact indexes (#4948) by lyndon-li
  • fix field names in CompactSingleEpochStats (#4947) by Julio Lopez
  • use explicit return values (#4940) by Julio Lopez
  • New Feature add stats to maintenance run - AdvanceEpoch (#4937) by lyndon-li
  • diskCommitedContentIndexCache (#4939) by Julio Lopez
  • buildinfo helpers (#4936) by Julio Lopez
  • improve randRead helper (#4934) by Julio Lopez
  • index.maxContentLengths (#4932) by Julio Lopez
  • simplify function and generics signatures (#4930) by Julio Lopez
  • lastSettledEpochNumber() helper (#4927) by Julio Lopez
  • fix return value order to match return names (#4926) by Julio Lopez
  • rename GenerateRangeCheckpointStats fields (#4925) by Julio Lopez
  • New Feature add maintenance phase stats - CleanupSupersededIndexes (#4916) by lyndon-li
  • field and variable names (#4911) by Julio Lopez
  • New Feature add stats to maintenance run - CleanupMarkers (#4900) by lyndon-li
  • simplify construction of error messages (#4913) by Julio Lopez
  • omitzero JSON tag (#4907) by Julio Lopez
  • leverage maps.Clone (#4905) by Julio Lopez
  • modernize bloop (#4904) by Julio Lopez
  • modernize (#4903) by Julio Lopez
  • modernize min/max (#4898) by Julio Lopez
  • New Feature reduce number of open file descriptors for indexes on Unix (#4866) by Samuel Maynard
  • address linter warnings (#4897) by Julio Lopez
  • New Feature interfaces and structures for maintenance stats (#4890) by lyndon-li
  • expand triggers for endurance tests (#4860) by Julio Lopez
  • fix endurance test failures (#4859) by Julio Lopez
  • remove unused pproflogging package (#4850) by Julio Lopez
  • cleanup observabilityFlags (#4852) by Julio Lopez
  • New Feature rewrote content logs to always be JSON-based and reorganized log structure (#4822) by Jarek Kowalski
  • increase number of retained maintenance run info (#4846) by Julio Lopez
  • set packID when creating the map entry (#4843) by Julio Lopez
  • minor cleanups (#4842) by Julio Lopez
  • stop background workers when test fails (#4841) by Julio Lopez
  • New Feature content-to-pack consistency checks in maintenance (#4832) by Julio Lopez
  • move content verify functionality to the content package (#4827) by Julio Lopez
  • use testify in content_formatter_test.go (#4775) by Julio Lopez
  • cleanup VSS trailer handling (#4776) by Julio Lopez
  • miscellaneous cleanups (#4774) by Julio Lopez
Snapshots
  • New Feature Flush after restoring each file (#4825) by lyndon-li
  • Append path separator to Shadow Copy root directory on Windows (#3891) by Hakkin Lain
Storage Providers
  • make azure.TestUserAgent more robust (#4781) by Julio Lopez
  • fix azure.TestUserAgent (#4780) by Julio Lopez
CI/CD
  • remove GOEXPERIMENT=coverageredesign (#4988) by Julio Lopez
  • make socket activation test more robust (#4985) by Julio Lopez
  • build kopia with -trimpath (#4983) by Julio Lopez
  • enable wsl_v5:{assign,expr} linter settings (#4982) by Julio Lopez
  • enable wsl_v5:err linter (#4928) by Julio Lopez
  • enable modernize:omitzero linter setting (#4981) by Julio Lopez
  • require Go 1.24 to build site (#4980) by Julio Lopez
  • upgrade to golangci-lint 2.6.1 (#4973) by Nathan Baulch
  • enable wsl_v5:return linter (#4975) by Julio Lopez
  • upgrade to golangci-lint v2.5.0 (#4931) by Nathan Baulch
  • update copilot instructions for reviews (#4935) by Julio Lopez
  • add copilot instructions (#4933) by Julio Lopez
  • add linter config for gofumpt (#4929) by Julio Lopez
  • run endurance test every 6 hours (#4861) by Julio Lopez
  • cleanup parameters for actions/setup-go (#4813) by Julio Lopez
  • upgrade Go toolchain to 1.24.7 (#4807) by Julio Lopez
Graphical User Interface
  • fix failing test (#384) by Jarek Kowalski
View originalPermalink
How v0.22.0 went

v0.21.1

Server
  • fixed scheduling bug (#4732) by Jarek Kowalski
Storage Providers
  • New Feature Azure Federated Identity support (#4728) by Julio Lopez
View originalPermalink
How v0.21.1 went

v0.21.0

Command-Line Interface
  • New Feature human-readable sizes for kopia ls (#4696) by Kian Kasad
  • New Feature add --disable-file-logging to suppress log file output (#4686) by Leonardo Cecchi
  • fix path printed by "kopia snapshot fix" commands (#4638) by Kian Kasad
General Improvements
  • cleanup clock bounds check (#4720) by Julio Lopez
  • New Feature check for clock skew on write session creation (#4719) by Julio Lopez
  • rename variable to humanReadable for consistency (#4709) by Julio Lopez
  • use require to cleanup snapshot tests (#4708) by Julio Lopez
  • add {peta,exa}byte prefixes (#4707) by Julio Lopez
  • use snapshot end time as tie breaker for equal start time (#4705) by Julio Lopez
  • minor cleanups (#4704) by Julio Lopez
  • migrate remnant piece to crypto/hkdf (#4691) by Julio Lopez
  • migrate to crypto/{hkdf,pbkdf2,sha3} (#4678) by Julio Lopez
  • small misc. cleanups (#4666) by Julio Lopez
  • typos (#4659) by Nathan Baulch
  • misc cleanups (#4652) by Julio Lopez
  • enable forcetypeassert linter (#4624) by Julio Lopez
  • minor cleanups (#4621) by Julio Lopez
  • upload tests (#4619) by Julio Lopez
  • misc cleanups (#4615) by Julio Lopez
  • minor cleanups in snapshot GC (#4612) by Julio Lopez
  • convenience make targets to install tools (#4616) by Julio Lopez
  • s/interface{}/any/ (#4614) by Julio Lopez
  • fix TestSnapshotNoLeftoverCheckpoints slowness (#4611) by Julio Lopez
Repository
  • create minimal cache.Storage interface (#4618) by Jarek Kowalski
Server
  • fix snapshot scheduling in the event of machine goes to sleep (#4682) by Jarek Kowalski
Snapshots
  • New Feature Add periodic JSON progress output to snapshot verify (#4645) by Nick
  • completely ignore unsupported entries instead of reporting them as ignored errors to avoid snapshot warnings (#4613) by Jarek Kowalski
Storage Providers
  • Azure client cert env var (#4726) by Julio Lopez
  • rename Options.ClientCertificate for clarity (#4724) by Julio Lopez
  • add omitempty JSON tags in azure.Options (#4721) by Julio Lopez
  • add tags in azure.Options (#4716) by Julio Lopez
CI/CD
  • upgrade to Go 1.24 (#4675) by Julio Lopez
  • pin actions (#4657) by Julio Lopez
  • upgrade Go toolchain to 1.23.10 (#4656) by Julio Lopez
  • include date-time in temp dir name used for tests (#4651) by Julio Lopez
Graphical User Interface
  • extracted formatting utilities to separate module (#370) by Jarek Kowalski
  • moved policy utils to a separate module (#367) by Jarek Kowalski
  • component refactoring (#365) by Jarek Kowalski
  • fixed warnings during 'npm test' (#345) by Jarek Kowalski
  • reorganized test utilities (#369) by Jarek Kowalski
  • speed up tests that use polling with long intervals (#368) by Jarek Kowalski
  • refactored router mock setup (#366) by Jarek Kowalski
  • move cancelTask to a separate module (#364) by Jarek Kowalski
  • added test for top-level index.jsx (#363) by Jarek Kowalski
  • added tests for the App component (#362) by Jarek Kowalski
  • added tests for Policies page (#361) by Jarek Kowalski
  • added tests for DirectoryItems (#360) by Jarek Kowalski
  • added tests for DirectoryBreadcrums (#359) by Jarek Kowalski
  • added tests for SnapshotCreate component (#358) by Jarek Kowalski
  • added tests for SnapshotDirectory component (#357) by Jarek Kowalski
  • added forms test (#351) by Jarek Kowalski
  • more test coverage (#350) by Jarek Kowalski
  • added tests for the Logs component (#349) by Jarek Kowalski
  • add tests for Snapshots tab (#348) by Jarek Kowalski
  • added tests for the Repository tab (#347) by Jarek Kowalski
  • added tests for Tasks (#346) by Jarek Kowalski
  • added tests for TimesOfDayTest component (#344) by Jarek Kowalski
  • added tests for snapshot estimation (#343) by Jarek Kowalski
  • increased coverage for NotificationEditor.jsx (#342) by Jarek Kowalski
  • added tests for remaining repository setup pages (#341) by Jarek Kowalski
  • increase code coverage (#340) by Jarek Kowalski
  • moved tests to tests/ directory and reorganized by their target (#339) by Jarek Kowalski
View originalPermalink
How v0.21.0 went

v0.20.1

Command-Line Interface
  • minor cleanups in diff tests (#4594) by Julio Lopez
Server
  • fixed server-based notifications (#4598) by Jarek Kowalski
Snapshots
  • fixed snapshotting of \server\share (#4603) by Jarek Kowalski
  • Remove checkpoints after a complete snapshot (#4439) by shniubobo
Notifications
  • fixed notification severities on snapshot creation (#4604) by Jarek Kowalski
CI/CD
  • enforce consistent formatting of KopiaUI code (#4586) by Jarek Kowalski
Graphical User Interface
  • reformat code to 120 characters per line (#338) by Jarek Kowalski
  • fixed 'Set Policy' button (#337) by Jarek Kowalski
  • SMTP credentials should not be required (#336) by Jarek Kowalski
  • ignore exceptions when making incremental changes to the policy (#335) by Jarek Kowalski
  • report code coverage (#334) by Jarek Kowalski
  • globally apply prettier formatting (#333) by Jarek Kowalski
View originalPermalink
How v0.20.1 went

v0.20.0

Command-Line Interface
  • New Feature helper functions to get preceding snapshots for diff (#4559) by Rohit-BM18
  • Fix crash when doing kopia policy show <path> (#4560) by Donatas Abraitis
  • rename function to setListBlobsParallelismFromFlags (#4564) by Julio Lopez
  • New Feature --stats-only flag for the diff command (#4557) by Rohit-BM18
  • add flag for rclone's startup timeout (#4543) by Julio Lopez
  • cleanup cli.repositoryAccessMode (#4541) by Julio Lopez
  • clarify documentation regarding per-user and per-host (#4512) by blenderfreaky
  • create cache marker in log directories (#4517) by Julio López
  • set build info version and info when not set (#4498) by Julio López
  • misc cleanups in internal/diff (#4484) by Julio López
  • add details to persistent password error message (#4480) by Julio López
  • add newline after policy export output (#4476) by Julio López
  • New Feature compute snapshot diff stats (#4444) by Rohit-BM18
  • diff test (#4422) by Julio López
KopiaUI App
  • adjust handling of default repository (#4561) by remigius42
General Improvements
  • cleanup forbidigo linter config (#4540) by Julio Lopez
  • cleanup linter config (#4538) by Julio Lopez
  • avoid removing error cause (#4536) by Julio Lopez
  • enable wsl for all go files (#4524) by Matthieu MOREL
  • cleanup a few tests (#4519) by Julio Lopez
  • leverage os.CreateTemp (#4513) by Julio López
  • minor cleanups and other nits (#4507) by Julio López
  • tempfile.Create on Linux (x64/arm64) (#4504) by Julio López
  • use correct error in call to errors.Wrap (#4477) by alingse
  • prevent infinite loop while resolving ignore file symlinks (#4413) by Julio López
Repository
  • New Feature role assumption for S3 storage (#4182) by ashmrtn
Server
  • add empty line between headers and body in email payload (#4545) by Julio Lopez
  • prevent maintenance task on read-only repos (#4408) by Julio López
Snapshots
  • extracted snapshot.FindPreviousManifests() (#4453) by Jarek Kowalski
  • refactored uploader into separate package (#4450) by Jarek Kowalski
Storage Providers
  • human-friendly persistence of role durantion (#4546) by Julio Lopez
  • New Feature Azure Blob client certificate authentication (#4535) by Julio Lopez
CI/CD
  • fix HTMLUI changelog (#4579) by Jarek Kowalski
  • auto-generate clean htmlui changelog (#4578) by Jarek Kowalski
  • upgrade Go toolchain to 1.23.9 (#4568) by Julio Lopez
  • remove exclusion for unused ctx parameters (#4530) by Julio Lopez
  • replace multierr with errors.Join (#4529) by Julio Lopez
  • remove gocritic unnecessaryDefer exclusion (#4525) by Matthieu MOREL
  • enable exptostd linter (#4509) by Julio López
  • utc commit date (#4506) by Julio López
  • bump golangci-lint to v2.1.2 (#4500) by Matthieu MOREL
  • use GH Linux ARM runners (#4367) by Julio López
  • upgrade Go to 1.23 (#4248) by Jarek Kowalski
Graphical User Interface
  • New Feature add max file size field to policy editor (#321) by blenderfreaky
  • New Feature allow creating per-host, per-user and foreign policies (#320) by blenderfreaky
  • Remove misleading asterisk from extension placeholders (#327) by Kian Kasad
  • don't require login and password to allow using SMTP instead of upgrading to SMTPs (#313) by anaxita
  • reformatted all code using prettier (#330) by Jarek Kowalski
  • added eslint (#329) by Jarek Kowalski
  • migrate htmlui framework to vite, because CRA is deprecated (#316) by Jarek Kowalski
View originalPermalink
How v0.20.0 went
View all

Discussion