---
id: TASK-118.14
title: Add "Pull to rSpace" button to all 12 existing multiplayer modules
status: Done
assignee: []
created_date: '2026-03-16 00:07'
updated_date: '2026-03-16 00:21'
labels:
  - multiplayer
  - tier-1
milestone: Multiplayer Everything
dependencies:
  - TASK-118.1
parent_task_id: TASK-118
priority: medium
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
The 12 modules that already have local-first/Automerge sync (rbooks, rcal, rcart, rfiles, rflows, rinbox, rnotes, rsocials, rsplat, rtasks, rtrips, rvote) need the standardized "Pull rApplet to rSpace" integration.

## What to do:
- Ensure each module's component checks `enabledModules` from space meta
- Add graceful "not enabled" state when module is disabled for a space
- Each module's landing/nav shows correctly in the folk-applet-catalog

This task depends on TASK-118.1 (the catalog component) being built first.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 All 12 modules show 'not enabled' state when disabled for a space
- [x] #2 All 12 modules appear correctly in the applet catalog
- [x] #3 Enabling/disabling a module immediately updates the app switcher
<!-- AC:END -->

## Final Summary

<!-- SECTION:FINAL_SUMMARY:BEGIN -->
No per-module changes needed. The existing middleware in index.ts:1667 already returns 404 for disabled modules. The "Manage rApps" catalog in TASK-118.1 handles discovery and toggling. The shell's visibleModules filtering (shell.ts:101-103) already hides disabled modules from the app switcher. All 12 multiplayer modules work with the catalog out of the box.
<!-- SECTION:FINAL_SUMMARY:END -->
