# Changelog All notable changes to this project are 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] ## [0.2.8] - 2026-05-12 ### Added - Configurable favicon via `meta.favicon` config option, supporting SVG, PNG, and JPG with automatic MIME type detection from file extension - Theme toggle in navigation bar with three modes: system (follows OS preference), light, and dark; preference persisted via cookie ### Fixed - Diff page: added spacing between the filename header row (file type badge, file links) and the diff `
` content block
## [0.2.7] - 2026-05-12
### Added
- Viper config loading with environment variable overrides (`LEGIT_*` prefix)
- Build-time version and date embedding via ldflags, shown in `--help` and
`--version`
- GoReleaser configuration for cross-platform builds
### Changed
- Complete Swiss-style CSS redesign: crimson red accent, heavy typography,
pill-style nav buttons, card-based sections with left red borders, full dark
mode, responsive mobile layout
- Project restructured to standard Go layout (`cmd/legit/`, `internal/`)
- Module path migrated to `codeberg.org/maxwelljensen/legit`
- Config library switched from `gopkg.in/yaml.v3` to viper
- Flag parsing switched from stdlib `flag` to `go-arg`
- Templates restructured: `repoheader` moved inside `` in all 6
templates, missing `` close tags added to nav elements
### Fixed
- Log page: commit message column no longer squashed by `commit-info`
(widened message column to 1.3fr, reduced padding, tightened
commit-info line-height)
- Index page: empty descriptions no longer break date alignment (` `
fallback, restructured grid with `.index-idle` class)
- Tree page: mode column now handles long mode strings without wrapping
(`minmax(10ch, auto)`)
- Text overlapping with `commit-info` on long commit messages resolved
- nav.html: stray `` tag after `` on refs link removed
- Minor README formatting errors corrected
## [0.2.6] - 2026-05-12
### Added
- Reference links displayed in commit log page (#54)
- Symlink resolution when scanning for git repositories (#59)
### Fixed
- Malformed HTML in templates (#61)
- Correct reader variable used in git operations (#58)
### Changed
- Default scan path updated to `/var/git` (#60)
- Dependency bumps: go-git v5.13.2, golang.org/x/crypto v0.31.0
- Path joining hardened with securejoin across all routes
- Code quality: all golangci-lint issues resolved (errcheck, errorlint,
gocritic, godoclint, perfsprint, staticcheck, unused, usestdlibvars)
## [0.2.5] - 2025-01-26
### Changed
- CSS: font stack updated to system fonts, custom font features removed
- CSS: colours, dark mode refinements
- Routes: README content sanitised for non-Markdown files (uses <pre>)
## [0.2.4] - 2024-10-06
### Added
- Syntax highlighting via chroma with configurable style
(`meta.syntaxHighlight`)
- Unlisted repositories (`repo.unlisted`)
- Annotated lightweight tag support
- Docker build and push workflow (ghcr.io)
- Dockerfile and docker-compose.yml updates
### Changed
- Dependencies bumped
- README reworded with Docker image references
## [0.2.3] - 2024-07-13
### Added
- Archive download handler (tar.gz via `/{name}/archive/{file}`)
- Dark theme CSS
- Nix flake for reproducible builds and Docker image
- Repository ignore support (`repo.ignore`)
- `.git` extension stripped from display names
### Changed
- Routing switched to Go 1.22+ `net/http` pattern-based router
- Git HTTP smart protocol switched from go-git to system `git-upload-pack`
- Template updated with archive download links
### Fixed
- Raw file view accidentally removed code re-added
- `getDisplayName` now works correctly for repos with `.git` suffix