Skip to content

Feature/config indicator#17

Merged
dvoraj75 merged 2 commits intodevelopfrom
feature/config-indicator
Mar 13, 2026
Merged

Feature/config indicator#17
dvoraj75 merged 2 commits intodevelopfrom
feature/config-indicator

Conversation

@dvoraj75
Copy link
Owner

This pull request introduces several enhancements and improvements to configuration handling, validation, and documentation for the project. The main focus is on making configuration more robust and user-friendly, adding support for indicator-specific settings, and improving error reporting and logging.

Key highlights:

  • Adds a new [indicator] TOML section for system tray indicator settings, with a dedicated IndicatorConfig dataclass and loader.
  • Validation now collects all config errors and reports them at once with actionable hints.
  • Unknown config keys are logged as warnings to help users catch typos.
  • Logging is initialized before config loading to ensure user-friendly error messages.
  • Documentation is updated throughout to reflect these changes and provide clear usage examples.

Configuration and Validation Improvements

  • Validation now collects all errors and reports them in a single ConfigError, with actionable hints in error messages (e.g., token prefix examples, GitHub poll interval recommendations, and repo format examples). This allows users to fix all config issues in one pass. [1] [2] [3] [4] [5] [6]
  • Unknown top-level config keys now produce log warnings to help users detect typos early. [1] [2] [3] [4] [5] [6]
  • Logging is initialized before config loading, ensuring that config errors are formatted as user-friendly log messages instead of raw tracebacks. The daemon exits cleanly with code 1 on config errors. [1] [2] [3]

Indicator Configuration

  • Adds a new [indicator] TOML section for system tray indicator settings (reconnect_interval, window_width, max_window_height), which can be configured without code changes. A new IndicatorConfig dataclass and load_indicator_config() function are introduced to load and validate these settings. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
  • Documentation and example config files are updated to describe and demonstrate the new indicator settings. [1] [2] [3] [4] [5] [6] [7] [8]

Documentation Updates

User Experience Enhancements

  • The first-run experience is improved: missing config files prompt users to run forgewatch setup, and invalid configs suggest checking the config file. [1] [2] [3]
  • The poller now logs a warning if a pagination cap is reached, suggesting the user narrow their repo filter.

These changes make configuration more flexible, error reporting more helpful, and documentation more comprehensive, resulting in a smoother and more robust user experience.

@github-actions
Copy link

☂️ Python Coverage

current status: ✅

Overall Coverage

Lines Covered Coverage Threshold Status
1822 1735 95% 90% 🟢

New Files

No new covered files...

Modified Files

File Coverage Status
forgewatch/_main_.py 98% 🟢
forgewatch/config.py 79% 🟢
forgewatch/indicator/_main_.py 95% 🟢
forgewatch/indicator/app.py 100% 🟢
forgewatch/indicator/client.py 98% 🟢
forgewatch/indicator/window.py 85% 🟢
forgewatch/poller.py 96% 🟢
TOTAL 93% 🟢

updated for commit: 5e7fe11 by action🐍

@dvoraj75 dvoraj75 merged commit 5e7fe11 into develop Mar 13, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant