Skip to content

v2.0.0 - #235

Merged
javedh-dev merged 85 commits into
mainfrom
dev
Aug 7, 2026
Merged

v2.0.0#235
javedh-dev merged 85 commits into
mainfrom
dev

Conversation

@javedh-dev

Copy link
Copy Markdown
Owner

Highlights

  • Redesigned UI — new sidebar app shell, top-level feature routes (/fuel, /insurance, /maintenance, /pollution, /reminders) replacing the old /dashboard/* nesting, fleet-wide dashboard with rearrangeable widgets, and a new "Vintage" theme.
  • Full codebase refactor of the app shell and route structure alongside the redesign.
  • PDF export for maintenance logs.
  • New localizations: German, Romanian, plus updates to Hungarian and Finnish.

What's Changed

New Contributors

Full Changelog: 1.4.1...2.0.0

Lukas Ott and others added 30 commits April 8, 2026 02:22
Add 142 missing German translation keys to reach 100% coverage (695 keys).
Normalize all German text to informal "du" instead of mixed Sie/du.
Remove 19 duplicate keys and improve existing translations.

Add ~140 new English i18n keys for UI strings that were previously
hardcoded in Svelte components (settings, notifications, reminders,
provider forms, header). These keys enable proper localization and
will be extracted in the next commit.

Also add <svelte:head><title> to the root layout so the browser tab
shows the app name instead of the URL.
Replace hardcoded English strings in 21 Svelte components with
Paraglide message function calls (m.key_name()).

Affected areas:
- Settings page: all four tabs (Personalization, Units, Features,
  Notifications) including section titles, descriptions, labels
- Notification system: provider dialogs, delivery panel, cron presets,
  email/webhook/gotify forms, test dialog, channel labels
- Reminder form: type dropdown now uses getReminderTypeLabel()
- Header: aria-labels and button tooltips
- SearchableSelect: new optional "label" prop for localized
  search placeholders instead of raw field names
- SettingsSection: accordion expanded values are now $derived
  so they update correctly on locale change
…ation

- Replace date-fns format() with Intl.DateTimeFormat respecting app locale
- Extract shared dateFormatter as $derived for readability and performance
- Make channelOptions and sidebarItems reactive via $derived for locale changes
- Show localized auth type labels instead of raw enum values in webhook form
- Handle singular/plural correctly for notification cleared toast
- Replace hardcoded English toast with i18n message key
Add complete German translation and extract hardcoded strings to i18n
- Implement PDF generation using pdfkit
- Add API endpoint at /api/vehicles/[id]/maintenance-logs/export-pdf
- Add export button to maintenance page toolbar
- Add blob response support for file downloads

Co-Authored-By: Paperclip <noreply@paperclip.ing>
feat: update hungarian translation
- Remove 200s fake delay from CSV import (csv.helper.ts)
- Fix data export to exclude users/sessions, include reminders/notifications/providers
- Consolidate encryption into crypto.service.ts, delete utils/encryption.ts
  - Hard-fail without APP_SECRET instead of silent plaintext fallback
  - Legacy PBKDF2 fallback for existing provider credential rows
- Fix PDF export: use make+model instead of nonexistent vehicle.name
- Decouple domain schemas from config store (import leak, server-side date validation)
  - Create src/lib/domain/shared.ts with apiDateString/optionalApiDateString
  - Remove parseDate imports from all 5 domain files
- Fix PUCC form toast (edit-mode detection via data prop, not broken store)
  - Remove dead openForm/openSheet/editMode from pucc.svelte.ts and vehicle.svelte.ts
- Fix seeder race conditions (await seedDefaultUser, forEach -> Promise.all)
- Fix maintenance ownership: update/delete verify vehicleId scoping
- Fix insurance POST recurrenceType default to 'none' (consistent with PUT)
- Fix status codes: notification PUT 200 (not 201), register POST 201
- Fix cookie secure flag consistency (unify on env.HTTP_MODE)
- Remove stale 'body from locals' comments from 10+ route files
- Fix branding error label, health message
- Move auth checks from client onMount to +page.server.ts (login, register, root)
- Simplify login/register/root pages (remove loading skeletons, delegate to server)
- Replace dashboard +layout.ts (client load) with +layout.server.ts (server load)
- Replace onMount with .pre in dashboard layout for SSR-friendly init
- Add setConfigs method to config store for server-provided config hydration
- Add OpenWiki documentation stubs (workflows, architecture, operations, etc.)
- Update AGENTS.md with OpenWiki section
Javed Hussain and others added 29 commits July 24, 2026 23:18
…rom old /dashboard/* paths

- Create top-level feature pages: /fuel, /maintenance, /reminders, /pollution, /insurance, /vehicles
- /dashboard is now the fleet home page (placeholder)
- Old /dashboard/* paths redirect to new top-level paths
- /dashboard/overview redirects to /dashboard
- Update AppSidebar nav item hrefs to point to new paths
- Remove DashboardNav/DashboardTabs references (no longer used)
- Create GET /api/dashboard/summary endpoint with fleet-wide aggregates
- Create dashboardService on the server computing totals, expenses, PUC status, vehicle health, reminders
- Create client-side dashboard store
- Build full dashboard home page with:
  - Greeting header + Add Vehicle button
  - 4 KPI stat cards (Vehicles, Distance, Fuel, Expenses)
  - Expenses donut chart with legend
  - My Vehicles compact list
  - Vehicle Health ProgressRing with Good/Attention/Needs Action bars
  - PUC Status donut chart
  - Upcoming Reminders list with time-until-due chips
  - Bottom CTA banner for Reports
…electors

- Fuel: Add vehicle selector, 4 stat cards (Fuel Used, Total Spent, Avg Mileage, Entries)
- Maintenance: Add vehicle selector, 4 stat cards (Total Spent, Next Service, Odometer, Records)
- Reminders: Fleet-wide endpoint GET /api/reminders, filter tabs, status pills
- PUC/Pollution: Fleet-wide endpoint GET /api/pucc/status, 4 stat cards with %, filter tabs, table
- Insurance: Add vehicle selector, restyle in sidebar shell
- Vehicles: Responsive card grid with add vehicle tile
- All pages use FeatureGate for disabled feature handling
- Remove DashboardNav, DashboardTabs, OverviewTab (dead components)
- Add  path alias to svelte.config.js
- Fix all TypeScript type errors (VehicleCard props, status types, null checks)
- Fix all lint errors (unused imports, unused variables)
- Add Expenses and Reports pages as sidebar nav items
- Run pnpm check, pnpm lint, pnpm format, pnpm test - all passing
- [x] App name in sidebar is clickable and take to "/" The tracktor icon
  must follow theme colour
- [x] Theme changer settings and profile and bottom aligned.
- [x] Better segregation of menus in sidebar
- [x] Theme colour is better followed or removed if that does't align
  correctly and give options for dark mode like OLED/a few lighter
  options
- [x] Demo notice looks weird find a better position for that
- [x] Add calendar widget to show all upcoming or previous actions on
  date
@javedh-dev
javedh-dev merged commit b3b89ff into main Aug 7, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants