[GH-ISSUE #70] Cannot Change Repo Between Runs #23

Closed
opened 2026-02-27 07:20:02 +03:00 by kerem · 3 comments
Owner

Originally created by @sibblegp on GitHub (Feb 6, 2026).
Original GitHub issue: https://github.com/KeygraphHQ/shannon/issues/70

So after I started a run against one piece of software, I changed REPO=.... to a different repo, changed the host, and wanted to audit that piece of software.

Except that it still used the source from the first time I ran REPO=.

I can see that it's using /target-repo as the repoPath. Is this in the docker image it creates? How do we run this against multiple repos?

Thanks!

Originally created by @sibblegp on GitHub (Feb 6, 2026). Original GitHub issue: https://github.com/KeygraphHQ/shannon/issues/70 So after I started a run against one piece of software, I changed REPO=.... to a different repo, changed the host, and wanted to audit that piece of software. Except that it still used the source from the first time I ran REPO=. I can see that it's using /target-repo as the repoPath. Is this in the docker image it creates? How do we run this against multiple repos? Thanks!
kerem closed this issue 2026-02-27 07:20:02 +03:00
Author
Owner

@chichi13 commented on GitHub (Feb 8, 2026):

@sibblegp from what I understand :

  • You should stop shannon-worker-1 between run, if not, the /target-repo will remain the same
  • Yes /target-repo is your repo mounted (bind mount) in the container:
❯ docker inspect shannon-worker-1 --format '{{json .Mounts}}' | jq
[
  ...
  {
    "Type": "bind",
    "Source": "/Users/.../your-repo",
    "Destination": "/target-repo",
    "Mode": "rw",
    "RW": true,
    "Propagation": "rprivate"
  }
]
<!-- gh-comment-id:3866764752 --> @chichi13 commented on GitHub (Feb 8, 2026): @sibblegp from what I understand : - You should stop `shannon-worker-1` between run, if not, the `/target-repo` will remain the same - Yes `/target-repo` is your repo mounted (bind mount) in the container: ```bash ❯ docker inspect shannon-worker-1 --format '{{json .Mounts}}' | jq [ ... { "Type": "bind", "Source": "/Users/.../your-repo", "Destination": "/target-repo", "Mode": "rw", "RW": true, "Propagation": "rprivate" } ] ```
Author
Owner

@Yash-xoxo commented on GitHub (Feb 9, 2026):

Hey @sibblegp,

Yeah, this happens because the /target-repo bind mount persists in the shannon-worker-1 container between runs.

Quick Fix

Just restart the worker container before changing repos:

docker compose down shannon-worker-1
# Change your REPO env var
docker compose up -d

Or if you want a clean slate:

docker compose down
# Update REPO
docker compose up -d

What's Happening

The /target-repo directory is a bind mount from your first repo's location. When you change the REPO env var, the orchestrator might restart, but the worker container keeps the old mount unless you explicitly recreate it.

Looks like @ChinmayShringi's PR #84 should fix this by detecting when REPO changes and automatically refreshing the worker. Once that's merged, you shouldn't need to manually restart anymore.

Until then, just docker compose down between different repos and you're good to go!

<!-- gh-comment-id:3872111856 --> @Yash-xoxo commented on GitHub (Feb 9, 2026): Hey @sibblegp, Yeah, this happens because the `/target-repo` bind mount persists in the `shannon-worker-1` container between runs. ## Quick Fix Just restart the worker container before changing repos: ```bash docker compose down shannon-worker-1 # Change your REPO env var docker compose up -d ``` Or if you want a clean slate: ```bash docker compose down # Update REPO docker compose up -d ``` ## What's Happening The `/target-repo` directory is a bind mount from your first repo's location. When you change the `REPO` env var, the orchestrator might restart, but the worker container keeps the old mount unless you explicitly recreate it. Looks like @ChinmayShringi's PR #84 should fix this by detecting when `REPO` changes and automatically refreshing the worker. Once that's merged, you shouldn't need to manually restart anymore. Until then, just `docker compose down` between different repos and you're good to go!
Author
Owner

@ezl-keygraph commented on GitHub (Feb 9, 2026):

Thanks for flagging! This should be fixed with #107

  1. Copy the target repo to ./repos from project's root or clone the target repo into the ./repos folder
  2. Pass the repo name of the target repo in the REPO= flag
./shannon start URL=https://example.com REPO=repo-name
<!-- gh-comment-id:3873354154 --> @ezl-keygraph commented on GitHub (Feb 9, 2026): Thanks for flagging! This should be fixed with #107 1. Copy the target repo to `./repos` from project's root or clone the target repo into the `./repos` folder 2. Pass the repo name of the target repo in the `REPO=` flag ``` ./shannon start URL=https://example.com REPO=repo-name ```
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/shannon-KeygraphHQ#23
No description provided.