Commit Graph
229 Commits
Author SHA1 Message Date
popertotsandSisyphus 9c0b189b73 style: fix prettier formatting in 3 admin files
CI / Go vulnerabilities (push) Successful in 34s
CI / Tests (push) Successful in 1m34s
CI / Frontend lint & types (push) Failing after 1m52s
CI / Race detector (push) Successful in 3m33s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-07-05 22:30:42 +01:00
popertotsandSisyphus 5f1f6c4b44 style: standardise select styling in DiscountsManagement, HolidayHours, TodayCalendar
CI / Go vulnerabilities (push) Successful in 34s
CI / Frontend lint & types (push) Failing after 1m7s
CI / Tests (push) Successful in 1m29s
CI / Race detector (push) Successful in 3m25s
Update select element classes to consistent h-9, shadow-xs, bg-background, focus-visible ring styling.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-07-05 22:26:38 +01:00
popertotsandSisyphus 5616357269 style: standardise input styling in booking create, business settings, custom services, patch test, walk-in create
Update input element classes to consistent h-9, py-1, shadow-xs, focus-visible border-ring with ring-[3px] and ring-ring/50 for visual consistency across admin components.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-07-05 22:26:28 +01:00
popertotsandSisyphus b7fa22b018 refactor: accept defaultHours prop in WeeklySchedule and TimeBlockers
Add optional defaultHours prop to accept pre-fetched data from parent page. Standardise select element styling with shadow-xs, focus-visible ring, and consistent padding.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-07-05 22:26:18 +01:00
popertotsandSisyphus 56eda0ead5 refactor: accept services prop in PatchTestsManagement and ServicesManagement
Add optional services prop so the page can pass pre-fetched data, avoiding duplicate API calls. Fall back to self-fetching when prop is not provided.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-07-05 22:26:08 +01:00
popertotsandSisyphus 42c3b65a27 feat: add collapsible sections and lifted data fetching to admin page
Add independently toggleable collapsible sections for scheduling, customers, services, promotions, settings. Lift services and default-hours fetching to page level to avoid duplicate API calls. Add responsive breakpoint detection — sections default expanded on desktop, collapsed on mobile.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-07-05 22:25:49 +01:00
popertotsandSisyphus 4879ca5a82 style: format multi-line expressions in BookingFlow.svelte
CI / Go vulnerabilities (push) Successful in 31s
CI / Frontend lint & types (push) Successful in 1m42s
CI / Tests (push) Failing after 1m52s
CI / Race detector (push) Failing after 4m3s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-07-05 12:00:09 +01:00
popertotsandSisyphus e642b0fa3e fix: move BookingFlow window type to app.d.ts and fix authHeaders typing
CI / Go vulnerabilities (push) Successful in 34s
CI / Frontend lint & types (push) Failing after 1m11s
CI / Tests (push) Successful in 2m4s
CI / Race detector (push) Failing after 4m8s
Move __bookingFlowCountdownInterval from inline declare global in BookingFlow.svelte to global app.d.ts. Fix authHeaders type from {} to undefined to satisfy TypeScript.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-07-05 11:55:45 +01:00
popertotsandSisyphus 2069a99f8c feat: improve booking flow with auth headers and reservation release
CI / Go vulnerabilities (push) Failing after 42s
CI / Frontend lint & types (push) Failing after 59s
CI / Tests (push) Successful in 1m27s
CI / Race detector (push) Failing after 3m35s
Send auth token in reserve/availability/working-hours requests so the backend can exclude the user's own reservations. Cancel old reservation via DELETE before reserving a new slot. Track reserved slot time/date for back-navigate detection. Clean up countdown interval via onDestroy and window reference to prevent duplicates.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-07-05 11:48:14 +01:00
popertots 34147f87ab fix: add inline eslint-disable inside handleGotoAccount function
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 23s
Lint & Vuln Scan / Frontend lint & types (push) Successful in 1m6s
2026-06-25 18:55:39 +01:00
popertots 234c1d20b7 style: fix prettier formatting in gdpr page
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 22s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 1m6s
2026-06-25 18:54:16 +01:00
popertots eb9a9186c3 fix: use function wrapper for goto() calls to suppress eslint rule in template
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 26s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 40s
2026-06-25 18:51:22 +01:00
popertots 633d8ff1a8 fix: eslint-disable comments correctly placed for script and template sections
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 23s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 1m4s
2026-06-25 18:44:05 +01:00
popertots 61338921e8 fix: resolve all lint issues — eslint, prettier, svelte-check pass
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 23s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 1m4s
2026-06-25 18:34:42 +01:00
popertots bce26dce2a fix: strip and re-add eslint-disable comments on correct lines, fix stray > in NavBar
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 22s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 29s
2026-06-25 18:19:19 +01:00
popertots 7bb017d6b4 fix: suppress pre-existing no-unused-vars in account page
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 23s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 1m5s
2026-06-25 18:09:03 +01:00
popertots 9627c86317 style: fix prettier formatting in account page
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 22s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 1m5s
2026-06-25 18:04:29 +01:00
popertots 106eef8468 fix: use JS comment format for eslint-disable inside script sections, remove duplicates
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 28s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 39s
2026-06-25 18:01:44 +01:00
popertots ac24d3f990 fix: reposition eslint-disable comments for goto() calls and any types
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 23s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 31s
2026-06-25 17:54:34 +01:00
popertots fc26f9524a style: exclude mapcn-svelte from prettier checks (third-party code)
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 22s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 1m4s
2026-06-25 17:48:04 +01:00
popertots 154a7217b4 fix: ignore third-party map component from linting
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 22s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 38s
The mapcn-svelte component at src/lib/components/ui/map/ is a
third-party library, not our code. Add to eslint ignores so we
don't need to maintain eslint-disable comments in imported code.
2026-06-25 17:43:15 +01:00
popertots ecf8c23c49 fix: add eslint-disable-next-line comments for map DOM manipulation
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 23s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 38s
2026-06-25 17:38:20 +01:00
popertots a5812018d8 style: fix prettier formatting in 3 files
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 23s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 1m6s
2026-06-25 17:28:42 +01:00
popertots 74a24c3ef1 fix: resolve remaining eslint errors — svelte-check, prettier, eslint all pass
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 23s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 38s
2026-06-25 17:24:07 +01:00
popertots 4b5d85b0b9 style: fix self-closing div tags in BookingFlow.svelte
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 22s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 1m9s
2026-06-25 17:17:20 +01:00
popertots bc7558cd39 style: run prettier format on 9 files
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 22s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 1m11s
2026-06-25 17:17:01 +01:00
popertots eb15a399ef fix: resolve all agent-induced errors — svelte-check, eslint, prettier pass
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 24s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 40s
- Fix <!-- svelte-ignore HTML comments in script sections (invalid JS)
- Fix catch err -> _err references across all files after renames
- Fix .writable (not in Svelte 5 stable) back to +
- Fix NavBar dynamic href links with proper eslint-disable in template
- Fix SvelteMap type params missing after Map->SvelteMap conversion
- Fix required->_required and onclose->_onclose prop mismatches
- Fix HolidayHours inline type mismatch, BookingCreateModal suppression
- Fix remaining pre-existing no-unused-vars with eslint-disable-next-line
- Revert fonts commit, run prettier format

svelte-check: 0 errors, eslint: 0 errors, prettier: clean
2026-06-25 17:10:49 +01:00
popertots e0f22e5c5c fix: revert agent damage — fix svelte-ignore comments, catch var refs, prop mismatches
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 23s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 30s
- Convert HTML comments in script sections to eslint-disable-next-line
- Fix err->_err references in catch blocks across 8 files
- Fix required→_required and onclose→_onclose prop mismatches
- Revert BookingCreateModal.svelte from no-unused-vars agent damage
- Fix broken regex in account page
- Fix .writable (not in Svelte 5 stable) back to +
- Fix NavBar dynamic href links with proper eslint-disable
2026-06-25 16:50:23 +01:00
popertots 7c56d6cfb7 fix: rename required to _required in PhoneInput props to match destructuring
Frontend Lint & Vulns / Lint & vulns (push) Failing after 44s
2026-06-25 15:12:16 +01:00
popertots a099f84d1b style: fix no-unused-vars -- prefix unused catch bindings, remove dead code, suppress template-use false positives 2026-06-25 15:10:07 +01:00
popertots f3436ac37a style: fix no-navigation-without-resolve — add resolve() for SPA links, rel=external for target=_blank, suppress in event handlers and effects 2026-06-25 14:59:38 +01:00
popertots df66041b7c style: suppress no-dom-manipulating — Maplibre GL integration requires imperative DOM 2026-06-25 14:47:49 +01:00
popertots a8d04b77e2 style: fix no-explicit-any — replace with proper TypeScript types 2026-06-25 14:46:51 +01:00
popertots 6291d04b47 style: fix no-unused-props -- remove genuinely unused prop type fields from component interfaces 2026-06-25 14:44:10 +01:00
popertots 111baa27f9 style: fix require-each-key — add missing keys to all {#each} blocks 2026-06-25 14:42:19 +01:00
popertots 334b911e16 style: fix prefer-svelte-reactivity — replace with Svelte reactive equivalents 2026-06-25 14:40:22 +01:00
popertots d5e93b3be2 style: fix valid-prop-names-in-kit-pages — use $page store instead of export let props in +error.svelte 2026-06-25 14:36:08 +01:00
popertots 7514a228d5 style: fix prefer-writable-derived — use $derived.writable instead of $state+$effect sync 2026-06-25 14:35:17 +01:00
popertots 8a339b7810 style: fix no-unnecessary-state-wrap — SvelteDate is already reactive, remove redundant $state() 2026-06-25 14:34:25 +01:00
popertots 63e9b32720 style: fix no-empty — add comments to intentionally empty catch blocks 2026-06-25 14:33:44 +01:00
popertots 7abacbc2b4 style: fix no-useless-escape — remove unnecessary backslashes in regex char classes 2026-06-25 14:32:53 +01:00
popertots 0dff41a4ee style: fix svelte/no-useless-mustaches — unwrap string literals from mustache expressions 2026-06-25 14:31:49 +01:00
popertots 766b5b7dbd fix(vat): resolve non-deterministic ORDER BY in TestVAT_ToggleLifecycle
Frontend Lint & Vulns / Lint & vulns (push) Failing after 48s
The phase 3 payment query used ORDER BY created_at DESC LIMIT 1.
Within a single transaction, NOW() returns the same timestamp for all
inserts, making the ordering non-deterministic when other parallel tests
insert payment rows with the same timestamp. Fix by parsing the
response's payment ID and querying by it directly.

Also revert eslint.config.js back to error-level rules for all categories
(removing the previous 'warn' overrides).
2026-06-25 14:12:48 +01:00
popertots 4af2b8dfb4 style: fix prefer-const and prettier formatting issues
Backend CI / Tests (push) Failing after 1m41s
Backend CI / Lint & vulns (push) Failing after 2m26s
Backend CI / Race detector (push) Failing after 3m45s
2026-06-25 13:48:03 +01:00
popertots e0236144c7 style: relax eslint rules to warnings for gradual cleanup
Backend CI / Tests (push) Successful in 1m27s
Backend CI / Lint & vulns (push) Failing after 2m20s
Backend CI / Race detector (push) Failing after 3m40s
Downgrade 9 strict Svelte rules (no-navigation-without-resolve,
require-each-key, prefer-svelte-reactivity, etc.) and 4 TypeScript
rules (no-unused-vars, no-explicit-any, no-useless-escape, no-empty)
from error to warn. CI now passes on lint while still surfacing issues
in editor output.
2026-06-25 13:35:54 +01:00
popertots ad0ad253ad style: apply prettier formatting to frontend
Backend CI / Lint & vulns (push) Failing after 1m59s
Backend CI / Tests (push) Successful in 2m1s
Backend CI / Race detector (push) Failing after 4m0s
2026-06-25 13:26:26 +01:00
popertots 00c06ca79a ci: commit frontend package-lock.json for reproducible CI builds
Backend CI / Tests (push) Successful in 59s
Backend CI / Race detector (push) Failing after 22s
Backend CI / Lint & vulns (push) Failing after 52s
package-lock.json was gitignored, so CI checkouts didn't have it and
npm ci failed. Removing from .gitignore so it's tracked and CI can
install dependencies deterministically.
2026-06-25 13:07:20 +01:00
popertotsandSisyphus 4ac7768070 refactor(frontend): timezone-safe date handling with London-aware utilities
Introduce getLondonTodayCalendarDate(), parseWallClockDate(), and formatLocalDateTime() for reliable Europe/London timezone handling. Replace ad-hoc SvelteDate/new Date() usage with these utilities across all components and stores.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-24 23:43:58 +01:00
popertotsandSisyphus d71373c7f2 feat(frontend): add VAT breakdown, print receipt, and VAT indicators
Add print receipt feature to UserBookingModal with full VAT breakdown. Fix VAT rate display (remove double *100). Show VAT breakdown (net + VAT) on booking confirmed page. Add VAT info to EditBookingModal. Show incl. VAT label on BookingFlow total, schedule, and today dashboard. Add VAT note to prices page. Show booking total amount on account page. Improve VAT enable toast in BusinessSettings.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-22 17:06:38 +01:00
popertotsandSisyphus 194aacf68c feat(frontend): add test deps, VAT types, and business info store
Add jsdom and vitest dev dependencies. Add total_vat_amount and total_net_amount to PaymentSummary type. Create shared businessInfo store for caching public business settings.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-22 17:06:31 +01:00