Updated README.md to include:
- Multi-Currency Support with configuration options and notifications
- Expanded Worker Management section with new API endpoints
- Added preferred fiat currency to environment variables in `docker-compose.yml`
- New API endpoints for managing notifications and fetching exchange rates
- Additional user guidance for currency and timezone settings
Updated the `api_clear_notifications` function to include a `read_only` parameter, allowing conditional clearing of notifications based on their read status.
Modified the filtering logic in the `NotificationService` to retain notifications that match the specified category, are newer than a cutoff date, or are unread when `read_only` is true. This enhances the granularity of the notification clearing process.
- Added `read_only` parameter to `clear_notifications` method in `NotificationService` to filter unread notifications.
- Updated method docstring to reflect the new parameter.
- Changed page title and header from "BTC-OS MINING DASHBOARD" to "BTC-OS DASHBOARD".
- Incremented version number in footer from "v0.8.8" to "v0.9.1".
This commit introduces significant updates to the application, focusing on currency support and improved configuration management. Key changes include:
- Added a `config_reset` flag in `update_metrics_job` in `App.py` to manage configuration resets.
- Modified `update_config` to handle currency changes and update notifications accordingly.
- Updated `MiningDashboardService` to fetch and include exchange rates and configured currency in metrics.
- Introduced utility functions for currency formatting and symbol retrieval in `notification_service.py`.
- Enhanced UI components in `main.js` and `boot.html` to support currency selection and display.
- Adjusted Docker Compose file to remove hardcoded wallet and power settings for better flexibility.
These changes enhance usability by allowing users to view financial data in their preferred currency and manage configurations more effectively.
Updated `NotificationService` to distinguish between low and normal hashrate modes, utilizing 3-hour and 10-minute averages for detection. Improved `updateChartWithNormalizedData` in `main.js` to support localStorage persistence for hashrate state and refined mode-switching logic. Introduced `showHashrateNormalizeNotice` for user notifications regarding hashrate normalization. Updated HTML files for UI consistency, including version number and structured display of pool fees and unpaid earnings. Ensured proper chart updates and annotations for 24-hour averages.
- Removed margin-top from `.footer` in `common.css`, affecting spacing above the footer.
- Deleted `<style>` tag for theme preloading, which may impact theme loading behavior.
- Increased `padding-bottom` in `.container-fluid` from 60px to 100px in `dashboard.css` to accommodate a minimized system monitor.
Implemented a keyboard event listener for Alt+W to reset the wallet address, clear chart data, and redirect to the configuration page with a confirmation dialog. Added a fallback function for wallet reset if chart data clearing fails. Updated the chart's Y-axis label to 'HASHRATE (TH/S)' and commented out the theme toggle button in the HTML for cleaner implementation.
- Adjust footer CSS and increase padding in dashboard.
- Update chart title for clarity on hashrate units.
- Implement Alt+W keyboard shortcut to reset wallet address with confirmation and error handling.
- Add version number to footer in base.html.
- Change "Network Fee (%)" label to "Firmware Fee (%)" with updated tooltip in boot.html.
Updated `calculatePoolFeeInSats` to accept `lastBlockEarnings` instead of `estimatedEarningsPerDay`. Added debugging logs for pool fee percentage and last block earnings. Modified `updateUI` to check for `last_block_earnings` and parse its value accordingly.
- Added CSS rule to style pool fees in SATS as red and bold.
- Implemented `calculatePoolFeeInSats` function to compute fees based on percentage and earnings.
- Updated `updateUI` to display calculated pool fees, ensuring proper formatting and element creation.
Updated `updateChartWithNormalizedData` to ensure the 24-hour average line is visible in low hashrate mode. Adjusted y-axis range calculations for both multi-point and single-point scenarios. Added console log statements for better debugging and feedback.
- Introduced fallback colors and utilized CSS variables for styling.
- Replaced hardcoded color values with dynamic CSS variable values.
- Enhanced theme change listener to respond to storage changes and class mutations for real-time UI updates.
Enhanced `updateChartWithNormalizedData` to manage low and high hashrate modes with a new state management system. Implemented debounce for mode switching and added hysteresis to prevent rapid transitions. Improved tracking of hashrate spikes for better handling of fluctuations.
- Refactored `normalizeHashrate` function to use a lookup table for unit conversion, enhancing error handling and logging for unrecognized units.
- Updated `ArrowIndicator` class to utilize the new global `normalizeHashrate` function for consistency.
- Enhanced `updateChartWithNormalizedData` with better error handling for 24-hour averages and current hashrate data, including checks for unreasonable values.
- Improved historical data handling with validation and anomaly detection.
- Encapsulated single data point display logic in `useSingleDataPoint` for better error management.
- Refined low hashrate indicator display logic to show only when necessary and updated its appearance based on the current theme.
- Overall improvements enhance robustness, maintainability, and user experience.
Updated `updateUI()` in `main.js` to show last block earnings with a "+" prefix and "SATS" suffix. Modified `dashboard.html` to include a new span element that conditionally displays the earnings or defaults to "+0 SATS".
- Updated `save_graph_state` in `state_manager.py` to include unit preservation for `arrow_history` and `metrics_log`, with improved data size logging and exception handling.
- Modified `notifications.css` for better mobile responsiveness, including a grid layout for `.filter-buttons` and adjusted button sizes.
- Changed value display in `initializeChart` to use 'PH' for petahashes, aligning with new unit standards.
- Ensured consistent unit formatting in `updateChartWithNormalizedData` for the 24-hour average line.
- Enhanced precision in `updateUI` for unpaid earnings display.
- Simplified y-axis label in chart configuration and updated value formatting to reflect new unit standards.
Introduce new theme-specific styles for Bitcoin, including primary color and RGB values. Update DeepSea theme styles and implement a CSS variable for the graph container's shadow. Revise focus styles for theme toggle buttons to align with the new themes.
Implemented CSS rules for Bitcoin and DeepSea themes,
adding distinct box shadows for the graph container based
on the active theme. Retained existing styling for the
theme toggle button in the Bitcoin theme.
Introduce _get_current_time and _parse_timestamp methods
to handle timezone-aware datetime management. Replace
instances of datetime.now() with the new method to ensure
consistent timestamp handling throughout the class.
This commit removes the healthcheck settings for both the Redis service and another service. The removed configurations included parameters for health checks using `redis-cli ping` and `curl`, along with their respective interval, timeout, retries, and start period settings.
Modified healthcheck parameters in docker-compose.yml for
faster response times and removed redis dependency. Adjusted
CSS z-index and transform properties for improved visual
effects in the lightRays animation.
The `memory_dashboard` route and its rendering logic have been completely removed from `App.py`. This includes the collection of memory statistics, error handling, and all associated HTML, CSS, and JavaScript from `memory_dashboard.html`. The removal effectively eliminates the memory monitoring dashboard from the web application. Was not working as intended. But memory management is still full operational.
- Implemented a new `/memory-dashboard` route in `App.py` to display memory usage metrics, including current usage, historical data, and garbage collection stats.
- Updated `docker-compose.yml` to change Redis health check interval from 10s to 1s and added a start period of 3s.
- Created `memory_dashboard.html` with a dashboard layout, styles, and scripts for dynamic memory metrics display and actions.
Introduce memory management configuration in `App.py` with constants for log and history limits, garbage collection intervals, and monitoring settings. Implement adaptive garbage collection, memory leak checking, and metrics recording. Modify `update_metrics_job` for adaptive cleanup and add a memory watchdog. Introduce new API endpoints for memory profiling, history, and forced garbage collection. Update `StateManager` for aggressive data pruning to optimize memory usage.
Introduces a script in `boot.html` to bypass the boot sequence if the user has completed it previously, checking for a valid wallet configuration before redirecting to the dashboard. Additionally, updates the earnings check in `worker_service.py` to handle `None` values more robustly, ensuring a minimum unpaid earnings value of `0.001`.
Updated the star rating display for pool fees in `dashboard.html`. When `metrics.pool_fees_percentage` is between 0.9 and 1.3, the number of stars shown has been increased from one to three, improving the visual representation of the metric.
This commit removes `text-shadow` properties from various CSS classes in `blocks.css`, `boot.css`, `common.css`, `dashboard.css`, `error.css`, `retro-refresh.css`, and `workers.css`, enhancing readability and reducing visual clutter.
In `main.js`, the inline styles for profit value elements are updated to eliminate `text-shadow`, simplifying styling logic.
Additionally, `theme.js` sees the removal of `text-shadow` from headers and interface elements, with adjustments made to box-shadow values for improved visual depth.
These changes reflect a design decision to create a more modern and streamlined interface.
Updated titles in base.html, blocks.html, dashboard.html,
notifications.html, and workers.html to eliminate the
version number "v 0.3", creating a more concise and
uniform appearance across the application.
- Added health check for Redis in `docker-compose.yml`.
- Introduced new environment variables for the dashboard service.
- Updated Redis dependency condition for the dashboard service.
- Modified Dockerfile to use Python 3.9.18 and streamlined directory creation.
- Enhanced `minify.py` with logging and improved error handling.
- Added methods in `OceanData` and `WorkerData` for better data handling.
- Improved error handling and logging in `NotificationService`.
- Refactored `BitcoinProgressBar.js` for better organization and theme support.
- Updated `blocks.js` with new helper functions for block data management.
- Enhanced `dashboard.html` for improved display of network stats.
Updated README.md to include:
- New **Error Handling** section for user-friendly error pages.
- Introduction of the **DeepSea Theme** with immersive effects and a toggle option.
- Added environment variables `NETWORK_FEE` and `TIMEZONE` in `docker-compose.yml`.
- New API endpoints for metrics, timezones, configuration, and health status.
These changes improve user experience, configuration options, and application resilience.
Implemented new CSS styles for the DeepSea theme in `boot.css`, enhancing visual elements like colors, shadows, and animations for various components. Updated `common.css` to include a footer style and a theme loader for improved user experience. Removed inline styles from `base.html` and replaced them with references to the new styles. Added JavaScript to create dynamic underwater effects when the DeepSea theme is active. Updated footer to include a link to Ocean.xyz.
- Changed repository cloning instructions to use `DeepSea-Dashboard`.
- Adjusted the position of the `lowHashrateIndicator` in `main.js` from bottom to top right.
- Added a background color to the indicator for improved visibility.
Added new services: `notification_service.py`, `minify.py`, and `theme-toggle.css`. Renamed `config.json` for clarity and updated `workers.html` to `workers dashboard.html`. Introduced `LICENSE.md` and improved project structure documentation. Adjusted formatting in the "Component Interactions" diagram for consistency.
Added notification_service.py and minify.py for enhanced functionality. Introduced docker-compose.yml for easier orchestration. Updated templates with notifications.html and added theme-toggle.css and notifications.js in static assets. Retained existing styles and functionalities. Moved project_structure.md, added LICENSE.md, and created logs/ directory for runtime logs.
Changed the link to the configuration file in README.md
to point to the new repository for the Deepsea Dashboard.
This reflects the project's renaming and ensures users
access the correct configuration settings.
- Added `z-index` to `body::before` for proper stacking.
- Implemented mobile-specific styles for `#skip-button`.
- Established higher `z-index` for `#config-form` with relative positioning.
- Implement `setupThemeChangeListener` in `main.js` to detect theme changes across tabs, save font configurations, and recreate the chart with appropriate styles for mobile and desktop.
- Introduce new functions in `theme.js` to manage theme preferences on first startup, including setting the DeepSea theme as default and checking for previous app launches.