trails/openspec/specs
Ullrich Schäfer 8d7c48d8c1 Include the demo persona on /explore so users can follow it
The directory was filtering out the demo persona on the rationale
that "the demo bot is not a real user and should not appear in real
discovery." That's exactly backwards — the whole point of having a
demo persona is to give new users a follow target so the platform
doesn't feel empty when they arrive. Hiding the bot from the
discovery surface defeats its purpose.

Concretely on flagship: only one local user (ullrich) was visible
on /explore today, even though Bruno (the demo persona) is
public-by-default and posting public activities. After this change
both appear; Bruno carries a small "🐕 Demo account" badge next to
his display name so viewers know what they're following.

- apps/journal/app/lib/explore.server.ts — drop the
  ne(users.username, persona.username) clause from exclusionFilters.
  The demo persona is now treated like any other public user. Banned/
  suspended scaffolding stays for forward-compat.
- apps/journal/app/routes/explore.tsx — loader computes isDemoUser
  per row (cheap, just username comparison against
  loadPersona().username). DirectoryRow renders the demo badge inline
  with the display name, matching the existing pattern on
  /users/:username.
- openspec/specs/explore/spec.md — updated the "Excluded users"
  requirement to remove the demo persona, replaced the "demo
  excluded" scenario with "demo appears with badge", and updated
  the "Active recently" requirement + scenarios accordingly.
- apps/journal/app/lib/explore.integration.test.ts — flipped the
  demo-persona test from "is excluded" to "is included".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 11:43:24 +02:00
..
account-management Spec catchup: drift fixes, account-settings split, notifications archive 2026-04-26 02:02:43 +02:00
activity-feed Add Followed/Public toggle to /feed for signed-in users 2026-04-26 09:03:38 +02:00
authentication-methods Spec catchup: drift fixes, account-settings split, notifications archive 2026-04-26 02:02:43 +02:00
brouter-integration Archive relocate-brouter-to-dedicated-host 2026-04-24 18:35:37 +02:00
connected-services Spec catchup: drift fixes, account-settings split, notifications archive 2026-04-26 02:02:43 +02:00
crash-recovery Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
elevation-map-interaction Fix all openspec validation errors (45/45 pass) 2026-04-12 22:41:51 +02:00
explore Include the demo persona on /explore so users can follow it 2026-04-26 11:43:24 +02:00
gpx-import Update specs: session-notes, route-coloring, gpx-import 2026-04-11 03:24:54 +02:00
infrastructure Archive relocate-brouter-to-dedicated-host 2026-04-24 18:35:37 +02:00
journal-auth Spec catchup: drift fixes, account-settings split, notifications archive 2026-04-26 02:02:43 +02:00
journal-landing Archive add-explore-page change and promote specs 2026-04-26 09:40:42 +02:00
legal-disclaimers Realign legal-disclaimers spec with post-review implementation 2026-04-19 07:33:27 +02:00
local-dev-environment Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
map-core Fix all openspec validation errors (45/45 pass) 2026-04-12 22:41:51 +02:00
map-display Fix all openspec validation errors (45/45 pass) 2026-04-12 22:41:51 +02:00
multi-day-routes Fix all openspec validation errors (45/45 pass) 2026-04-12 22:41:51 +02:00
no-go-areas Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
notifications Merge /follows/requests into /notifications as a tabbed inbox 2026-04-26 08:24:59 +02:00
observability Archive relocate-brouter-to-dedicated-host 2026-04-24 18:35:37 +02:00
osm-poi-overlays Fix all openspec validation errors (45/45 pass) 2026-04-12 22:41:51 +02:00
osm-tile-overlays Fix all openspec validation errors (45/45 pass) 2026-04-12 22:41:51 +02:00
planner-journal-handoff Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
planner-session Fix all openspec validation errors (45/45 pass) 2026-04-12 22:41:51 +02:00
profile-settings Spec catchup: drift fixes, account-settings split, notifications archive 2026-04-26 02:02:43 +02:00
public-profiles Spec catchup: drift fixes, account-settings split, notifications archive 2026-04-26 02:02:43 +02:00
rate-limiting Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
road-type-coloring Add road type color mode to route visualization 2026-04-11 11:13:43 +02:00
route-coloring Update route-coloring spec with all 10 modes, create follow-up changes 2026-04-11 11:20:17 +02:00
route-drag-reshape Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
route-management Archive public-content-visibility 2026-04-24 21:57:21 +02:00
route-preview Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
route-splitting Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
secret-management Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
security-hardening Archive relocate-brouter-to-dedicated-host 2026-04-24 18:35:37 +02:00
session-notes Sync notes through GPX, Journal, and Planner roundtrip 2026-04-11 03:35:40 +02:00
shared-packages Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
social-follows Add Followed/Public toggle to /feed for signed-in users 2026-04-26 09:03:38 +02:00
sse-broker Spec catchup: drift fixes, account-settings split, notifications archive 2026-04-26 02:02:43 +02:00
transactional-emails Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
wahoo-import Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00