Repository navigation
Description
Parent
#882 — Profile Portability: implement accepted backup, restore and transfer UX. Moved from #488 on 2026-10-06; #488's runtime slices (#498/#500/#501/#504/#506/#508) are complete and #488 is closed.
What to build
Identity-preserving Profile Backup / Managed Restore carries the deployment-local Model Presets (#883) and each PersonaBot Model Plan (#884) as part of the complete-core backup delivered by #886.
Acceptance criteria
- Exporting and restoring a Profile preserves reusable preset templates, applied independent Bot snapshots, Assignment allowlists/defaults, and plan revisions.
- A restored Bot remains subject to dependency resolution and Human activation; a missing provider/model/credential stops a new model request rather than silently choosing another route.
- Credentials are never written into the backup (ADR-0027, ADR-0093).
- Focused backup/restore tests exercise observable round trips; a Human can inspect a restored Bot's Profile and run a valid real DSH reply after repair.
Blocked by
- Tracer: export a complete Profile and restore as new with explicit activation #886 — complete-core export / restore-as-new (itself blocked by Tracer: delete a PersonaBot with explicit optional Memory erasure #896 / Tracer: purge Channel content with a durable restore-safe ledger #897). Do not deliver a model-only package ahead of it.
Sharing boundary (moved out of this issue)
The former criterion "PersonaBot Export and SoulSnapshot omit model bindings" no longer has a target: per ADR-0131 the sharing unit is the Bot's Memory Git repository, not a SoulSnapshot. Phase 1 Marketplace already satisfies the boundary structurally: the shared repository is bots/<slug>/memory (packages/core/src/bots/registry.ts:118), Model Plans live in the SQLite Bot registry (#884), and Git-URL install clones only Memory into a fresh local identity (registry.ts:385). The Phase 2 upload path carries the matching acceptance in #17.
Generated by Claude Code
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
DoodleBears commentedon Sep 30, 2026
Dependency verification / sequencing update
codex/local/01a0e445-0c0f-70e1-bad4-fd99c8cfaa21DoodleBears commentedon Oct 8, 2026
Agent work claim
codex/local/01a11b43-e3b9-79b2-a5d5-bf23b485909b(not a DSH Session)codex/505-backup-model-plansHuman instructed merge and continue. #886 is merged in #1195 at
a7b9773e; no #505 implementation claim or open matching PR was found. This continuation will stop at a reviewable PR for Human QA, without release or further merge authorization.DoodleBears commentedon Oct 8, 2026
Agent work outcome — handed off for Human review
codex/local/01a11b43-e3b9-79b2-a5d5-bf23b485909b(not a DSH Session)0c205d9e9f8194f0936e38dc9474c9319613d9d0The complete-core implementation is already merged in #1195; this continuation adds its #505 acceptance regression without a separate model-only format or production change. Two Bots retain different independent plans/revisions after shared-template edits, full backup/restore, target-local template edits and cold restart. Assignment defaults, model allowlists, allowed/default reasoning effort and source-template metadata are preserved. A synthetic credential sentinel is absent from every decompressed package entry and the destination. Missing target dependencies refuse authorization/activation or the selected route request without trying a fallback; invalid model/effort choices remain refused.
Local validation passed nine backup tests, lint, format and typecheck; the final restored-plan case was also rerun alone. Linux full verification passed on
0c205d9e. #886's real Generation 72 authorization/activation/reply and cold-restart reply evidence remains applicable. Additionally, read-only queries through the actual target Host's public model endpoints matched the stopped source database's template and plan exactly, with no model repair needed.Remaining scope: Human review of this test-only PR. The final Settings visual QA gaps disclosed for #886 remain recorded there; this PR does not claim new screenshots or UI interaction coverage. Human authorized #1195's merge, not this subsequent PR's merge or a release.
DoodleBears commentedon Oct 8, 2026
Agent work outcome — completed after Human-authorized merge
codex/local/01a11b43-e3b9-79b2-a5d5-bf23b485909bbe804da7, closing Tracer: Preserve model plans in Profile Backup only #505.Human asked whether E2E had been tested and authorized merge if sound. The owner-level full backup/restore/cold-restart regression and reused real DSH authorization/reply/cold-restart evidence from #1195 were distinguished from the outstanding Settings visual QA gap before merge. Actual restored Host model endpoints also matched the stopped source exactly. Exact-head Linux full verification passed: 3333 tests passed, nine skipped; no unresolved review threads were present.
This commit changes tests only. Remaining Settings interaction/screenshots stay documented under #886/#1195; no new UI E2E capture is claimed. No release was performed.