Skip to content

Tracer: delete a PersonaBot with explicit optional Memory erasure #896

Closed

Description

@DoodleBears

Delivered — 2026-10-08

Merged in #923 at 6f3a2bad3b647ef24f0ba4e332618d447842e5a6; final reviewed head f140fe07 passed GitHub verify (3,131 tests passed, 9 skipped), all required checks and build. Project V1 · Memory is Done; Milestone remains v1.1.

Two-axis final review has zero remaining findings. Genuine light/dark screenshots, default/explicit Memory scope, cancel/reopen reset and native Windows folder opening are verified. Actual deletion/retention/erasure/drain/cold restart were exercised through the authenticated Host API. The PR and evidence README disclose the different screenshot viewport dimensions and lack of a separate Human visual sign-off. The Human explicitly authorized this continuation to review, add screenshots and merge if sound, superseding the prior paused handoff; no separate Human sign-off is claimed.

Original acceptance/specification follows for traceability. This delivery does not implement full Profile Backup or Messaging Content Purge.


Parent

Native sub-issue of #138; Profile portability coordination #882. Milestone v1.1, Project V1 · Memory. Target contract: ADR-0130 (design PR linked from #138).

Observable behavior

Human opens Delete PersonaBot, inspects its actual Memory Repository or opens that folder on the Host, and confirms deletion with an Also delete Memory files checkbox that starts unchecked. Unchecked deletion retains the repository and readable historical attribution; a checked and revalidated exclusive repository is removed, with honest partial-failure feedback. A replacement Bot receives a fresh identity and no inherited authority.

Acceptance

  • Existing Human deletion entry opens one native confirmation showing Bot identity, resolved Memory location and a bounded dependency report. Also delete Memory files is unchecked on every opening; cancellation, reopening and failure never save the selection as a default. Final confirmation visibly states the selected scope.
  • Open Memory folder uses the existing native Host file-opening capability. Provide a one-click installed file-manager action and access to available folder handlers; disclose that remote Web opens on the Host. Missing path/handler is explained without creating a directory. Opening does not select erasure or execute deletion.
  • Registry/lifecycle deep modules persist a deleted-identity tombstone, stable historical attribution and the retained repository locator/status; historical Session Ownership, Reports, Channel content and accounting remain inspectable. Normal unarchive/restart/late delivery cannot reactivate it; same-name creation cannot inherit its ID, grants or routes.
  • Before completion, close new admissions, wakes, Session creation/resume, saved approval applicability and external effects, then stop/drain the owned native AgentHandle tree. Preserve actual already-issued model/provider/Outbox outcomes, do not invent successful cancellation or disturb unrelated Bots/provider accounts.
  • Unchecked deletion retains complete Soul/Memory including uncommitted and Git files. Checked deletion revalidates the reviewed dedicated/exclusive repository and ownership, including custom locations outside the default layout. Shared/overlapping paths, path drift, symlink escape, unresolved ownership and unrelated directories cannot be recursively removed; explain why the checkbox cannot execute while ordinary deletion remains possible.
  • The checked scope never deletes Workspace contents, DSH Session backend files, Git remotes, shared credentials, external exports or manual backups, and does not silently run Messaging Content Purge/Purge Everywhere. Preview discloses copies remaining in DSH transcripts and outside control.
  • Crash/failure reconciliation is owned and bounded: no false atomic file/database claim or false success if Memory cleanup fails; preserve the reviewed locator and incomplete cleanup status for explicit repair. Repeated commands and cold restart cannot delete another path or revive execution.
  • Complete Profile Backup can enumerate retained repositories for deleted identities and distinguish intentionally erased repositories from missing required data; do not implement backup here or leave retained custom repositories unlocatable.
  • Real DSH E2E covers unchecked retention, checked exclusive removal, cancel/reopen, folder opening, shared/custom-path refusal, restart, stale scope and injected cleanup failure. Use disposable QA repositories only, include genuine before/after screenshots or recording in the PR, focused regressions and required checks; pause for Human QA.

Blocked by

Non-goals

Messaging Content Purge, a general filesystem deletion endpoint, broad Purge Everywhere, native Session erasure, provider-side recall, full backup or automatic file pruning. Memory erasure does not promise removal from older offline backup files.

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
    scope:tracerHuman-testable implementation slice
    feature:identityPersonaBot identity, lifecycle, and deletion
    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: existing PersonaBot Profile deletion entry, default-unchecked Memory erasure and native folder action, owning Registry/lifecycle tombstone and gate handling, bounded repository cleanup/retained locator, focused regressions and real isolated DSH verification.
    • Branch: codex/896-personabot-deletion
    • Started: 2026-10-05 18:06 UTC
    • State: active

    #138 merged via #898 after Human approval and complete exact-head CI. #896 had no existing comments/claim, assignee or open PR at preflight. No Messaging Content Purge, native Session erasure or full Profile Backup is implemented here. All destructive QA uses disposable task-owned repositories. Prior browser-tool denial and prohibition on alternate capture routes are preserved; any missing genuine visual evidence will remain explicit at the PR handoff.

  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

    • Task: codex/local/01a0f25f-2150-75e3-8895-23d35394b8d8 (not a DSH Session).
    • State: paused for Human QA, not complete.
    • Draft PR: Confirm PersonaBot deletion and optional Memory erasure #923
    • Head: baa425191b11ed0f432df7678576940ca4521433.
    • Implemented: Profile confirmation with default-unchecked Memory erasure, native Host folder capability, terminal Registry identity, native execution/approval fence and owned Agent drain, retained history/usage, exclusive Memory cleanup and honest incomplete/original-scope retry.
    • Verified: real DSH model reply, native approval-waiting Agent stop, retention/erasure, late input/resume denial, cold restart, stale scope, escaping symlink refusal, injected filesystem failure/recovery, plus exclusive custom erasure and unproven/overlapping custom-root refusal through the real restarted Host. Custom fixtures use the canonical Registry API with Host stopped; no SQL patch or second authority.
    • Required local checks passed: lint, format, typecheck, build; full integrated suite 317 files / 2,591 tests passed, 5 files / 9 tests skipped. Final evidence-only changes passed lint/format. Independent Standards and Spec reviewed final head with zero actionable findings. Subsequent guide-only main integration passed 5 affected documentation tests and the 358-page docs build, with no production code changes. GitHub CI remains a separate pending gate.
    • Remaining acceptance: rendered confirmation and actual cancel/reopen, native OS folder opening, matched light/dark before/after screenshots and Human UI QA. The browser tool previously refused the local QA surface and prohibited alternate navigation/capture; no workaround was used. API target metadata and consent unit tests are not visual acceptance.
    • No merge of this PR and no Tracer: purge Channel content with a durable restore-safe ledger #897/Tracer: export a complete Profile and restore as new with explicit activation #886 implementation before the Human QA gate. 设计:PersonaBot / Channel 破坏性删除与 Purge 依赖契约 #138 design is already merged via Define explicit Memory erasure and history-preserving deletion #898; Tracer: delete a PersonaBot with explicit optional Memory erasure #896 stays open.
  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 8, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim — PR #923 review and UI acceptance

    • Agent: Codex
    • Task: codex/local/01a119e5-5192-7832-a281-213e81f6118c (not a DSH Session)
    • Issue scope: Human-authorized continuation of Confirm PersonaBot deletion and optional Memory erasure #923: review current code, integrate current main if needed, capture real matched UI evidence and verify native folder/cancel/reopen behavior; merge only after acceptance and checks pass. QA uses disposable task-owned Bots/repositories. No Channel Purge or Profile Backup implementation.
    • Branch: codex/896-personabot-deletion (isolated review checkout)
    • Started: 2026-10-08 UTC
    • State: active

    The previous task explicitly handed off paused-for-Human-QA status with Draft PR #923. The Human has now requested screenshots and authorized merge if verification finds no problem. Existing claim/outcome history is retained.

  9. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 8, 2026
  10. DoodleBears commented on Oct 8, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Task: codex/local/01a119e5-5192-7832-a281-213e81f6118c (not a DSH Session).
    • State: completed.
    • PR: Confirm PersonaBot deletion and optional Memory erasure #923 — merged at 6f3a2bad3b647ef24f0ba4e332618d447842e5a6.
    • Final reviewed/tested head: f140fe07149bb67cddf01449ea3138b45ceee17e.
    • Integrated current main while preserving moved Profile controls, additive schema Generation 66 and deletion telemetry. Fixed deleted Workspace lookup and terminal guards for standing limits/model-plan writes; added regression assertions.
    • Final Standards and Spec reviews: zero remaining findings. GitHub verify passed all gates, including 3,131 tests passed / 9 skipped, build and generated-client consistency; 24 focused deletion/Profile tests passed locally.
    • Added five genuine GitHub-rendered screenshots (all image URLs verified), Windows cancel/reopen/default/explicit-scope checks and actual native Explorer folder opening. Repeated real model/Host retention, erasure, native approval drain and cold restart. Evidence limitations remain explicit in the PR/README; no separate Human visual sign-off is claimed.
    • Tracer: delete a PersonaBot with explicit optional Memory erasure #896 is closed and its existing V1 · Memory Project item is Done. No remaining implementation scope under this claim; separate Profile Backup/Purge follow-ups remain separate.
  11. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 8, 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:identityPersonaBot identity, lifecycle, and deletionready-for-humanRequires human implementationscope:tracerHuman-testable implementation slice

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions