Local data and secrets

Screph separates ordinary settings, user projects and secrets. Most runtime files live under one ScrephData directory, but account tokens and API keys use the system credential store, while project-local Assistant history may live next to the project itself.

1. Where ScrephData is located

  • Installed build: ScrephData beside the executable in the install root.
  • Source checkout: <repository>/ScrephData.
  • Explicit override: the SCREPH_CONFIG_DIR environment variable. The reusable voice runtime also supports VOICE_CONTROL_DATA_DIR and VOICE_CONTROL_MODEL_DIR.

This is the current implementation, not a promise of a standard AppData path. Before moving or removing an installation, inspect the actual runtime root and back up required projects separately.

2. Storage map

DataLocationRetention and cleanup
Ordinary settingsScrephData/settings_modules/settings.jsonOrdinary unencrypted JSON: preferences, paths, endpoints, profile metadata and role mappings. Kept until changed, reset or manually removed.
Selector local stateScrephData/local_state/selector_layout.jsonWindow geometry, panel sizes, canvas layout/presentations, linked panes, display modes, evidence tab and navigator. This is a local pixel-free workspace snapshot, not part of the project package. Measurement lines and layer locks are excluded.
Tokens and API keysWindows Credential Manager, service ScrephLogout removes account tokens; LLM profile/key controls remove the matching key. A keyring failure does not trigger a plaintext fallback.
ProjectsA chosen directory or ScrephData/automation_runtime/projectCanonical JSON, images, artifacts and sidecars are user-owned; there is no global auto-delete.
AI AssistantScrephData/runtime/ai_assistant
<project>/.screph_ai_assistant
Session cleanup effectively uses 180 days with exceptions; action history has a separate field. That cleanup does not remove the project mirror.
LLM usage metadataScrephData/llm/usage_events.jsonlAppend-only metrics for successful shared-runtime responses; no prompt or response text is stored. There is no automatic retention or clear UI, and the file is not a complete billing/error ledger.
Path histories and Manager metadataScrephData/local_state/selector_project_history.json
ScrephData/local_state/selector_project_metadata.json
Capture and Automation Manager subdirectories
Up to 60 recent projects, 25 source selections per project key and 10 recent scripts. Project tags and notes are keyed by absolute path, stay outside the package and do not migrate during duplicate or rename. Records contain full local paths.
Logs and crash reportsScrephData/logsCrash reports: the newest 10 by default. Other logs have no single shared retention rule; use component-specific controls or manual cleanup.
CV runtime sessionsScrephData/screen_selector/cv/results
Selector session path/cv_artifacts
Technical image-run bundles and legacy/debug projections. The recent-session list is limited to ten IDs, but this does not delete old session directories; no shared auto-retention was found. Project save copies only attached image-series entries.
Video/Temporal CV runsScrephData/screen_selector/cv/results/temporalManifest, snapshots, configurations, provenance, coverage/issues and observation chunks. Hide active run does not delete the run; no delete/prune UI or automatic retention was found. Applied tracks live separately beside the project in <name>.temporal-markup.json.
Capture Action CV<recording>/action_cv
<recording>/automation_context
action_cv stores materialized input, bundles, jobs, plans, runs, candidates, review decisions, exports, diagnostics, prepared VLM images, requests, raw responses and a response cache that is on by default. No automatic retention was found. A full manual rerun deletes action_cv but does not roll back the adjacent automation_context if it was enriched earlier.
Models, dependencies and cachesDedicated ScrephData subdirectoriesRemoved by a component-specific delete/repair action or manually. A settings reset is not a complete file wipe.

3. Secret boundary

settings.json is not a secret store. It contains provider kind, model, api_base, timeouts, roles and paths, while LLM API keys, voice keys and account access/refresh tokens use the system keyring. The legacy secure.* block is removed during migration rather than copied back into ordinary JSON.

Environment variables have priority as an explicit runtime source. This is useful for deployment, but unsandboxed child processes may inherit the environment. Do not put secrets in project JSON, script parameters, credential-bearing URLs or diagnostics notes.

A path may also be sensitive

Endpoints, project/source/script paths and the Google credentials path are not secret-key values, so they may appear in ordinary settings/history and diagnostics previews. Review a bundle before sending it.

4. Why 180 days is not a complete deletion rule

  1. history.jsonl prunes dated rows when a new event is appended.
  2. Opening the workspace removes old global session directories, but protects the active session and sessions with unresolved confirmation-required actions.
  3. <project>/.screph_ai_assistant is outside that cleanup. The current mirroring control affects the action-history store, but the generic workspace store still uses mirroring by default; the toggle neither stops all new message, timeline and action mirror files nor deletes existing ones.

The UI retention field is applied to append-only history.jsonl when the runtime is created. Session-directory cleanup currently does not receive the user value and effectively uses 180 days, so changing the field is not a global Assistant deletion policy.

History may contain prompts, responses, action payloads, project paths, context metadata, redaction reports and permitted attachments. For complete removal, close Screph, delete the relevant global session directories and project-local mirror, then inspect project backups or synchronization copies.

5. Practical cleanup

  1. Determine the actual runtime root, including any SCREPH_CONFIG_DIR override.
  2. Log out and remove unused LLM or voice keys with their dedicated controls.
  3. Clear recent, source or script history where the UI provides it; Remove from history and Clear missing in Project Manager do not delete the project or script itself. Path-keyed tags and notes must be cleaned separately from the metadata store.
  4. Remove unused models, runtime components, CV/Capture outputs and logs separately. A settings reset does not replace this step.
  5. Before deleting a project mirror, make sure its decision history or unresolved-action recovery is no longer needed.

Contents of the portable project package →