CodeIssuesPull RequestsActionsSecurityInsights
✨ AI
More
Settings

feat: billing CSV export, Nova-3 label fix, tenant ID metering, key validation #4767

Merged⚡ AI-generatedXSccantynz wants to mergeclaude/focused-sagan-fua4Dmainopened Jun 3, 20260/5 tasks
ccantynzcommented Jun 3, 2026

Originally written by @ccantynz-alt on GitHub.
Imported from https://github.com/ccantynz-alt/voxlen/pull/34


Summary

  • Billing CSV export — lawyers and accountants can now export time/billing records as CSV from the Clients panel. Per-client export (download icon on each card) and all-clients export (Export CSV in header). Uses Tauri file-save dialog with browser download fallback.
  • Tenant ID meteringX-Tenant-ID header now sent on all api.voxlen.com proxy calls (STT + grammar) so the backend can meter and bill per account
  • Voxlen key validation — onboarding wizard validates the API key on blur against api.voxlen.com/v1/auth/verify, auto-populates voxlenTenantId from the response, shows green/red inline feedback
  • preserve_tone Rust fix — was hardcoded to true; now reads from user setting
  • shortcut_correct_grammar added to Rust AppSettings so it round-trips through save/load
  • Input component success prop — green border + message for positive validation states
  • Nova-3 label fixSTT_ENGINES constant updated from Nova-2 to Nova-3

Test plan

  • Open Clients panel with entries → "Export CSV" button visible in header
  • Click per-client download icon → CSV downloads with correct rows and TOTAL
  • Paste Voxlen API key in onboarding → green "Key verified" on blur
  • Toggle Preserve Tone off in Settings → verify grammar config respects it
  • npm test — 98 tests pass

https://claude.ai/code/session_011MFNHeFKrhfuSrEYVgrdyr


Generated by Claude Code

Cross-repo impact

See what breaks downstream if this PR merges.

Analyze →
⮌ Merged

This pull request was merged into main.

c comment · e edit title · m merge · a approve · r request changes · ? shortcuts