Skip to content

Tracer: persist PersonaBot registry and applied model plans in SQLite #884

Closed

Description

@DoodleBears

Parent

Profile Portability implementation #882; accepted design #76 / PR #881.

What to build

Human creates and edits a PersonaBot and customizes its independent Assignment Model Plan in the existing DSH UI, then restarts the Host and sees the same identity, appearance, permissions, independent applied plan. These operational facts are owned by the Profile SQLite database, so future complete-core backup does not miss the current JSON-backed registry.

Soul/Memory stays human-readable and Git-backed. This slice is a real existing-UI persistence transition, not a disconnected migration helper or an implemented backup feature.

Acceptance criteria

  • Owning Registry module retain their command/query interfaces and own their tables through the existing database owner, Schema Generation and Profile Writer Lease; callers do not receive generic SQL.
  • Existing valid registry import once, preserving stable identities, appearance snapshots, pause/Browser/Computer access flags, model routes, Assignment allowlists/defaults, effort choices, plan revisions and independent applied Bot snapshots. Migration-source JSON cannot become a normal-runtime fallback or competing authority after successful import.
  • Migration validates source data and commits coherent records with its durable marker; interruption or invalid records never become a silently empty registry. Fail closed with bounded diagnostics and a documented recovery path, retaining Soul and legacy files until verified cutover.
  • All current production create/import-from-Git, edit, model-plan apply/edit, pause/access and existing authorized remove paths use the owning database modules. Do not expand destructive deletion policy; 设计:PersonaBot / Channel 破坏性删除与 Purge 依赖契约 #138 owns that design.
  • Existing model permission/revision checks remain authoritative. Applied plans retain their independence from later template edits. No credentials enter the records.
  • Database recovery or a competing writer prevents operational mutation and Bot execution; reads/recovery diagnostics must not mount a stale JSON writer.
  • Real DSH E2E migrates a pre-existing Profile, edits a Bot and its plan through production seams, cold-restarts and verifies unchanged identity/persona and saved plan plus a real model reply. Include screenshot/recording and matched before/after or recovery evidence where interactions change; do not infer UI success from database tests alone.
  • Focused migration/crash/revision/second-writer tests and repository checks pass; update current architecture and bilingual Release Ledger around the actual implemented authority.

Blocked by

Non-goals

No Profile Backup format, Session-log migration, new preset behavior, new permissions, automatic backup, retention or destructive-policy redesign.

Activity

  1. added this to the v1.1 milestone on Oct 5, 2026
  2. added
    ready-for-agentFully specified, ready for an AFK agent
    area:fullstackEnd-to-end Host and Client implementation
    feature:exportExport, import, backup, and transfer
    scope:tracerHuman-testable implementation slice
    on Oct 5, 2026
  3. DoodleBears commented on Oct 5, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a0f25f-2150-75e3-8895-23d35394b8d8 (not a DSH Session)
    • Issue scope: owning Registry SQLite persistence, validated one-time legacy import, existing identity/model/access commands and real DSH restart verification. No Profile Backup, roster migration or destructive-policy expansion.
    • Branch: codex/884-registry-database
    • State: active

    #888 merged after full exact-head CI and Human approval. No prior #884 claim or implementation PR was present when inspected. This slice will stop at its own PR for Human QA; #883's screenshot exception does not automatically apply here.

  4. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 5, 2026
  5. self-assigned this
    on Oct 5, 2026
  6. DoodleBears commented on Oct 5, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    The Registry now owns identity, saved appearance, access switches and independent applied model plans in Profile SQLite, with one-time atomic records/marker import and retained source/Soul files. Real production DSH API verification covered a generation-54 Profile upgrade, edits, reusable-template independence, cold restart with damaged QA legacy files and two actual canonical model replies. Evidence is linked in the PR and explicitly records browserInteractionVerified:false.

    The final local suite passed: 313 files, 2560 tests passed and 9 skipped. Typecheck, lint, format, build, release checks and the 326-page docs build passed. Independent exact-head Standards review has 0 remaining findings; Spec review has 0 implementation findings and 1 outstanding genuine visual acceptance requirement. Exact-head remote CI passed its complete lint, format, typecheck, test, build and docs workflow: https://github.com/BotHarness/BotHarness/actions/runs/37339735472 .

    Remaining acceptance: genuine screenshots/recording and Human UI QA. The browser tool denied the local QA URL and prohibited alternate capture paths; #883's explicit screenshot exception does not apply to this issue. The isolated QA Profile remains available through private local instructions. No simulated screenshot evidence or new destructive-policy behavior is introduced.

    Implementation is handed to Human review in Draft form; this issue stays open. No merge or #885/#886 work will begin without Human approval.

  7. added and removed
    ready-for-agentFully specified, ready for an AFK agent
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 5, 2026
  8. DoodleBears commented on Oct 5, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — merged

    • Task: codex/local/01a0f25f-2150-75e3-8895-23d35394b8d8 (not a DSH Session)
    • State: completed implementation; Human approved merge after explicit disclosure of missing screenshots
    • PR: Persist PersonaBot Registry and independent model plans in SQLite #891, merged at reviewed head 3601a9df98864367980bebb70aa6e062b27bf9e2
    • Squash commit: e3dd8a5bac68c0e36eed4fd98b2f34691988617f

    Full exact-head CI and 2560 local tests passed. Genuine screenshots were not captured; this closure records the Human-approved delivery exception, not a completed browser/UI verification. The public PR retains the limitation. The isolated verification Profile is preserved. No Profile Backup or destructive-policy expansion is claimed.

  9. moved this from Todo to Done in Roadmapon Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:fullstackEnd-to-end Host and Client implementationfeature:exportExport, import, backup, and transferready-for-humanRequires human implementationscope:tracerHuman-testable implementation slice

Type

No type

Projects

  • Status
    Done

Relationships

None yet

Development

No branches or pull requests

Issue actions