Skip to content

What actually conflicts between two concurrent devlaunch efforts on one host? #95

Description

@blooop

Question

What actually conflicts today when two devlaunch efforts run on one host, and
which of those conflicts does a nested Docker daemon fix?

The destination is "several branches developed and e2e-tested concurrently
without conflict", but the conflicts have never been enumerated, and the repo
already carries two isolation mechanisms that overlap:

  • Per-branch workspaces. dl owner/repo@branch already gives each branch its
    own clone, workspace id and container. That is isolation the host already has.
  • Scratch XDG dirs. CLAUDE.md documents
    XDG_CACHE_HOME=/tmp/dl-scratch/cache XDG_CONFIG_HOME=/tmp/dl-scratch/config dl-next ...
    and is explicit that this "isolates the bookkeeping, not the machine — dl
    drives devpod and docker on the host either way, so the workspaces a scratch
    run creates are real ones that devpod list shows".

So enumerate the real collision surface and attribute each item. Candidates to
confirm or dismiss from the source, not from memory: metadata.json and the bare
clone cache under XDG_CACHE_HOME; the shared devpod list namespace and
workspace-id derivation (devlaunch/workspace_id.py); container name and port
collisions on the host daemon; the bare-clone directory layout; the host's
~/.ssh config entries for *.devpod.

Then say, per item, which of the three mechanisms resolves it — per-branch
workspace, scratch XDG dirs, or nested daemon — and whether any of the three is
made redundant by another. Principle 2: if two mechanisms cover the same
collision, the map should end up recommending one.

This ticket is deliberately unblocked: it scopes what the prototypes downstream
are allowed to conclude, and it can be answered by reading the tree.

How the outcome gets tested. No code; the answer is a table on this ticket
that later tickets cite. Its claims about devlaunch's behaviour must each name
the file and line they come from.

Activity

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

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions