The OAuth-return effect ran on mount before AppShell finished booting, so
completeOAuthLogin no-oped (sdk.auth undefined → null) and fell back to identify,
never retrying. Gate it on useAppShell().ready so it runs once auth is up, and
strip ?code= from the URL on success.
- SocialButtons: only Google (Microsoft/Apple hidden).
- Sign-up: remove all social (email/password only).
- Login: keep Google + email/password (single step) + email/SMS OTP; add a direct
'Sign in with a phone number' entry (SMS OTP), and rename the OTP link to
'Sign in with a one-time code'. All Supabase-supported; no mandatory 2FA.
Lift StepAddress/AddressBlock state up so finish() can send the complete
sign-up payload (name, phone, persona, allottee id/names, registered+mailing
address, consent) to be-crm crm.account.register after auth. Config-gated;
non-fatal if the domain persist fails (auth account already created).
- team-management: new useTeamData() data layer serves live be-crm data door
(crm.team.member.search/role.list/invitation.list + set-roles/perm/invite
commands) or the mock fallback, gated on isShellConfigured(). A member can
hold MANY roles: role chips + multi-select picker in Edit/Invite modals.
- login OTP: OtpVerify wired to real Supabase email + SMS OTP (passwordless)
via appshell sendEmailOtp/verifyEmailOtp + sendPhoneOtp/verifyPhoneOtp.
- bump @abe-kap/appshell-sdk ^0.2.0 (phone OTP).
- dashboard sidebar now uses the --sidebar token so it turns white in
light mode instead of staying black; active nav item stays readable
- registration: drop the Property / Job ID step (job ID + find-by-address),
flow is now Account -> Verify -> Address with steps renumbered
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- New "Your role" options matching the portal roles
- Customer/Owner = self; Employee shows an Employee ID field;
Contractor/Sub-Con/Vendor show their ID + property owner name
- Validation adapts per role
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Flag emojis don't render on Windows, so derive an ISO code from the
emoji's regional indicators and load a flagcdn image in front of the
country-code selector (Account + Verify steps).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Support Center overview rebuilt as a bento grid: large live-chat hero
tile, support team tile, mini channel tiles and a recent-tickets strip.
- Restore full workspace sidebar (Workspace/Team/Profile groups) with a
premium golden active state; unbuilt modules show a Coming Soon view.
- Use Western names across the UI (James Carter; Emma Wilson, Liam Foster,
Sophie Turner, Noah Mitchell) incl. tickets, threads, portal demo user.
- Remove the Allottee card from Profile; add a clean Account & identity
card and live-editable contacts.
- Relabel "Plot" -> "House number" everywhere; drop the allotment chip in
favour of the property category.
- Premium visual pass: brand gradients, depth, glow accents, pill tabs.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>