Skip to content

Create PersonaBot from a Git Memory repository (HTTPS or SSH) #298

Closed

Description

@DoodleBears

Parent

Part of #114. Related to #115 and distinct from #187, which covers ongoing Memory Sync.

What to build

While creating a PersonaBot, the Human chooses Create empty Memory or Import from Git repository. For import, they enter an HTTPS or SSH Git URL. BotHarness checks that Git is available, clones into the new Bot-owned Memory Repository, checks out the remote default branch, and creates the Bot only after success. The first Orchestrator Session can read the imported working tree immediately; Channel Memory and Git graph show that repository.

Acceptance criteria

  • The existing empty creation path still works; its current Git prerequisite remains enforced.
  • Choosing Git import accepts HTTPS, ssh://, and standard git@host:owner/repo.git URLs. The Host checks for Git before cloning; when Git is absent, the form shows a clear install/configure-Git error and creates no Bot.
  • Public and Host-authenticated private repositories use the Host's existing Git credential helper or SSH agent/known_hosts. The form never asks for a token or private key, and credential-bearing URLs are refused so secrets are not stored in Git config.
  • Native Git clone has bounded time and noninteractive authentication. The initial checkout, full history, refs, code, and binary files remain normal Git data; no separate Memory acceptance step is introduced.
  • A malformed URL, missing credential, missing repository, or clone failure leaves no registered PersonaBot or partially adopted Memory Repository. Retry with a valid URL succeeds without overwriting another Bot.
  • A reachable DSH QA page demonstrates creation from a real HTTPS repository through the existing Host/client path; a real LLM-backed Orchestrator reads an imported file, and refresh/restart preserve the Memory list and Git graph. SSH handling and failure paths receive focused coverage and Human QA steps.

Blocked by

Scope

Creation-source choice only. Once the Bot exists, its Orchestrator manages later fetch, merge, reset, and branch changes with native Git and DSH Ask Question when needed. This ticket does not add a model-facing Memory import tool or a credential collection UI.

Activity

  1. added this to the v1.0 milestone on Sep 25, 2026
  2. added
    ready-for-agentFully specified, ready for an AFK agent
    area:fullstackEnd-to-end Host and Client implementation
    feature:memoryPersonaBot Memory Repository and Memory Service
    scope:tracerHuman-testable implementation slice
    on Sep 25, 2026
  3. DoodleBears commented on Sep 25, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a0cde3-1621-7382-96a1-852758cedfc0 (not a DSH Session)
    • Issue scope: Initial PersonaBot creation from an HTTPS or SSH Git URL, with Host Git preflight, safe failure, and one real Channel QA path.
    • Branch: codex/298-git-create
    • Started: 2026-09-25 17:07 UTC
    • State: active
  4. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Sep 25, 2026
  5. DoodleBears commented on Sep 25, 2026

    @DoodleBears
    ContributorAuthor

    Agent progress

  6. DoodleBears commented on Sep 25, 2026

    @DoodleBears
    ContributorAuthor

    Agent QA follow-up

    • Agent task: codex/local/01a0cde3-1621-7382-96a1-852758cedfc0
    • Human confirmed that importing the public Git repository works and reported an unexpected approval while reading its Memory.
    • Draft PR feat(memory): create PersonaBots from Git repositories #301 now includes commit 9c23867: native file reads remain path checked and direct; only literal ls -la or pwd in the Orchestrator's canonical Memory directory bypasses the approval card. Other Shell commands still ask.
    • Verification: 937 automated tests passed. A real DSH model Session read the imported README and ran ls -la with no approval; ls -la /tmp created an approval card and was rejected without execution.
    • Awaiting Human QA on the updated isolated page; PR remains Draft and stacked on Make Git working tree the current PersonaBot memory #297.
  7. DoodleBears commented on Sep 25, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Agent: Codex
    • Task: codex/local/01a0cde3-1621-7382-96a1-852758cedfc0 (not a DSH Session)
    • State: completed
    • PRs: #301 merged into #297, then Make Git working tree the current PersonaBot memory #297 merged into main as 680ad04.
    • Delivered: empty or Git URL creation; Host Git preflight and staged clone; safe failure and retry; imported worktree immediately available to native file tools, Channel Memory, and Git graph. No credential entry in the creation UI.
    • Verification: public HTTPS import, real LLM read and reply, approval boundary, Host restart, and Human QA passed. Foundation: Git working tree as PersonaBot Memory #115 remains open for audit actor identity and recovery behavior.
  8. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Sep 25, 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

    area:fullstackEnd-to-end Host and Client implementationfeature:memoryPersonaBot Memory Repository and Memory Serviceready-for-agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation slice

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions