Ctrl K
ComunidadGuías…

CHANGELOG.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Changelog

Notable changes to Keepsake. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions follow [Semantic Versioning](https://semver.org/). Until 1.0, minor versions may include breaking changes.

## Unreleased

### Changed

- JWT issuer and browser session keys now use Keepsake; existing signed-in sessions migrate automatically (#36).
- Cross-origin browser access is disabled by default; configure exact origins with `CORS_ALLOWED_ORIGINS` (#40).

### Added

- Regression tests for registration, login, token validation and browser session migration (#37, #36).

## [0.1.0] - 2026-09-25

The first tagged release. Keepsake stores photos, videos and music on your own server, with resumable uploads, HLS streaming, albums and favorites.

### Tested

Checked on a fresh clone of this version, with the Docker Compose setup on macOS (Apple silicon, Docker Desktop 28, `linux/arm64` image) and Chromium:

- Fresh install following the README: healthy in about 30 seconds; photos, video and audio upload and process; video streams over HLS.
- Data survives a full `docker compose down` and `up`, including signed-in sessions.
- An upload interrupted by killing the server resumes from the parts already received, and the stored original matches the source byte for byte.
- Backup and restore following [docs/backup.md](docs/backup.md) onto empty volumes brings back every item, thumbnail and stream.

CI builds and tests on `linux/amd64`. Safari, Firefox and hardware encoding (VideoToolbox) were not tested for this release.

### Known limitations

- Media URLs carry the session token as a query parameter ([#14](https://github.com/bilalyazicioglu/keepsake/issues/14)).
- Upload and processing edge cases under failure are still open ([#7](https://github.com/bilalyazicioglu/keepsake/issues/7) to [#12](https://github.com/bilalyazicioglu/keepsake/issues/12)).
- Anyone who can reach the server can create an account, and there is no admin screen ([#41](https://github.com/bilalyazicioglu/keepsake/issues/41)).
- Failed sign-ins are not rate-limited ([#39](https://github.com/bilalyazicioglu/keepsake/issues/39)).
- The Compose file is a development setup with default database credentials.

### Upgrading from an untagged build

- The server now refuses to start if an environment variable can't be parsed. Fix the variable named in the error.
- Building from source needs Go 1.26.
- Your volumes and `.env` carry over; no manual migration is needed.

### Added

- New interface: sidebar with Library, Favorites and albums, month-grouped library, window-wide drop target and upload tray, and the Keepsake logo ([#34](https://github.com/bilalyazicioglu/keepsake/pull/34)).
- Continuous integration for the backend, the web interface and the Docker image ([#15](https://github.com/bilalyazicioglu/keepsake/pull/15)).
- Licensed under AGPL-3.0 ([#35](https://github.com/bilalyazicioglu/keepsake/pull/35)).
- Backup and restore guide ([#44](https://github.com/bilalyazicioglu/keepsake/pull/44)).

### Changed

- The server refuses to start when an environment variable can't be parsed, instead of silently using the default ([#17](https://github.com/bilalyazicioglu/keepsake/pull/17)).
- Dependencies updated, including chi, pgx, jwt and x/crypto; the server now builds with Go 1.26 ([#24](https://github.com/bilalyazicioglu/keepsake/pull/24), [#42](https://github.com/bilalyazicioglu/keepsake/pull/42), [#43](https://github.com/bilalyazicioglu/keepsake/pull/43)).

### Fixed

- Fresh Docker installs applied every database migration twice ([#44](https://github.com/bilalyazicioglu/keepsake/pull/44)).
- Opening an uploaded SVG or other active file directly no longer runs its scripts on the Keepsake origin ([#18](https://github.com/bilalyazicioglu/keepsake/pull/18)).
- An expired session returns to the sign-in screen instead of showing repeated errors ([#29](https://github.com/bilalyazicioglu/keepsake/pull/29)).
- Uploads fail fast on errors that can't succeed on retry, and show the server's message ([#31](https://github.com/bilalyazicioglu/keepsake/pull/31)).
- A slow response for a previous filter or search no longer replaces the current view ([#32](https://github.com/bilalyazicioglu/keepsake/pull/32)).

### Renamed

- The project was renamed from outofmatrix to Keepsake ([#6](https://github.com/bilalyazicioglu/keepsake/pull/6)).

[0.1.0]: https://github.com/bilalyazicioglu/keepsake/releases/tag/v0.1.0