rspace-online/server
Jeff Emmett 68648608a9 test(rsocials): Playwright smoke suite + planner reliability fixes
Adds e2e/tests/rsocials-campaign-flow.spec.ts — 13 tests covering the
unified campaign flow UX: dashboard → planner navigation, brief canvas
node (+ preview banner), markdown import modal, wizard handoff, and
API shape. 36 passed / 3 AI-skipped across chromium/firefox/mobile.

Bug fixes uncovered by the suite:
- markDownstreamStale only redraws when a node actually flips stale,
  so typing in an input node no longer destroys the open inline-edit
  overlay.
- executeSave wraps the local-first write in try/catch and nulls the
  client on failure, so a half-initialised client (WS down, IDB
  unavailable) falls through to localStorage instead of throwing
  "Document not open".
- init-failure path also nulls the client so the first save after a
  failed subscribe doesn't hit a doc that was never opened.

Test infra:
- server/security.ts + server/index.ts honour DISABLE_RATE_LIMIT=1
  (and NODE_ENV=test) to bypass HTTP rate limiter and anon WS-per-IP
  cap so the suite can run under 8 parallel workers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-16 16:59:59 -04:00
..
local-first fix(persistence): flush docs on shutdown, fix eviction race, mobile flush 2026-04-16 08:45:01 -04:00
magic-link feat: magic link responses for polls and RSVPs 2026-04-09 13:41:17 -04:00
mcp-tools feat(rcred): add rCred module — contribution recognition via CredRank 2026-04-15 15:26:36 -04:00
oauth feat(rcal): add Google Calendar sync integration with connectors menu 2026-04-10 19:45:52 -04:00
auth.ts refactor(auth): replace @encryptid/sdk imports with local auth module 2026-03-22 16:41:59 -07:00
bonding-curve.ts feat(rwallet): HyperSwitch full-loop fiat↔CRDT payment integration 2026-03-23 17:34:48 -07:00
bug-report-routes.ts feat: global bug report button — floating widget on every page 2026-04-09 14:03:27 -04:00
cad-orchestrator.ts fix(cad): CSS containment + Scribus image gen for all CAD shapes 2026-03-25 17:53:42 -07:00
clock-service.ts feat: system clock heartbeat + ephemeral clock delivery (TASK-47) 2026-03-11 16:20:04 -07:00
community-store.ts fix(spaces): pin visibility and ownerDID as server-authoritative 2026-03-25 18:03:43 -07:00
dashboard-routes.ts feat: customizable dashboard with persistent home icon and widget system 2026-04-10 23:10:27 -04:00
encryptid-sdk.d.ts feat(identity): local persona switcher for client-side multi-account 2026-03-23 12:10:55 -07:00
google-calendar.ts feat(rcal): add Google Calendar sync integration with connectors menu 2026-04-10 19:45:52 -04:00
index.ts test(rsocials): Playwright smoke suite + planner reliability fixes 2026-04-16 16:59:59 -04:00
ipfs-routes.ts feat(ipfs): add IPFS integration for backups and generated files 2026-04-02 14:24:39 -07:00
ipfs.ts fix(ipfs): correct Kubo container hostname (collab-server-ipfs-1) 2026-04-02 15:06:05 -07:00
landing-proxy.ts fix(infra): consolidate external service URLs to rspace.online (TASK-51.1) 2026-03-11 19:12:51 -07:00
landing.ts feat: brandedAppName helper, rData cloud refactor, branding color tweaks 2026-04-15 13:08:36 -04:00
mcp-server.ts feat(rcred): add rCred module — contribution recognition via CredRank 2026-04-15 15:26:36 -04:00
mi-access.ts feat(security): harden MI endpoints — CORS, rate limiting, prompt sanitization 2026-04-13 13:26:53 -04:00
mi-agent.ts feat(security): harden MI endpoints — CORS, rate limiting, prompt sanitization 2026-04-13 13:26:53 -04:00
mi-data-queries.ts feat(security): harden MI endpoints — CORS, rate limiting, prompt sanitization 2026-04-13 13:26:53 -04:00
mi-media.ts feat: ASCII art canvas tool, video gen fixes, scribus/notebook sidecars 2026-04-03 14:25:48 -07:00
mi-provider.ts feat(mi): agentic upgrade — multi-turn loop, LiteLLM, media gen, live data 2026-03-24 19:26:56 -07:00
mi-routes.ts tweak(mi-voice): brief but well-formed, not telegraphic 2026-04-16 15:48:48 -04:00
mi-sanitize.ts feat(security): harden MI endpoints — CORS, rate limiting, prompt sanitization 2026-04-13 13:26:53 -04:00
mi-trigrams.ts feat(mi): per-space knowledge index with ranked context injection 2026-04-12 22:19:07 -04:00
notification-routes.ts fix(notifications): use full URL pathname for proxy path 2026-03-23 13:36:51 -07:00
notification-service.ts feat(rchats): add global chat widget + unread count endpoint 2026-04-15 11:15:33 -04:00
output-list.ts fix(routing): eliminate /{space} from paths on subdomain routing 2026-03-24 18:45:16 -07:00
security.ts test(rsocials): Playwright smoke suite + planner reliability fixes 2026-04-16 16:59:59 -04:00
seed-campaign.ts fix(canvas): prevent shape re-seeding after user clears canvas 2026-03-22 14:40:28 -07:00
seed-demo.ts refactor(demo): replace Alpine Explorer scenario with welcome + feature cards 2026-04-15 14:01:29 -04:00
seed-template.ts fix(canvas): prevent shape re-seeding after user clears canvas 2026-03-22 14:40:28 -07:00
shell.ts chore(sw): bump cache version to v9 to purge stale HTML fragments 2026-04-16 16:11:29 -04:00
sidecar-manager.ts fix(sidecar): bump Docker API version from 1.43 to 1.44 2026-04-09 12:43:24 -04:00
space-knowledge.ts feat(security): harden MI endpoints — CORS, rate limiting, prompt sanitization 2026-04-13 13:26:53 -04:00
space-memory.ts feat(mi): per-space knowledge index with ranked context injection 2026-04-12 22:19:07 -04:00
spaces.ts fix(spaces): show username instead of truncated DID in members list 2026-04-16 16:29:32 -04:00
sync-instance.ts fix(persistence): flush docs on shutdown, fix eviction race, mobile flush 2026-04-16 08:45:01 -04:00
token-schemas.ts feat(rwallet): HyperSwitch full-loop fiat↔CRDT payment integration 2026-03-23 17:34:48 -07:00
token-service.ts feat(rwallet): HyperSwitch full-loop fiat↔CRDT payment integration 2026-03-23 17:34:48 -07:00
welcome-email.ts feat: brandedAppName helper, rData cloud refactor, branding color tweaks 2026-04-15 13:08:36 -04:00