Skip to content

Document that pixi run dl is the only build inside the devcontainer #116

Description

@blooop

Question

Document the one build that exists inside the devcontainer, and stop AGENTS.md
implying the host's two-install convention applies in there.

Graduated from the which-build ticket.
The decision is made; this is the writing-down.

The answer: inside, run pixi run dl and pixi run aid. There is exactly one
build in there and it is the working tree — pyproject.toml declares
devlaunch = { path = ".", editable = true } and postCreateCommand runs pixi install, so the container comes up with ./dev.sh's job already done.

The forcing constraint is devpod, not naming. dl shells out to a bare
devpod from PATH (dl.py:843,866) and refuses cleanly when it is absent
(:72). Inside the container devpod exists only at
.pixi/envs/default/bin/devpod. So a devlaunch installed anywhere else would not
merely be redundant — it would have no devpod to drive and would die on the
lookup. Corroborated independently by
the in-container prototype, whose
nested ProxyCommand names exactly that path.

./dev.sh does not work in there, and not for the reason the question
guessed: it exits at its first check because uv is absent from the container
(not in the Dockerfile, not in [tool.pixi.dependencies], not in the claude-code
feature's install). The XDG_DATA_HOME worry was moot in the other direction —
dev.sh hardcodes ${HOME}/.local/share and the container sets exactly that path.

The proposed wording is in #99's resolution comment. Take it from there — but
with the two amendments below.

Amendment 1 — drop the proposed final paragraph

#99's draft ends with a paragraph explaining that the scratch-XDG recipe is
host-only and that XDG_CONFIG_HOME is load-bearing inside the container.
Do not include it. It has been superseded by
the credentials ticket, which
established that the XDG_CONFIG_HOME half guards nothing on the host either
and is being deleted outright by
#115 rather than caveated.

Once #115 lands there is no XDG_CONFIG_HOME in the instruction to warn about, so
the paragraph would document a hazard that no longer exists. Two closed tickets
pointed opposite ways here and the later, stronger finding wins: deleting beats
caveating
, which is #115's own stated reasoning and principle 2's.

Amendment 2 — fix a stale claim while you are in this file

AGENTS.md still says --version reports no provenance. That is already false on
main: PR #85 landed (dev, editable from <tree>). The new section's own example
depends on it being true, so it cannot be left contradicting itself two paragraphs
apart.

The metal obligation this ticket carries

#99 could not run these — it was a reading ticket and other agents held the host's
Docker. Before this closes, paste into the PR:

  • pixi run dl --version from inside the container,
  • one pixi run dl <repo> from inside,
  • command -v uv || echo none, confirming the uv-absent claim on metal.

CLAUDE.md is a symlink to AGENTS.md — edit AGENTS.md.

This is a wayfinder:build ticket: go through /tdd. Most of it is prose and
does not take a unit test; say plainly in the PR which parts are covered and which
rest on the pasted transcripts, rather than inventing a test for a paragraph.

Blocked on #115 — it edits
the same section of the same file. Sequencing them avoids a conflict and makes
amendment 1 unambiguous.

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