-
Notifications
You must be signed in to change notification settings - Fork 0
Phase 12 Real Time Collaboration
Two or more authorized users can share an incident context, annotate evidence, draft commands, request and grant approvals, track decisions, and receive generated notes without weakening the authorization boundaries of Actions, flows, or credentials.
- Capability phase: 12
- First marketed in: release 1.1
- Collaboration gateway: NestJS and WebSockets
- Shared document model: Yjs
- Optional media: LiveKit
This phase begins only after the core discovery-to-recovery workflow is useful for an individual engineer.
- Incident, evidence, remediation, approval, and audit contracts are stable.
- Organization and project identity are authoritative.
- Every shared object has visibility, retention, and ownership rules.
- Operational authorization remains server- and policy-enforced.
- WebSocket session management;
- presence and notifications;
- incident-room state;
- action and flow approvals;
- shared cursors;
- comments and collaborative annotations.
- incident notes;
- configuration-editing drafts;
- command drafts;
- diagrams;
- breakpoint annotations;
- code-review notes.
Collaborative documents hold drafts and annotations. Publishing a configuration version, executing a command, or granting an approval remains a separate authenticated domain operation.
- incident-room calls;
- screen sharing;
- optional transcript;
- AI meeting notes;
- action-item extraction;
- decision tracking;
- links to code, commands, and evidence.
Video and recording are optional. Production deployment must explicitly plan domain, TLS, TURN, network, consent, storage, and retention.
- Create or join a room tied to one incident.
- Load the same evidence manifest and timeline.
- Show presence, roles, current focus, and active environment.
- Annotate evidence and co-edit notes or a remediation draft.
- Submit the immutable remediation proposal for policy validation.
- collect approvals from eligible users.
- Observe execution and recovery together.
- Generate editable meeting notes, action items, and decisions.
- Finalize the incident record and retention class.
flowchart LR
Evidence["Incident evidence"] --> Room["Shared incident room"]
Room --> Draft["Collaborative draft"]
Draft --> Publish["Immutable proposal"]
Publish --> Policy["Policy validation"]
Policy --> Approval["Authorized approvals"]
Approval --> Execute["Runner execution"]
Execute --> Timeline["Shared timeline and notes"]
- Yjs provides convergence for approved document types.
- Server snapshots and update logs have bounded retention.
- Presence is ephemeral and not treated as an audit fact.
- Domain events, approvals, and execution state come from authoritative services.
- Reconnection restores documents and reconciles incident state.
- Offline edits may merge into drafts but cannot retroactively approve or execute operations.
- room membership does not grant environment or credential access;
- screen sharing does not transfer control;
- shared command text is a draft until converted to an Action;
- only eligible identities can approve, and approval is bound to immutable inputs;
- AI notes cannot create authoritative decisions without user confirmation;
- participants see only evidence allowed by their existing permissions.
Phase 12 adds:
-
IncidentRoom,RoomMember, and ephemeralPresenceState; -
CollaborativeDocument,DocumentSnapshot, andAnnotation; -
Decision,ActionItem, andMeetingNote; -
MediaSessionand optionalTranscriptReference.
Important events:
-
incident_room.created; -
incident_room.member.joined; -
collaboration.document.published; -
remediation.approval.recorded; -
incident.decision.recorded; -
meeting.notes.generated; -
incident_room.closed.
- collect explicit consent for transcript or recording;
- recording is off by default;
- separate note, transcript, recording, and audit retention;
- redact secrets from shared drafts and generated notes;
- encrypt media and stored artifacts according to classification;
- provide participant and export visibility;
- support deletion unless legal hold or policy applies;
- prevent AI processing of media without organization policy.
- Define room, membership, presence, annotation, and decision contracts.
- Implement authenticated WebSocket gateway and reconnection.
- Add Yjs documents, snapshots, retention, and permission filters.
- Build shared incident timeline, evidence focus, notes, and drafts.
- Integrate authoritative Action and flow approval updates.
- Add optional LiveKit calls and screen sharing.
- Implement consented transcripts, AI notes, decisions, and action items.
- Add accessibility, privacy, retention, and failure testing.
- multi-client convergence and reconnect tests;
- network partition and out-of-order update scenarios;
- tenant, room, and document permission tests;
- approval spoofing and stale-proposal tests;
- secret redaction in drafts, transcripts, and notes;
- screen-share and recording consent tests;
- accessibility tests for presence and collaborative changes;
- load tests for gateway fan-out and room recovery.
Phase 12 is complete when two users with distinct roles join the same incident, share the environment and evidence view, co-author a remediation draft, submit it for policy validation, provide eligible approval, observe execution and recovery, and finalize AI-generated notes without granting either user any new credential or environment permission.
| Risk | Control |
|---|---|
| Collaboration bypasses authorization | Draft versus authoritative-operation separation |
| CRDT state is mistaken for audit truth | Domain events remain authoritative |
| Transcript exposes secrets | Consent, redaction, scoped AI, and retention |
| Media complexity distracts from core product | Optional LiveKit integration after text workflow |
| Presence leaks sensitive activity | Minimal ephemeral presence and permission filtering |
- building a custom WebRTC stack;
- replacing general chat or project-management systems;
- remote desktop control;
- treating a collaborative draft as an executable command;
- recording every incident by default.
Phase 13 formalizes enterprise identity, authorization, policy, retention, export, legal hold, and compliance evidence across every earlier capability.
StackCendra is currently in Phase 0. The complete Phase 0–13 plan is versioned in the main repository under docs/wiki; later-phase pages describe intended behavior, not current implementation.
- Phase 0 foundation
- Phase 0 backlog
- Release 0.1 discovery
- Phase delivery framework
- Roadmap
- Wiki review guide
- Risks and decisions