Skip to content

security(truth): consolidate user-visible security/privacy claims across storage, providers, PWA, collaboration & supply chain #549

Description

@qnbs

Purpose

Create one security-truth reconciliation owner for WorldScript Studio. This issue does not invent a new crypto/security subsystem; it closes the documentation/product-truth gap between several already-authoritative implementation trackers whose claims surface together in Help, README, security docs, locale text, release notes and diagnostics.

This is the canonical S10 security truth consolidation tracker. Implementation/security work remains owned by its specialist issues.

Why a separate integration tracker is needed

Current security truth spans materially different authorities:

Without a single reconciliation gate it is easy for one surface to say “encrypted”, “local”, “never sent to WorldScript”, or “stored in IndexedDB/OPFS” more broadly than the actual selected runtime/backend guarantees.

Required truth model

Maintain a small explicit matrix for every security/privacy claim that users can encounter:

Claim class PWA/browser Tauri transitional desktop Qt/Core target Evidence owner
project/manuscript at-rest protection exact current behavior exact current behavior #445 contract #445/#482
API credential protection exact keystore mechanism exact desktop mechanism future Core/OS integration as admitted implementation/docs
provider request routing direct vs proxy per provider direct vs proxy per provider target adapter behavior provider architecture
collaboration transport crypto exact y-webrtc/vendor-fork contract same where used renderer-neutral semantics if retained #60/collab docs
local AI local browser / Ollama / cloud distinction desktop path Qt/Core path #478/#483
cache/service-worker persistence exact PWA scope n/a n/a #478/#485
release/supply-chain provenance web/deploy artifacts Tauri/Qt binaries target release pipeline #529

Do not mark a row complete from documentation alone; tie it to implementation/evidence maturity.

Surfaces to reconcile

Audit at minimum:

  • README.md security/privacy wording;
  • SECURITY.md;
  • AUDIT.md current security truth;
  • docs/SECURITY-THREAT-MODEL.md;
  • docs/IDB-ENCRYPTION.md and relevant native/storage docs;
  • PWA/security documentation;
  • Help/FAQ security copy and locale source files;
  • provider-selection/settings copy;
  • release notes / updater / deployment docs where guarantees are stated;
  • diagnostics/status UI that labels work as local/cloud/encrypted/protected;
  • manifest/service-worker descriptions where relevant.

Required distinctions

Never collapse these into one generic “encrypted/local/private” claim:

  1. API-key credential encryption;
  2. project/manuscript at-rest encryption;
  3. collaboration transport encryption;
  4. filesystem/browser origin isolation;
  5. local-AI execution;
  6. local-network Ollama execution;
  7. cloud-provider execution;
  8. WorldScript-hosted proxy traversal;
  9. release artifact signing/provenance.

Change-control rule

When any underlying authority changes (#445, #478/#482/#485, provider routing, #529, #60, etc.), security-facing documentation must be re-audited before release if the changed behavior affects an existing claim.

Prefer automated drift checks for statements that can be derived deterministically (configured providers/backends/versioned security capability declarations), but do not attempt to mechanically infer nuanced threat-model prose.

Acceptance criteria

Non-goals

Specialist issues own implementation. This issue owns cross-surface truth and closure reconciliation.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions