21 Commits
Author SHA1 Message Date
hermes 9481b6614a fix(connections): allow toggling HTTPS off in Add Connection dialog
Push to Main CI / build-and-package (push) Canceled after 0s
The 'Use HTTPS' switch was disabled whenever the web client itself was
served over HTTPS, making it impossible to add a plain-HTTP node.
Keep the switch always interactive and instead show a mixed-content
warning when HTTP is selected on an HTTPS-served page.

Adds unit tests for the protocol toggle.
2026-08-30 20:46:39 +00:00
Dan DitomasoandGitHub cffd35fe05 Merge pull request #1400 from meshtastic/dependabot/npm_and_yarn/oxfmt-0.63.0
Push to Main CI / build-and-package (push) Canceled after 0s
chore(deps-dev): bump oxfmt from 0.61.0 to 0.63.0
2026-08-23 01:48:53 +00:00
Dan DitomasoandGitHub a2036802cf Merge pull request #1398 from meshtastic/dependabot/npm_and_yarn/testing-library/user-event-14.6.4
chore(deps-dev): bump @testing-library/user-event from 14.6.1 to 14.6.4
2026-08-23 01:48:50 +00:00
Dan DitomasoandGitHub 3d88827331 Merge pull request #1399 from meshtastic/dependabot/npm_and_yarn/maplibre-gl-6.3.0
chore(deps): bump maplibre-gl from 6.0.0 to 6.3.0
2026-08-23 01:48:49 +00:00
Dan DitomasoandGitHub 2c4abbf128 Merge branch 'main' into dependabot/npm_and_yarn/testing-library/user-event-14.6.4 2026-08-22 21:46:39 -04:00
Dan DitomasoandGitHub 8cb2f16b19 Merge branch 'main' into dependabot/npm_and_yarn/maplibre-gl-6.3.0 2026-08-22 21:46:13 -04:00
Dan DitomasoandGitHub 1c254b707f Merge branch 'main' into dependabot/npm_and_yarn/oxfmt-0.63.0 2026-08-22 21:46:02 -04:00
Dan DitomasoandGitHub 77bf54be2a Merge pull request #1370 from meshtastic/dependabot/github_actions/docker/login-action-4.5.2
chore(deps): bump docker/login-action from 4 to 4.5.2
2026-08-23 01:33:48 +00:00
Dan DitomasoandGitHub 58d09a1d47 Merge branch 'main' into dependabot/github_actions/docker/login-action-4.5.2 2026-08-22 21:33:39 -04:00
dependabot[bot]andGitHub 1fdfd76f42 chore(deps-dev): bump oxfmt from 0.61.0 to 0.63.0
Bumps [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) from 0.61.0 to 0.63.0.
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.63.0/npm/oxfmt)

---
updated-dependencies:
- dependency-name: oxfmt
  dependency-version: 0.63.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-16 08:51:45 +00:00
dependabot[bot]andGitHub 722766b0a4 chore(deps): bump maplibre-gl from 6.0.0 to 6.3.0
Bumps [maplibre-gl](https://github.com/maplibre/maplibre-gl-js) from 6.0.0 to 6.3.0.
- [Release notes](https://github.com/maplibre/maplibre-gl-js/releases)
- [Changelog](https://github.com/maplibre/maplibre-gl-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/maplibre/maplibre-gl-js/compare/v6.0.0...v6.3.0)

---
updated-dependencies:
- dependency-name: maplibre-gl
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-16 08:51:16 +00:00
dependabot[bot]andGitHub 369b852080 chore(deps-dev): bump @testing-library/user-event from 14.6.1 to 14.6.4
Bumps [@testing-library/user-event](https://github.com/testing-library/user-event) from 14.6.1 to 14.6.4.
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v14.6.1...v14.6.4)

---
updated-dependencies:
- dependency-name: "@testing-library/user-event"
  dependency-version: 14.6.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-16 08:49:13 +00:00
Dan DitomasoandGitHub 1db40fe80b Merge pull request #1375 from nikolya-prodigy/fix/react-map-gl-maplibre-6
fix(deps): update react-map-gl for MapLibre GL 6
2026-08-10 12:33:16 +00:00
Dan DitomasoandGitHub 6c691c7ecb Merge branch 'main' into fix/react-map-gl-maplibre-6 2026-08-10 08:32:33 -04:00
Hunter ThornsberryandGitHub 0142a28d89 Merge pull request #1383 from meshtastic/dependabot/npm_and_yarn/fast-uri-3.1.5
chore(deps): bump fast-uri from 3.1.4 to 3.1.5
2026-08-09 02:40:20 +00:00
d9e928d682 fix: update pnpm-lock.yaml with only fast-uri 3.1.4→3.1.5 bump
Dependabot's lockfile update also pulled in 8 packages published
within the minimumReleaseAge window (2 days), causing pnpm's
supply-chain policy check to fail in CI. Restore lockfile to the
parent state and apply only the minimal 4-line fast-uri change.

Co-authored-by: Hunter275 <3261295+Hunter275@users.noreply.github.com>
2026-08-08 19:52:04 +00:00
dependabot[bot]andGitHub d452d99ef0 chore(deps): bump fast-uri from 3.1.4 to 3.1.5
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.4 to 3.1.5.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.4...v3.1.5)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-08 19:40:13 +00:00
NIKOLYA PRODIGY d2cf940df1 fix(deps): support MapLibre GL 6 2026-08-01 15:03:04 +03:00
Hunter ThornsberryandGitHub d920c7e044 Merge branch 'main' into dependabot/github_actions/docker/login-action-4.5.2 2026-07-31 23:15:47 -04:00
Hunter ThornsberryandGitHub 0374317968 Merge branch 'main' into dependabot/github_actions/docker/login-action-4.5.2 2026-07-31 21:12:11 -04:00
dependabot[bot]andGitHub 68adbe4cac chore(deps): bump docker/login-action from 4 to 4.5.2
Bumps [docker/login-action](https://github.com/docker/login-action) from 4 to 4.5.2.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v4...v4.5.2)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.5.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-31 00:10:52 +00:00
7 changed files with 476 additions and 300 deletions
+1 -1
View File
@@ -119,7 +119,7 @@ jobs:
uses: docker/setup-buildx-action@v4
- name: Login to GHCR
uses: docker/login-action@v4
uses: docker/login-action@v4.5.2
with:
registry: ghcr.io
username: ${{ github.actor }}
+3 -3
View File
@@ -80,7 +80,7 @@
"immer": "^11.1.15",
"js-cookie": "^3.0.8",
"lucide-react": "^1.28.0",
"maplibre-gl": "6.0.0",
"maplibre-gl": "6.3.0",
"react": "^19.2.8",
"react-dom": "^19.2.8",
"react-error-boundary": "^6.1.2",
@@ -99,7 +99,7 @@
"@tanstack/router-plugin": "^1.168.22",
"@testing-library/jest-dom": "^7.0.0",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@testing-library/user-event": "^14.6.4",
"@types/chrome": "^0.2.2",
"@types/geojson": "^7946.0.16",
"@types/js-cookie": "^3.0.6",
@@ -112,7 +112,7 @@
"autoprefixer": "^10.5.4",
"gzipper": "^8.3.0",
"happy-dom": "^20.11.1",
"oxfmt": "^0.61.0",
"oxfmt": "^0.63.0",
"oxlint": "^1.75.0",
"tailwind-merge": "^3.6.0",
"tailwindcss": "^4.3.3",
@@ -79,6 +79,7 @@
"inputPlaceholder": "192.168.1.10 or meshtastic.local",
"heading": "URL or IP",
"useHttps": "Use HTTPS",
"mixedContentWarning": "This page is loaded over HTTPS. Your browser may block connections to an HTTP node.",
"invalidUrl": {
"title": "Invalid URL",
"description": "Please enter a valid HTTP or HTTPS URL."
@@ -0,0 +1,53 @@
import { fireEvent, render, screen } from "@testing-library/react";
import { beforeEach, describe, expect, it, vi } from "vitest";
import AddConnectionDialog from "./AddConnectionDialog.tsx";
vi.mock("@core/hooks/useToast.ts", () => ({
useToast: () => ({ toast: vi.fn() }),
}));
vi.mock("@app/pages/Connections/utils", () => ({
testHttpReachable: vi.fn(() => Promise.resolve(true)),
}));
const getSwitch = () => screen.getByRole("switch");
describe("AddConnectionDialog HTTPS toggle", () => {
beforeEach(() => {
vi.clearAllMocks();
});
it("toggles between http and https when the app is served over http", () => {
render(<AddConnectionDialog open={true} isHTTPS={false} />);
const sw = getSwitch();
expect(sw).toHaveAttribute("aria-checked", "false");
expect(sw).toBeEnabled();
fireEvent.click(sw);
expect(sw).toHaveAttribute("aria-checked", "true");
fireEvent.click(sw);
expect(sw).toHaveAttribute("aria-checked", "false");
});
it("allows switching to http even when the app itself is served over https", () => {
render(<AddConnectionDialog open={true} isHTTPS={true} />);
const sw = getSwitch();
expect(sw).toHaveAttribute("aria-checked", "true");
expect(sw).toBeEnabled();
fireEvent.click(sw);
expect(sw).toHaveAttribute("aria-checked", "false");
});
it("keeps the protocol in sync with the url input prefix", () => {
render(<AddConnectionDialog open={true} isHTTPS={false} />);
// prefix reflects the current protocol
expect(screen.getByText("http://")).toBeInTheDocument();
fireEvent.click(getSwitch());
expect(screen.getByText("https://")).toBeInTheDocument();
});
});
@@ -275,7 +275,6 @@ export default function AddConnectionDialog({
typeof navigator !== "undefined" && "bluetooth" in navigator;
const serialSupported =
typeof navigator !== "undefined" && "serial" in navigator;
const isURLHTTPS = isHTTPS;
const reset = useCallback(() => {
dispatch({ type: "RESET", payload: { isHTTPS } });
@@ -434,7 +433,6 @@ export default function AddConnectionDialog({
<div className="flex items-center gap-2 mt-1">
<Switch
value={state.protocol}
disabled={!!isURLHTTPS}
checked={state.protocol === "https"}
onCheckedChange={(value) => {
dispatch({
@@ -446,6 +444,14 @@ export default function AddConnectionDialog({
></Switch>
<Label>{t("addConnection.httpConnection.useHttps")}</Label>
</div>
{isHTTPS && state.protocol === "http" && (
<p className="text-xs text-amber-600 dark:text-amber-400">
{t(
"addConnection.httpConnection.mixedContentWarning",
"This page is loaded over HTTPS. Your browser may block connections to an HTTP node.",
)}
</p>
)}
<div className="flex items-center gap-2 mt-4">
<Button
variant="subtle"
@@ -589,7 +595,7 @@ export default function AddConnectionDialog({
state,
bluetoothSupported,
serialSupported,
isURLHTTPS,
isHTTPS,
handlePickBluetooth,
handlePickSerial,
handleTestHttp,
+1 -1
View File
@@ -43,7 +43,7 @@
"@typescript/typescript6": "^6.0.2",
"husky": "^9.1.0",
"lint-staged": "^17.2.0",
"oxfmt": "^0.61.0",
"oxfmt": "^0.63.0",
"oxlint": "^1.75.0",
"tsdown": "^0.22.14",
"typescript": "^7.0.2",
+408 -292
View File
File diff suppressed because it is too large Load Diff