Skip to content

v2 → v3 Backlog

Audience: contributors and maintainers.

This is the execution backlog for the v2 → v3 transition described in the Roadmap. It holds the epic map (EP-10EP-25), the 24-sprint plan (S01S24), the proposed GitHub issue backlog (#101#254), and the release gates (G1G8). Issue numbers are proposals — renumber against live GitHub state. Sprints are two weeks each; use sprint numbers, not dates, so they can slide with team capacity. Each sprint’s goal is a release gate, not a feature list.

The v2.0-beta "AI & Recording" scope from the previous roadmap (AI Peer, Session Recording, WebTransport, Edge Relay) shipped early in v1.6–v1.8. EP-17/EP-18 below therefore build on that foundation (agent-driven peers, recording capture/replay, edge relay) rather than starting from zero, and EP-10 focuses on the cross-SDK protocol governance the Flutter expansion needs.

Naming: the Dart core package is roomful (bare name, matching the supabase/sentry convention where the core Dart package is unsuffixed) and the Flutter layer is roomful_flutter.

EpicNameStatusPurposeTarget
EP-10Protocol Governance & Compatibility✅ Public VerifiedVersioned event envelope, protocol docs, SDK-independent contracts, migration policyv2.0-beta
EP-11Dart Core SDK✅ Source alphaPure Dart client: room lifecycle, presence, events, shared state, reconnect, package publishingv2.1-alpha
EP-12Flutter SDK & UI Layer✅ Source alphaProvider, builders/controllers, cursor overlay, avatars, locks/comments UI foundationsv2.2-beta
EP-13Relay Hardening & Self-host Trust✅ ReleasedDocker, Redis, JWT, rate limits, deployment docs, config templatesv2.3
EP-14Cross-platform Interop Demos✅ ReleasedReact + Flutter + relay same-room demos; web/mobile parity testsv2.2–v2.3
EP-15Durable Collaboration Primitives✅ ReleasedComments persistence, anchors, locks, activity stream, durable room metadatav2.4
EP-16Vertical Component Packs✅ ReleasedAdmin, form, canvas, CRM/support, education starter componentsv2.4
EP-17AI Peer & Agent Collaboration✅ ReleasedAI peer identity, agent cursor, action stream, approvals, aiResolver contractv2.5
EP-18Session Recording & Replay✅ ReleasedEvent capture, replay timeline, .roomful export format, privacy controlsv2.5–v2.6
EP-19Observability & DevTools✅ ReleasedRoom Inspector, network topology, latency/reconnect metrics, debug overlayv2.6
EP-20Security, Privacy & Audit✅ ReleasedAudit log, tamper-evident events, ZK/ephemeral room design, retention policiesv2.6–v2.8
EP-21Offline / Local-first Collaboration✅ ReleasedOffline queue, reconnect recovery, merge strategies, CRDT bridge reviewv2.7
EP-22CLI, Templates & Plugin SystemAlpharoomful CLI, starter apps, plugin runtime, create-roomful-app workflowsv2.3–v2.8
EP-23Cloud / Open-Core Commercial Layer✅ ReleasedHosted relay, dashboard, orgs/projects, usage metrics, quotas, billing events, enterprise packagingv2.8
EP-24RoomfulScript & v3 Stable ProtocolPlannedYAML/JSON collaboration-as-code, schema validation, migration toolingv3.0-rc
EP-25DX, Docs, Community & Adoption✅ ReleasedDocs, examples, comparison pages, demo videos, contributor flows, public roadmapAll v2.x

Status key: ✅ Released — Planned — not started.

SprintVersionFocusStatusEpicsMain deliverablesExit criteria
S01v2.0-betaRoadmap reset + protocol RFC✅ ReleasedEP-10, EP-25Roadmap PR, protocol v2 RFC, issue labels, project boardRoadmap merged; backlog accepted
S02v2.0-betaProtocol envelope + schema✅ ReleasedEP-10Event envelope, versioning, room/peer identifiers, typed payload schemasJS SDK consumes protocol v2 alpha without breaking v1
S03v2.0-betaRelay compatibility + replay✅ ReleasedEP-10, EP-13, EP-18Relay message normalization, replay buffer skeleton, protocol test vectorsInterop tests pass with existing adapters
S04v2.1-alphaDart package foundation✅ Source alphaEP-11roomful scaffold, models, transport abstraction, CIPackage builds and publishes alpha internally
S05v2.1-alphaDart room lifecycle✅ Source alphaEP-11RoomfulClient, connect/disconnect, heartbeat, reconnect, peer registryDart client joins relay room and sees JS peers
S06v2.1-alphaDart primitives alpha✅ Source alphaEP-11Presence, events, shared state (LWW), locks, cursors, msgpack codecConsole demo covers presence/events/state/locks/cursors
S07v2.2-betaFlutter SDK foundation✅ Source alphaEP-12roomful_flutter, RoomfulProvider, controllers, lifecycle integrationFlutter app connects to relay and manages user identity
S08v2.2-betaFlutter presence + cursors✅ Source alphaEP-12, EP-14PresenceAvatars, LiveCursorsOverlay, pointer smoothingFlutter Web/iOS/Android cursor demo works
S09v2.2-betaFlutter shared state + locks✅ Source alphaEP-12, EP-14SharedStateController, RoomfulSharedStateBuilder, example appCross-platform interop demo with React web client
S10v2.3Self-host quickstart✅ ReleasedEP-13, EP-22Docker compose, Redis profile, .env templates, relay CLI docsClean-machine quickstart under 15 min
S11v2.3Auth + mobile reliability✅ ReleasedEP-13, EP-14JWT guide, Firebase/Supabase auth examples, mobile reconnect testsNetwork switch and app-background tests pass
S12v2.3Cross-platform showcase✅ ReleasedEP-14, EP-25React web + Flutter mobile same-room demo, landing/demo page updateA 60-second demo clearly shows cross-platform value
S13v2.4Durable comments✅ ReleasedEP-15Persistent threads, anchors, resolvable comments, storage adapter interfaceComments survive reconnect and reload
S14v2.4Field presence + record locks✅ ReleasedEP-15, EP-16FieldPresence, RecordLock, lock conflict UX, activity stream alphaAdmin/form demo supports collaborative editing safely
S15v2.4Vertical starter kits✅ ReleasedEP-16, EP-25Dashboard, form builder, canvas, support/CRM startersAt least 3 vertical demos documented
S16v2.5AI peer model✅ ReleasedEP-17AI peer identity, permissions, agent presence, agent cursorAI peer is visible and distinguishable from a human peer
S17v2.5Agent actions + approvals✅ ReleasedEP-17, EP-18, EP-20Action stream, proposed edits, approve/reject flow, audit hooksAI actions are inspectable before durable commit
S18v2.5Recording alpha✅ ReleasedEP-18Session capture, time-travel replay UI, .roomful export draftReplay works for presence/cursor/state/comments subset
S19v2.6Room Inspector✅ ReleasedEP-19DevTools panel, event timeline, peer list, state inspectorDevelopers can debug a room without console spelunking
S20v2.6Audit + topology + trust docs✅ ReleasedEP-19, EP-20, EP-21Audit log, network topology visualizer, security architecture docsProduction-review docs are credible
S21v2.7Offline queue✅ ReleasedEP-21Local event queue, reconnect flush, idempotency keys, failure statesOffline operations flush deterministically after reconnect
S22v2.7Merge + CRDT bridge review✅ ReleasedEP-21Conflict UI, CRDT adapter strategy, Yjs/y_crdt feasibility notesClear stable-vs-experimental offline contract
S23v2.8Cloud / open-core betaPlannedEP-23, EP-20, EP-25Hosted relay beta, dashboard, org/project model, quotas, usage eventsCloud beta usable by invited test users
S24v3.0-rcRoomfulScript + migrationPlannedEP-24, EP-25RoomfulScript schema, config compiler, migration guide, v3 RC checklistv3 RC freezes the protocol and migration path
IssueTitleScopeAcceptance
#101Protocol v2 RFC (draft)Event envelope, message versioning, backwards compatibility, migration policyRFC merged
#102Protocol test vectors (protocol-fixtures/)Same fixture files for JS, Dart, and relay compatibility testsCross-SDK fixtures pass
#103Room/peer/session identifier standardStandardize roomId, peerId, sessionId, surfaceId, coordinateSpaceSchema accepted
#104Ephemeral vs durable state contractClarify presence/cursor/viewport vs comments/locks/history splitDocs + types updated
IssueTitleScopeAcceptance
#111roomful package scaffoldpubspec, package structure, CI, lint, tests, examplesPackage builds
#112Dart transport abstractionWebSocket transport, future polling/WebRTC placeholders, typed eventsTransport tests pass
#113RoomfulClient lifecycleconnect, disconnect, reconnect, heartbeat, backoff, peer registryConsole demo works
#114Dart presence/events/shared statePresence tracking, events API, LWW shared state, subscriptionsInterop with JS
#115Dart locks/comments client contractsInitial locks/comments API; storage persistence in a later epicAPI docs ready
IssueTitleScopeAcceptance
#121roomful_flutter package scaffoldFlutter package, platform support matrix, sample app setupBuilds on Web/iOS/Android
#122RoomfulProvider + lifecycleInheritedWidget/Provider-style room lifecycle and user bindingExample connected
#123PresenceBuilder + PresenceAvatarsPresence UI builders and default avatar stackDemo screenshot/video
#124LiveCursorsOverlayCoordinate-space mapping, smoothing, labels, idle/disconnected statesCursor demo stable
#125SharedStateController + Locks APIFlutter controllers for state and advisory locksCollaborative form demo
IssueTitleScopeAcceptance
#131Docker self-host quickstartdocker compose, prod compose, env template, Redis optional profileQuickstart verified
#132JWT auth examplesNext.js, Firebase Auth, Supabase Auth, and custom backend token examplesDocs + examples
#133Relay rate limits + max rooms/usersConfigurable limits and safe error codesLoad test pass
#134Mobile reconnect hardeningApp background, flaky network, token expiry, reconnect scenariosTest matrix pass
IssueTitleScopeAcceptance
#141React + Flutter same-room demoReact web and Flutter mobile sharing presence/cursors/stateDemo deployed
#142Flutter Web parity testFlutter Web with JS SDK in same browser sessionParity tests pass
#143Interop documentationProtocol, coordinate space, and auth patterns explainedDocs published
IssueTitleScopeAcceptance
#151Persistent comments storage interfaceStorage adapter contract for Postgres/SQLite/memoryAdapters documented
#152Comment anchorsAnchor comments to surface, field, node, record, or coordinateDemo works
#153Record locks + conflict UXLock acquisition, expiry, owner display, conflict recoveryForm demo works
#154Activity stream alphaDurable activity events for comments, locks, and state changesTimeline available
IssueTitleScopeAcceptance
#161Admin dashboard packLiveUsersBar, RecordLock, FieldPresence, ActivityStreamStarter kit published
#162Collaborative form packFieldPresence, FieldLock, CommentAnchor, conflict noticeStarter kit published
#163Canvas/whiteboard packCanvasCursors, ViewportSync, LaserPointer, FollowModeStarter kit published
#164CRM/support packLeadLock, AgentPresence, SessionNotes, CoBrowsePresenceDemo created
IssueTitleScopeAcceptance
#171AI peer identity modelHuman peer vs AI peer metadata, role, permissions, disclosureTypes accepted
#172Agent cursor + presence statesAgent thinking, typing, editing, waiting-approval statesDemo visible
#173Agent action streamEvery AI action is structured, replayable, and auditableAction log works
#174Approval workflowProposed edit, approve, reject, rollback, permission hooksApproval demo
#175useSessionSummarizer alphaGenerate room/session summary from replayable eventsAlpha docs
IssueTitleScopeAcceptance
#181Recording event modelCapture ephemeral and durable events with privacy controlsModel accepted
#182.roomful export formatPortable session export schema and compression strategyDraft spec
#183Replay timeline UITime-travel replay for cursor, presence, state, commentsReplay demo
#184Recording retention controlsRetention policy and redaction hooksSecurity review pass
IssueTitleScopeAcceptance
#191Room InspectorInspect peers, state, locks, comments, events, transportsDevTools beta
#192Network topology visualizerShow relay/peer topology, latency, connection stateVisualizer demo
#193Error catalogTyped error codes, remediation docs, DX-friendly messagesDocs published
#194Usage metrics eventsPresence sessions, messages, rooms, reconnects, feature usageTelemetry hooks
IssueTitleScopeAcceptance
#201Security architecture guideThreat model, auth, relay trust, data retention, self-host modelDocs published
#202Tamper-evident audit logHash-chained audit event model for durable actionsPrototype works
#203Ephemeral roomsRooms with no durable storage and strict TTLFeature flag
#204ZK rooms feasibility RFCZero-knowledge room design and explicit limitationsRFC complete
IssueTitleScopeAcceptance
#211Offline queueQueue outgoing actions when offline and flush on reconnectE2E test pass
#212Idempotency keysPrevent duplicate durable events after reconnect/retryRelay + SDK tests
#213Conflict UI patternsDefault UI for lock conflicts and merge conflictsFlutter/web demos
#214CRDT bridge decisionEvaluate Yjs and Dart CRDT options; define stable/experimental boundaryDecision doc
IssueTitleScopeAcceptance
#221roomful CLI v2init, relay, doctor, demo, inspect commandsCLI beta
#222create-roomful-appWeb and Flutter starter templatesTemplates work
#223Plugin runtime alphaPlugin lifecycle, permissions, sandbox boundariesPlugin example
#224roomful doctorValidate config, relay reachability, auth, package versionsCLI command works
IssueTitleScopeAcceptance
#231Hosted relay beta architectureMulti-tenant hosted relay, projects, rooms, quotasArchitecture review
#232Dashboard alphaProjects, API keys/tokens, room usage, logsInternal beta
#233Billing-ready usage eventsUsage metering events without billing-vendor lock-inEvents emitted
#234Enterprise packagingSelf-host support bundle, SLA outline, deployment checklistSales docs draft
IssueTitleScopeAcceptance
#241RoomfulScript schema RFCYAML/JSON room config schema and validation rulesRFC merged
#242Config compilerCompile RoomfulScript to SDK/relay configCompiler alpha
#243v2 → v3 migration guideMigration commands, breaking-change policy, examplesGuide ready
#244Protocol v3 freeze checklistNo RC until Flutter, web, relay, and cloud contracts pass compatibility testsRC gate accepted
IssueTitleScopeAcceptance
#251Docs information architecture refreshSeparate Web, Flutter, Self-host, AI, Enterprise tracksPages reviewed
#252Comparison pagesLiveblocks/Velt/Ably/Supabase comparison with fair positioningPages reviewed
#253Demo video packFlutter collaboration, cross-platform room, AI agent, self-host quickstartVideos published
#254Contributor guide for adaptersHow to build new SDK adapters against protocol fixturesGuide published
GateNameApplies toRequired checks
G1Backward compatibilityAll v2.xExisting v1/v1.5 public APIs remain stable; new APIs additive; compatibility fixtures pass
G2Cross-platform interopv2.1+JS, Dart, and relay clients share the same protocol fixtures and at least one same-room demo
G3Flutter platform supportv2.2+Flutter Web, iOS, and Android examples build; platform limitations documented
G4Self-host credibilityv2.3+Docker quickstart, Redis coordination, JWT example, security guide, and a basic load test are available
G5AI safety / trustv2.5+AI peer features explicit opt-in; actions are visible, auditable, and approval-aware
G6Observabilityv2.6+Room Inspector, structured errors, connection metrics, and audit events are available
G7Offline contract clarityv2.7+Stable vs experimental offline behavior explicitly separated; no unclear data-loss promises
G8v3 readinessv3.0-rcRoomfulScript schema, protocol freeze, migration guide, and cross-SDK compatibility all pass

v3.0 does not ship just because RoomfulScript is implemented. It ships only when the protocol, Flutter, web, relay, self-host, and migration quality are stable enough to support long-term contracts.

RiskImpactMitigation
Flutter SDK scope grows too largev2.2 slips; public demo delayedKeep v2.2 to Provider, presence, cursors, shared state, locks. Comments UI can mature in v2.4
AI features become a gimmickMarket message weakensMake AI peer auditable, approval-aware, protocol-level; avoid generic chatbot demos
Web competitors out-polish RoomfulWeb-only adoption stays lowUse Flutter/mobile/self-host as the wedge instead of fighting only on React
Self-host becomes a support burdenMaintainer time consumedOpinionated Docker recipes, doctor CLI, error catalog, clear support tiers
Offline-first overpromisingTrust damage if data loss occursMark CRDT/offline experimental until a deterministic test matrix passes
v3 rushedBreaking changes / unstable RoomfulScriptKeep v2.x long; ship v3 only after protocol freeze and migration tooling