> 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_07/hosted_payload_privacy_blocklist.md).

# Hosted Payload Privacy Blocklist

**Session ID**: `phase07-session01-hosted-services-requirements-and-privacy-baseline` **Status**: Blocklist Complete **Created**: 2026-05-30 **Scope**: Sensitive payload exclusions and local-first fallback checklist for future hosted transfer

***

## Purpose

This artifact defines data categories that are blocked by default from hosted storage, analytics, public replay, push, diagnostics, remote access, Worker payloads, adapters, exports, archives, logs, and backups. Later Phase 07 sessions must either keep these categories local or add explicit consent, minimization, redaction, authorization, tests, and documentation before describing a hosted transfer as active.

## Global Blocklist

These categories are blocked by default from hosted transfer and from any surface that could become public, account-backed, externally processed, or operator-shared.

| Category                                    | Examples                                                                                                                                                                   | Default handling                                                                                                                                                                                        |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Prompt and transcript content               | User prompts, provider prompts, assistant messages, transcript excerpts, raw prompt bodies, generated planning context                                                     | Keep local or replace with reviewed summaries. Do not send to hosted storage, analytics, push, public replay, diagnostics, Worker federation, adapters, logs, archives, exports, or backups by default. |
| File content and code content               | File bodies, diffs, patches, scan payloads, generated code, copied source snippets                                                                                         | Keep local unless an explicit provider-transfer or future hosted-storage flow has consent, minimization, authorization, redaction, and tests.                                                           |
| Command and terminal data                   | Shell command bodies, command previews, stdout, stderr, terminal output, shell history                                                                                     | Block from hosted payloads and diagnostics; local UI may show bounded summaries where current tests cover them.                                                                                         |
| Secret and credential data                  | API keys, service-role keys, webhook URLs, bot tokens, bearer values, auth headers, cookies, OAuth client secrets, VAPID private keys, tunnel tokens, raw authority tokens | Never expose in browser bundles, logs, docs, diagnostics, health responses, replay fragments, exports, archives, Worker payloads, analytics, push, or public replay.                                    |
| Local path and environment detail           | Home paths, workspace roots, transcript paths, broad absolute paths, filesystem roots, raw env dumps, local URLs with secrets                                              | Redact or use bounded relative paths where existing local routes require paths.                                                                                                                         |
| Replay, export, archive, and backup content | Replay buffers, share fragments, CSV/JSON exports, JSONL session archives, tarball backups, memory findings, settings snapshots                                            | Treat as sensitive local audit or recovery data. Future hosted storage requires Session 04 and Phase 08 erasure review.                                                                                 |
| Diagnostic and operational detail           | Local logs, hook logs, listener logs, spool entries, PID files, lifecycle files, queue entries, guarded-action rationale, raw manager payloads, request bodies             | Diagnostics may expose counts, status labels, timings, bytes, and sanitized ids only.                                                                                                                   |
| Cloud and hosted identifiers                | Cloudflare account ids, zone ids, API tokens, tunnel tokens, Supabase service values, Umami API keys, account ids, OAuth secrets, deployment probe dumps                   | Keep out of public docs, health checks, diagnostics, browser config, and logs. Public origins/domains may be documented separately.                                                                     |
| Media and historical intake                 | Media drafts, provider response payloads, generated briefs, `EXAMPLES/` content, copied reports, quarantined media, service-discovery output                               | Evidence only. Do not copy into runtime, public demo, stable docs, hosted payloads, analytics, or generation prompts.                                                                                   |

## Boundary-Specific Rules

### Server And Local API

* The local server remains loopback-first and owns current REST, WebSocket, local diagnostics, redacted export, redacted archive, and LLM fallback behavior.
* Current high-risk POST routes and WebSocket messages use validation envelopes that avoid echoing raw malformed payloads.
* Future hosted-sensitive route families must inherit auth, origin, rate limit, validation, error-boundary, redaction, and disabled/unavailable-state controls before being documented as active.

### Web Cockpit

* Browser localStorage may contain bounded settings, replay state, local auth hints, and War Room participant hints. It must not store raw Worker authority tokens, hosted account tokens, room events, socket frames, diagnostics, prompts, command bodies, terminal output, exports, scan payloads, or media drafts.
* Replay share links remain redacted local URL fragments. They are not public replay hosting or hosted replay storage.
* Browser notifications are opt-in and local-only. No push backend is shipped.
* Browser settings reset and War Room leave/reset are local cleanup only, not trusted erasure.

### War Room Worker

* The Worker is an optional Cloudflare room relay, not hosted identity, hosted storage for core local data, analytics, public replay hosting, remote execution, or erasure.
* Allowed socket families are presence, cursor, focus, hero state, mission state, and room notice after protocol validation. `ping` is liveness only.
* Catch-up summaries expose counts, timestamps, and safe family labels only.
* Worker health responses expose compact service/time/rate-limit/deployment labels only and must not expose account ids, zone ids, tokens, request headers, client IPs, request bodies, room payloads, prompts, command output, local paths, exports, scans, media drafts, logs, or local diagnostics.

### CLI And Hooks

* Hook handlers are timeout-bounded, silent in normal paths, and write only sanitized local diagnostics or bounded spool entries.
* CLI `status` and `doctor` may print local server, hook, listener, spool, orchestration, and isolation posture with counts and status labels only.
* Recovery removes stale listener PID files and malformed spool entries only; it is not execution, hosted diagnostics, remote access, or erasure.

### Adapters

* Adapters remain outbound-only, best-effort, and optional.
* Discord, Telegram, and compact generic webhook payloads receive formatter output only.
* Generic webhook `full` is explicit opt-in for reviewed internal systems and can expose raw local event data. It must not be used as an analytics, public replay, hosted storage, or hosted diagnostic substitute.
* Webhook URLs, bot tokens, bearer values, and auth-header values are blocked from startup logs and docs.

### Exports, Archives, Logs, And Backups

* Local session exports and archives use deterministic redaction but remain local-first audit artifacts, not public-safe or hosted-safe payloads.
* Logs and backups are sensitive local developer data. They must not be uploaded or hosted without future encryption, consent, retention, redaction, authorization, and erasure design.
* Backup retention is local and controlled by `FACTIONOS_BACKUP_RETENTION_DAYS` unless a later phase changes storage behavior.

### Public Demo

* The public demo uses synthetic data and standalone static assets only.
* It must not import workspace packages, process real sessions, cache real prompts/hooks/replay uploads, or imply hosted accounts, hosted storage, analytics, War Room federation, public replay hosting, or push.

## Local-First Fallback Checklist

Before any later session describes hosted transfer as active, the owning implementation must prove:

* Hosted service absent: core local server, web, hooks, CLI, adapters, tests, and public demo remain usable without the hosted service or credentials.
* Disabled default: the feature is off unless configuration and required operator/user intent are present.
* Consent: users/operators can understand and approve the transfer before it happens.
* Minimization: payloads contain only fields needed for the stated purpose.
* Redaction: blocked categories are rejected, dropped, or replaced with stable placeholders before transfer.
* Authorization: access is enforced at the closest boundary to protected data.
* Duplicate prevention: state-mutating hosted actions guard retries and concurrent submissions.
* State freshness: reconnect, re-entry, changed config, token expiry, and logout/revocation revalidate state.
* Failure path: absent credentials, invalid config, denied consent, timeout, rate limit, malformed response, and service outage produce visible bounded states.
* Documentation: stable docs explain what data is sent, why it is needed, how local-only mode behaves, how to disable the feature, and what evidence validates privacy and authorization.

## Evidence Requirements

* Source or docs changes must identify the owning package and route shared contracts through `packages/protocol` when multiple packages consume them.
* Tests are required when source changes affect config parsing, authorization, payload construction, redaction, diagnostics, replay, exports, storage, analytics, push, remote access, or Worker transfer.
* Documentation-only changes must pass path/link review, consistency scan, ASCII/LF validation, and `git diff --check`.
* Secret scan is required before a closeout session claims hosted guardrails are validated.

## Session Handoff

| Owner      | Blocklist use                                                                                                                                              |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Session 02 | Validate config diagnostics, browser config, and secret/deploy handling do not reveal blocked values.                                                      |
| Session 03 | Validate hosted identity and authorization docs/tests do not store or expose raw account tokens, authority tokens, request bodies, or account identifiers. |
| Session 04 | Validate hosted persistence and public replay reject or minimize blocked categories before any future storage or public replay claim.                      |
| Session 05 | Validate analytics taxonomy and payload helpers exclude blocked categories by test.                                                                        |
| Session 06 | Validate push payloads, remote access, tunnels, and operator diagnostics expose only compact posture and minimal notifications.                            |
| Session 07 | Re-run consistency, secret scan, docs review, and privacy checks across all changed Phase 07 surfaces.                                                     |
| Phase 08   | Use this blocklist as input to trusted unified erasure, production-hosted validation, release hardening, and decommission work.                            |


---

# 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_07/hosted_payload_privacy_blocklist.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.
