Commit Graph
2924 Commits
Author SHA1 Message Date
Juan Denis 600b96befc fix(ui): replace corrupt IBM Plex Sans 400 woff2 and guard it in font lint 2026-11-03 13:10:03 -05:00
Juan Denis 545c2f0607 fix(ui): give App Map canvas a definite height so React Flow renders 2026-11-03 13:10:03 -05:00
Juan DenisandClaude Opus 5.5 b95c516c76 fix(frontend): redesign mobile intro banner, segmented step strip, info sheet and card header chips
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 09:10:20 -05:00
Juan Denis a4ea3fccbd fix(frontend): mobile layout for intro strip, info tips and card headers
- IconStepStrip stays a compact horizontal row on narrow screens (smaller
  tiles, label under icon, horizontal chevrons)
- tip-card-head stacks top-to-bottom with a smaller illustration
- InfoTip clamps to the viewport (collision padding clears the sticky
  header, flips below when no room above, max-height scroll)
- card headers wrap on narrow screens; security subtitle gets its own line
2026-11-03 08:51:20 -05:00
Juan Denis bddca28881 feat(frontend): less text, more icons - shared InfoTip, IconStepStrip and illustrations
Move prose into tap-friendly (i) tips and replace intro paragraphs with
icons, step strips and chips across settings, security, add-server,
server detail, proxy, backups, downloads, imports, marketplace and
templates.
2026-11-03 01:45:21 -05:00
github-actions[bot] 2ef0a8f370 chore: bump version to 1.11.37 [skip ci] 2026-11-03 02:14:28 +00:00
Juan Denis ffde9e851b Merge pull request #194 from jhd3197/fix/lucide-react-1x
Bump lucide-react to 1.65 and replace removed brand icons
2026-11-02 21:11:46 -05:00
Juan Denis ac61839459 fix(frontend): replace lucide brand icons removed in v1 with react-icons 2026-11-02 21:08:15 -05:00
github-actions[bot] 436a38562e chore: bump version to 1.11.36 [skip ci] 2026-11-03 01:47:39 +00:00
Juan Denis 1205e6e0df Merge pull request #175 from jhd3197/dependabot/npm_and_yarn/frontend/dev/globals-17.13.0
build(deps-dev): bump globals from 15.15.0 to 17.13.0 in /frontend
2026-11-02 20:44:15 -05:00
github-actions[bot] e703322362 chore: bump version to 1.11.35 [skip ci] 2026-11-03 01:41:57 +00:00
dependabot[bot] 2bef5060ed build(deps-dev): bump globals from 15.15.0 to 17.13.0 in /frontend
Bumps [globals](https://github.com/sindresorhus/globals) from 15.15.0 to 17.13.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v15.15.0...v17.13.0)

---
updated-dependencies:
- dependency-name: globals
  dependency-version: 17.13.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-03 01:40:49 +00:00
dependabot[bot] 0f6a8b62c2 build(deps): bump lucide-react from 0.363.0 to 1.65.0 in /frontend
Bumps [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) from 0.363.0 to 1.65.0.
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.65.0/packages/lucide-react)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 1.53.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-03 01:40:02 +00:00
Juan Denis 85016dc376 Merge pull request #193 from jhd3197/fix/frontend-deps-react-refresh
Frontend dependency group bump (26 updates) with lint fix
2026-11-02 20:38:40 -05:00
Juan Denis 53639f7eae fix(frontend): move non-component exports out of component files
Clears the new react-refresh/only-export-components warnings so the
frontend dependency group bump passes lint.
2026-11-02 20:35:56 -05:00
github-actions[bot] 0a111ad7f1 chore: bump version to 1.11.34 [skip ci] 2026-11-03 01:25:02 +00:00
dependabot[bot] 7f77b1c239 build(deps): bump the frontend group across 1 directory with 26 updates
Bumps the frontend group with 26 updates in the /frontend directory:

| Package | From | To |
| --- | --- | --- |
| [@radix-ui/react-alert-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/alert-dialog) | `1.1.15` | `1.2.1` |
| [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/checkbox) | `1.3.3` | `1.4.1` |
| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.15` | `1.3.1` |
| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) | `2.1.16` | `2.2.1` |
| [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label) | `2.1.8` | `2.1.17` |
| [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.15` | `1.3.1` |
| [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select) | `2.2.6` | `2.4.1` |
| [@radix-ui/react-slot](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slot) | `1.2.4` | `1.5.0` |
| [@radix-ui/react-switch](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/switch) | `1.2.6` | `1.4.1` |
| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tabs) | `1.1.13` | `1.2.1` |
| [@xterm/addon-fit](https://github.com/xtermjs/xterm.js) | `0.10.0` | `0.11.0` |
| [@xterm/addon-web-links](https://github.com/xtermjs/xterm.js) | `0.11.0` | `0.12.0` |
| [@xyflow/react](https://github.com/xyflow/xyflow/tree/HEAD/packages/react) | `12.10.0` | `12.12.0` |
| [i18next](https://github.com/i18next/i18next) | `26.3.6` | `26.5.12` |
| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.11` | `17.1.9` |
| [react-icons](https://github.com/react-icons/react-icons) | `5.6.0` | `5.7.0` |
| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.18.2` | `7.18.5` |
| [socket.io-client](https://github.com/socketio/socket.io) | `4.8.3` | `4.8.4` |
| [sonner](https://github.com/emilkowalski/sonner) | `2.0.7` | `2.0.8` |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.3` | `6.1.2` |
| [boneyard-js](https://github.com/0xGF/boneyard) | `1.9.0` | `1.10.0` |
| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | `0.4.26` | `0.5.7` |
| [playwright](https://github.com/microsoft/playwright) | `1.61.1` | `1.64.1` |
| [sass](https://github.com/sass/dart-sass) | `1.98.0` | `1.107.1` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.4` | `8.3.5` |
| [@rollup/rollup-win32-x64-msvc](https://github.com/rollup/rollup) | `4.62.2` | `4.67.2` |



Updates `@radix-ui/react-alert-dialog` from 1.1.15 to 1.2.1
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/alert-dialog/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/alert-dialog)

Updates `@radix-ui/react-checkbox` from 1.3.3 to 1.4.1
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/checkbox/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/checkbox)

Updates `@radix-ui/react-dialog` from 1.1.15 to 1.3.1
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog)

Updates `@radix-ui/react-dropdown-menu` from 2.1.16 to 2.2.1
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu)

Updates `@radix-ui/react-label` from 2.1.8 to 2.1.17
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label)

Updates `@radix-ui/react-popover` from 1.1.15 to 1.3.1
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover)

Updates `@radix-ui/react-select` from 2.2.6 to 2.4.1
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/select)

Updates `@radix-ui/react-slot` from 1.2.4 to 1.5.0
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/slot/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/slot)

Updates `@radix-ui/react-switch` from 1.2.6 to 1.4.1
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/switch/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/switch)

Updates `@radix-ui/react-tabs` from 1.1.13 to 1.2.1
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/tabs/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/tabs)

Updates `@xterm/addon-fit` from 0.10.0 to 0.11.0
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/compare/0.10...0.11)

Updates `@xterm/addon-web-links` from 0.11.0 to 0.12.0
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/compare/0.11...0.12)

Updates `@xyflow/react` from 12.10.0 to 12.12.0
- [Release notes](https://github.com/xyflow/xyflow/releases)
- [Changelog](https://github.com/xyflow/xyflow/blob/main/packages/react/CHANGELOG.md)
- [Commits](https://github.com/xyflow/xyflow/commits/@xyflow/react@12.12.0/packages/react)

Updates `i18next` from 26.3.6 to 26.5.12
- [Release notes](https://github.com/i18next/i18next/releases)
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next/compare/v26.3.6...v26.5.12)

Updates `react-i18next` from 17.0.11 to 17.1.9
- [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/react-i18next/compare/v17.0.11...v17.1.9)

Updates `react-icons` from 5.6.0 to 5.7.0
- [Release notes](https://github.com/react-icons/react-icons/releases)
- [Commits](https://github.com/react-icons/react-icons/compare/v5.6.0...v5.7.0)

Updates `react-router-dom` from 7.18.2 to 7.18.5
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@7.18.5/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.18.5/packages/react-router-dom)

Updates `socket.io-client` from 4.8.3 to 4.8.4
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/socket.io-client@4.8.3...socket.io-client@4.8.4)

Updates `sonner` from 2.0.7 to 2.0.8
- [Release notes](https://github.com/emilkowalski/sonner/releases)
- [Commits](https://github.com/emilkowalski/sonner/compare/v2.0.7...v2.0.8)

Updates `@vitejs/plugin-react` from 6.0.3 to 6.1.2
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.1.2/packages/plugin-react)

Updates `boneyard-js` from 1.9.0 to 1.10.0
- [Release notes](https://github.com/0xGF/boneyard/releases)
- [Commits](https://github.com/0xGF/boneyard/compare/v1.9.0...v1.10.0)

Updates `eslint-plugin-react-refresh` from 0.4.26 to 0.5.7
- [Release notes](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases)
- [Changelog](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.4.26...v0.5.7)

Updates `playwright` from 1.61.1 to 1.64.1
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.61.1...v1.64.1)

Updates `sass` from 1.98.0 to 1.107.1
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.98.0...1.107.1)

Updates `vite` from 8.1.4 to 8.3.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/v8.3.5/packages/vite)

Updates `@rollup/rollup-win32-x64-msvc` from 4.62.2 to 4.67.2
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.62.2...v4.67.2)

---
updated-dependencies:
- dependency-name: "@radix-ui/react-alert-dialog"
  dependency-version: 1.1.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: "@radix-ui/react-checkbox"
  dependency-version: 1.3.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: "@radix-ui/react-dialog"
  dependency-version: 1.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: "@radix-ui/react-dropdown-menu"
  dependency-version: 2.1.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: "@radix-ui/react-label"
  dependency-version: 2.1.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: "@radix-ui/react-popover"
  dependency-version: 1.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: "@radix-ui/react-select"
  dependency-version: 2.3.8
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: "@radix-ui/react-slot"
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: "@radix-ui/react-switch"
  dependency-version: 1.3.8
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: "@radix-ui/react-tabs"
  dependency-version: 1.1.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: "@rollup/rollup-win32-x64-msvc"
  dependency-version: 4.64.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 6.1.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: "@xterm/addon-fit"
  dependency-version: 0.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: "@xterm/addon-web-links"
  dependency-version: 0.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: "@xyflow/react"
  dependency-version: 12.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: boneyard-js
  dependency-version: 1.10.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: eslint-plugin-react-refresh
  dependency-version: 0.5.7
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: i18next
  dependency-version: 26.4.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: playwright
  dependency-version: 1.64.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: react-i18next
  dependency-version: 17.0.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: react-icons
  dependency-version: 5.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: react-router-dom
  dependency-version: 7.18.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: sass
  dependency-version: 1.105.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: socket.io-client
  dependency-version: 4.8.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: sonner
  dependency-version: 2.0.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: vite
  dependency-version: 8.3.4
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-03 01:21:14 +00:00
Juan Denis a12159ab44 Merge pull request #189 from jhd3197/dependabot/github_actions/dev/actions-cb05bd602a
build(deps): bump the actions group across 1 directory with 9 updates
2026-11-02 20:17:24 -05:00
github-actions[bot] 1cc26e3865 chore: bump version to 1.11.33 [skip ci] 2026-11-03 01:14:58 +00:00
dependabot[bot] 0a5c0bc27a build(deps): bump the actions group across 1 directory with 9 updates
Bumps the actions group with 9 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4` | `7` |
| [actions/setup-python](https://github.com/actions/setup-python) | `5` | `7` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4` | `7` |
| [actions/setup-node](https://github.com/actions/setup-node) | `4` | `7` |
| [actions/download-artifact](https://github.com/actions/download-artifact) | `4` | `8` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3` | `4` |
| [docker/build-push-action](https://github.com/docker/build-push-action) | `5` | `7` |
| [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) | `3` | `4` |
| [docker/login-action](https://github.com/docker/login-action) | `3` | `4` |



Updates `actions/checkout` from 4 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v7)

Updates `actions/setup-python` from 5 to 7
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v7)

Updates `actions/upload-artifact` from 4 to 7
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

Updates `actions/setup-node` from 4 to 7
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v7)

Updates `actions/download-artifact` from 4 to 8
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v8)

Updates `docker/setup-buildx-action` from 3 to 4
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4)

Updates `docker/build-push-action` from 5 to 7
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v7)

Updates `docker/setup-qemu-action` from 3 to 4
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4)

Updates `docker/login-action` from 3 to 4
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/setup-python
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: docker/build-push-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: docker/setup-buildx-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: docker/setup-qemu-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-03 01:09:55 +00:00
Juan Denis 7fe197d036 Merge pull request #167 from jhd3197/dependabot/pip/backend/dev/bcrypt-5.0.0
build(deps): bump bcrypt from 4.2.1 to 5.0.0 in /backend
2026-11-02 20:07:44 -05:00
github-actions[bot] fe0aa4c02c chore: bump version to 1.11.32 [skip ci] 2026-11-03 01:07:17 +00:00
dependabot[bot] 29a967a6e3 build(deps): bump bcrypt from 4.2.1 to 5.0.0 in /backend
Bumps [bcrypt](https://github.com/pyca/bcrypt) from 4.2.1 to 5.0.0.
- [Changelog](https://github.com/pyca/bcrypt/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/bcrypt/compare/4.2.1...5.0.0)

---
updated-dependencies:
- dependency-name: bcrypt
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-03 01:00:50 +00:00
Juan Denis b6fb6e7009 Merge pull request #192 from jhd3197/dependabot/pip/backend/dev/backend-f0b41e5f7e
build(deps): bump the backend group across 1 directory with 17 updates
2026-11-02 19:59:43 -05:00
github-actions[bot] d32cfac616 chore: bump version to 1.11.31 [skip ci] 2026-11-03 00:56:59 +00:00
dependabot[bot] 66c271a530 build(deps): bump the backend group across 1 directory with 17 updates
Bumps the backend group with 17 updates in the /backend directory:

| Package | From | To |
| --- | --- | --- |
| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.52` | `2.0.55` |
| [flask-migrate](https://github.com/miguelgrinberg/flask-migrate) | `4.0.7` | `4.1.0` |
| [flask-jwt-extended](https://github.com/vimalloc/flask-jwt-extended) | `4.6.0` | `4.7.4` |
| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.2` | `6.0.5` |
| [flask-socketio](https://code.miguelgrinberg.com/miguelgrinberg/flask-socketio) | `5.6.1` | `5.7.0` |
| [python-socketio](https://github.com/sponsors/miguelgrinberg) | `5.16.3` | `5.17.1` |
| [python-engineio](https://code.miguelgrinberg.com/miguelgrinberg/python-engineio) | `4.13.3` | `4.15.1` |
| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.4` |
| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.1` | `6.0.3` |
| [click](https://github.com/pallets/click) | `8.3.3` | `8.5.0` |
| [croniter](https://github.com/pallets-eco/croniter) | `6.0.0` | `6.2.4` |
| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.2` |
| [pyotp](https://github.com/pyauth/pyotp) | `2.9.0` | `2.10.0` |
| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |
| [boto3](https://github.com/boto/boto3) | `1.35.0` | `1.43.123` |
| [apispec](https://github.com/marshmallow-code/apispec) | `6.4.0` | `6.10.0` |
| [prompture](https://github.com/jhd3197/prompture) | `1.11.0` | `1.16.0` |



Updates `sqlalchemy` from 2.0.52 to 2.0.55
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Updates `flask-migrate` from 4.0.7 to 4.1.0
- [Release notes](https://github.com/miguelgrinberg/flask-migrate/releases)
- [Changelog](https://github.com/miguelgrinberg/Flask-Migrate/blob/main/CHANGES.md)
- [Commits](https://github.com/miguelgrinberg/flask-migrate/compare/v4.0.7...v4.1.0)

Updates `flask-jwt-extended` from 4.6.0 to 4.7.4
- [Release notes](https://github.com/vimalloc/flask-jwt-extended/releases)
- [Commits](https://github.com/vimalloc/flask-jwt-extended/compare/4.6.0...4.7.4)

Updates `flask-cors` from 6.0.2 to 6.0.5
- [Release notes](https://github.com/corydolphin/flask-cors/releases)
- [Changelog](https://github.com/corydolphin/flask-cors/blob/main/CHANGELOG.md)
- [Commits](https://github.com/corydolphin/flask-cors/compare/6.0.2...6.0.5)

Updates `flask-socketio` from 5.6.1 to 5.7.0

Updates `python-socketio` from 5.16.3 to 5.17.1
- [Commits](https://github.com/sponsors/miguelgrinberg/commits)

Updates `python-engineio` from 4.13.3 to 4.15.1

Updates `python-dotenv` from 1.2.2 to 1.2.4
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.2...v1.2.4)

Updates `pyyaml` from 6.0.1 to 6.0.3
- [Release notes](https://github.com/yaml/pyyaml/releases)
- [Changelog](https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES)
- [Commits](https://github.com/yaml/pyyaml/compare/6.0.1...6.0.3)

Updates `click` from 8.3.3 to 8.5.0
- [Release notes](https://github.com/pallets/click/releases)
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.md)
- [Commits](https://github.com/pallets/click/compare/8.3.3...8.5.0)

Updates `croniter` from 6.0.0 to 6.2.4
- [Release notes](https://github.com/pallets-eco/croniter/releases)
- [Changelog](https://github.com/pallets-eco/croniter/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pallets-eco/croniter/compare/6.0.0...6.2.4)

Updates `cryptography` from 50.0.0 to 50.0.2
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/50.0.0...50.0.2)

Updates `pyotp` from 2.9.0 to 2.10.0
- [Release notes](https://github.com/pyauth/pyotp/releases)
- [Changelog](https://github.com/pyauth/pyotp/blob/main/Changes.rst)
- [Commits](https://github.com/pyauth/pyotp/compare/v2.9.0...v2.10.0)

Updates `requests` from 2.33.1 to 2.34.2
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.33.1...v2.34.2)

Updates `boto3` from 1.35.0 to 1.43.123
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.35.0...1.43.123)

Updates `apispec` from 6.4.0 to 6.10.0
- [Changelog](https://github.com/marshmallow-code/apispec/blob/dev/CHANGELOG.rst)
- [Commits](https://github.com/marshmallow-code/apispec/compare/6.4.0...6.10.0)

Updates `prompture` from 1.11.0 to 1.16.0
- [Release notes](https://github.com/jhd3197/prompture/releases)
- [Commits](https://github.com/jhd3197/prompture/compare/v1.11.0...v1.16.0)

---
updated-dependencies:
- dependency-name: apispec
  dependency-version: 6.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: boto3
  dependency-version: 1.43.123
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: click
  dependency-version: 8.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: croniter
  dependency-version: 6.2.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: cryptography
  dependency-version: 50.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: backend
- dependency-name: flask-cors
  dependency-version: 6.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: backend
- dependency-name: flask-jwt-extended
  dependency-version: 4.7.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: flask-migrate
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: flask-socketio
  dependency-version: 5.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: prompture
  dependency-version: 1.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: pyotp
  dependency-version: 2.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: python-dotenv
  dependency-version: 1.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: backend
- dependency-name: python-engineio
  dependency-version: 4.15.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: python-socketio
  dependency-version: 5.17.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: pyyaml
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: backend
- dependency-name: requests
  dependency-version: 2.34.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: backend
- dependency-name: sqlalchemy
  dependency-version: 2.0.55
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: backend
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-03 00:52:04 +00:00
Juan Denis 327be8f685 Merge pull request #168 from jhd3197/dependabot/pip/backend/dev/websockets-16.1.1
build(deps): bump websockets from 15.0.1 to 16.1.1 in /backend
2026-11-02 19:49:23 -05:00
github-actions[bot] b54241c2b1 chore: bump version to 1.11.30 [skip ci] 2026-11-03 00:48:54 +00:00
dependabot[bot] 67a2e972db build(deps): bump websockets from 15.0.1 to 16.1.1 in /backend
Bumps [websockets](https://github.com/python-websockets/websockets) from 15.0.1 to 16.1.1.
- [Release notes](https://github.com/python-websockets/websockets/releases)
- [Commits](https://github.com/python-websockets/websockets/compare/15.0.1...16.1.1)

---
updated-dependencies:
- dependency-name: websockets
  dependency-version: 16.1.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-03 00:42:50 +00:00
Juan Denis 4c2f583225 Merge pull request #169 from jhd3197/dependabot/pip/backend/dev/gunicorn-26.2.0
build(deps): bump gunicorn from 23.0.0 to 26.2.0 in /backend
2026-11-02 19:41:24 -05:00
dependabot[bot] 07c0d7d4e3 build(deps): bump gunicorn from 23.0.0 to 26.2.0 in /backend
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 23.0.0 to 26.2.0.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/23.0.0...26.2.0)

---
updated-dependencies:
- dependency-name: gunicorn
  dependency-version: 26.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-03 00:33:41 +00:00
github-actions[bot] 5d8328ce92 chore: bump version to 1.11.29 [skip ci] 2026-11-03 00:11:32 +00:00
Juan Denis 434c3458f6 Merge pull request #170 from jhd3197/dependabot/pip/backend/dev/marshmallow-4.3.1
build(deps): bump marshmallow from 3.26.2 to 4.3.1 in /backend
2026-11-02 19:04:53 -05:00
github-actions[bot] 6b90776e5a chore: bump version to 1.11.28 [skip ci] 2026-11-03 00:03:26 +00:00
dependabot[bot] 5b0b0550fc build(deps): bump marshmallow from 3.26.2 to 4.3.1 in /backend
Bumps [marshmallow](https://github.com/marshmallow-code/marshmallow) from 3.26.2 to 4.3.1.
- [Changelog](https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst)
- [Commits](https://github.com/marshmallow-code/marshmallow/compare/3.26.2...4.3.1)

---
updated-dependencies:
- dependency-name: marshmallow
  dependency-version: 4.3.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-02 23:57:34 +00:00
Juan Denis 6fdf4f65a8 Merge pull request #191 from jhd3197/fix/registry-bundled-index
Re-sync bundled registry index and bump Authlib to 1.9.1
2026-11-02 18:56:23 -05:00
Juan Denis d723d887e7 Bump Authlib to 1.9.1 2026-11-02 18:49:06 -05:00
Juan Denis 2f41a9222f Re-sync bundled registry index with the published one 2026-11-02 18:36:38 -05:00
Juan Denis 2521da0e46 Add an SSH Access server permission profile
Faro access grants install keys through the agent's ssh:keys
actions. A locked-down server had no canned profile for that short
of Full Access; ssh_access grants ssh:keys:* plus the health reads.
2026-10-26 11:16:21 -04:00
Juan Denis cdd6d0898d Drop the unused schedule and passlib packages
Each survived as a single import nothing called: scheduling moved to
the job runner, and the FTP service never used sha512_crypt.
2026-10-26 01:44:23 -04:00
Juan Denis a9668000da Keep the new route logic behind services
The SSL-enable and server-overview changes put session and query
calls in the routes, tripping the controller-boundary ratchet. Move
them into SiteDomainService and WorkspaceService, raise a typed error
for bad allowed_ips, point the ACME-contact test at the new vhost
door, and regenerate the baseline and inventory (476 -> 453).
2026-10-26 01:43:12 -04:00
Juan Denis d2a83ce6a8 Make panel thread count configurable
Every open WebSocket and every long-polling agent holds one of the
single process's 100 threads, so ~60 agents plus 40 tabs stalled the
UI with no clear error. Read --threads from SERVERKIT_THREADS in the
systemd unit and Docker image, and document the ceiling next to the
single-worker constraint.
2026-10-26 01:05:49 -04:00
Juan Denis a8fb879be8 Stop the speed-test poll when leaving Monitoring
The wait loop kept polling for up to 90s after unmount and toasted
'Speed test complete' on whatever page came next.
2026-10-26 01:04:25 -04:00
Juan Denis e3131659c2 Satisfy the test seed ratchet
The custom-domain SSL test seeded its app by hand instead of through
make_application, and test_manifest_reach.py no longer seeds one, so
its baseline entry went stale.
2026-10-26 01:03:40 -04:00
Juan Denis f116accbb8 Map setup status in one place
checkSetupStatus and refreshSetupStatus kept separate copies of the
same mapping, and the refresh copy had already lost defaultLanguage.
2026-10-26 01:02:42 -04:00
Juan Denis 0704c42daa Drop unused useLogs and logsSourceLabel
Nothing imports either; useServiceLogStream replaced the hook, which
also left loading stuck on a read error.
2026-10-26 01:02:37 -04:00
Juan Denis 411ce694da Remove the orphaned manifest preview service
The generic preview provisioner replaced its only caller; only its
own tests still reached it, proving a path production no longer
takes.
2026-10-26 01:02:35 -04:00
Juan Denis 1fe8ada10d Look up agent registration tokens by digest
POST /servers/register needs no login and ran a slow PBKDF2 check
against every pending server per request, so a few IPs under the
5/min limit could keep the single worker's CPU busy. Tokens carry 256
random bits, so store a SHA-256 digest and find the row directly;
hashes issued before this still verify until they expire.
2026-10-26 01:00:48 -04:00
Juan Denis a915e95474 Send container log streams only to their viewer
Every subscriber starts its own docker logs process but emitted into
the shared app room, so with two viewers open each saw every line
twice, got the other's tail replayed, and both saw 'ended' when either
stream stopped. Deliver to the owning socket while room membership
still gates it, keeping the per-line access re-check.
2026-10-26 00:59:21 -04:00
Juan Denis c5d0597140 Make login-link redemption truly single-use
redeem() checked used_at, then set it and committed, so two requests
arriving together (a mail-preview bot and the user, or an attacker
racing them) both passed the check and both got a session. Claim the
link with one conditional UPDATE and refuse when no row changed.
2026-10-26 00:57:28 -04:00