101 Commits

Author SHA1 Message Date
Dan Ditomaso
acfa7d2269 Add badge indicator on layers icon. (#894)
* feat: indicate number of layers enabled.

* Update packages/web/src/components/PageComponents/Map/Tools/MapLayerTool.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: reduced code duplication in layers component

* fixed unread message bubble

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-16 09:56:32 -04:00
Dan Ditomaso
8f62fb7877 Show nodes on right sidebar on app load (#892)
* fix: show nodes on right sidebar on app load

* chore: update protobuf version to latest (#890)

* chore(deps-dev): bump happy-dom from 19.0.2 to 20.0.0 (#891)

Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 19.0.2 to 20.0.0.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v19.0.2...v20.0.0)

---
updated-dependencies:
- dependency-name: happy-dom
  dependency-version: 20.0.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update packages/web/src/core/stores/nodeDBStore/index.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-15 22:02:45 -04:00
dependabot[bot]
ac25326d24 chore(deps-dev): bump happy-dom from 19.0.2 to 20.0.0 (#891)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 19.0.2 to 20.0.0.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v19.0.2...v20.0.0)

---
updated-dependencies:
- dependency-name: happy-dom
  dependency-version: 20.0.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-15 16:14:02 -04:00
Dan Ditomaso
34bdbe4709 chore: update protobuf version to latest (#890) 2025-10-15 10:23:08 -04:00
Dan Ditomaso
8d98aca496 fix: updated module paths (#889) 2025-10-14 17:14:49 -04:00
Dan Ditomaso
ec9ad1d309 fix: remove buf schema registry from workflow (#888) 2025-10-14 15:24:41 -04:00
Dan Ditomaso
9ab49d1431 Add protobufs repo as git submodule (#882)
* feat: add protobufs git submodule

* fixes

* fixed publishing issue

* fixed lockfile
2025-10-14 08:54:55 -04:00
Kamil Dzieniszewski
f5a7132421 Update README.md (#881)
* Update README.md

* chore: rename CONTRIBUTIONS.md to CONTRIBUTING.md

- Rename packages/web/CONTRIBUTIONS.md to CONTRIBUTING.md to follow standard open source naming convention
- Update reference in packages/web/README.md to point to the renamed file
2025-10-14 07:12:03 -04:00
Dan Ditomaso
c66b315623 Restored user's node to ui (messages/node list) (#878)
* fix: restored own node to ui

* Update packages/web/src/pages/Messages.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/core/stores/nodeDBStore/index.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-11 10:07:56 -04:00
Dan Ditomaso
76ba4e917e fix: removed en-GB from fallback (#879) 2025-10-11 10:07:40 -04:00
github-actions[bot]
d0da79bf56 chore(i18n): New Crowdin Translations by GitHub Action (#873)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-10-06 22:45:04 -04:00
Dan Ditomaso
66bf3f1578 Update web dependencies (#876)
* chore: update web depdencies

* update lock file

* chore: add lock file
2025-10-06 22:44:46 -04:00
github-actions[bot]
6a358883f9 chore(i18n): New Crowdin Translations by GitHub Action (#868)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-29 22:19:38 -04:00
github-actions[bot]
66c3945bc4 chore(i18n): New Crowdin Translations by GitHub Action (#863)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-22 08:59:35 -04:00
Jeremy Gallant
36443fd838 Map improvements - node and neighbor display (#850)
* Improves map node and neighbor display

Updates the map page to enhance the visualization of nodes, waypoints, and neighbor connections.

Adds a map layer tool for toggling the visibility of direct/remote neighbors and position precision indicators.

Introduces clustering to improve map readability when multiple nodes share the exact same location.

Adds SNR lines to visually represent network connections between nodes

Co-Authored-By: jamon <jamon@users.noreply.github.com>

* Clean up

* Update packages/web/src/components/generic/TimeAgo.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/components/PageComponents/Map/Layers/SNRLayer.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Improve dark mode and expires field

* Review fixes

Co-Authored-By: Dan Ditomaso <dan.ditomaso@gmail.com>

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: jamon <jamon@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Dan Ditomaso <dan.ditomaso@gmail.com>
2025-09-18 08:13:34 -04:00
Jeremy Gallant
8cc451546d Command Menu improvements (#857)
* Add dialogs for reset and clear actions + clear stores

* Catch failures

* Improve tests, don't reset store on failure

* Remove unnecessary i18n string

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-18 08:13:19 -04:00
Jeremy Gallant
1bdd923365 Do not unregister form (#856)
Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-17 18:34:19 +02:00
Jeremy Gallant
d5610de826 Update @bufbuild/protobuf to version 2.8.0 for web as well (#852)
Bumped @bufbuild/protobuf dependency from 2.6.0 to 2.8.0 in packages/web. Updated pnpm-lock.yaml accordingly to use the new version.

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-14 21:32:00 -04:00
Jeremy Gallant
aaf85943a8 Address new linting rules (#851)
Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-14 21:31:47 -04:00
github-actions[bot]
119cde65c7 chore(i18n): New Crowdin Translations by GitHub Action (#849)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-14 14:51:12 -04:00
Jeremy Gallant
3e2fe721d3 Improvements to node filtering and storage (#839)
* Improves node filtering and voltage display

Ensures voltage values are always displayed as positive.

Enhances node filtering logic to handle unknown or undefined values, preventing nodes from being unexpectedly hidden.

Updates UI labels for clarity.

Improves Nodes page responsiveness by debouncing node updates and optimizing selector usage, preventing unnecessary re-renders.

Adds validation warnings for key conflicts between nodes.

* Update packages/web/src/core/stores/nodeDBStore/nodeDBStore.test.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/core/stores/nodeDBStore/nodeValidation.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Revert copilot suggestion

* Review changes

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-12 17:21:13 +02:00
Dan Ditomaso
ad6b9f470f Bumped library package version (#843)
* chore: bumped package versions

* removed jsr file
2025-09-11 22:14:32 -04:00
Dan Ditomaso
765f672bf5 Improve the nightly and release workflow (#836)
* fix: improve the nightly and release workflow

* Update .github/workflows/nightly.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix from code review

* add type module to node-serial

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-11 15:34:04 -04:00
Jeremy Gallant
1214b6ecf6 Allow default overrideFrequency (#838)
* Allow overrideFrequency == 0
* Fix typo

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-10 20:33:32 +02:00
Dan Ditomaso
aababb8075 Dialog abstraction using DialogWrapper (#830)
* feat: add dialog abstraction system

* removed unneeded file

* fix formatting

* linting fixes
2025-09-10 13:56:45 -04:00
dependabot[bot]
3b0406c5af chore(deps): bump vite from 7.1.1 to 7.1.5 (#837)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.1 to 7.1.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.1.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-10 13:56:12 -04:00
github-actions[bot]
6772f066ee chore(i18n): New Crowdin Translations by GitHub Action (#835)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-07 21:10:35 -04:00
Dan Ditomaso
d8df40816f fix: added directive to remove service worker (#834) 2025-09-07 13:14:24 -04:00
Brad
f9bd61af49 Fixed overrideFrequency Input Constraints (#801)
* Fixed overrideFrequency to properly allow for floats with a minimum of 410 MHz and maximum of 930 MHz. Added 3 decimal point check.

* Removed duplicate error message in FormInput.tsx

* Added error message for overrideFrequency in several locales

* Simplified check and reverted translated languages to English besides German. Also fixed a typo in src/components/UI/Input.tsx.

* Let i18n handle fallback + linting

---------

Co-authored-by: philon- <jeremy@gallant.se>
2025-09-04 18:22:06 -04:00
Henri Bergius
bcdda8b751 Connection robustness improvements (#813)
* Clear heartbeat and queue when disconnected

* Give clearer error in case configure fails due to a lost connection. Used to throw 'Packet does not exist'

* If the queue processing error is due to a lost connection, throw it instead of looping endlessly

* In case we send a disconnection event we don't need to also throw

* Catch heartbeat errors

* Also handle invalid state errors

* Handle socket timeouts

* Log heartbeat failures

* Make linter happy

* Transform stream being a singleton prevented reconnection attempts

* Adapt tests to not using singleton

* Aborting already ends the connection
2025-09-04 13:08:05 -04:00
Jeremy Gallant
dcb44d27fe Persistent message store (#814)
* Fix default filter behaviour

* Persist message store

* messageStore tests, node PKI validation

Implement node validation and improve merging logic

- Added `validateIncomingNode` function to validate new nodes against existing nodes, checking for public key conflicts and ensuring proper handling of node updates.
- Updated `nodeDBFactory` to utilize the new validation function when adding nodes.
- Enhanced `getNodes` method to optionally include the current node in the results.
- Removed the `mergeNodeInfo` utility as its functionality is now integrated into the validation and merging process.
- Updated tests to cover new validation logic and ensure correct behavior during node addition and merging.
- Cleaned up unused utility functions related to key comparison.

* refactor: reuse eviction logic for message and node stores

* Update format, move hooks

* Improve test performance

* Update imports

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: Dan Ditomaso <dan.ditomaso@gmail.com>
2025-09-03 21:00:48 -04:00
Dan Ditomaso
d0f4939a4d Added lint rule to enforce importing with extensions (#831)
* fix: added lint rule to enforce importing with extentions

* fix test import path

* added import file extentions
2025-09-03 17:07:00 -04:00
Jeremy Gallant
d66f10e715 Fix rename seperator again (#828)
* Reapply "Seperator -> Separator (#823)" (#827)

This reverts commit e421eb4244.

* Rename new seperator

* Update packages/web/src/components/Dialog/NodeDetailsDialog/NodeDetailsDialog.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/components/Dialog/RebootDialog.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/components/PageComponents/Map/NodeDetail.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/pages/Dashboard/index.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: Dan Ditomaso <dan.ditomaso@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-02 22:02:36 -04:00
Dan Ditomaso
e421eb4244 Revert "Seperator -> Separator (#823)" (#827)
This reverts commit 3582499a3c.
2025-09-02 09:41:48 -04:00
Jeremy Gallant
ce16bf5aa4 Chat message date display (#824)
* Date handling

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-01 23:00:05 -04:00
Jeremy Gallant
3582499a3c Seperator -> Separator (#823)
Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-01 21:57:51 -04:00
Jeremy Gallant
1946000d14 New channel config (#807)
* Channel config rework

Add staged channel config with tabbed UI, import/export workflow, and global form state refactor

* Improve import dialog config comparison and UI labels

* Review fixes

* Improve state handling

* Fix default filter behaviour

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-01 09:07:34 -04:00
Jeremy Gallant
01fa030ef9 Fix default filter behaviour (#820)
Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-08-31 21:44:22 -04:00
Jeremy Gallant
90cf136b8c Update test format (#821)
* Lint tests, format JSON

* Update test formatting

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-08-31 21:30:11 -04:00
github-actions[bot]
85accf7c25 chore(i18n): New Crowdin Translations by GitHub Action (#815)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-31 16:05:23 -04:00
Jeremy Gallant
91426a89e5 Lint tests, format JSON (#818) 2025-08-31 16:04:34 -04:00
Henri Bergius
85aa7a37b9 Methods for setting/removing fixed position (#802)
* Method for setting fixed position

* Implement removeFixedPosition

* Fix formatting
2025-08-27 18:46:14 -04:00
Henri Bergius
b87fad23d8 Catch packet decoding errors (#809)
* Catch decoding errors, refs #808

* Catch packet handling errors

* Add missing type
2025-08-25 16:59:35 -04:00
Jeremy Gallant
68ec7ee5d8 Persistent nodedb (#780)
* Refactor  and consolitdate store imports

- Created a new index file in the core stores directory to export all stores from a single module.
- Updated imports to use consolidated store exports.

* Remove unnecessary import

* Update imports

* First steps to persist nodeDB

* Use named exports

* Change store import after merge

* Persistent nodeDB initial work

* Key mishmatch warning, new serialization handler

* Minor copilot changes

* Add NODEDB_RETENTION_NUM

* Updated tests

* Refactor PKI mismatch logic

* Clear persisted db on reset

* Only persist on featureFlag

* Mock featureFlag in tests

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-08-24 09:23:20 -04:00
github-actions[bot]
e33463b371 chore(i18n): New Crowdin Translations by GitHub Action (#806)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-23 20:45:31 -04:00
Jeremy Gallant
d4b80cf90b Re-add toaster component (#804) 2025-08-23 20:45:22 -04:00
Jeremy Gallant
d7e32e9b03 Add transport status events (#790)
* Transport status events

Add symbol docs
Emit transport status events
Transport test suite

* Review fixes

* Remove core dependency

* HTTP transport use AbortSignal, error handling in TransportNode

* Improve stream handling

* Update packages/transport-web-serial/src/transport.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix linting

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-23 20:44:03 -04:00
Dan Ditomaso
449fb3ac36 Added feature flags system (#803)
* added feature flag system

* Update packages/web/src/core/services/featureFlags.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove process.env

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-22 13:47:24 -04:00
Dan Ditomaso
1de92cd2e9 Replace workspace formatter/linting tool (#799)
* replaced workspace formatter/linting tool

* format / linting fixes
2025-08-22 12:30:05 -04:00
Dan Ditomaso
6eece7172a bumped web-serial version (#797) 2025-08-20 11:53:12 -04:00