CHANGELOG.md (view raw)
1# Changelog
2
3All notable changes to this project are documented in this file.
4
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6and this project adheres to [Semantic
7Versioning](https://semver.org/spec/v2.0.0.html).
8
9## [Unreleased]
10
11## [0.2.8] - 2026-05-12
12
13### Added
14
15- Configurable favicon via `meta.favicon` config option, supporting SVG, PNG,
16 and JPG with automatic MIME type detection from file extension
17- Theme toggle in navigation bar with three modes: system (follows OS
18 preference), light, and dark; preference persisted via cookie
19
20### Fixed
21
22- Diff page: added spacing between the filename header row (file type badge,
23 file links) and the diff `<pre>` content block
24
25## [0.2.7] - 2026-05-12
26
27### Added
28
29- Viper config loading with environment variable overrides (`LEGIT_*` prefix)
30- Build-time version and date embedding via ldflags, shown in `--help` and
31 `--version`
32- GoReleaser configuration for cross-platform builds
33
34### Changed
35
36- Complete Swiss-style CSS redesign: crimson red accent, heavy typography,
37 pill-style nav buttons, card-based sections with left red borders, full dark
38 mode, responsive mobile layout
39- Project restructured to standard Go layout (`cmd/legit/`, `internal/`)
40- Module path migrated to `codeberg.org/maxwelljensen/legit`
41- Config library switched from `gopkg.in/yaml.v3` to viper
42- Flag parsing switched from stdlib `flag` to `go-arg`
43- Templates restructured: `repoheader` moved inside `<body>` in all 6
44 templates, missing `</li>` close tags added to nav elements
45
46### Fixed
47
48- Log page: commit message column no longer squashed by `commit-info`
49 (widened message column to 1.3fr, reduced padding, tightened
50 commit-info line-height)
51- Index page: empty descriptions no longer break date alignment (` `
52 fallback, restructured grid with `.index-idle` class)
53- Tree page: mode column now handles long mode strings without wrapping
54 (`minmax(10ch, auto)`)
55- Text overlapping with `commit-info` on long commit messages resolved
56- nav.html: stray `</a>` tag after `</li>` on refs link removed
57- Minor README formatting errors corrected
58
59## [0.2.6] - 2026-05-12
60
61### Added
62
63- Reference links displayed in commit log page (#54)
64- Symlink resolution when scanning for git repositories (#59)
65
66### Fixed
67
68- Malformed HTML in templates (#61)
69- Correct reader variable used in git operations (#58)
70
71### Changed
72
73- Default scan path updated to `/var/git` (#60)
74- Dependency bumps: go-git v5.13.2, golang.org/x/crypto v0.31.0
75- Path joining hardened with securejoin across all routes
76- Code quality: all golangci-lint issues resolved (errcheck, errorlint,
77gocritic, godoclint, perfsprint, staticcheck, unused, usestdlibvars)
78
79## [0.2.5] - 2025-01-26
80
81### Changed
82
83- CSS: font stack updated to system fonts, custom font features removed
84- CSS: colours, dark mode refinements
85- Routes: README content sanitised for non-Markdown files (uses <pre>)
86
87## [0.2.4] - 2024-10-06
88
89### Added
90
91- Syntax highlighting via chroma with configurable style
92(`meta.syntaxHighlight`)
93- Unlisted repositories (`repo.unlisted`)
94- Annotated lightweight tag support
95- Docker build and push workflow (ghcr.io)
96- Dockerfile and docker-compose.yml updates
97
98### Changed
99
100- Dependencies bumped
101- README reworded with Docker image references
102
103## [0.2.3] - 2024-07-13
104
105### Added
106
107- Archive download handler (tar.gz via `/{name}/archive/{file}`)
108- Dark theme CSS
109- Nix flake for reproducible builds and Docker image
110- Repository ignore support (`repo.ignore`)
111- `.git` extension stripped from display names
112
113### Changed
114
115- Routing switched to Go 1.22+ `net/http` pattern-based router
116- Git HTTP smart protocol switched from go-git to system `git-upload-pack`
117- Template updated with archive download links
118
119### Fixed
120
121- Raw file view accidentally removed code re-added
122- `getDisplayName` now works correctly for repos with `.git` suffix