Repository navigation
Description
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 standardgit@host:owner/repo.gitURLs. 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
- The Git-working-tree Memory behavior in Draft PR Make Git working tree the current PersonaBot memory #297 must pass Human QA and merge. Remaining Foundation: Git working tree as PersonaBot Memory #115 audit/identity work does not block this slice.
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
DoodleBears commentedon Sep 25, 2026
Agent work claim
codex/local/01a0cde3-1621-7382-96a1-852758cedfc0(not a DSH Session)codex/298-git-createfix(memory): keep Git import credentials noninteractive
DoodleBears commentedon Sep 25, 2026
Agent progress
codex/local/01a0cde3-1621-7382-96a1-852758cedfc0fix(memory): allow literal local directory probes without approval
DoodleBears commentedon Sep 25, 2026
Agent QA follow-up
codex/local/01a0cde3-1621-7382-96a1-852758cedfc09c23867: native file reads remain path checked and direct; only literalls -laorpwdin the Orchestrator's canonical Memory directory bypasses the approval card. Other Shell commands still ask.ls -lawith no approval;ls -la /tmpcreated an approval card and was rejected without execution.Merge main into Git working-tree Memory slice
Merge latest main into Memory working-tree slice
DoodleBears commentedon Sep 25, 2026
Agent work outcome
codex/local/01a0cde3-1621-7382-96a1-852758cedfc0(not a DSH Session)docs: start Bot Marketplace as a GitHub-indexed catalog (ADR-0131) (#901