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:
ScrephDatabeside the executable in the install root. - Source checkout:
<repository>/ScrephData. - Explicit override: the
SCREPH_CONFIG_DIRenvironment variable. The reusable voice runtime also supportsVOICE_CONTROL_DATA_DIRandVOICE_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
| Data | Location | Retention and cleanup |
|---|---|---|
| Ordinary settings | ScrephData/settings_modules/settings.json | Ordinary unencrypted JSON: preferences, paths, endpoints, profile metadata and role mappings. Kept until changed, reset or manually removed. |
| Selector local state | ScrephData/local_state/selector_layout.json | Window 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 keys | Windows Credential Manager, service Screph | Logout removes account tokens; LLM profile/key controls remove the matching key. A keyring failure does not trigger a plaintext fallback. |
| Projects | A chosen directory or ScrephData/automation_runtime/project | Canonical JSON, images, artifacts and sidecars are user-owned; there is no global auto-delete. |
| AI Assistant | ScrephData/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 metadata | ScrephData/llm/usage_events.jsonl | Append-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 metadata | ScrephData/local_state/selector_project_history.jsonScrephData/local_state/selector_project_metadata.jsonCapture 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 reports | ScrephData/logs | Crash reports: the newest 10 by default. Other logs have no single shared retention rule; use component-specific controls or manual cleanup. |
| CV runtime sessions | ScrephData/screen_selector/cv/resultsSelector 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 runs | ScrephData/screen_selector/cv/results/temporal | Manifest, 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 caches | Dedicated ScrephData subdirectories | Removed 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
history.jsonlprunes dated rows when a new event is appended.- Opening the workspace removes old global session directories, but protects the active session and sessions with unresolved confirmation-required actions.
<project>/.screph_ai_assistantis 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
- Determine the actual runtime root, including any
SCREPH_CONFIG_DIRoverride. - Log out and remove unused LLM or voice keys with their dedicated controls.
- Clear recent, source or script history where the UI provides it;
Remove from historyandClear missingin Project Manager do not delete the project or script itself. Path-keyed tags and notes must be cleaned separately from the metadata store. - Remove unused models, runtime components, CV/Capture outputs and logs separately. A settings reset does not replace this step.
- Before deleting a project mirror, make sure its decision history or unresolved-action recovery is no longer needed.