mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-11 08:47:33 +00:00
Makes geohash location channels first-class in the Messages tab by routing them through the same LocalCache -> feed machinery every other room uses: Phase A (foundation): - commons GeohashChatChannel : Channel, keyed by the bare geohash, with a placeholder-note so a just-joined cell shows before its first message. - LocalCache: geohashChannels map, get/getOrCreateGeohashChannel, a consume(GeohashChatEvent) that routes kind-20000 messages into the cell's channel (presence 20001 stays with the live screen), plus getAnyChannel + the prune loops. - GeohashRelays: a process-wide geohash->relay directory (live CSV once, fallback otherwise). FollowingGeohashChatSubAssembler + filterFollowingGeohashChats subscribe the joined cells (account.geohashList) to each cell's nearest relays, registered in ChatroomListFilterAssembler. Phase B (Messages): - ChatroomListKnownFeedFilter: a geohashChannels family (feed + incremental updateListWith/applyFilter + filterRelevantGeohashChats + geohashRowKey so a placeholder and its later real message resolve to one row). - ChatroomHeaderCompose: a GeohashRoomCompose row (location pin, anonymous — name from the message's n tag) -> Route.GeohashChat. - AccountFeedContentStates: rebuild the list when the joined set changes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0172JoMccseEKenyWan6txWV