Commit Graph

112 Commits

Author SHA1 Message Date
Ivan 9775bd62da refactor: migrate from requests to aiohttp for asynchronous HTTP requests in docs_manager, map_manager, and translator_handler 2026-04-08 16:09:13 -05:00
Ivan 96fb1a4e2f chore(codebase) format 2026-04-08 03:19:38 -05:00
Ivan c3aa68adb1 feat(nomadnet): implement caching for active links and better download phase tracking in NomadnetDownloader
Also added stats for page load time and size
2026-04-07 15:37:03 -05:00
Ivan 9f8ffbfc9b feat(rnstatus): update RNStatusHandler with new formatting functions and interface discovery integration 2026-04-04 23:32:19 -05:00
Ivan 25102f8d6d feat(database): initialize AccessAttemptsDAO in Database class for tracking access attempts 2026-03-31 06:07:43 +03:00
Ivan 8367f17464 feat(database): add AccessAttempts table and update schema version to 42 2026-03-31 06:07:38 +03:00
Ivan 730dd0bcd2 feat(Auth, AccessAttempts): add AccessAttemptsDAO for logging and managing user access attempts, including trusted client handling and cleanup of old records 2026-03-31 06:07:12 +03:00
Ivan d03bdf08ea cleanup 2026-03-31 04:07:41 +03:00
Ivan c8e0e2121a feat(config): add 'show unknown contact banner' configuration option and update serialization in ReticulumMeshChat 2026-03-24 03:45:10 +03:00
Ivan 4edb9c7c78 feat(data): add community interfaces JSON file with user-submitted online listings 2026-03-24 00:41:20 +03:00
Ivan daf48ec406 chore: bump version to 4.4.0; refactor announce limits and add new community interfaces management 2026-03-24 00:40:08 +03:00
Ivan 0564eb8f10 Improve message handling by stripping UTF-16 surrogates from search terms and cleaning up input strings in ReticulumMeshChat. 2026-03-22 15:08:26 +03:00
Sudo-Ivan b6c0ac450c Fix database health snapshot functionality and add corresponding tests 2026-03-11 05:32:56 -05:00
Sudo-Ivan 6589c2124a Add telephone contacts import/export endpoints and announce limits configuration
- 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.
2026-03-11 05:12:06 -05:00
Sudo-Ivan 824d84e3ac Implement PageNodeManager for managing page nodes
- 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`.
2026-03-06 19:42:35 -06:00
Sudo-Ivan 8661711898 Add configuration options to block attachments and messages from strangers
- 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.
2026-03-06 15:49:23 -06:00
Sudo-Ivan 1653553518 Refactor crash recovery diagnostics and remove unused curvature calculations
- 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.
2026-03-06 12:16:56 -06:00
Sudo-Ivan f10a29d21a Improve crash recovery and monitoring capabilities. 2026-03-06 12:03:50 -06:00
Sudo-Ivan 83716134d8 Improve error handling and validation in IntegrityManager and CrashRecovery
- 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.
2026-03-06 11:38:18 -06:00
Sudo-Ivan 4fb50f412e Improve message retrieval and database operations
- 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.
2026-03-06 03:54:36 -06:00
Sudo-Ivan bc8969ab16 Improve database performance and SQL handling
- 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.
2026-03-06 03:26:36 -06:00
Sudo-Ivan 9d7ae2017b Add SQL injection prevention measures in database migration and schema validation
- 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.
2026-03-06 03:08:28 -06:00
Sudo-Ivan 9dee9b0662 Add identity export functionality with ZIP compression
- 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.
2026-03-06 01:02:36 -06:00
Sudo-Ivan 546f141e4f Update Contacts and Identity Management Features
- 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.
2026-03-06 00:37:58 -06:00
Sudo-Ivan fa98acbab0 Refactor CommunityInterfacesManager to remove health check functionality and simplify interface retrieval. Update tests to reflect static interface list behavior. 2026-03-05 22:12:30 -06:00
Sudo-Ivan 92be2e4304 Add database backup health checks and anomaly detection 2026-03-05 16:02:08 -06:00
Sudo-Ivan c0e154c886 Improve database health checks in IdentityContext: add checks for database integrity and health issues during setup and closure, updating app state accordingly. 2026-03-05 16:00:13 -06:00
Sudo-Ivan 39ef2323ff Add handling for reply_quoted_content in LXMF message parsing to support quoted replies 2026-03-05 15:16:33 -06:00
Sudo-Ivan 471bf62bd6 cleanup backend (format) 2026-02-23 19:42:53 -06:00
Sudo-Ivan a29d3ce0ac Improve propagation sync and improve markdown rendering
CI / build-frontend (push) Failing after 18s
CI / lint (push) Failing after 1m45s
CI / test-backend (push) Successful in 42s
CI / test-lang (push) Failing after 19s
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.
2026-02-14 19:19:09 -06:00
Sudo-Ivan 67fe101554 Improve messaging features and configuration options
- Add more tests
- Fix notifactions
2026-02-01 17:21:03 -06:00
Sudo-Ivan d474afbf80 Add reply functionality to messages in ReticulumMeshChat
- 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.
2026-02-01 15:13:00 -06:00
Sudo-Ivan f94fe0ec08 Improve integrity management with advanced checks and metadata support
- 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.
2026-01-16 09:33:19 -06:00
Sudo-Ivan 64e4fceb2d Refactor identity manager metadata loading and improve legacy migrator column handling
- 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.
2026-01-16 09:21:30 -06:00
Sudo-Ivan 81b574da29 Refactor notification handling and improve error logging
- 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.
2026-01-16 08:53:00 -06:00
Sudo-Ivan 1eeeb1cb4e Improve crash recovery diagnostics and analysis
- 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.
2026-01-14 18:32:58 -06:00
Sudo-Ivan 16d5f2d497 Refactor MarkdownRenderer regex patterns for improved matching
- 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.
2026-01-14 18:16:41 -06:00
Sudo-Ivan a8687a0e09 Cleanup 2026-01-14 17:58:49 -06:00
Sudo-Ivan 93974edf3f Refactor IdentityContext teardown process to ensure proper cleanup
- 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.
2026-01-14 17:58:37 -06:00
Sudo-Ivan a022a96f92 Improve crash recovery diagnostics and suggestions 2026-01-14 17:56:15 -06:00
Sudo-Ivan 7e57cc2b24 Add in-memory database connection handling in DatabaseProvider 2026-01-14 17:45:37 -06:00
Sudo-Ivan 6a4ed6a048 Fix WebAudioBridge to manage event loop retrieval
- 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.
2026-01-14 17:45:20 -06:00
Sudo-Ivan ca3ef05f75 Clear clients list on call end in WebAudioBridge to prevent memory leaks 2026-01-14 13:16:55 -06:00
Sudo-Ivan ca36d082fd Update Markdown rendering and add robust identity restoration tests
- 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.
2026-01-14 13:08:26 -06:00
Sudo-Ivan 140ee6f341 Refactor telemetry data packing in Telemeter class
- Simplified the packing of location data by removing unnecessary rounding operations.
2026-01-14 12:39:51 -06:00
Sudo-Ivan 2fb42d27fa Add pagination support in database queries for announces
- 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.
2026-01-14 11:01:50 -06:00
Sudo-Ivan 6d86f6bc67 Remove entries from CommunityInterfacesManager initialization 2026-01-10 20:15:18 -06:00
Sudo-Ivan e949ccf10a format 2026-01-10 17:53:31 -06:00
Sudo-Ivan fb790a4c08 feat(identity_context): integrate AutoPropagationManager for background node selection 2026-01-08 19:29:10 -06:00
Sudo-Ivan e7beabba11 feat(config_manager): add auto-select configuration for preferred propagation node 2026-01-08 19:28:55 -06:00