From 79be46c33d7bbdc879d694afbf3c406a81b01047 Mon Sep 17 00:00:00 2001 From: Padreug Date: Thu, 21 May 2026 16:13:34 +0200 Subject: [PATCH] fix(activities): tighter populate race + log silent feed-fetch fail MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CreateEventDialog.populateFromEvent released the watcher guard via setTimeout(0). Switch to nextTick so the release waits for Vue's microtask flush — setTimeout(0) only schedules a macrotask, which can run before vee-validate's batched setValues lands, briefly unguarding the auto-mirror during populate. useEvents.fetchAll silently swallowed fetchMyEvents failures so a flaky probe degraded to "public events only" with no signal in the console. Add a console.warn so the degradation is debuggable without toast-spamming users on transient errors. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/modules/activities/composables/useEvents.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/activities/composables/useEvents.ts b/src/modules/activities/composables/useEvents.ts index cdc5902..902c053 100644 --- a/src/modules/activities/composables/useEvents.ts +++ b/src/modules/activities/composables/useEvents.ts @@ -29,9 +29,12 @@ export function useEvents() { const seen = new Set(publicEvents.map((e) => e.id)) const own = myEvents.filter((e) => !seen.has(e.id)) return [...publicEvents, ...own] - } catch { + } catch (err) { // Falling back to just the public feed is acceptable — the user // can still browse, they just won't see their own pending events. + // Log so a flaky probe is debuggable from the console without + // toast-spamming the user on every transient failure. + console.warn('[useEvents] fetchMyEvents failed, showing public feed only:', err) return publicEvents } }