diff --git a/.github/workflows/ci-flatpak.yml b/.github/workflows/ci-flatpak.yml index 99096c8b..79d93806 100644 --- a/.github/workflows/ci-flatpak.yml +++ b/.github/workflows/ci-flatpak.yml @@ -54,8 +54,10 @@ jobs: run: | uv sync --locked --only-group flatpak \ --python "${PYTHON_VERSION}" \ + --no-build \ + --no-install-project \ --no-python-downloads \ - --no-install-project + --no-install-package flatpak-node-generator - name: Setup Flatpak dependencies run: | @@ -95,15 +97,17 @@ jobs: flatpak run org.flatpak.Builder --version - name: Generate Flatpak Node sources + env: + PYTHONPATH: packaging/linux/flatpak/deps/flatpak-builder-tools/node run: | - uv run --locked --no-sync python -m flatpak_node_generator \ + uv run --locked --no-build --no-sync python -m flatpak_node_generator \ npm crates/client-web/package-lock.json \ --node-sdk-extension "org.freedesktop.Sdk.Extension.node${NODE_VERSION}//${FREEDESKTOP_SDK_VERSION}" \ --output generated-node-sources.json - name: Generate Flatpak Cargo sources run: | - uv run --locked --no-sync python \ + uv run --locked --no-build --no-sync python \ ./packaging/linux/flatpak/deps/flatpak-builder-tools/cargo/flatpak-cargo-generator.py \ Cargo.lock \ --output generated-cargo-sources.json diff --git a/crates/client-web/src/app/routes.ts b/crates/client-web/src/app/routes.ts index 1123c0e0..c2581bbb 100644 --- a/crates/client-web/src/app/routes.ts +++ b/crates/client-web/src/app/routes.ts @@ -6,6 +6,7 @@ export function defaultHomeTab(_route: AppRoute): HomeBrowseTab { return 'recommended'; } +/** Maps a browse URL segment to its route-model kind. */ function browseKindFromSegment(segment: string): Extract['kind'] { if (segment === 'collections') { return 'collection'; @@ -16,9 +17,18 @@ function browseKindFromSegment(segment: string): Extract 0 && pathname[end - 1] === '/') { + end -= 1; + } + return pathname.slice(0, end) || '/'; +} + /** Converts the current browser path into the web UI's route model. */ export function parseRoute(): AppRoute { - const normalizedPath = globalThis.location.pathname.replace(/\/+$/, '') || '/'; + const normalizedPath = normalizePath(globalThis.location.pathname); const settingsMatch = /^\/settings(?:\/(libraries|providers|scheduled|dashboard|logs))?$/.exec(normalizedPath); if (settingsMatch) { diff --git a/crates/client-web/src/style.css b/crates/client-web/src/style.css index 5104f099..9342e933 100644 --- a/crates/client-web/src/style.css +++ b/crates/client-web/src/style.css @@ -2115,7 +2115,7 @@ legend { .log-entries-table .log-entry-message { margin: 0; white-space: pre-wrap; - word-break: break-word; + overflow-wrap: anywhere; color: inherit; background: transparent; border: none; @@ -2134,7 +2134,7 @@ legend { .log-entry-message { white-space: pre-wrap; - word-break: break-word; + overflow-wrap: anywhere; font-family: 'Cascadia Mono', 'Fira Code', Consolas, monospace; font-size: 0.86rem; line-height: 1.5;