diff --git a/apps/api/internal/auth/session_version.go b/apps/api/internal/auth/session_version.go
index abd986f..401628c 100644
--- a/apps/api/internal/auth/session_version.go
+++ b/apps/api/internal/auth/session_version.go
@@ -19,7 +19,7 @@ type UserSessionState struct {
func (s *Service) UserSessionState(ctx context.Context, userID uuid.UUID) (UserSessionState, error) {
var st UserSessionState
err := s.Pool.QueryRow(ctx, `
- SELECT is_active, session_version
+ SELECT COALESCE(is_active, false), COALESCE(session_version, 0)
FROM users
WHERE id = $1`, userID).Scan(&st.Active, &st.Version)
if isUndefinedColumn(err) {
diff --git a/apps/api/internal/httpapi/auth_handlers.go b/apps/api/internal/httpapi/auth_handlers.go
index 33ab82c..8832bf8 100644
--- a/apps/api/internal/httpapi/auth_handlers.go
+++ b/apps/api/internal/httpapi/auth_handlers.go
@@ -308,11 +308,9 @@ func (s *Server) handleMe(w http.ResponseWriter, r *http.Request) {
if accessErr == nil && access.FullAdmin && access.Role == auth.StaffRoleAdmin {
staffTenantSwitch = true
all, listErr := s.Auth.ListCompanies(r.Context(), 500)
- if listErr != nil {
- Error(w, http.StatusInternalServerError, "failed to load companies")
- return
+ if listErr == nil {
+ companies = all
}
- companies = all
}
cidStr := s.Sessions.GetString(r.Context(), auth.SessionCompanyIDKey)
homeStr := strings.TrimSpace(s.Sessions.GetString(r.Context(), auth.SessionStaffHomeCompanyKey))
diff --git a/apps/web/src/lib/components/site/CtaBanner.svelte b/apps/web/src/lib/components/site/CtaBanner.svelte
index 6e19db1..84a1837 100644
--- a/apps/web/src/lib/components/site/CtaBanner.svelte
+++ b/apps/web/src/lib/components/site/CtaBanner.svelte
@@ -60,8 +60,6 @@
{i18n.t("home.cta.apply")} →
diff --git a/apps/web/src/lib/components/site/HowItWorksSection.svelte b/apps/web/src/lib/components/site/HowItWorksSection.svelte
index 950aab0..f521fa2 100644
--- a/apps/web/src/lib/components/site/HowItWorksSection.svelte
+++ b/apps/web/src/lib/components/site/HowItWorksSection.svelte
@@ -1,5 +1,4 @@
@@ -46,9 +45,7 @@
{i18n.t("home.hero.learnMore")}
{i18n.t("home.hero.apply")} →
diff --git a/apps/web/src/lib/components/site/data.ts b/apps/web/src/lib/components/site/data.ts
index e895882..cb03c2d 100644
--- a/apps/web/src/lib/components/site/data.ts
+++ b/apps/web/src/lib/components/site/data.ts
@@ -1,5 +1,3 @@
-import { DEMO_BOOKING_URL } from "$lib/site";
-
export type ProcessStep = {
number: number;
title: string;
@@ -206,7 +204,7 @@ export const CTA_DATA = {
],
ctaButton: {
text: "Apply For Access",
- href: DEMO_BOOKING_URL
+ href: "/register"
}
};
diff --git a/apps/web/src/lib/site.ts b/apps/web/src/lib/site.ts
index 4e0db4a..8bec95b 100644
--- a/apps/web/src/lib/site.ts
+++ b/apps/web/src/lib/site.ts
@@ -1,7 +1,5 @@
/** Shared public/marketing site constants (aligned with legacy Descrybe). */
-export const DEMO_BOOKING_URL = "https://calendly.com/tim-berce/descrybe-demo";
-
/** Auth routes — logged-out chrome with ThemeToggle (no dashboard shell). */
export const AUTH_PATHS = new Set([
"/login",
diff --git a/apps/web/src/routes/+layout.svelte b/apps/web/src/routes/+layout.svelte
index 6d7f254..7a78054 100644
--- a/apps/web/src/routes/+layout.svelte
+++ b/apps/web/src/routes/+layout.svelte
@@ -20,13 +20,12 @@
import AnalyticsHost from "$lib/components/AnalyticsHost.svelte";
import CookieConsentBanner from "$lib/components/CookieConsentBanner.svelte";
import { cookieConsent } from "$lib/cookie-consent.svelte";
- import { buttonClasses } from "$lib/components/ui";
import { browser } from "$app/environment";
import { goto } from "$app/navigation";
import { page } from "$app/state";
import { api, isUnauthorized } from "$lib/api";
import { safeInternalNext } from "$lib/safe-next";
- import { AUTH_PATHS, DEMO_BOOKING_URL, MARKETING_PATHS } from "$lib/site";
+ import { AUTH_PATHS, MARKETING_PATHS } from "$lib/site";
import { theme } from "$lib/theme.svelte";
import { ADMIN_SIDEBAR_WIDTH_CLASS, adminPageTitleKey } from "$lib/admin-nav";
import ThemeToggle from "$lib/components/ThemeToggle.svelte";
@@ -270,19 +269,6 @@
diff --git a/apps/web/src/routes/contact-sales/+page.svelte b/apps/web/src/routes/contact-sales/+page.svelte
index 18f3c8d..64b37db 100644
--- a/apps/web/src/routes/contact-sales/+page.svelte
+++ b/apps/web/src/routes/contact-sales/+page.svelte
@@ -2,7 +2,6 @@
import { i18n } from "$lib/i18n";
import { page } from "$app/state";
import { failureMessage } from "$lib/api";
- import { DEMO_BOOKING_URL } from "$lib/site";
import { submitSalesContact } from "$lib/sales-contact";
import { notifySuccess, notifyApiError } from "$lib/notify";
import SiteHeader from "$lib/components/site/SiteHeader.svelte";
@@ -87,14 +86,6 @@
{i18n.t("sales.contact.thanksBody")}
-
- {i18n.t("sales.contact.bookDemo")}
-
{submitting ? i18n.t("sales.contact.submitting") : i18n.t("sales.contact.submit")}
-
- {i18n.t("sales.contact.orBookDemo")}
-
diff --git a/apps/web/src/routes/login/+page.svelte b/apps/web/src/routes/login/+page.svelte
index d088c7e..521f955 100644
--- a/apps/web/src/routes/login/+page.svelte
+++ b/apps/web/src/routes/login/+page.svelte
@@ -6,6 +6,7 @@
import { apiFormError, fieldDescribedBy, fieldInvalid, parseBodyErrorCodes } from "$lib/api-form-error";
import { i18n } from "$lib/i18n";
import { safeInternalNext } from "$lib/safe-next";
+ import type { MeResponse } from "$lib/types";
import {
Alert,
AlertDescription,
@@ -49,6 +50,7 @@
method: "POST",
body: { email, password }
});
+ await api("/api/auth/me");
trackEvent("login", { method: "email" });
await goto(safeInternalNext(page.url.searchParams.get("next"), "/dashboard"));
} catch (err) {