You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Trinity has no backup for agent data volumes. All agent-generated binary/large-file data lives on per-agent named Docker volumes — agent-{name}-workspace (mounted at /home/developer), plus agent-{name}-public (FILES-001) and agent-{name}-shared (shared folders) — and the gitignored content/ directory inside the workspace volume. Git sync covers source code only; binaries are deliberately excluded (src/backend/services/git_service.py) and there is no Git LFS. The only backup tool, scripts/deploy/backup-database.sh, copies trinity.db and nothing else.
Net effect: host disk loss = total, unrecoverable loss of every agent's accumulated data. This epic develops the strategy for — and delivers — a configurable backup & restore capability for agent volumes, shipped as an entitled enterprise feature.
Context
Surfaced while reviewing distributed/binary storage for agents. The data itself is durable against container restart and recreation (the volume is re-attached to the new container) and even survives reset-to-main-preserve-state (the recovery path runs git reset --hard origin/main with no git clean, so gitignored files are left on disk). The gap is not ephemerality — it is the complete absence of any backup / snapshot / restore / portability story. The sharpest risk is single-host disk failure.
Positioned under the Enterprise epic because operators running fleets need configurable, governed backup: OSS ships the minimal primitives; enterprise adds policy, scheduling, retention, off-host destinations, and restore UX.
Design must respect sovereign infrastructure (Principle #6, docs/planning/TARGET_ARCHITECTURE.md): work on a single commodity server by default (local-disk target), with off-host / object-store destinations as opt-in configuration — never a hard cloud dependency.
Strategy questions to resolve (Phase 0)
Snapshot mechanism: offline tar of a quiesced volume vs. live quiesce hook (SQLite/WAL-safe) vs. filesystem snapshot (overlay/zfs/btrfs).
Summary
Trinity has no backup for agent data volumes. All agent-generated binary/large-file data lives on per-agent named Docker volumes —
agent-{name}-workspace(mounted at/home/developer), plusagent-{name}-public(FILES-001) andagent-{name}-shared(shared folders) — and the gitignoredcontent/directory inside the workspace volume. Git sync covers source code only; binaries are deliberately excluded (src/backend/services/git_service.py) and there is no Git LFS. The only backup tool,scripts/deploy/backup-database.sh, copiestrinity.dband nothing else.Net effect: host disk loss = total, unrecoverable loss of every agent's accumulated data. This epic develops the strategy for — and delivers — a configurable backup & restore capability for agent volumes, shipped as an entitled enterprise feature.
Context
Surfaced while reviewing distributed/binary storage for agents. The data itself is durable against container restart and recreation (the volume is re-attached to the new container) and even survives
reset-to-main-preserve-state(the recovery path runsgit reset --hard origin/mainwith nogit clean, so gitignored files are left on disk). The gap is not ephemerality — it is the complete absence of any backup / snapshot / restore / portability story. The sharpest risk is single-host disk failure.Positioned under the Enterprise epic because operators running fleets need configurable, governed backup: OSS ships the minimal primitives; enterprise adds policy, scheduling, retention, off-host destinations, and restore UX.
Design must respect sovereign infrastructure (Principle #6,
docs/planning/TARGET_ARCHITECTURE.md): work on a single commodity server by default (local-disk target), with off-host / object-store destinations as opt-in configuration — never a hard cloud dependency.Strategy questions to resolve (Phase 0)
tarof a quiesced volume vs. live quiesce hook (SQLite/WAL-safe) vs. filesystem snapshot (overlay/zfs/btrfs).data_paths+ snapshot/restore + portable export): is this epic the enterprise productization of Agent runtime data volumes: declared data paths with snapshot/restore and portable export #1169's primitive, or independent machinery? Decide first to avoid duplication.content/only, or declareddata_paths.Acceptance Criteria (epic — tracked via child issues)
docs/planning/covering mechanism, destinations, consistency, retention, restore, and the Agent runtime data volumes: declared data paths with snapshot/restore and portable export #1169 relationship.src/backend/services/credential_encryption.py).entitlement_service.register_module()+requires_entitlement()gating; OSS-only builds degrade gracefully.Technical Notes
src/backend/services/agent_service/crud.py(agent-{name}-workspace,-public,-shared); recreation re-attach inlifecycle.py.scripts/deploy/backup-database.sh,scripts/deploy/restore-database.sh.src/backend/services/cleanup_service.py,db_vacuum_service.py,scheduler_service.py.src/backend/enterprise/, two-track migrations (enterprise/backend/_migrations.py), entitlement gating independencies.py.src/backend/services/credential_encryption.py(AES-256-GCM).