# 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