Skip to content

[RELEASE] v4.0.1 - #359

Merged
Geuthur merged 1 commit into
masterfrom
release
Oct 11, 2026
Merged

Geuthur merged 1 commit into
masterfrom
release

Conversation

@Geuthur

@Geuthur Geuthur commented Oct 11, 2026

Copy link
Copy Markdown
Owner

[4.0.1] - 2026-10-11

Added

  • UpdateManagerMixin: Added UpdateManagerMixin to streamline model-level update management for CharacterOwner and CorporationOwner with standardized owner status models.
  • User-Grouped Character Updates: update_subset_characters and new update_user_characters task now group active characters by user, updating mains and alts together in the same run to ensure cross-character data consistency.
  • Alt Character Cascading: Adding or forcing an update on a character cascades to other active characters belonging to the same user (update_alts=True).
  • Character Administration Last Sync & Manual Update: Added last synchronization display (formatted date and relative time) on the account overview and individual registered character cards. Added a manual update trigger button in the character administration header with a configurable cooldown (LEDGER_MANUAL_UPDATE_COOLDOWN, default: 300 seconds) and a live countdown timer.
  • Pulsating Administration Button & Error Highlighting: Added animated glowing pulse and status ping indicators to the "Administration" button across Character, Corporation, and Alliance ledgers when ESI or update errors are detected (has_errors / issues). In the administration view, registered character and corporation cards with errors or token errors now feature animated glowing borders (lg-entry-error, lg-entry-warning) and status badges with pulsing pinging indicators.

Changed

  • Modular Update Manager: Encapsulated section discovery (get_sections_to_update) and execution (execute_section) inside UpdateManager with standardized owner queries, removing boilerplate orchestration and dynamic reflection methods (_get_owner_field_name, _owner_filter).
  • Update Manager & Direct Execution: Replaced Celery subtask chaining and retry context managers with direct, sequential section updates in update_character and update_corporation.
  • Cache Stale Thresholds: Updated LEDGER_STALE_TYPES to align with CCP ESI cache policies (Wallet Journal: 60 minutes, Mining: 10 minutes, Planets: 10 minutes).
  • Update Freshness Tracking: Freshness checks in need_update() now evaluate last_run_finished_at rather than last_update_finished_at, preventing redundant polling when ESI returns HTTP 304 (Not Modified).
  • Token Error Classification: Token error status (has_token_error=True) is now strictly reserved for genuine authentication and permission issues (HTTP 401, 403, 404, or TokenError), preventing server errors (5xx) or HTTP 304 from setting a token error.
  • Reduced Log Verbosity for Transient ESI Errors: ESI server errors (e.g. HTTP 504 Gateway Timeout, 502, 503) and network request timeouts (RequestError) during downtime or Tranquility cluster hiccups are now logged at DEBUG level instead of WARNING or ERROR.

Fixed

  • Admin & Charlink Parameter Handling: Fixed bug in admin.py and charlink_hook.py where database primary keys were passed to update tasks instead of EVE IDs.
  • Unintended token error: Fixed an issue where Client errors (e.g. 404 Not Found) were incorrectly flagged as token errors.

@Geuthur
Geuthur merged commit a455d57 into master Oct 11, 2026
5 of 6 checks passed
@Geuthur
Geuthur deleted the release branch October 11, 2026 18:33
@codecov

codecov Bot commented Oct 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #359   +/-   ##
=======================================
  Coverage   77.24%   77.24%           
=======================================
  Files          41       41           
  Lines        3554     3554           
  Branches      360      360           
=======================================
  Hits         2745     2745           
+ Misses        668      667    -1     
- Partials      141      142    +1     
Files with missing lines Coverage Δ
ledger/__init__.py 100.00% <100.00%> (ø)

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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