Changelog

What's new

A running log of what's shipped. We move fast and ship transparently — this is the receipt.

2026-05-29

Bulk job scheduling + duplicate

Added
  • Schedule jobs on multiple dates in one goNew "Multiple dates" toggle on the job creation page. Pick a date range plus days of the week and the system creates one independent job per occurrence. Each can be edited or cancelled on its own.
  • Duplicate a job to a future dateA "Duplicate" dropdown on the job detail page — tomorrow, next week, two weeks, or four weeks out. The new job inherits the site, cleaner, time, and notes; the cleaner gets an invitation just like the create flow.
2026-05-29

Cleaner checklists flow end-to-end

Fixed
  • Cleaners now see job checklists on every jobContractors could set up checklist templates per site or org-wide, but they never flowed through to scheduled jobs — the cleaner's checklist section was always empty. Templates now automatically attach to every matching job.
2026-05-28

Marketing site rebuild

Added
  • Public FAQ pageNine commonly-asked questions on a dedicated /faq route, with a route to support if you don't find what you need.
  • Product showcase on the landing pageA laptop and phone now fly in on load and auto-cycle through four real product views — Dashboard, Schedule, Live map, Invoice. Tabs are clickable.
  • "Built for the Australian field service market" sectionCalls out AU GST, ABN validation, AU data residency, local support, and fortnightly payruns.
  • Animated feature spotlightsScheduler cells stagger-fill with three job-type colours; the map zooms in with pin drops and pulsing geofences; invoice line items appear with a "Sent ✓" badge.
Improved
  • Unified marketing headerConsistent nav and logo across /, /pricing, /faq, /changelog. The active section underlines as you scroll past it.
  • Smooth section navigationIn-page anchors scroll smoothly with sticky-header offset so headings land below the bar.
Fixed
  • TrialBanner showing for cleanersTrial countdowns and upgrade prompts are a contractor concern — cleaners no longer see them.
2026-05-26

UI/UX polish pass

Improved
  • Web contractor app is fully responsiveSidebar collapses to a hamburger drawer on mobile, with backdrop, body-scroll-lock, and auto-close on route change.
  • Set-password page rewrittenWarm "Welcome to Ontraq" screen with real-time strength meter and "Matches" confirmation chip.
  • Dashboard empty states$0.00 placeholders replaced with friendly messaging ("None yet", "All caught up").
  • Tab bar contrast on mobileInactive tabs bumped for WCAG AA — they no longer read as disabled.
Added
  • Mobile primitivesBranded ConfirmDialog (with spring entry + haptics), FormKeyboardView wrapper, SkeletonList shimmer loaders.
  • Invite-link recovery UIExpired or already-used invite links now land on a friendly "Link expired" screen with three recovery paths.
2026-05-23

Web ↔ mobile parity sweep

Added
  • Mobile cleaner "Upcoming jobs" tabNext 14 days, including projected occurrences of recurring jobs.
  • Mobile contractor job editingEdit existing jobs from the mobile app with the same fields as the create flow.
  • Web photos viewer on the job detail pageThumbnail grid with lightbox, prev/next, and GPS metadata for every shot the cleaner uploaded.
  • Web checklist template managementInline create/edit/delete of templates — name, frequency, site, items — with diff-by-description updates so historical references stay intact.
Fixed
  • Mobile cleaner "Today's jobs" missing recurring jobsThe query filtered by scheduled_start, which is null for recurring rows. Rewritten to match the web pattern.
  • Mobile contractor Team and Payslips showed zero cleanersAmbiguous Postgres embed (two FKs from cleaner_companies to profiles). Resolved with explicit join syntax.
2026-05-20

Cleaner invite hardening

Fixed
  • handle_new_user trigger was silently broken in productionFive orphan auth.users rows had no matching profiles. The trigger is now hardened and the orphans are backfilled (migration 016).
Added
  • "Resend invite" button on the team pageUses Supabase magic-link generation so it works for existing users too, where the inviteUserByEmail API fails.
2026-05-15

Australian GST + multi-org delegation

Added
  • Australian GST handling as a first-class conceptCents-only arithmetic, ABN auto-validation against the ABR, tax-inclusive or tax-exclusive toggle per invoice (migration 015).
  • Multi-org delegation modelSub-contractor partners can see their parent's jobs without double data entry. Visibility enforced via the visible_org_ids() SQL function.

Got a feature request? Email support@ontraq.info. We read every message.