Collectives P1: participation landing (ES/EN), group tree, room provisioning APIs
- 030: groups.parent_id tree + kind discriminator + group_rooms mapping - /collectives module: create/tree/join APIs, MatrixProvisioner (open room public+federated, closed room E2EE-at-creation, onboarding room), NullProvisioner fail-soft when ARCHIVE_PROVISIONER_* unset - web root becomes the public participation manual (ES-first + EN toggle, three paths: join by invite, start collective, solo account) - participation manual content in core
This commit is contained in:
parent
c31762b82d
commit
4a7e78b28d
23 changed files with 2892 additions and 8 deletions
|
|
@ -1,5 +1,14 @@
|
|||
# Collectives architecture — participation, rooms, subcollectives, diffusion
|
||||
|
||||
> **Status — P1 shipped (implementation note).** The three scope pillars of P1 are in:
|
||||
> `groups.parent_id`/`groups.kind`/`group_rooms` (migration `030_collectives.sql`),
|
||||
> the participation-manual landing page at the app root (`apps/web/src/app/page.tsx`, copy in
|
||||
> `packages/core/src/participation-manual.ts`), and the provisioner port + Matrix implementation
|
||||
> (`apps/api/src/collectives/`). Join-by-invite is unchanged: an invite token claims workspace
|
||||
> membership exactly as before; `GET /collectives-public/for-invite/:token` adds names-only
|
||||
> collective labelling to the join card. Room addresses in the UI, directory, and the UI/state
|
||||
> re-parenting surface remain P2+.
|
||||
|
||||
Status: design for build (phase 1 dispatch in flight)
|
||||
Date: 2026-10-12
|
||||
Decides: landing flow, collective model, room matrix, provisioning, diffusion
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue