docs
/
EventOxygen

Known issues

What the September 2026 test passes fixed in the app and on the server, what is still open, and the dead code to ignore.

Source: TEST_EVENTOXYGEN_2026-09-03.md at the app root — a live pass at phone size against a local appengine, signed in as the demo customer, on the event "Open Source AI Meetup - San Francisco", followed by a second pass over the community features the same day. Fixes are in the working trees of event_app and appengine; nothing was committed or pushed as part of those passes.

Fixed on 2026-09-03: events

AreaSymptomCause and fix
Schedule, People, ticket types, mediaSchedule said "No sessions on this day"; People could be emptyThe app navigates by the event slug but the server queried data.event with the raw route param, and sessions and participants are stored against the sk. resolveEventId() in events/events-client.service.ts now resolves either form for every event-scoped list. Media was unaffected because its storage path derives from event.data.name
Event homeVenue printed as a raw map {name: ExCeL London, …}Joined as "ExCeL London, Royal Victoria Dock, London, UK"
My Events, event home, event detail"Oct 8 – Oct 8, 2026" for a one-day eventSame-day range collapses to "Oct 8, 2026"
Drawer, My EventsThe same event listed twiceOne ticket referenced the event by slug, another by sk; EventProvider merges by the fetched sk
Participant profileSessions showed a raw session idIds resolved to titles through the event's sessions, including when the page opens with a full participant record (it used to return early)
FeedA failed request rendered as "No posts yet"Explicit "Couldn't load the feed" with Retry

Fixed on 2026-09-03: community

AreaSymptomCause and fix
Comments (server)"Database operation failed" after every comment, though the comment was savedrepository/update-partial wrapped Mongo operators such as $inc inside $set, and Mongo rejected the update. Twenty-nine call sites were affected. Operators are now hoisted to the top level of the update (repositories/repository.provider.mongodb.ts)
Likes (server)A post could never show as likedThe feed looked up the viewer's reactions by data.author; reactions store data.reactor (community/community-post.service.ts)
Reaction counters (server)Counts stuck at zero on some postsupdateReactionCount wrote a literal {$inc: n} object into reactionSummary.<type>, which then blocked every later increment. One $inc now updates both counters; the one corrupted demo post was repaired from its reaction records
Feed (app)Liked and saved state never appearedThe feed was fetched without the customer token; useUserToken: true (services/api_service.dart)
Un-like (app)Un-liking created a second reactionThe app sent type unlike; the server toggles on the same type, so it now always sends like
Post detail (app)Like never updated, Save did nothing, Share reposted silentlyLike and Save are driven by the server's answer; Share opens the same share sheet as the feed
Reposts (app)A share rendered as an empty cardEmbedded preview of the original (author, text, first image), tappable
Drawer (app)The menu button on Inbox, Explore and Me opened nothingThose screens have their own Scaffold; they now open the shell's drawer through shellScaffoldKey

Verified working after the fixes: create post, like with count, comment thread, share with count, Connect → Pending, Connections screen, chat thread with images and a sent message, Notifications tab, bookmarks through the API.

Still open

  • "My ticket" inside an event opens all tickets, not that event's.
  • Large cover images render blank until loaded. The demo event's cover is a large signed PNG; there is no placeholder.
  • My Events is slow in debug on web — 30 to 45 s, one event fetch per ticket. Worth measuring on a device.
  • Debug-only layout assertions ("A Stack requires bounded constraints") on route transitions in the web debug build; release builds strip them. Origin not pinned down.
  • Participants are fetched three times on event open (speaker, attendee, sponsor). By design, could be one call.
  • No notifications are generated in demo for likes, comments or connection requests (community_notification is empty), so the tab reads as empty there.
  • Inbox data quirk: a Stowbo custody thread appears against the user's own name because the same account sits on both sides.
  • Not exercised: accepting a request or replying from a second account, meeting booking end to end, media upload, follow from a profile.

Dead code and unimplemented features

ItemState
CustomerShell, CustomerHomeScreen, DiscoverScreen, AnnouncementsScreen, HaHoBottomNavigationUnreachable from the live navigation graph
ApiService.getScheduleDefined; no caller
Drawer Settings and HelpClose the drawer
Search → People tabPlaceholder that falls back to pages
Push notifications, deep linksNot implemented; no FCM/APNs code, no URL schemes
QR scannerNot implemented; the CustomerShell FAB is a TODO
Card payment on webThrowing stub
README.mdUntouched Flutter template

Security notes

  • Fast Login credentials are behind kDebugMode in login_screen.dart.
  • The feed, posts, comments, pages, people lookup and stories are public on the server; only writes and the viewer-specific fields need a token. Treat anything posted to a public page as public.