742 Commits

Author SHA1 Message Date
Ivan 0a76247459 chore(licenses) update versions 2026-05-12 16:31:53 -05:00
Ivan cd27f2bb7c feat(memory) add heap monitor for frontend 2026-05-12 16:31:21 -05:00
Ivan 020fe05275 feat(backend) add memory diagnostics, limit sqlite cache statements 2026-05-11 18:24:22 -05:00
Ivan 0e86b574ed feat(frontend) update styling 2026-05-11 18:13:56 -05:00
Ivan b2e8e3303b chore(codebase): format 2026-05-10 19:32:04 -05:00
Ivan ca6e599043 feat(version, dependencies): prep v4.6.3, update LXMF 2026-05-10 11:19:55 -05:00
Ivan 3d60f7f796 fix(docker): add python3 to build-frontend stage for docs build; add i18n for map drag-drop 2026-05-10 06:22:36 -05:00
Ivan e1de656219 feat(map): drag-and-drop GeoJSON/KML/KMZ import on map window 2026-05-10 06:22:36 -05:00
Ivan df8974697c fix(docker): include CHANGELOG.md, logo/, and reticulum manual in Docker images; fix markdown table styling in docs 2026-05-10 06:22:31 -05:00
Ivan 9b5574c89a ci(docker): add hardened variant to build matrix, update Dockerfiles and docs for UV 2026-05-10 03:40:22 -05:00
Ivan 24edabb9ab fix(nomadnet): parse relative /page/ and /file/ URLs, show full URL in link hover titles 2026-05-10 01:53:51 -05:00
Ivan 41e40dc3aa fix(nomadnet): convert file download backtick params to var_ dict, fix cancel crash 2026-05-10 01:53:45 -05:00
Ivan 4baf577b4e fix(nomadnet): revert parseNomadnetworkUrl change, only split backtick params for file downloads 2026-05-10 01:22:19 -05:00
Ivan 1fa5a74676 fix(nomadnet): parse backtick-separated parameters in download URLs 2026-05-10 01:18:30 -05:00
Ivan 0db5ad0c80 ui(banishment): group blocked page by identity, show all destination hashes per identity 2026-05-10 01:13:44 -05:00
Ivan 88a887df86 fix(banishment): delete contact and stamp/ticket on block for all identity destinations 2026-05-10 01:13:27 -05:00
Ivan 3b8704b4da fix(banishment): block all identity addresses, prevent delivery callbacks, fix unbanish UI sync 2026-05-10 00:46:35 -05:00
Ivan d64cd6baac chore(codebase): format 2026-05-09 22:50:11 -05:00
Ivan 57d432bdbd fix(interfaces): decouple default_bootstrap_only from Reticulum config
Move default_bootstrap_only from Reticulum [reticulum] section to MeshChatX

config so it only applies to manually added TCP/Backbone interfaces,

not to discovered/auto-connected ones. Scrub stale value from

Reticulum config on startup to fix existing installs.
2026-05-09 22:33:21 -05:00
Ivan 1ed042344b fix(android): prevent RNodeInterface crash and use external storage
- Disable RNodeInterface/RNodeIPInterface/RNodeMultiInterface in Reticulum

  config on Android before startup to prevent crashes from missing

  serial/BLE support in Chaquopy

- Use Android getExternalFilesDir() as default storage on Android so

  databases and config are user-accessible via file managers

- Add _get_android_external_files_dir() helper to android_push_bridge
2026-05-09 21:19:12 -05:00
Ivan 494942de07 style: apply formatting fixes across backend, frontend, and tests 2026-05-09 21:11:44 -05:00
Ivan 66d98f4d33 fix(frontend): clean up failed ping error logging in dev tools
Replace raw console.log(e) dumps with console.warn containing just

the human-readable message, suppressing the noisy HttpError stack trace.
2026-05-09 21:10:16 -05:00
Ivan 2397eeff20 feat(config): raise announce storage and API defaults to 2500
Increase announce_max_stored_* and announce_fetch_limit_* defaults from

1000/500 to 2500 so the API lists everything stored in the database by default.

Matches better with public network usage where node counts are higher.
2026-05-09 21:08:41 -05:00
Ivan 3b72902317 test(nomadnet): add tests for query-param file downloads and docs fixes
- Add backend tests for NomadnetFileDownloader data parameter

- Add WS order test verifying data reaches the downloader

- Add docs_manager tests for index.html generation and directory rejection

- Extend security fuzzing to cover data field in file downloads

- Add frontend tests for parseNomadnetworkUrl with query strings

- Add frontend tests for downloadNomadNetFile data payload

- Fix meshchat.py NomadnetFileDownloader kwarg name regression
2026-05-09 21:00:38 -05:00
Ivan 500818941d feat(nomadnet): support query-parameter data in file downloads
Parse query strings from nomadnet URLs and forward them as request data

to link.request() for /file/ downloads, matching upstream NomadNet behavior.
2026-05-09 20:33:57 -05:00
Ivan dc77129ecd fix(docs_manager): generate index.html for meshchatx-docs so /meshchatx-docs/index.html resolves 2026-05-09 19:26:43 -05:00
Ivan fee9e33562 refactor(ui): reorder sidebar with telephone below messages 2026-05-09 19:07:11 -05:00
Ivan d1145cd1c2 fix(l10n): add missing flood protection translation keys to all locales 2026-05-09 19:01:30 -05:00
Ivan e6762ec2b7 feat(frontend): update call page and add flood protection settings UI 2026-05-09 19:01:21 -05:00
Ivan 9671325c50 fix(identity_context): guard inbound stamp cost comparison against non-int values 2026-05-09 19:01:12 -05:00
Ivan cdf2a21897 feat(backend): implement flood protection and improve propagation sync reliability 2026-05-09 19:01:03 -05:00
Ivan c9f496cceb fix(meshchat): delete conversation when blocking a destination to ensure proper cleanup 2026-05-09 02:18:53 -05:00
Ivan 434e296fa0 fix(config_manager): disable telephone announce feature by default 2026-05-09 02:14:50 -05:00
Ivan 84ff3a9bed fix(meshchat): handle configparser errors when reading configuration files to prevent crashes 2026-05-09 01:57:11 -05:00
Ivan b84ade45f8 fix(meshchat, health_monitor): add garbage collection calls to cleanup resources during context teardown and health checks 2026-05-09 01:03:59 -05:00
Ivan 9f04aef66a refactor(meshchat): implement delayed hangup for rejected calls and improve contact lookup handling 2026-05-09 00:56:33 -05:00
Ivan 9a10a03734 feat(SettingsPage): implement favourites import/export functionality and handle API responses 2026-05-08 23:45:23 -05:00
Ivan 3c196e208c feat(meshchat): add password reset functionality and bulk import for favourites 2026-05-08 23:44:52 -05:00
Ivan e5080a7b3c fix(TutorialModal, AddInterfacePage, InterfacesPage): update defaultBootstrapOnly to false and add stats for TX/RX to discovered interfaces. 2026-05-07 20:05:46 -05:00
Ivan 5fa79d363b feat(conversationScroll): add scroll management functions and update E2E tests for message switching 2026-05-07 20:05:10 -05:00
Ivan 02b8695726 refactor(ConversationViewer): streamline message loading UI 2026-05-07 20:04:57 -05:00
Ivan 7867034f5d fix(auto_propagation_manager): add router existence checks in propagation methods to prevent errors 2026-05-07 20:03:42 -05:00
Ivan e8a6e7dc5a feat(logging): implement console logging restoration after Reticulum initialization and add instance name corruption repair for hot reloads 2026-05-07 20:03:22 -05:00
Ivan 6407950bd4 refactor(reticulum_config): update _ensure_reticulum_config method to conditionally create config file 2026-05-06 16:55:36 -05:00
Ivan d0cad87973 feat(micron-parser): update WASM fetching logic with ETag support and integrity checks; update integrity.json with new fields 2026-05-06 16:38:26 -05:00
Ivan 06710bcd69 feat(lxmf): update conversation previews to include image, audio, and file attachment notifications and add related tests 2026-05-06 16:32:21 -05:00
Ivan b14c7c880a refactor(async_utils): remove asyncio 3.13 patch and clean up related code; add regression test for HTTPS file response 2026-05-06 16:20:57 -05:00
Ivan 95f562e83e i18n(nomadnet): add multiline_hint for all locales 2026-05-06 16:20:23 -05:00
Ivan 4d6c4a38a9 refactor(reticulum_config): replace default config text method with file writing functionality and update related tests 2026-05-06 16:19:34 -05:00
Ivan 83be395425 refactor(async_utils): adjust coroutine management limits and add logging for dropped coroutines 2026-05-06 16:19:34 -05:00