Commit graph

426 commits

Author SHA1 Message Date
49c54764c6 rename ecologyTopics → boardTopics in member detail page 2026-04-14 12:18:16 +01:00
cdef868256 Rename communityEcology → board across frontend, add Board nav, update redirects
- Add Board to exploreItems in AppNavigation
- Update ecology.vue + connections.vue redirects to /board
- Rename all communityEcology refs to board in member profiles, dashboard, admin, onboarding
- Update API path /api/members/me/community-ecology → /api/members/me/board
2026-04-14 12:15:51 +01:00
3e5cedb1a6 refactor(board): rename ecology-prefixed vars to board-prefixed, remove duplicate count div
- Renamed ecologyTagOptions, ecologyFilterTags, ecologyTagLabel → board* throughout refs, computed, helpers, and template
- Removed .filter-bar div (duplicate count display)
- Updated pageSubtitle to use filteredSuggestions.length so subtitle reflects active tag filtering
2026-04-14 12:11:47 +01:00
f43fff0ba0 Extract ecology view into standalone /board page, simplify members to directory-only
- Create app/pages/board.vue with ecology suggestions, tag filtering, clipboard
- Create app/composables/useBoard.js (calls /api/board/suggestions)
- Delete app/composables/useEcology.js
- Strip all ecology code from members/index.vue (view toggle, ecology state,
  ecology template, ecology styles, conditional computeds)
2026-04-14 12:08:58 +01:00
091ec58073 rename communityEcology → board across backend
Model, schemas, API routes, activity log, and all server handlers
updated. Old ecology/ and community-ecology routes removed, new
board/ routes added. Tests updated and new board-suggestions tests
written (10 cases).
2026-04-14 12:00:15 +01:00
59d6e97787 Member/Ecology revamp.
Some checks failed
Test / vitest (push) Failing after 7m23s
Test / playwright (push) Has been skipped
Test / visual (push) Has been skipped
Test / Notify on failure (push) Successful in 2s
2026-04-14 09:25:09 +01:00
fc7ec52574 restrict members page to authenticated users only, remove public access 2026-04-13 22:26:14 +01:00
1d469c3617 fix: use CircleBadge consistently, load directory on 401 revert, skip redundant API call in ecology mode 2026-04-13 21:13:50 +01:00
d4c1664e5c fix: mobile filter layout + ecology count reflects filtered set 2026-04-13 21:11:09 +01:00
a3bd7d4e50 feat: rewrite /members as unified directory + ecology page
Merge the directory and ecology views into a single page with a
segmented toggle. Directory mode is public; ecology mode requires auth.
URL-driven view state (?view=ecology), collapsible tags drawer,
filter-state reset on mode switch, onboarding tracking, and responsive
breakpoints at 1024/768/375px.
2026-04-13 21:08:27 +01:00
a448ea809d refactor: merge ecology into /members, redirect old routes
- ecology.vue replaced with redirect to /members?view=ecology
- connections.vue updated to skip the /ecology hop, redirects directly
- Remove Ecology nav entry; Members covers it
2026-04-13 21:03:21 +01:00
4fff0bf4cd content: fix hero copy, drop "business" from cooperative models 2026-04-13 12:47:11 +01:00
7b9448ffd5 style(coming-soon): align with design system tokens
Some checks failed
Test / vitest (push) Successful in 11m46s
Test / playwright (push) Failing after 9m34s
Test / visual (push) Failing after 9m19s
Test / Notify on failure (push) Successful in 2s
Replace Tailwind utility color classes with CSS custom properties,
remove rounded corners, use dashed borders and parch button style.
2026-04-12 11:16:53 +01:00
c6b970a621 Design token updates.
Some checks failed
Test / vitest (push) Successful in 10m47s
Test / playwright (push) Failing after 9m11s
Test / visual (push) Failing after 9m11s
Test / Notify on failure (push) Successful in 2s
2026-04-11 23:24:38 +01:00
de3bcc479a fix(auth): rewire OIDC logout/error flow through Nuxt pages
Some checks failed
Test / playwright (push) Blocked by required conditions
Test / Notify on failure (push) Blocked by required conditions
Test / visual (push) Blocked by required conditions
Test / vitest (push) Has been cancelled
Migrate three render callbacks in oidc-provider (logoutSource,
postLogoutSuccessSource, renderError) from the baked guildPageShell
helper to Nuxt pages under app/pages/auth/, so they go through the
font module and design system instead of a shadow copy.

- Delete guildPageShell (~103 lines of shadow design system).
- Add /auth/logout-success, /auth/oidc-error, /auth/logout-confirm
  pages built on dashed-box + btn + main.css tokens.
- renderError now allow-lists error + error_description into query
  params and lets Vue default interpolation escape them, closing an
  XSS where OIDC error fields were concatenated into raw HTML.
- logoutSource extracts the xsrf from oidc-provider's stable form
  output, sets it as an httpOnly 2-minute cookie, and redirects to
  /auth/logout-confirm. The confirm page reads the cookie during SSR,
  persists the value to useState, and clears the cookie so it's
  strictly one-time use. Defensive fallback keeps the raw auto-submit
  form if oidc-provider ever changes its form format.
- Fix form actions emitting http:// in production at the root cause:
  oidc-provider extends Koa but calls super() with no args, so
  app.proxy defaults to false and ctx.protocol ignores
  X-Forwarded-Proto. Set _provider.proxy = true after construction;
  remove the bogus proxy:true config key (silently ignored) and the
  form.replace('http://', 'https://') symptom patch. Make the
  x-forwarded-proto override in the catchall conditional on
  production + missing header (was unconditional + dead code).
- Add site-wide .btn:focus-visible rule in main.css for WCAG 2.4.7.

Verified in browser: Brygada 1918 loads on all three pages, contrast
ratios pass AA in dark + light, XSS payload escapes to text nodes
only, Set-Cookie: Max-Age=0 enforces one-time xsrf use, no
horizontal overflow at 500px, no console errors.
2026-04-11 23:21:46 +01:00
98d3610a08 fix(auth): rewrite wiki-login page against real design system
Some checks failed
Test / vitest (push) Successful in 11m48s
Test / playwright (push) Failing after 9m42s
Test / visual (push) Failing after 9m25s
Test / Notify on failure (push) Successful in 2s
The page referenced phantom tokens (--color-guild-*, --color-candlelight-*,
--color-ember-400) that don't exist, leaving the card, input, and button
transparent with no borders. Rewrote the template and styles using the
real design system utilities (.dashed-box, .field, .btn-primary,
.section-label, .section-divider) and tokens (--candle, --ember, --bg,
--border, --text-*), plus semantic landmarks and aria-live status roles.
2026-04-11 15:40:36 +01:00
e791a0d480 fix(onboarding): fix widget links, isComplete logic, and event slugs
Some checks failed
Test / vitest (push) Successful in 10m44s
Test / playwright (push) Failing after 9m15s
Test / visual (push) Failing after 9m7s
Test / Notify on failure (push) Successful in 2s
Use dynamic href for external links, check completedAt for graduation,
link events by slug instead of _id, and remove stale click handler.
2026-04-09 23:52:04 +01:00
50a358b294 feat(wiki): add batch tag remove mode to admin wiki page
Add add/remove toggle to batch tag picker. Clean up unused requireAdmin
import from wiki sync route.
2026-04-09 23:52:00 +01:00
a516f172fb refactor: extract escapeRegex and validateTagSlugs server utils
Deduplicate tag validation and regex escaping into shared auto-imported
utils. Add tag validation to wiki patch/batch-tag routes. Remove
duplicate tags field from event schema.
2026-04-09 23:51:56 +01:00
f585fabf21 Merge branch 'worktree-agent-a975576d' 2026-04-09 22:46:52 +01:00
2cab40aa65 Merge branch 'worktree-agent-a0328c91' 2026-04-09 22:46:52 +01:00
7c3a10232d feat(onboarding): add tracking calls to event, ecology, and wiki pages 2026-04-09 22:46:41 +01:00
3ce559a24c feat(onboarding): integrate widget into dashboard and sidebar indicator 2026-04-09 22:46:39 +01:00
8a673ae158 Merge branch 'worktree-agent-afb1f376' 2026-04-09 22:44:55 +01:00
3ff7cd4e0b feat(onboarding): add OnboardingWidget component 2026-04-09 22:44:41 +01:00
dbf1f44dce Merge branch 'worktree-agent-a244f119' 2026-04-09 22:43:01 +01:00
e27718f450 Merge branch 'worktree-agent-ad42524c' 2026-04-09 22:43:01 +01:00
795b856d56 feat(wiki): add admin wiki management page 2026-04-09 22:42:43 +01:00
5d3b04af48 feat(onboarding): add useOnboarding composable 2026-04-09 22:41:30 +01:00
22530ac1e3 Merge branch 'worktree-agent-a2b84f8b' 2026-04-09 22:38:36 +01:00
20c961113d Merge branch 'worktree-agent-ac00ecc9' 2026-04-09 22:38:36 +01:00
8b2f6d5240 Merge branch 'worktree-agent-abf17134' 2026-04-09 22:38:36 +01:00
337664790f feat(events): add tag selector to admin event form 2026-04-09 22:38:20 +01:00
e4f2efd6d0 feat(wiki): add admin wiki management API routes 2026-04-09 22:36:44 +01:00
d3a5c1a3a7 feat(wiki): add tag-based wiki recommendations API 2026-04-09 22:36:19 +01:00
b54b57cd90 Merge branch 'worktree-agent-aff832dd' 2026-04-09 22:34:09 +01:00
3a22a327fe Merge branch 'worktree-agent-a0ee41bb' 2026-04-09 22:34:09 +01:00
4a475ca5ba Merge branch 'worktree-agent-a54bb856'
# Conflicts:
#	server/models/wikiArticle.js
2026-04-09 22:34:09 +01:00
bda0fe6eb7 Merge branch 'worktree-agent-acfdfab5'
# Conflicts:
#	server/models/event.js
2026-04-09 22:33:54 +01:00
abca0fb7d6 Merge branch 'worktree-agent-a5a0c7d9' 2026-04-09 22:33:41 +01:00
b93c735442 Merge branch 'worktree-agent-a53b58a7' 2026-04-09 22:33:41 +01:00
905b5155e2 feat(wiki): add Outline utility and wiki sync API 2026-04-09 22:33:06 +01:00
327f504df9 feat(slack): add background job to detect Slack workspace joins 2026-04-09 22:32:48 +01:00
2166ee32ca feat(events): add tag validation to admin event create/edit routes 2026-04-09 22:32:32 +01:00
fcbad24f3e feat(events): add tag-based event recommendations API 2026-04-09 22:32:11 +01:00
56376d1995 feat(onboarding): add onboarding status and track API routes with tests 2026-04-09 22:31:57 +01:00
340b739bf2 feat(onboarding): show onboarding progress on admin member detail 2026-04-09 22:31:30 +01:00
3144cbe213 feat(onboarding): redirect /welcome to /member/dashboard 2026-04-09 22:28:57 +01:00
9fe8d99808 feat(onboarding): add Member onboarding subdocument, Event tags, and WikiArticle model 2026-04-09 22:28:51 +01:00
3797ff7925 refactor(peer-support): clean up stale references (Phase 5)
Some checks failed
Test / vitest (push) Successful in 10m33s
Test / playwright (push) Failing after 9m11s
Test / visual (push) Failing after 9m13s
Test / Notify on failure (push) Successful in 2s
Update CSS comment from "Community Connections" to "Community
Ecology" in member detail page. Docs, CLAUDE.md, and activity log
spec also updated (gitignored, local only).
2026-04-09 09:31:37 +01:00