Commit Graph

691 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
8a76dbe511 Add suppressHydrationWarning to <html>
Add the React prop suppressHydrationWarning to the <html> element in RootLayout (src/app/layout.tsx) to suppress hydration mismatch warnings. This helps avoid noisy console warnings when server-rendered markup and client rendering differ (e.g., due to dynamic font class injection or other runtime-only differences).
2026-04-01 17:14:17 +02:00
CanbiZ (MickLesk)
1cf5b56652 Add Arcane script, status UI, validation & cache
Multiple changes improving UX, reliability, and CI permissions:

- Add scripts/tools/addon/arcane.sh: installer/update/uninstall helper for Arcane (Docker Compose), creates update helper and generates secrets.
- Add ServerStatusIndicator component and integrate into header (src/app/_components/ServerStatusIndicator.tsx, src/app/page.tsx); adjust hero/layout to accommodate inline version + status.
- Enhance GeneratorTab (src/app/_components/GeneratorTab.tsx): fetch full script details by slug, derive and apply default resource values from install_methods, and show an App Defaults info panel.
- Harden repo provider detection (src/server/lib/repositoryUrlValidation.js/.ts): use URL parsing for hostname matching with safe fallback to 'custom'.
- Tune client caching (src/trpc/query-client.ts): increase staleTime to 30min, set gcTime to 1h, and disable automatic refetches on mount/window focus/reconnect.
- Update GitHub Actions permissions: node.js.yml grants contents: read; release-drafter.yml grants contents: write and pull-requests: read.

These changes aim to provide better default resource handling for scripts, visible server reachability, more robust URL parsing, improved client-side cache behavior, and explicit workflow permissions.
2026-04-01 17:11:55 +02:00
CanbiZ (MickLesk)
92e365eb61 Optimize rendering, lazy-load tabs, add sync modal
Performance and UX improvements: memoize computed values in InstalledScriptsTab (scriptsWithStatus, filteredScripts, uniqueServers) and use useCallback/useMemo in ScriptsGrid to avoid unnecessary re-renders. Memoize ScriptCard and ScriptCardList components and tighten their ScriptCard type alias. Introduce a new SyncModal (ResyncButton) component to run/resync scripts with a progress UI and retry/close behavior, and replace the previous ResyncButton import in page.tsx. Lazy-load heavy tab components (Downloaded, Installed, Backups, Generator) with next/dynamic and add a TabSkeleton loader; consolidate tab definitions into a memoized tabs array. Misc: small prop/prop-name fixes and minor JSX formatting adjustments.
2026-04-01 16:00:51 +02:00
CanbiZ (MickLesk)
dcb2018366 Add appearance modal & improve script detail UI
Add an AppearanceModal and AppearanceButton to let users change theme, text size and layout width (persisted in localStorage). Enhance FilterBar with category filtering (selectedCategory, dropdown UI, counts, and outside-click handling). Heavily refactor ScriptDetailModal: layout and visual refresh, new icons, better loading/update/delete/install flows, memoized install command, improved copy behavior, keyboard navigation between scripts (using orderedSlugs + onSelectSlug), clearer status/messages, and various performance/UX tweaks. Wire DownloadedScriptsTab to pass orderedSlugs and onSelectSlug into the ScriptDetailModal. Overall small UI/UX and state-management improvements across components.
2026-04-01 15:47:20 +02:00
CanbiZ (MickLesk)
5364c7dec9 Update favicon and logo assets
Replace favicon and logo image files with updated versions to refresh branding. Updated files: public/favicon/android-chrome-192x192.png, public/favicon/android-chrome-512x512.png, public/favicon/apple-touch-icon.png, public/favicon/favicon-16x16.png, public/favicon/favicon-32x32.png, public/favicon/favicon.ico, public/logo.png.
2026-04-01 15:35:39 +02:00
CanbiZ (MickLesk)
df587e1734 Portalize script dropdown and add outside click
Render the script selector dropdown into document.body via createPortal to escape stacking/overflow contexts. Add triggerRef/dropdownRef, compute fixed position from the trigger on open, and attach an outside-click handler to close the dropdown. Also import useRef/useEffect and createPortal; preserve existing search, selection, and reset behaviors while adjusting z-index/positioning.
2026-04-01 15:33:04 +02:00
CanbiZ (MickLesk)
8e9a7bf2cf Add favicon set and logo; remove old favicon
Replace legacy root favicon.png with a full favicon set under public/favicon (android-chrome 192/512, apple-touch-icon, favicon-16x16, favicon-32x32, favicon.ico, favicon.png) and add site.webmanifest. Also add public/logo.png. This organizes favicon assets for multiple platforms and adds a webmanifest for PWA/icon declarations.
2026-04-01 15:29:04 +02:00
CanbiZ (MickLesk)
de4641ca66 Escape env var values; update favicons & logo
Fix shell escaping when building env export commands by escaping backslashes and quotes (prevents broken exported values) in ScriptExecutionHandler (two locations). Update app metadata to point to favicon files under /favicon, add site manifest, and replace the header Package icon with a next/image using the android-chrome PNG (import Image and adjust markup) for consistent asset handling.
2026-04-01 15:26:31 +02:00
CanbiZ (MickLesk)
adb1c05357 Standardize modal layout and form styles
Refactor modal markup across many components to use a consistent wrapper structure and unified Tailwind utility ordering (moved zIndex to outer container, standardized backdrop and centering). Clean up form layouts: align icons, labels and inputs, normalize spacing, error styling, and button variants (including icon/ghost adjustments). Improve AuthModal and CloneCountInputModal UX (loading/error states, closer placement, validation), and normalize BackupWarningModal and other modal presentations. Update ConfigurationModal advanced UI: reorganize network fields and add/handle extra options (IPv6 static, gateway, MTU, MAC, VLAN, DNS), refine presets save/cancel flow, and apply general formatting/whitespace cleanups.
2026-04-01 15:16:48 +02:00
CanbiZ (MickLesk)
c4ec0fe9ed Use categoryIconColorMap for sidebar icons
Update CategorySidebar.tsx to derive non-selected icon color classes from categoryIconColorMap for both the "template" and per-category icons. Selected icons still use text-primary; fallbacks preserve previous muted and group-hover classes to retain existing styling when a mapping is absent.
2026-04-01 15:16:28 +02:00
CanbiZ (MickLesk)
3fdf438c6d Wrap modals in portal and use zIndex
Use ModalPortal and zIndex values from useRegisterModal across modal components to avoid hardcoded z-50 stacking. Updated ExecutionModeModal, LXCSettingsModal, PublicKeyModal, ReleaseNotesModal, SetupModal, StorageSelectionModal, and TextViewer to import ModalPortal, capture the zIndex returned by useRegisterModal, wrap modal markup in <ModalPortal>, and apply style={{ zIndex }} to backdrops; LXC result overlay uses zIndex + 10 for proper stacking. Also changed LoadingOverlay in VersionDisplay to render with createPortal(document.body) and added the import. These changes centralize stacking behavior and prevent z-index conflicts when multiple modals/overlays are present.
2026-04-01 15:12:10 +02:00
CanbiZ (MickLesk)
6427a984e7 Add modal stacking and portal support
Introduce a modal stacking system and portal to ensure modals escape parent stacking contexts. ModalStackProvider now computes a zIndex for each registered modal and returns an unregister handle; useRegisterModal returns the zIndex. A ModalPortal component (createPortal to document.body) was added and all modal components were updated to: capture the returned zIndex, wrap their markup in <ModalPortal>, and apply the dynamic zIndex instead of a hardcoded z-50 class. This improves correct layering of multiple modals and avoids backdrop-filter / transform stacking issues.
2026-04-01 15:04:00 +02:00
CanbiZ (MickLesk)
81f416e157 Refactor Badge & CategorySidebar types/styles
Normalize formatting and strengthen typings for Badge; convert single quotes to double, expand variant/type unions, and tidy JSX/props and helper badge components. Rework CategorySidebar: refactor CategoryIcon SVGs for readability, standardize className usage, improve collapsed-state layout and buttons, and ensure categories are filtered/sorted by count with correct icon mapping and counts display. Overall cleanup improves consistency, readability, and type safety across these components.
2026-04-01 14:46:30 +02:00
CanbiZ (MickLesk)
4b713b65d6 Normalize quotes and format components
Apply consistent formatting across several components: convert single quotes to double quotes, reformat the QuickFilter union type and quick-filters array in FilterBar, adjust JSX prop and className string formatting in HelpButton, ScriptCard, ServerSettingsButton, and SettingsButton. These are cosmetic/formatting changes only and do not alter runtime behavior.
2026-04-01 14:45:54 +02:00
CanbiZ (MickLesk)
3e590b3d7f Add appearance settings and persist UI prefs
Introduce an Appearance tab in the Settings modal to control theme, text size and layout width (default vs wide). Preferences are saved to localStorage and applied immediately via helper functions (applyTextSize/applyLayoutWidth) and a small inline script injected into <head> to apply saved settings on first paint. Add CSS utility classes for text-size variants and wire up theme buttons (using lucide icons). Also include minor cleanup: optional chaining fix in CategorySidebar and removal of an unused import in ResyncButton.
2026-04-01 14:44:26 +02:00
CanbiZ (MickLesk)
985877856a Add quick filters, Dev/ARM badges, and CSS tweaks
Introduce quick filter support and visual indicators for developer/ARM scripts. Added QuickFilter type and quickFilter to FilterState (getDefaultFilters/mergeFiltersWithDefaults) and a quick-filter UI in FilterBar (All, New, Updated, In Dev, ARM). Implemented filtering logic in ScriptsGrid and added category dev counts to surface per-category "dev" counts in CategorySidebar. Added DevBadge and ArmBadge components, used in ScriptCard and ScriptDetailModal; ScriptCard also gets a subtle violet highlight when script.is_dev is true. Fixed script path generation in GeneratorTab to include a `scripts/` prefix. Minor dark-theme adjustments to .glass-card/.glass-card-static background and border-color for improved contrast.
2026-04-01 14:40:18 +02:00
CanbiZ (MickLesk)
c5283c5f81 Icon-only action buttons; use presets DB
Convert HelpButton, ResyncButton, ServerSettingsButton and SettingsButton from labeled outline controls to compact ghost icon-only buttons with aria-labels and smaller icons/spinners for a more compact header UI. Simplify ResyncButton markup (smaller spinner/SVG, removed extra contextual text/lastSync layout) and tweak sync message styling. Add Server icon import in ServerSettingsButton. In serverPresets router, replace direct prisma calls with getPresetsDb() and use the returned db instance for all queries and mutations to support the presets DB connection.
2026-04-01 14:31:07 +02:00
CanbiZ (MickLesk)
f037d19b5b Use per-router Prisma client with Better SQLite3
Replace usage of the shared prisma import with per-router PrismaClient instances configured with @prisma/adapter-better-sqlite3. Add getNotesDb/getPresetsDb helpers (with DATABASE_URL fallback) and update scriptNotes and serverPresets to use the new client. Also add error handling in read endpoints to return empty arrays on DB failures and ensure create/update/delete use the new client.
2026-04-01 14:28:22 +02:00
CanbiZ (MickLesk)
24fc356424 Add server presets and silent batch updates
Introduce server presets and silent batch update support across API, server, and UI. Added a new serverPresets TRPC router and wired it into the API root. ConfigurationModal now lets users save/load/delete presets tied to a server. InstalledScriptsTab adds a "Silent update" option, a sequential "Update All Containers" batch flow that runs updates with PHS_SILENT=1, and passes envVars into update executions. ScriptExecutionHandler (server.js) now accepts envVars for updates and injects export commands into both local and SSH update flows so environment flags (e.g. PHS_SILENT) are honored. Also added "updated" sort handling in ScriptsGrid, DownloadedScriptsTab and FilterBar, and small typing fixes in appriseService.
2026-04-01 14:14:06 +02:00
CanbiZ (MickLesk)
b66bd46a88 Add script notes, server presets & APT proxy
Add persistent script notes and server presets, plus APT proxy settings and various UI/behavior improvements.

- DB: new migration adds script_notes and server_presets tables and indexes; Prisma schema updated with ScriptNote and ServerPreset models.
- Notes: new client component ScriptNotesPanel with CRUD using a new TRPC router (scriptNotes) and integration into ScriptDetailModal to show/manage private/shared notes.
- APT proxy: new Next.js API route /api/settings/apt-proxy that reads/writes .env vars; GeneralSettingsModal and ConfigurationModal load/save the proxy and pre-fill advanced install vars.
- UX/UI: add copyable install command, version badges on script cards/detail, container ID input in advanced configuration, and styling tweaks (glass-card-static).
- Server/script detection: installedScripts router now attempts to resolve the actual Proxmox node name via SSH and relaxes ID parsing to numeric-only.
- Notifications: appriseService extended to support Gotify endpoints and allow gotify:// scheme, and URL validation adjusted accordingly.

These changes enable user-maintained notes/presets, persistent APT-cacher defaults, improved install UX, better server detection, and additional notification backend support.
2026-04-01 13:55:31 +02:00
CanbiZ (MickLesk)
705617f031 Add GeneratorTab and UI refactor/styles
Introduce a full-featured GeneratorTab component for building and exporting script configuration (script selector, CPU/RAM/Disk sliders, advanced networking/features, generate/copy/export/import, and execute). Apply visual and structural UI refactors: new glass-card styles across ScriptCard, ScriptCardList, ScriptDetailModal, Terminal and Footer; update button variants and interaction classes; add Heart icon and extra footer links; update layout to use Manrope + JetBrains Mono fonts, sticky navbar, ambient backgrounds and metadata tweaks. Wire GeneratorTab into the main page and add related icon imports. Misc: small code-style/formatting adjustments and improved deriveScriptPath / handler signatures for clarity.
2026-04-01 13:31:09 +02:00
github-actions[bot]
878defa885 chore: bump version to 0.5.8 (VERSION + package.json) (#544)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-31 20:27:30 +00:00
CanbiZ (MickLesk)
0f2f6240d6 resolve all ESLint errors, TypeScript 6 compatibility, and dependency upgrades (#543)
* fix: use optional chaining for WebSocket state checks and improve error handling in remote command execution

* chore(deps): update Next.js, Vitest, and ESLint dependencies; clean up eslint-disable comments

* chore: add vite as a dependency in package.json

---------

Co-authored-by: ProxmoxVE Developer <dev@localhost>
2026-03-31 22:26:53 +02:00
dependabot[bot]
b93d256752 build(deps-dev): Bump typescript from 5.9.3 to 6.0.2 (#540)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.9.3 to 6.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v6.0.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 6.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 22:02:38 +02:00
dependabot[bot]
383bc1247c build(deps-dev): Bump prisma from 7.5.0 to 7.6.0 (#536)
Bumps [prisma](https://github.com/prisma/prisma/tree/HEAD/packages/cli) from 7.5.0 to 7.6.0.
- [Release notes](https://github.com/prisma/prisma/releases)
- [Commits](https://github.com/prisma/prisma/commits/7.6.0/packages/cli)

---
updated-dependencies:
- dependency-name: prisma
  dependency-version: 7.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 22:01:46 +02:00
dependabot[bot]
546d2552c6 build(deps): Bump axios from 1.13.6 to 1.14.0 (#538)
Bumps [axios](https://github.com/axios/axios) from 1.13.6 to 1.14.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.6...v1.14.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 22:01:33 +02:00
dependabot[bot]
0be14e9c3e build(deps): Bump ws from 8.19.0 to 8.20.0 (#541)
Bumps [ws](https://github.com/websockets/ws) from 8.19.0 to 8.20.0.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.19.0...8.20.0)

---
updated-dependencies:
- dependency-name: ws
  dependency-version: 8.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 22:01:24 +02:00
dependabot[bot]
3411eec09d build(deps): Bump @t3-oss/env-nextjs from 0.13.10 to 0.13.11 (#542)
Bumps [@t3-oss/env-nextjs](https://github.com/t3-oss/t3-env/tree/HEAD/packages/nextjs) from 0.13.10 to 0.13.11.
- [Release notes](https://github.com/t3-oss/t3-env/releases)
- [Changelog](https://github.com/t3-oss/t3-env/blob/main/packages/nextjs/CHANGELOG.md)
- [Commits](https://github.com/t3-oss/t3-env/commits/@t3-oss/env-nextjs@0.13.11/packages/nextjs)

---
updated-dependencies:
- dependency-name: "@t3-oss/env-nextjs"
  dependency-version: 0.13.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 22:01:13 +02:00
dependabot[bot]
b4ef32d6b4 build(deps): Bump @prisma/adapter-better-sqlite3 from 7.5.0 to 7.6.0 (#535)
Bumps [@prisma/adapter-better-sqlite3](https://github.com/prisma/prisma/tree/HEAD/packages/adapter-better-sqlite3) from 7.5.0 to 7.6.0.
- [Release notes](https://github.com/prisma/prisma/releases)
- [Commits](https://github.com/prisma/prisma/commits/7.6.0/packages/adapter-better-sqlite3)

---
updated-dependencies:
- dependency-name: "@prisma/adapter-better-sqlite3"
  dependency-version: 7.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:57:50 +02:00
dependabot[bot]
9ee3c9ed75 build(deps-dev): Bump jsdom from 29.0.0 to 29.0.1 (#537)
Bumps [jsdom](https://github.com/jsdom/jsdom) from 29.0.0 to 29.0.1.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Commits](https://github.com/jsdom/jsdom/compare/v29.0.0...v29.0.1)

---
updated-dependencies:
- dependency-name: jsdom
  dependency-version: 29.0.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:57:41 +02:00
dependabot[bot]
0838e08a4d build(deps-dev): Bump typescript-eslint from 8.57.1 to 8.58.0 (#539)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.57.1 to 8.58.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.58.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.58.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:57:32 +02:00
CanbiZ (MickLesk)
e19f946c6a PB 503 retry, IPv6 validation, download concurrency, little performance improvements (#534)
* fix: PB 503 retry, IPv6 validation, download concurrency

- Add withPbRetry() with exponential backoff for PocketBase queries
  that return 503/429 under concurrent tRPC request load (#527)
- Accept IPv6 addresses in gateway and DNS resolver fields (#524)
- Batch loadMultipleScripts in groups of 5 with Promise.allSettled
  and inter-batch delay to avoid GitHub rate limits (#523)

Closes #527, Closes #524, Closes #523

* perf: increase staleTime, disable refetchOnWindowFocus, use httpBatchLink

- staleTime 30s → 5min: script metadata rarely changes, avoids
  constant re-fetches on every navigation
- refetchOnWindowFocus: false: prevents all queries from re-firing
  when switching tabs or clicking back into the window
- httpBatchLink instead of httpBatchStreamLink: responses arrive as
  single JSON payload instead of streamed chunks, reducing overhead
  for the typical small tRPC payloads

* fix: address TypeScript linting issues and improve error handling across multiple files

* fix: resolve TypeScript linting issues by updating error handling and filtering logic

---------

Co-authored-by: ProxmoxVE Developer <dev@localhost>
2026-03-31 21:51:29 +02:00
dependabot[bot]
9a3312dd1b build(deps-dev): Bump eslint from 10.0.3 to 10.1.0 (#532)
Bumps [eslint](https://github.com/eslint/eslint) from 10.0.3 to 10.1.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.0.3...v10.1.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 10.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:16:44 +02:00
CanbiZ (MickLesk)
f988bf9b28 Refactor code structure for improved readability and maintainability (#533)
* Refactor code structure for improved readability and maintainability

* fix: update references from error_handler.func to error-handler.func for consistency

---------

Co-authored-by: ProxmoxVE Developer <dev@localhost>
2026-03-31 21:13:55 +02:00
Nick Buraglio
541fa9a266 Change hostname from '0.0.0.0' to '::' to enable dual stack support by default (#519)
0.0.0.0 only listens on legacy IP. changing to :: allows for use on any network - dual stacked, ipv6-only, or ipv4-only
2026-03-31 21:13:39 +02:00
dependabot[bot]
962f8e2656 build(deps-dev): Bump baseline-browser-mapping from 2.10.8 to 2.10.12 (#531)
Bumps [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) from 2.10.8 to 2.10.12.
- [Release notes](https://github.com/web-platform-dx/baseline-browser-mapping/releases)
- [Commits](https://github.com/web-platform-dx/baseline-browser-mapping/compare/v2.10.8...v2.10.12)

---
updated-dependencies:
- dependency-name: baseline-browser-mapping
  dependency-version: 2.10.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:13:00 +02:00
dependabot[bot]
3962db247b build(deps): Bump @prisma/client from 7.5.0 to 7.6.0 (#530)
Bumps [@prisma/client](https://github.com/prisma/prisma/tree/HEAD/packages/client) from 7.5.0 to 7.6.0.
- [Release notes](https://github.com/prisma/prisma/releases)
- [Commits](https://github.com/prisma/prisma/commits/7.6.0/packages/client)

---
updated-dependencies:
- dependency-name: "@prisma/client"
  dependency-version: 7.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:12:52 +02:00
dependabot[bot]
c6b23285e0 build(deps-dev): Bump vitest from 4.1.0 to 4.1.2 (#529)
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 4.1.0 to 4.1.2.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.2/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 4.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:12:44 +02:00
dependabot[bot]
980bf1c576 build(deps): Bump @trpc/server from 11.13.4 to 11.16.0 (#528)
Bumps [@trpc/server](https://github.com/trpc/trpc/tree/HEAD/packages/server) from 11.13.4 to 11.16.0.
- [Release notes](https://github.com/trpc/trpc/releases)
- [Commits](https://github.com/trpc/trpc/commits/v11.16.0/packages/server)

---
updated-dependencies:
- dependency-name: "@trpc/server"
  dependency-version: 11.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:12:34 +02:00
dependabot[bot]
e55a59c2d2 build(deps-dev): Bump eslint-config-next from 16.1.7 to 16.2.0 (#515)
Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 16.1.7 to 16.2.0.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v16.2.0/packages/eslint-config-next)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-version: 16.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 09:50:43 +02:00
dependabot[bot]
d6604fec71 build(deps): Bump next from 16.1.7 to 16.2.0 (#514)
Bumps [next](https://github.com/vercel/next.js) from 16.1.7 to 16.2.0.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v16.1.7...v16.2.0)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 09:50:35 +02:00
dependabot[bot]
3a6da23384 build(deps): Bump @tanstack/react-query from 5.90.21 to 5.91.0 (#513)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.90.21 to 5.91.0.
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.91.0/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.91.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 09:50:22 +02:00
dependabot[bot]
3eb4f19e34 build(deps-dev): Bump tailwindcss from 4.2.1 to 4.2.2 (#516)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.2/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-version: 4.2.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 09:50:13 +02:00
dependabot[bot]
638b6eaab8 build(deps-dev): Bump @tailwindcss/postcss from 4.2.1 to 4.2.2 (#517)
Bumps [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.2/packages/@tailwindcss-postcss)

---
updated-dependencies:
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.2.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 09:50:03 +02:00
Martin Toledo Do Pazo
7d1169a5ee fix: add missing script parameter (#521) 2026-03-29 09:49:52 +02:00
mojotaker
4da8840d78 fix: derive script path for PocketBase-sourced scripts on install (#522)
PocketBase API records do not include a `script` field in
`install_methods_json` (only local JSON scripts do). Since v0.5.7
migrated to PocketBase as the data source, `handleExecuteScript` in
ScriptDetailModal was silently doing nothing — it checked for
`method.script` which is always absent for PocketBase scripts, so
`onInstallScript` was never called and the terminal never opened.

Fix by adding a `deriveScriptPath()` helper (mirroring the logic
already in `scriptDownloader.js`) and using it as a fallback when
`method.script` is absent. Also forward `script` through `pbToScript`
and add it to `PBInstallMethod` for forward compatibility.

Fixes #520
2026-03-29 09:49:36 +02:00
dependabot[bot]
5eaffcb9ff build(deps-dev): Bump picomatch (#525)
Bumps the npm_and_yarn group with 1 update in the / directory: [picomatch](https://github.com/micromatch/picomatch).


Updates `picomatch` from 2.3.1 to 2.3.2
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 09:49:13 +02:00
Danny89530
5eeb763c0c perf: replace per-script PocketBase logo lookups with local cache check in getAllDownloadedScripts (#526)
getAllDownloadedScripts called localScriptsService.getScriptBySlug() for
every .sh file found on disk in order to resolve the logo URL. That method
queries PocketBase individually for each slug, turning a simple directory
scan into N sequential HTTP round-trips (N ≈ 535 on a typical install).

Measured impact on a populated instance:
  Before: getAllDownloadedScripts → ~77 s
  After:  getAllDownloadedScripts → ~0.1 s

Because the build step (cache-logos.ts) and the hourly auto-sync both
already download every logo to public/logos/{slug}.webp, the logo is
virtually always present on disk.  Replace the remote lookup with a
lightweight fs.access() check against the local cache; no network call is
made and no logo data is lost.

Co-authored-by: Daloiso Danilo <danilo.daloiso@intellitronika.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-29 09:48:54 +02:00
github-actions[bot]
64089ed88b chore: bump version to 0.5.7 (VERSION + package.json) (#518)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-19 13:58:03 +00:00
CanbiZ (MickLesk)
e2a950da58 feat: cache logos locally, show config_path, rename Sync button (#511)
- logoCacheService.ts: download script logos to public/logos/ for local serving
- cache-logos.ts: build-time script caching 500+ logos from PocketBase
- scripts.ts router: resolve local logo paths, resyncScripts now caches logos
- autoSyncService.js: cache logos during background auto-sync
- ScriptDetailModal: show config_path per install method
- ResyncButton: renamed 'Sync Json Files' to 'Sync Scripts'
- GeneralSettingsModal: updated auto-sync description text
- .gitignore: ignore public/logos/ and data/*.db
2026-03-17 16:35:03 +01:00