This website requires JavaScript.
6c16d65476
fix(frontend): Svelte 5 reactivity, each block keys, and path resolution
popertots and Sisyphus
2026-06-04 01:08:36 +01:00
c76c3f52f7
feat(ui): loyalty stamp redesign and admin account restrictions
popertots and Sisyphus
2026-06-04 01:07:43 +01:00
4c26db81db
feat(frontend): add MapLibre GL map components
popertots and Sisyphus
2026-06-04 01:07:25 +01:00
584c02ac6c
feat(frontend): ImageVariant component and WASM encoder workers
popertots and Sisyphus
2026-06-04 01:07:00 +01:00
0da7498ad7
feat(images): multi-format portfolio pipeline (AVIF/WebP/JPEG/JXL)
popertots and Sisyphus
2026-06-04 01:06:33 +01:00
bffb984ebb
feat(auth,security,scheduling): JWT revocation, S3 fix, notes validation, docs, tests
popertots
2026-06-03 11:17:41 +01:00
169d7dc6e3
feat(scheduling,admin,today): week-range queries, file size limits, mobile nav UX
popertots
2026-06-03 10:22:16 +01:00
b1847b4cfc
fix(payments,portfolio,scheduling): add ID validation hardening
popertots and Sisyphus
2026-05-31 18:49:16 +01:00
1d8247e655
fix(auth,services,profile): add request struct validation
popertots and Sisyphus
2026-05-31 18:49:12 +01:00
577cceb304
fix(bookings): add request struct validation and fix patch test notice logic
popertots and Sisyphus
2026-05-31 18:49:07 +01:00
304a54c283
fix(admin): replace string(rune) with strconv.Itoa and validate status param
popertots and Sisyphus
2026-05-31 18:49:02 +01:00
253d8785a4
fix(main): add request body size limits to API routes
popertots and Sisyphus
2026-05-31 18:48:57 +01:00
306f942d00
feat(mw): add dev-mode rate limiting bypass
popertots and Sisyphus
2026-05-31 18:48:53 +01:00
d7857766fb
chore: configure env-based DAV_ADMIN_PASSWORD and add security headers
popertots and Sisyphus
2026-05-31 10:55:43 +01:00
1a6947a9b6
fix: enforce request body size limits across the API
popertots and Sisyphus
2026-05-31 10:55:33 +01:00
700b7c1152
fix: extract client IP via net.SplitHostPort consistently
popertots and Sisyphus
2026-05-31 10:55:23 +01:00
a38fda612e
fix: harden notification pagination and ID validation
popertots and Sisyphus
2026-05-31 10:55:19 +01:00
453fd0dc1d
feat: validate image type on server-side upload
popertots and Sisyphus
2026-05-31 10:55:09 +01:00
965b8b2794
feat: validate admin and time-blocker request structs
popertots and Sisyphus
2026-05-31 10:54:59 +01:00
605c1422b9
feat: validate auth and user request structs
popertots and Sisyphus
2026-05-31 10:54:48 +01:00
8b72c3fbef
deps: add go-playground/validator/v10 and update crypto deps
popertots and Sisyphus
2026-05-31 10:54:40 +01:00
0de5128201
fix copy
popertots
2026-05-31 00:57:33 +01:00
6e901690fd
chore: apply project-wide formatting and UI library updates
popertots and Sisyphus
2026-05-29 20:23:14 +01:00
ef650e013a
feat: implement patch test management and validation improvements
popertots
2026-05-29 20:21:26 +01:00
ddaa468a3e
fix: correctly validate number inputs against null/NaN bypass in admin modals
popertots
2026-05-29 18:35:11 +01:00
cf81916278
fix: safely enforce validation onblur for HolidayHours modal without dropping code
popertots
2026-05-29 18:28:13 +01:00
6625a3a699
fix: enforce derived validation onblur in patch tests modal to block invalid submissions
popertots
2026-05-29 18:24:03 +01:00
20bd3e3310
fix: add inputmode to number inputs across admin modals to enforce numeric keyboard on mobile
popertots
2026-05-29 18:20:30 +01:00
c21a59d61d
fix: validate Patch Test modal inputs
popertots
2026-05-29 18:12:39 +01:00
0750c7ac0e
fix: deduplicate service list in PatchTestsManagement to prevent each_key_duplicate
popertots
2026-05-29 18:10:40 +01:00
eda4b6d865
fix: deduplicate service list to prevent each_key_duplicate
popertots
2026-05-29 18:09:35 +01:00
94f3f77985
fix: restore ServicesManagement.svelte component
popertots
2026-05-29 18:09:06 +01:00
7d1266707c
refactor: use shadcn Checkbox in PatchTestsManagement
popertots
2026-05-29 18:06:05 +01:00
db4c3aa076
feat: complete PatchTestsManagement UI and modal logic
popertots
2026-05-29 18:04:27 +01:00
df32f5518c
fix: resolve svelte syntax error and cleanup ServicesManagement.svelte
popertots
2026-05-29 17:57:33 +01:00
a22ddb7a0f
fix: remove duplicate and deprecated createService implementation
popertots
2026-05-29 17:55:23 +01:00
e1c0d3a03f
fix: remove duplicate validateMinimumAgeField
popertots
2026-05-29 17:54:00 +01:00
10bb1b4e9e
fix: remove duplicate validation functions
popertots
2026-05-29 17:52:25 +01:00
dec3e1023e
fix: remove duplicated validation functions in ServicesManagement.svelte
popertots
2026-05-29 17:51:36 +01:00
f5c2c26fe4
fix: resolve compilation errors in frontend and backend
popertots
2026-05-29 17:46:15 +01:00
f36497090a
feat: migrate to dedicated patch test management
popertots
2026-05-29 17:19:02 +01:00
9d8015f1b8
feat: add comprehensive test suite for recent backend changes
popertots
2026-05-29 17:13:16 +01:00
9ba4949d37
docs: update all documentation for referral codes, admin schedule page, BookingFlow welcome step, format utilities, and patch_test_duration_hours
popertots and Sisyphus
2026-05-29 16:21:18 +01:00
ec097af0f6
refactor: route pages with shared formatting and layout updates
popertots and Sisyphus
2026-05-29 16:10:29 +01:00
5705ef71b8
refactor: dialog and alert-dialog UI primitives
popertots and Sisyphus
2026-05-29 16:10:07 +01:00
3aa0814b1a
fix: navbar layout and styling improvements
popertots and Sisyphus
2026-05-29 16:09:46 +01:00
040a47401e
refactor: user payment modal
popertots and Sisyphus
2026-05-29 16:09:25 +01:00
91999d8244
refactor: account modals with auto-select and formatting
popertots and Sisyphus
2026-05-29 16:09:05 +01:00
fc69fec361
refactor: today page components with calendar grid and stats
popertots and Sisyphus
2026-05-29 16:08:44 +01:00
18d8822c47
refactor: admin user modal, image upload, and new schedule page
popertots and Sisyphus
2026-05-29 16:08:25 +01:00
a44972fbc6
refactor: admin edit and approval modals
popertots and Sisyphus
2026-05-29 16:08:05 +01:00
b2788b2269
refactor: admin management components (discounts, holidays, schedule, time blockers)
popertots and Sisyphus
2026-05-29 16:07:44 +01:00
96ab71a579
refactor: admin booking modals with shared formatting and auto-select
popertots and Sisyphus
2026-05-29 16:07:26 +01:00
0b3d26914b
refactor: booking flow wizard with step indicator improvements
popertots and Sisyphus
2026-05-29 16:07:02 +01:00
aa75217898
refactor: bookings and services handlers with shared formatting
popertots and Sisyphus
2026-05-29 16:06:40 +01:00
9deae1b0d7
feat: referral code validation in registration with tests
popertots and Sisyphus
2026-05-29 16:06:19 +01:00
0f118205d6
feat: add created_by_name field to Booking type
popertots and Sisyphus
2026-05-29 16:05:56 +01:00
e8c03d6c30
refactor: extract shared formatting utilities (duration, date, age)
popertots and Sisyphus
2026-05-29 16:05:35 +01:00
2b56c5640d
docs: update all documentation for reschedule modal, time blockers UI, and booking flow improvements
popertots and Sisyphus
2026-05-28 16:48:56 +01:00
d23ed1831a
chore: update init scripts, dev script, and remove stale HAR file
popertots and Sisyphus
2026-05-28 16:33:31 +01:00
91d20d474b
refactor: lunch protection to find all gaps instead of largest
popertots and Sisyphus
2026-05-28 16:33:06 +01:00
72270649b6
fix: UI polish across navbar, payment modal, calendar, and dialog
popertots and Sisyphus
2026-05-28 16:32:41 +01:00
fff8afcbe9
feat: account edit request modal with auto-select and responsive improvements
popertots and Sisyphus
2026-05-28 16:32:15 +01:00
f69750da82
feat: today calendar with time blockers, stats, and pending approvals improvements
popertots and Sisyphus
2026-05-28 16:31:49 +01:00
db5f6ff135
fix: admin booking modals and schedule components polish
popertots and Sisyphus
2026-05-28 16:31:22 +01:00
329eb28ec7
feat: admin reschedule modal and time blockers for schedule management
popertots and Sisyphus
2026-05-28 16:30:57 +01:00
6cf1f12442
refactor: admin BookingCreateModal to use shared time slot utilities
popertots and Sisyphus
2026-05-28 16:30:32 +01:00
efbcfbaaf0
refactor: booking flow components with shared utilities and auto-select
popertots and Sisyphus
2026-05-28 16:30:07 +01:00
7ee77d6bff
feat: shared time slot utility module for booking and admin components
popertots and Sisyphus
2026-05-28 16:29:41 +01:00
c442c150c0
feat: scheduling exceptional hours support and default hours validation
popertots and Sisyphus
2026-05-28 16:29:17 +01:00
3bda86e910
feat: GetBookingsByCreatedRange endpoint for admin booking queries
popertots and Sisyphus
2026-05-28 16:28:52 +01:00
8574bf2221
feat: enriched edit request system with side-by-side snapshots, calendar preloading, and admin review UI
popertots
2026-05-26 11:59:07 +01:00
3ccc017716
feat: user payment modal and tip route for online payments
popertots and Sisyphus
2026-05-25 18:05:14 +01:00
97c9d1643f
docs: update all documentation for multi-method payments and saved cards
popertots and Sisyphus
2026-05-25 18:04:53 +01:00
f553ebad99
fix: booking duration calculation, tip page auth, and UI polish across frontend
popertots and Sisyphus
2026-05-25 18:04:43 +01:00
2a8f04e7b3
feat: saved cards management and account cards tab
popertots and Sisyphus
2026-05-25 18:04:21 +01:00
785a6dbf6f
feat: multi-method payment modal with tip presets and price overrides
popertots and Sisyphus
2026-05-25 18:04:12 +01:00
25ece1e0b4
feat: Square client dev mock for online payments and type additions
popertots and Sisyphus
2026-05-25 18:04:04 +01:00
4a37fd6396
fix: payment API amount precision (pence), partial validation, and create payment method endpoint
popertots and Sisyphus
2026-05-25 18:03:55 +01:00
8cd393f95d
docs: update all documentation for Square payment integration
popertots
2026-05-23 11:44:39 +01:00
2e1ab9d745
feat: Square payment integration, booking flow redesign, and timezone/weekday fixes
popertots
2026-05-23 11:29:34 +01:00
bcd5ed2bd9
square mock plan
popertots
2026-05-17 11:03:05 +01:00
d0e82e7d79
style: fix indentation in notification preferences section and backlog table formatting
popertots
2026-05-17 00:37:21 +01:00
c91be086c1
fix: close unclosed div wrapping notification preferences section
popertots
2026-05-17 00:34:34 +01:00
5c84cd71b8
fix: hide notification preferences section from admin users
popertots
2026-05-17 00:28:55 +01:00
b08df624a8
feat: user notification preferences UI and API endpoints
popertots
2026-05-17 00:24:13 +01:00
7fc58f58d9
feat: admin notification system with priority ordering, bell icon, and /notifications page
popertots
2026-05-16 23:41:18 +01:00
c3501ae89a
dependancies and docs
popertots
2026-05-16 19:06:33 +01:00
924bf487ed
docs: reorganise Obsidian docs from monolith into multi-page knowledge base
popertots
2026-05-16 19:05:47 +01:00
a4ea994c69
docs: update README, Obsidian docs, and gap backlog for booking edit modal
popertots
2026-05-16 17:32:32 +01:00
80621e0d77
feat: add booking edit modal for /today page with service management
popertots
2026-05-16 17:23:00 +01:00
44259a32ab
ui: swap Cancel and Payment button layout in Next Appointment card
popertots
2026-05-10 20:02:18 +01:00
aa4a569a43
docs: update README, Obsidian docs, and gap backlog after test optimization
popertots
2026-05-10 19:48:36 +01:00
e73c96b653
refactor: optimize test DB setup — TestMain per package, truncate-only between tests
popertots
2026-05-10 17:27:51 +01:00
83c62ffb97
feat: edit request time blockers, today closing time, UI polish, and test fixes
popertots
2026-05-10 16:53:17 +01:00
f3fb44f401
fix: port slot grouping fixes across all booking journeys
popertots and Sisyphus
2026-05-10 14:26:28 +01:00
e1c815ed09
fix(loyalty): correct stamp accumulation, one-per-day guard, and test coverage
popertots
2026-05-10 13:17:08 +01:00
e7d3a83867
fix: refine unavailable slot grouping validation logic
popertots
2026-05-10 12:08:13 +01:00
f1a9d129e6
fix: unique keys for time slot each block to prevent duplicate key errors
popertots
2026-05-10 11:57:05 +01:00
1c237cc97b
fix: merge lunch-blocked slots into single unavailable group
popertots
2026-05-10 11:53:22 +01:00