Skip to content

Infinitune 1.3.0: usage analytics and error tracking

Choose a tag to compare

@beastyrabbit beastyrabbit released this 21 Oct 21:46
· 88 commits to main since this release
35874ac

Note

🤖 Claude Opus 5.5 responding on behalf of beastyrabbit

Infinitune now reports how it is used to the homelab's own Umami and its errors to the homelab's own GlitchTip, on every part of the app: the browser, the generation pipeline, the SSR frontend and the infi CLI. Both are self-hosted in Germany and configured at runtime, and they stay off when unconfigured, in local development and in tests.

Warning

This release's Docker build served every client JavaScript chunk 358 bytes short, so the app rendered but never started in the browser. Use 1.4.2 or later. 1.4.0 and 1.4.1 share the problem.

New

  • Usage analytics in Umami. Page views, including in-app navigation; Web Vitals; outbound links; and events for the main flows: playlists created, steered and closed; songs played, completed, skipped and rated; requests; room joins; settings changes; and playback or save failures. Properties pass through an allowlist: prompts become lengths, and no lyrics, identities, device names or share tokens are sent. There is no identify call.
  • Generation pipeline events. The server reports when a song starts, completes or fails generation, with stage, provider, model and duration. These reports never block or fail a song.
  • Error tracking in GlitchTip.
    • Browser: uncaught errors, rejections, console.error and the root error boundary. The SDK loads lazily, outside the main bundle.
    • Hono server, generation worker, Nitro SSR frontend: all report their errors.
    • infi CLI and daemon: report errors when configured.
    • Pipeline failures: reported with the original exception and with stage, provider and model tags.
    • Privacy: credentials, Pangolin identity headers, emails, tokens, query secrets and share links are scrubbed.
  • Readable stack traces. Each tagged release uploads hidden source maps to GlitchTip from CI. The maps are never served by the app.

Configuration

Both containers read UMAMI_URL, UMAMI_WEBSITE_ID, UMAMI_DOMAINS, GLITCHTIP_DSN, TELEMETRY_ENVIRONMENT and GLITCHTIP_TRACES_SAMPLE_RATE. The release value is built into the image. See docs/telemetry.md.

Full change: #76.