Skip to content

Profile authority shape change forces wipe --all instead of a scoped reset #2877

Description

@ScriptedAlchemy

Problem

A profile authority (~/.tracedecay/global.db: project registry, profile configuration, usage accounting) whose persisted shape this binary refuses forces tracedecay wipe --all --yes, which deletes every project's code index, graph and session stores too.

Reproduction on origin/master (896d03f) with an isolated profile: init a git project, stop the daemon, give global.db the v1.0.0-beta.63 graph_scopes shape (with db_relpath, the shape #2747 retired), restart the daemon:

$ tracedecay tool tracedecay_search --args '{"query":"probe","format":"json"}'
Error: tracedecay_search refused the request (application.surface.reset_required): The application store requires an explicit reset
   ("detail": null — no authority, no remedy)

$ tracedecay doctor
  ! ... The project registry requires an explicit reset with `tracedecay wipe --all --yes`: database error: table 'graph_scopes' has an incompatible number of columns ...

$ tracedecay wipe --stale --yes
Error: config error: profile authority requires reset (project registry persisted shape requires reset: database error: table 'graph_scopes' has an incompatible number of columns (operation: validate global database authority schema)) and is not reset on its own; run `tracedecay wipe --all --yes`. Nothing was wiped.

The daemon log records store_reset_required store=profile authority authority=project registry remedy=tracedecay wipe --all --yes.

Expected

Like the session stores (#2613, #2648), the profile authority is a scoped-reset store:

  • reset_required_stores lists it with remedy tracedecay wipe --stale --yes;
  • wipe --stale --yes deletes exactly global.db (+ -wal/-shm), leaves every other profile file byte-identical, and the daemon recreates it empty;
  • each project store records its own root and identity, so the projects are registered again from their store manifests (exact tracedecay init <root> commands printed), with no migration and no re-index;
  • refusals name the authority and the scoped command instead of a detail-less application.surface.reset_required.

The remedy text says what the reset loses (registry, profile configuration, usage accounting) and what it keeps.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions