Project: Lenci R1 V0.1.8
2026-02-25 22:52:13
user: ash6-test-lenci@25hraf.com 1) “Create Your First Model” button does nothing Issue Description In Inputs → Model → Library (empty state: “Your Agency Roster is Empty”), clicking Create Your First Model produces no navigation, modal, or action. This is a dead-end CTA on the primary empty-state path, so a new user cannot recover without guessing where to go next. Expected Behavior When the roster is empty, Create Your First Model should reliably take the user to the model-creation flow, for example: Navigate to Model Profiles / Models Studio (or whatever the canonical “create model” page is), or Open an in-place modal/wizard to upload a model photo and save it as a model. If the feature is gated (credits/permissions), the button should show a clear message explaining why + next step. Implementation Recommendations Wire the CTA to a single canonical action: navigate('/models/new') or navigate('/models-studio?source=apparel_empty') Or openCreateModelModal({ source: 'apparel_library_empty' }) Add guardrails: If route doesn’t exist / API unavailable, show toast: “Couldn’t open model creator. Please try again.” (not silent fail) Add instrumentation: Log click + result (navigated / modal opened / error) to catch regressions. QA checklist: Works in Simple/Advanced mode, desktop/mobile, and for brand-new accounts with no models. 2) “Brand Logo Overlay” label is duplicated Issue Description In Apparel Items → Brand Logo Overlay, the text “Brand Logo Overlay” appears twice (stacked). This looks like a UI rendering bug (duplicate header/label) and reduces trust/visual polish. Expected Behavior The label should appear once, as either: A section header (“Brand Logo Overlay”), and below it the controls, or A form label tied to the upload/control group. Implementation Recommendations Inspect component tree: likely two sources rendering the same string: Section header component + form field label Or translated key rendered twice (e.g., <SectionTitle /> and <FieldLabel />) Fix by: Removing one label, or Converting one into a smaller helper text (“Optional — apply logo watermark to outputs”) Add UI snapshot test (or simple regression test) to ensure only one instance exists. 3) New account already has a logo preloaded Issue Description On a new account, the Brand Logo Overlay area already contains a logo asset and settings (position/size/opacity). That implies state leakage or unintended default seeding, which is confusing and may be a privacy/compliance risk if assets can come from another tenant/user. Expected Behavior For a brand-new account: Brand logo overlay should be empty by default (no asset selected). If you intentionally provide a starter/demo logo, it must be clearly labeled as “Sample” and removable, and must not be a real user asset. Assets shown must always be scoped to the current tenant/user only. Implementation Recommendations Verify data scoping: Ensure logo queries use tenant_id / org_id and (if needed) user_id filters. Confirm CDN/storage paths are tenant-scoped (no shared “default” bucket without tenant prefix). Check client-side caching: If you store “last used logo” in localStorage/sessionStorage, make sure keys are namespaced by tenant + user, and cleared on logout/switch account. Check server defaults/seeding: If your onboarding seeds a default brand, ensure it seeds only metadata or a true system sample, not a reused asset reference. Add a safety UI: Show a “Clear logo” / “Reset overlay” action. Add QA test: Create a new tenant → confirm no brand assets exist and overlay is empty.
api-CTSVC-i9.js:1 [PerformanceService] Initialized
api-CTSVC-i9.js:1 [PerformanceService] Auto-initialized, session: session_1772058628288_9i4nsl5pt
creditHistoryService-Qs2rnbBE.js:1 🚀 [AuthContext] Initializing authentication...
creditHistoryService-Qs2rnbBE.js:1 ✅ [AuthContext] Session found for user: bacem@siyada.tech
creditHistoryService-Qs2rnbBE.js:1 🔍 [AuthContext] Fetching profile for user: bacem@siyada.tech f4388659-fe87-4f62-b096-76a9d5686634
creditHistoryService-Qs2rnbBE.js:1 ✅ [AuthContext] User profile loaded from API: {id: 'f4388659-fe87-4f62-b096-76a9d5686634', email: 'bacem@siyada.tech', email_verified: true, display_name: 'Admin', avatar_url: null, …}
creditHistoryService-Qs2rnbBE.js:1 📊 [AuthContext] Final user profile: {id: 'f4388659-fe87-4f62-b096-76a9d5686634', email: 'bacem@siyada.tech', plan: 'enterprise', generationsUsed: 0, creditsBalance: 4071}
creditHistoryService-Qs2rnbBE.js:1 ✅ [AuthContext] User profile set in state
creditHistoryService-Qs2rnbBE.js:1 [WS] Connected
main-D8GZT5ux.js:9878 [AutoSave] Draft restored for apparel
api-CTSVC-i9.js:1 [PerformanceService] Skipping sync of 9 metrics (Supabase migration - not persisted)