Skip to content

docs: privacy page traced through the code, including the gaps#25

Draft
ohad6k wants to merge 1 commit into
mainfrom
agents/privacy-page
Draft

docs: privacy page traced through the code, including the gaps#25
ohad6k wants to merge 1 commit into
mainfrom
agents/privacy-page

Conversation

@ohad6k

@ohad6k ohad6k commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Adds docs/PRIVACY.md: what Emulo reads, what it writes, what leaves the machine, and what is not redacted.

Every claim was traced through the source before being written (the SOURCES table, discover_files, the per-source human-turn filters, write_outputs, resolve_emulo_home, prepare_plugin_run, mcp_main).

Gaps the page documents rather than hides

  • render_card_html falls back to a raw.githubusercontent.com image and pyproject.toml ships no assets, so every pip/uvx-installed card uses the remote URL. No profile data in the request, but opening a card is observable.
  • EMULO_HOME is created with no explicit mode and never chmod'd, so it inherits the umask. Only AutopilotStore uses 0o700/0o600, and its permissions check is skipped on Windows.
  • No purge command exists in any plugin subcommand. Deletion is manual.
  • The not-redacted list is derived from what is absent in REDACTIONS: names, card/bank/SSN numbers, addresses, URLs and hostnames, IPv6, user-typed paths, bare domestic phone formats, short-word passwords.
  • The skills.sh telemetry claim in SECURITY.md is marked as a third-party claim, unverifiable from this repo.

Publishing known gaps is a deliberate choice. If you would rather fix first and document after, hold this PR.

Written by an agent working in an isolated worktree, reviewed before push.

Answers what Emulo reads, writes, and sends, with every claim tied to a
symbol or path in emulo.py, emulo_autopilot/, or the bootstrap:

- discovery roots, file types, and the per-source human-turn filters
- every output path: emulo-out/ in the CWD, the EMULO_HOME layout,
  adapter destinations
- what leaves the machine: emulo.py makes no network calls, the model
  calls belong to the user's agent, the bootstrap fetch, the card's
  remote artwork fallback, and the opt-in continuity upload with its
  plaintext envelope metadata
- the exact redaction list, and an explicit "not redacted" list
- a pre-share checklist and a Known gaps section for what the code does
  not enforce (file permissions, no purge command, best-effort regexes)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 23, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ditto Ready Ready Preview, Comment Jul 23, 2026 1:07pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant