all repos — llm_aggregator @ 6e3abd0665fe86906baf2db7652595d393f2ffc3

A CLI tool to aggregate RSS feeds and summarise them with LLMs

CHANGELOG.md (view raw)

 1# Changelog
 2
 3All notable changes to this project will be documented in this file.
 4
 5The format is based on [Keep a
 6Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to
 7[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 8
 9## [Unreleased]
10
11## [0.3.0] - 2026-04-21
12
13### Added
14
15- **Configuration file support via TOML** (XDG-compliant and cross-platform)
16  - Load settings from `~/.config/llm_aggregator/config.toml`
17  - Supports all aggregation, API, and output options
18  - Example configuration file at `configs/config.example.toml`
19- **Environment variable support with `LLM_AGGREGATOR_` prefix**
20  - All configuration options can be set via environment variables
21  - Precedence order: CLI arguments > environment variables > config file >
22  built‑in defaults
23- New `internal/config` package with Viper integration
24  - `Load()` and `Save()` methods for configuration management
25  - `GetConfigPath()` for XDG‑compliant config file location
26  - `ConfigExists()` to check for existing configuration
27- Comprehensive unit tests for configuration loading, saving, and environment
28  variable precedence (`internal/config/config_test.go`)
29
30### Changed
31
32- **Environment variable renamed:** `DEEPSEEK_API_KEY`33  `LLM_AGGREGATOR_API_KEY`
34- **CLI help text** now reflects the new API key environment variable and
35  general configuration options
36- **Command‑line argument precedence** implemented in `cmd/llm_aggregator.go`
37via `applyConfiguration()`
38- Updated all help text, documentation, and code references
39- `README.md` completely revised with a new "Configuration" section
40
41### Removed
42
43- Global `QuietMode` and `VerboseMode` variables from
44`internal/config/config.go`. Replaced by runtime‑specific configuration in
45`runtime.Runtime` and CLI arguments
46- Hardcoded system prompt in `runtime.NewRuntime()`. Now left empty, allowing
47configuration or client default to be used
48- CLI flags now correctly override config file and environment variables
49
50## [0.2.0] - 2026-04-21
51
52### Changed
53
54- Moved all progress and status messages behind `-v/--verbose` flag
55- Default CLI mode is now silent except for final output and errors
56- Components (aggregator, processor, LLM client) use logger interface
57controlled by verbose flag
58
59## [0.1.0] - 2026-04-21
60
61### Added
62
63- Complete translation from Python prototype to Go implementation
64- RSS/Atom feed parsing using `gofeed` library
65- DeepSeek API integration via `openai-go` client, configured for `/chat/completions` endpoint
66- Content filtering and processing with keyword‑based include/exclude, date filtering, and sorting
67- Command‑line interface using `go‑arg` with automatic help and version flags
68- Multiple output formats: plain text, GitHub‑flavoured markdown, and JSON
69- Terminal user interface (TUI) built with `bubbletea` featuring:
70  - Animated progress bar with gradient colours (`#FF7CCB` to `#FDFF8C`)
71  - Live article counters (aggregated/processed)
72  - Elapsed time display
73  - Coloured status indicators using `lipgloss` styling
74  - Keyboard controls (q/Ctrl+C to quit)
75- Web content extraction fallback using `goquery` when feed descriptions are minimal
76- Configurable limits: articles per feed, maximum age, total articles
77- Token estimation and API usage logging
78- Environment variable support (`LLM_AGGREGATOR_API_KEY`) for authentication
79- Example feeds file with technology, programming, and free software sources
80
81### Changed
82
83- Program structure organised into standard Go layout: `cmd/`, `internal/`, `pkg/`
84- English spelling conventions maintained throughout (colour, initialise, summarise)
85- Error handling improved with specific messages for common API failures (invalid key, rate limits, etc.)
86- Progress reporting unified through a `ProgressContext` interface for both TUI and CLI modes
87
88### Fixed
89
90- Initial API endpoint mismatch (using `/responses` instead of `/chat/completions`)
91- Nil pointer dereferences when handling optional feed metadata (author, dates)
92- String repetition syntax errors in Go (replaced `"="*80` with `strings.Repeat`)
93- CLI help/version flag handling to show information without requiring other arguments
94- Type compatibility issues with `openai-go` v3 API (message parameters, token usage fields)