# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
- Nothing yet :3
## [0.6.6] - 2025-07-19
### Fixed
- Added missing build script to Dockerfile.
## [0.6.5] - 2025-07-19
### Security
- In some cases, Private repositories resulted in an error 43 (Proxy Error) or Unauthorized, rather than behaving the same as nonexistent repositories and sending error 51 (Not Found). This is no longer the case.
- Replaced unmaintained HTTP library `isahc` with the more active `reqwest`.
- Updated transient dependencies.
## [0.6.4] - 2025-07-04
### Added
- New `PORT` environment variable. When set, it overrides the port on which the capsule will be served. This defaults to `1965`.
### Fixed
- Allow empty request path, [properly this time](https://github.com/gemrest/windmark/commit/62b925690c371cb00eb1d66ba189ab2a5774b600)!
## [0.6.3] - 2025-05-12
### Fixed
- Revert empty request path change. Turns out the `set_fix_path` breaks path matching. Some clients still break on viewing root with an empty path, but we'll have to fix that some other way.
## [0.6.2] - 2025-05-12
### Fixed
- Allow empty request path.
## [0.6.1] - 2025-05-11
### Added
- Log outgoing Gemini response status.
- Show a repo's description and website, if the repo has either of those configured.
- We now serve a basic robots.txt file.
### Changed
- Updated to the 2024 edition of Rust, and set the minimum supported Rust version to 1.85.0. This might be breaking, depending on how esoteric your workflow when trying to build this crate.
## [0.6.0] - 2025-05-09
### Added
- Browse directory trees! Folders only, for now.
- Link to the parent repository if the current one is a fork.
- Show the size of large files in the files list, in case users don't want to burn gigabytes of bandwidth lol.
### Changed
- BREAKING: We now respect robots.txt for remote hosts by default, but continue to ignore robots.txt for localhost or if a valid auth token is provided. To avoid the proxy being blocked by robots.txt, run this proxy against your forge on localhost, or provide an auth token.
- The `FORGE_AUTH_TOKEN` value, if provided, is now sent on every request, instead of only to endpoints which specifically require it. This is to help forge admins identify usage of this proxy.
- When the upstream's API throttles us (e.g. with [HTTP 429](https://tools.ietf.org/html/rfc6585#section-4) and the [Retry-After](https://tools.ietf.org/html/rfc9110#field.retry-after) header), we show the user an appropriate error.
- Made the lengths of the repo and user lists more closely match the ones on the platform under proxy.
- More informative `User-Agent` header.
- Slightly improved clarity of log messages.
## [0.5.2] - 2025-05-05
### Fixed
- Handle trailing slash in URL paths.
- Print general error message to stderr instead of stdout.
- Updated Rust version in Dockerfile to support new lockfile.
## [0.5.1] - 2025-04-21
### Changed
- Updated Docker deployment workflow.
## [0.5.0] - 2025-04-20
### Added
- New `FORGE_LIST_USERS` environment variable. When set to `true`, then enumerating the forge's users is enabled. This defaults to `false`.
### Changed
- BREAKING: Enumerating users is now disabled by default. When enabled via the `FORGE_LIST_USERS` environment variable, a "Users" link appears in the footer, and the `/users` route attempts to show a list of users with recent activity on the forge. Subpaths of `/users`, such as user pages and repositories, are always viewable as long as the forge permits that access.
- Slimmer footer (source link is now the Powered By tag)
- Minor internal consistency helps.
## [0.4.0] - 2024-08-15
### Added
- Support for Gitea instances.
- Preliminary support for GitLab instances. Many edge cases remain.
### Changed
- BREAKING: More ergonomic environment variable keys; `PLATFORM_TYPE` is renamed to `FORGE_TYPE`; `FORGE_URL` now defaults to `http://localhost:3000`.
## [0.3.0] - 2024-08-12
### Added
- List a given repo's branches.
- List a given repo's top-level file tree.
### Fixed
- Respond with a `51: Not Found` when looking up a user that does not exist.
## [0.2.0] - 2024-08-11
### Added
- List repos for a given user.
### Changed
- The main page displays a list of repositories with recent activity, instead of a list of users.
- A separate route lists the forge's users, linked in the footer.
## [0.1.1] - 2024-08-10
### Added
- Show the package version on the frontend.
## [0.1.0] - 2024-08-10
### Added
- Initial prototype.
- Gemini capsule.
- Uses a Forgejo instance's public API to read out users.
[unreleased]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.6.6...HEAD
[0.6.6]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.6.5...v0.6.6
[0.6.5]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.6.4...v0.6.5
[0.6.4]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.6.3...v0.6.4
[0.6.3]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.6.2...v0.6.3
[0.6.2]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.6.1...v0.6.2
[0.6.1]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.6.0...v0.6.1
[0.6.0]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.5.2...v0.6.0
[0.5.2]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.5.1...v0.5.2
[0.5.1]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.5.0...v0.5.1
[0.5.0]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.4.0...v0.5.0
[0.4.0]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.3.0...v0.4.0
[0.3.0]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.2.0...v0.3.0
[0.2.0]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.1.1...v0.2.0
[0.1.1]: https://git.average.name/AverageHelper/git-gemini-forge/compare/v0.1.0...v0.1.1
[0.1.0]: https://git.average.name/AverageHelper/git-gemini-forge/releases/tag/v0.1.0