CI & Build / Python lint (push) Successful in 2s
CI & Build / TypeScript typecheck (push) Successful in 6s
Desktop (Tauri) / Tauri desktop (Linux) (push) Failing after 9s
CI & Build / Python tests (push) Successful in 13s
CI & Build / Build & push image (push) Successful in 32s
There was essentially no logging — useless for proving the app renders across different environments. Add real observability: - tauri-plugin-log -> stdout (so `2>&1 | tee` captures a run) AND a persistent file in the app log dir (grabbable after the fact on any machine). Level Info. - Startup diagnostics: app version, OS/arch, the Linux display/session stack (XDG_SESSION_TYPE, desktop, Wayland/X11, GDK_BACKEND), the WebKit render- hardening vars actually in effect, resolved log + data dirs, DB open/migrate result, and note/label counts. - log_event command + a frontend logEvent() helper: boot line (data source + WebKit user-agent) from main.ts, first-route config/session/destination from the router guard, and — via the bridge invoke() wrapper — every failed Tauri command named with its error, so a broken basic function is self-identifying. Task 2040. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FRgehjoz7Yv8LkUfADxACm
25 lines
1006 B
TypeScript
25 lines
1006 B
TypeScript
import { createApp } from "vue";
|
|
import { createPinia } from "pinia";
|
|
import App from "./App.vue";
|
|
import router from "./router";
|
|
import { isDesktop, logEvent } from "./desktop/bridge";
|
|
import "./style.css";
|
|
|
|
const app = createApp(App);
|
|
app.use(createPinia()); // before router: the nav guard reads the session store
|
|
app.use(router);
|
|
app.mount("#app");
|
|
|
|
// Boot line (desktop only): which data source, and the WebKit user-agent — the
|
|
// renderer identity that matters most when a build behaves differently per machine.
|
|
logEvent("info", `boot: source=${isDesktop() ? "local (offline core)" : "rest"} ua=${navigator.userAgent}`);
|
|
|
|
// Register the service worker so the app is installable (PWA). It's a
|
|
// progressive enhancement — installability only, not offline-first (see
|
|
// public/sw.js) — so failures are non-fatal and intentionally ignored.
|
|
if ("serviceWorker" in navigator) {
|
|
window.addEventListener("load", () => {
|
|
void navigator.serviceWorker.register("/sw.js").catch(() => {});
|
|
});
|
|
}
|