From 35af6ca580a36af2d7678bcfb7d5b8798555b5d2 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 21 Jun 2026 15:39:55 +0000 Subject: [PATCH] fix(fitness): store kind-33401 exercise templates in LocalCache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit justConsumeInnerInner's when(event) has no generic addressable fallback — its else branch logs "Event Not Supported" and drops the event. A kind-33401 ExerciseTemplateEvent arriving from a relay was therefore never stored as an AddressableNote, so the fetched template never attached to its placeholder note and the workout card's exercise title never resolved. Dispatch it to consumeBaseReplaceable like the other addressable definitions. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01QJwXz6CWez8r7trgHXT545 --- .../main/java/com/vitorpamplona/amethyst/model/LocalCache.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt index d82d2c221a..051f8dd9c9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt @@ -59,6 +59,7 @@ import com.vitorpamplona.quartz.experimental.edits.TextNoteModificationEvent import com.vitorpamplona.quartz.experimental.ephemChat.chat.EphemeralChatEvent import com.vitorpamplona.quartz.experimental.ephemChat.chat.RoomId import com.vitorpamplona.quartz.experimental.ephemChat.list.EphemeralChatListEvent +import com.vitorpamplona.quartz.experimental.fitness.workout.ExerciseTemplateEvent import com.vitorpamplona.quartz.experimental.fitness.workout.WorkoutRecordEvent import com.vitorpamplona.quartz.experimental.interactiveStories.InteractiveStoryPrologueEvent import com.vitorpamplona.quartz.experimental.interactiveStories.InteractiveStoryReadingStateEvent @@ -4004,6 +4005,10 @@ object LocalCache : ILocalCache, ICacheProvider { consumeRegularEvent(event, relay, wasVerified) } + is ExerciseTemplateEvent -> { + consumeBaseReplaceable(event, relay, wasVerified) + } + is PaymentTargetsEvent -> { consume(event, relay, wasVerified) }