Skip to content

Storage: import an existing SQLite store into the managed PostgreSQL of ADR-1114 automatically, with no user operation #745

Open

Description

@cdeust

Summary

Every existing store moves automatically into the pg0 server from #744 on the first start after the update, with no user operation: the SQLite store, a local Homebrew/other PostgreSQL, and remote or team database_url values. Owner decision 2026-10-13: two systems in parallel are not maintainable, and leaving remote URLs in place gives erratic behaviour under restrictive sandboxes.

Evidence

  • Today the backend is chosen by user_config.database_url (.claude-plugin/plugin.json:24-39): empty -> SQLite ~/.claude/methodology/memory.db, non-empty -> that PostgreSQL.
  • No SQLite -> PostgreSQL importer exists in the repository.
  • pg0 ships pg_dump/pg_restore 18, which can dump a PG 17 server.
  • Size reference: the maintainer's store is 4.3 GB / 66,959 memories.

Expected

  • SQLite: a new importer reads memory.db into pg0.
  • Existing PostgreSQL (local or remote): pg_dump + pg_restore with pg0's tools.
  • Per-table row counts compared before switching; a marker prevents re-running; the source is never deleted or modified.
  • On any mismatch or error: loud failure, no switch, no silent fallback.
  • Visible progress during the one-time migration.
  • After migration database_url no longer selects the backend.

Acceptance (in the #740 environment): SQLite, Homebrew PG 17 and remote PG cases green; an interrupted migration resumes or restarts cleanly; source stores byte-identical afterwards.

Activity

  1. cdeust commented on Nov 6, 2026

    @cdeust
    OwnerAuthor

    CI autopilot : mise en hold — la prémisse pg0 est caduque, décision du propriétaire nécessaire.

    Cette issue porte sur pg0. L'ADR-1114 (acceptée, docs/adr/ADR-1114-the-plugin-runs-its-own-postgresql-from-pinned-theseus-binaries.md, décision 1 « One system, no pg0 ») a remplacé pg0 par les binaires theseus épinglés (18.6.1 sur Linux GNU, 18.6.0 sur macOS) avec pgvector 0.8.7 ; la PR pg0 #748 n'a jamais été fusionnée et #744 est fermée. Son point 8 dit aussi « No migration in this change » : l'importateur reste à faire.

    À trancher : reformuler cette issue contre le serveur PostgreSQL géré de l'ADR-1114 (et dire si son acceptance dépend toujours de l'environnement #740, qui exige un Mac), ou la fermer. La routine ne réinterprète pas la demande seule.


    Generated by Claude Code

  2. added
    autopilot:holdCI autopilot stood down: a human decision is required
    on Nov 6, 2026
  3. cdeust commented on Nov 12, 2026

    @cdeust
    OwnerAuthor

    Décision : cette issue n'attend plus de réponse du propriétaire.

    Le propriétaire a demandé le 12 novembre 2026 que les issues avancent sans lui ; il ne répondra pas aux questions posées ici. Ce commentaire de cdeust lève le hold et précise la demande. Il vaut pour toute la suite de cette issue.

    • Tranche toi-même chaque question restée ouverte : d'abord une décision écrite et acceptée du dépôt (ADR accepté, docs/), puis ce que le texte de l'issue propose ou exclut, puis les standards du dépôt ; à défaut, la plus petite tranche qui réalise ce que l'issue demande. Une valeur qui manque se mesure, elle ne s'invente pas.
    • Écris la décision dans un commentaire marqué <!-- ci-autopilot decision --> (ce qui est retenu, la raison et sa source, ce qui est écarté, comment revenir en arrière), puis livre la tranche dans une PR. Une décision écrite ne se rejoue pas aux passages suivants.
    • Ne repose pas autopilot:hold pour une question : seulement pour l'irréversible, un accès que tu n'as pas, une dépendance nommée encore ouverte ou le plafond de tentatives, en nommant exactement ce qui manque.
    • Jamais de tag, de release, de montée de version du projet ni de déclenchement manuel d'un workflow.

    Règle complète : #343 (comment)

    Écrit par la session « écosystème autonome » sur instruction du propriétaire (12 novembre 2026).


    Generated by Claude Code

  4. removed
    autopilot:holdCI autopilot stood down: a human decision is required
    on Nov 12, 2026
  5. cdeust commented on Nov 12, 2026

    @cdeust
    OwnerAuthor

    Hold autopilot:hold levé : un commentaire de cdeust (« Décision : cette issue n'attend plus de réponse du propriétaire », 12/11/2026) a été posté après la pose du hold.


    Generated by Claude Code

  6. cdeust commented on Nov 12, 2026

    @cdeust
    OwnerAuthor

    Décision : l'issue est reformulée et réduite à ce que l'ADR-1114 laisse ouvert. pg0 est abandonné (ADR-1114, accepté).

    • Ce qui est retenu. L'import d'un store SQLite existant vers le PostgreSQL géré, puis la bascule du marqueur sur managed. C'est ce que l'ADR-1114 annonce sans le livrer (décision 8 : « An existing SQLite store keeps its marker; a later importer moves it and flips the marker to managed »). Les exigences de l'issue s'y appliquent telles quelles : comptes de lignes par table comparés avant la bascule, marqueur qui empêche de rejouer, source jamais modifiée ni supprimée, échec bruyant sans bascule ni repli silencieux, progression visible, reprise propre après une interruption.
    • Ce qui est écarté. (1) La migration d'un PostgreSQL configuré, local ou distant, et « after migration database_url no longer selects the backend » : l'ADR-1114, décision 7 (a), postérieure à l'issue et amendée par le propriétaire, dit qu'une base configurée gagne toujours et que rien de géré n'est alors installé ni démarré. (2) Toute mention de pg0.
    • Source. ADR-1114, décisions 7 et 8.
    • Recette. Le cas SQLite de l'issue, dans l'environnement que la CI sait lancer (job managed-pg) ; l'environnement de Reproduce the org-managed work Mac locally (enforced sandbox, no Homebrew, no model downloads) as the acceptance environment #740 reste un accès qu'un agent n'a pas.
    • Pour revenir en arrière : un ADR qui amende la décision 7 (a) de l'ADR-1114 rouvre la partie écartée.

    Écrit par la session « écosystème autonome » sur instruction du propriétaire (12 novembre 2026).


    Generated by Claude Code

  7. changed the title [-]Storage: migrate every existing store (SQLite, local and remote PostgreSQL) into pg0 automatically, with no user operation[/-] [+]Storage: import an existing SQLite store into the managed PostgreSQL of ADR-1114 automatically, with no user operation[/+] on Nov 12, 2026
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

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions