- Implemented API endpoints for exporting and importing telephone contacts.
- Added functionality to handle contact import with validation and error handling.
- Introduced announce limits for specific aspects to prevent flooding on public networks.
- Updated AnnounceManager to utilize the new configuration for announce limits.
- Enhanced ConfigManager to include new announce limit settings.
- Updated the version in `__init__.py` and `version.py` to 4.3.0.
- Introduced `PageNodeManager` to handle the lifecycle of page nodes, including creation, deletion, and management of their state.
- Added API endpoints for listing, creating, retrieving, deleting, starting, stopping, and announcing page nodes.
- Improved the frontend with a new `PageNodesPage` component for managing page nodes and integrated publishing functionality in the `MicronEditorPage`.
- Introduced settings to block attachments and messages from non-contacts.
- Updated message handling to strip attachments from strangers if configured.
- Enhanced database schema to include a new column for tracking stripped attachments.
- Updated relevant methods and database queries to accommodate new configurations.
- Simplified diagnostic output by renaming "Probabilistic Root Cause Analysis" to "Root Cause Analysis".
- Removed unused methods and calculations related to manifold curvature.
- Updated tests to reflect changes in diagnostic output and removed obsolete assertions.
- Added exception handling for database path resolution in IntegrityManager to ensure robustness against invalid paths.
- Implemented latitude clamping in MapManager to restrict values within valid geographical limits.
- Improved Kullback-Leibler Divergence documentation in CrashRecovery for clarity on its application to Bernoulli distributions.
- Implemented pagination for message export in the maintenance API to handle large datasets efficiently.
- Set default limit values for message queries in MessageHandler and AnnounceDAO to improve consistency.
- Added a busy timeout pragma in the database initialization to manage lock contention.
- Refactored batch insert operations in MessageDAO for improved performance and readability.
- Introduced SQLite pragma tuning in the Database initialization for improved performance.
- Wrapped multiple database operations in transactions to optimize batch processing in MessageDAO.
- Updated DatabaseSchema to version 39, adding new indexes for better query performance.
- Improved test coverage for batch operations and SQL injection scenarios in the DAO layer.
- Implemented identifier validation regex in legacy migrator and schema.
- Enhanced database path handling to escape single quotes during ATTACH DATABASE.
- Added tests for SQL injection scenarios, ensuring robustness against malicious inputs.
- Introduced fuzz tests for DAO layers to cover edge cases and improve overall test coverage.
- Implemented a new API endpoint to export all identities as a ZIP file.
- Added a method in IdentityManager to retrieve all identity backup bytes for export.
- Enhanced error handling for the export process to provide user feedback in case of failures.
- Updated the identities API to include message counts for current identities.
- Modified the contacts API to return total contact counts for pagination.
- Refactored database queries to use asynchronous calls for improved performance.
- Added a new method to count contacts based on search criteria.
- Simplified the get_interfaces method in CommunityInterfacesManager.
Build and Publish Docker Image / build (push) Failing after 2m43s
Build and Publish Docker Image / build-dev (push) Failing after 49s
Build Test / Build and Test (push) Failing after 7m0s
Tests / test (push) Failing after 18s
Security Scans / scan (push) Failing after 48s
- Added methods to collect and manage propagation sync metrics in ReticulumMeshChat, improving message tracking and delivery confirmation.
- Updated frontend components to display detailed sync status notifications, including stored messages and delivery confirmations.
- Implemented URL safety checks in the markdown renderer to prevent XSS vulnerabilities by sanitizing links and image sources.
- Refactored various comments and code for clarity and maintainability across multiple files.
- Implemented reply feature by adding `reply_to_hash` to messages, allowing users to reference previous messages.
- Updated message handling in `convert_lxmf_message_to_dict` to process `reply_to` fields.
- Enhanced frontend components to display reply snippets and manage reply state.
- Added localization for reply-related text in multiple languages.
- Updated database schema to include `reply_to_hash` and created necessary indices.
This update improves user interaction by enabling message threading and enhances the overall messaging experience.
- Introduced entropy calculations to detect content type shifts in files.
- Added SQLite integrity checks to verify database structure and prevent tampering.
- Updated the manifest saving process to include metadata for files, such as entropy and size.
- Expanded ignored file patterns for volatile LXMF components.
- Implemented extensive unit tests to validate new features and ensure robustness.
- Simplified metadata loading in IdentityManager by combining context managers.
- Updated LegacyMigrator to exclude 'id' from common columns during migration to prevent collisions.
- Increased SQLite connection timeout in DatabaseProvider for improved reliability.
- Removed unnecessary thread patching in test configuration.
- Added concurrency stress tests for database operations and identity management.
- Introduced database migration tests to validate legacy data handling and migration success.
- Changed parameter name from `type` to `notification_type` in the `add_notification` method for clarity.
- Improved error handling in various modules by using `contextlib.suppress` to gracefully handle exceptions without cluttering the code with try-except blocks.
- Improved logging for bot state saving failures to aid in debugging.
- Expanded the crash recovery module to include advanced diagnostic metrics such as system entropy, KL-Divergence, and manifold curvature.
- Improved root cause analysis by implementing a probabilistic approach with detailed suggestions for various failure scenarios.
- Added comprehensive tests to validate heuristic analysis, entropy calculations, and the robustness of the crash recovery logic.
- Updated existing tests to ensure accurate diagnosis and reporting of system states during exceptions.
- Updated regex patterns in the MarkdownRenderer to use non-greedy matching for better accuracy in text rendering.
- Enhanced the test for header rendering to ensure correct HTML structure and added assertions for escaping content without markdown special characters.
- Added nullification of various manager attributes to prevent reference cycles and memory leaks during teardown.
- Improved error handling and ensured that callbacks are cleared for telephone and voicemail managers.
- Enhanced the integrity manager's save process to only execute if it exists, ensuring stability during the shutdown sequence.
- Introduced a property for accessing the event loop, allowing for better handling of both running and fallback scenarios.
- Updated the internal loop management to improve compatibility with asynchronous operations.
- Updated the MarkdownRenderer to prevent rendering issues with single asterisks and underscores by ensuring they are not surrounded by whitespace.
- Introduced new property-based tests for IdentityManager to validate robustness against various input scenarios.
- Added tests for Markdown list and link rendering to ensure correct HTML output from Markdown input.
- Implemented pagination at the database level for improved performance when no search query is provided.
- Added a new method `get_filtered_announces_count` in `AnnounceManager` to retrieve the total count of filtered announces for pagination.
- Adjusted the `ReticulumMeshChat` class to utilize the new count method and handle pagination more efficiently.