> For the complete documentation index, see [llms.txt](https://faction-os.gitbook.io/faction-os-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://faction-os.gitbook.io/faction-os-docs/.spec_system/archive/phases/phase_06/session_03_shared_collaboration_event_contracts.md).

# Session 03: Shared Collaboration Event Contracts

**Session ID**: `phase06-session03-shared-collaboration-event-contracts` **Packages**: apps/warroom, apps/web, packages/protocol **Status**: Not Started **Estimated Tasks**: \~16-24 **Estimated Duration**: 2-4 hours

***

## Objective

Define and implement safe shared collaboration event contracts for compact remote context, handoff, notices, and catch-up without transferring sensitive local developer data.

***

## Scope

### In Scope (MVP)

* Add or refine shared protocol contracts for collaboration event categories, roles, sender exclusion, catch-up compaction, blocked fields, and safe-frame parsing.
* Support compact shared context such as participant presence, selected surface, selected safe IDs, room notices, handoff summaries, and unavailable-state hints where Session 01 routes them into Phase 06.
* Preserve explicit allowlists that block prompts, file contents, command bodies, terminal output, transcripts, secret values, broad paths, exports, replay buffers, scans, media drafts, diagnostics, logs, backups, and quarantined historical content.
* Harden Worker persistence and catch-up filtering for new collaboration frames.
* Update web state handling so remote context cannot overwrite local hero, mission, queue, replay, export, notification, settings, or adapter truth.
* Add blocked-field, malformed-frame, catch-up, sender-exclusion, and redaction tests.

### Out of Scope

* Hosted queues, raw shared task queues, account-backed collaboration, public replay hosting, or analytics.
* File, git, terminal, Docker, remote, or hosted command execution.
* Uploading archives, logs, backups, scans, media drafts, replay buffers, or exports to a hosted service.

***

## Prerequisites

* [ ] Session 01 routing matrix identifies collaboration event categories.
* [ ] Session 02 authority contracts are available or the implementation is explicitly compatible with them.
* [ ] Existing Phase 05 blocked-field and safe-frame tests are reviewed.

***

## Deliverables

1. Shared protocol collaboration event contracts and blocked-field definitions.
2. Worker persistence and catch-up handling for safe collaboration frames.
3. Web state handling for remote context that remains separate from local truth.
4. Focused tests for allowlists, redaction, sender exclusion, malformed frames, and catch-up minimization.

***

## Success Criteria

* [ ] Collaboration events are compact, typed, redacted, bounded, and explicitly allowlisted.
* [ ] Sensitive local data categories fail closed before persistence, catch-up, browser state, replay, export, notifications, adapters, or logs.
* [ ] Remote context remains visibly collaborative but cannot mutate local source-of-truth state.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://faction-os.gitbook.io/faction-os-docs/.spec_system/archive/phases/phase_06/session_03_shared_collaboration_event_contracts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
