Compare commits

..

4 Commits

Author SHA1 Message Date
hobokenchicken 7cdee73542 fix(tauri): unregister and prevent service worker to fix 404 cache routing issues
Release Desktop Apps / build-linux (push) Successful in 3m17s
Release Desktop Apps / build-windows (push) Successful in 3h17m8s
Release Desktop Apps / release (push) Successful in 13s
2026-07-16 13:58:06 -04:00
hobokenchicken e8ba8ffdba fix(tauri): redirect relative fetch and websocket urls to production backend for desktop app
Release Desktop Apps / build-linux (push) Successful in 3m2s
Release Desktop Apps / build-windows (push) Successful in 3h24m0s
Release Desktop Apps / release (push) Successful in 10s
2026-07-16 13:27:33 -04:00
hobokenchicken 52298d1d46 fix(ci): manually configure caching using actions/cache@v3 for gitea compatibility
Release Desktop Apps / build-linux (push) Successful in 10m35s
Release Desktop Apps / build-windows (push) Successful in 3h16m21s
Release Desktop Apps / release (push) Successful in 11s
2026-07-16 13:03:56 -04:00
hobokenchicken 7fc5d66b8c fix(ci): recursively glob artifact files to prevent empty releases
Release Desktop Apps / build-linux (push) Failing after 11m16s
Release Desktop Apps / release (push) Has been cancelled
Release Desktop Apps / build-windows (push) Has been cancelled
2026-07-16 12:47:45 -04:00
3 changed files with 71 additions and 16 deletions
+29 -12
View File
@@ -10,14 +10,21 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20 }
- name: Cache npm
uses: actions/cache@v3
with:
node-version: 20
cache: 'npm'
cache-dependency-path: 'web/package-lock.json'
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('web/package-lock.json') }}
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Cache Rust target and registry
uses: actions/cache@v3
with:
workspaces: 'web/src-tauri'
path: |
~/.cargo/registry
~/.cargo/git
web/src-tauri/target
key: ${{ runner.os }}-cargo-${{ hashFiles('web/src-tauri/Cargo.lock') }}
- name: Install system deps
run: sudo apt-get update && sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev libappindicator3-dev librsvg2-dev patchelf rpm
- name: Build frontend
@@ -40,10 +47,12 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20 }
- name: Cache npm
uses: actions/cache@v3
with:
node-version: 20
cache: 'npm'
cache-dependency-path: 'web/package-lock.json'
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('web/package-lock.json') }}
- name: Install Rust
run: |
curl.exe -sLo rustup-init.exe https://win.rustup.rs/x86_64
@@ -51,9 +60,14 @@ jobs:
set PATH=%USERPROFILE%\.cargo\bin;%PATH%
rustc --version
shell: cmd
- uses: Swatinem/rust-cache@v2
- name: Cache Rust target and registry
uses: actions/cache@v3
with:
workspaces: 'web/src-tauri'
path: |
~/.cargo/registry
~/.cargo/git
web/src-tauri/target
key: ${{ runner.os }}-cargo-${{ hashFiles('web/src-tauri/Cargo.lock') }}
- name: Build frontend
run: cd web && npm ci && npm run build
shell: cmd
@@ -82,5 +96,8 @@ jobs:
with:
tag_name: ${{ github.ref_name }}
files: |
linux-bundles/*
windows-bundles/*
linux-bundles/**/*.AppImage
linux-bundles/**/*.deb
linux-bundles/**/*.rpm
windows-bundles/**/*.msi
windows-bundles/**/*.exe
+13 -4
View File
@@ -60,11 +60,20 @@
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
<script>
// Register service worker
// Register service worker (only for web, avoid in Tauri to prevent 404 cache bugs)
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/sw.js').catch(() => {});
});
if (!('__TAURI_INTERNALS__' in window) && !('__TAURI__' in window)) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/sw.js').catch(() => {});
});
} else {
// In Tauri, aggressively unregister any old service workers that might be causing 404s
navigator.serviceWorker.getRegistrations().then((registrations) => {
for (let registration of registrations) {
registration.unregister();
}
});
}
}
</script>
</body>
+29
View File
@@ -3,6 +3,35 @@ import { createRoot } from 'react-dom/client';
import './styles/index.css';
import App from './App.tsx';
const isTauri = 'window' in globalThis && '__TAURI_INTERNALS__' in window;
if (isTauri) {
const TARGET = 'https://dumpster.dustin.coffee';
const WS_TARGET = 'wss://dumpster.dustin.coffee';
const originalFetch = window.fetch;
window.fetch = async (input, init) => {
if (typeof input === 'string' && input.startsWith('/')) {
input = TARGET + input;
}
return originalFetch(input, init);
};
const OriginalWebSocket = window.WebSocket;
window.WebSocket = function(url: string | URL, protocols?: string | string[]) {
let urlStr = typeof url === 'string' ? url : url.toString();
if (urlStr.includes('tauri.localhost') || urlStr.includes('tauri://localhost')) {
urlStr = urlStr.replace(/^(wss?|https?|tauri):\/\/tauri\.localhost/, WS_TARGET);
urlStr = urlStr.replace(/^tauri:\/\/localhost/, WS_TARGET);
} else if (urlStr.startsWith('ws://localhost') && isTauri) {
urlStr = urlStr.replace('ws://localhost', WS_TARGET);
} else if (urlStr.startsWith('/')) {
urlStr = WS_TARGET + urlStr;
}
return new OriginalWebSocket(urlStr, protocols);
} as unknown as typeof WebSocket;
window.WebSocket.prototype = OriginalWebSocket.prototype;
}
createRoot(document.getElementById('root')!).render(
<StrictMode>
<App />