Closes out M1.5. v0.1.0's published image passed the whole end-to-end suite: 9 of 9, in 11m 37s. The tests were the release's own, running over the image as published.
What changes
The Dockerfile's test stage stacks on TEST_BASE. By default that's this build's agent; it can also be a published image. It adds only the test tools (the dev group, through uv export, into the image's environment) and never reinstalls the agent. So what's under test is exactly what was published.
scripts/e2e.sh --image passes NISSE_E2E_MODEL into the container.
The plan marks M1.5 done and records how to run acceptance against a release.
How the acceptance was run
git worktree add /tmp/v010 v0.1.0 # the release's own tests
cp Dockerfile .dockerignore /tmp/v010/ # this PR's Dockerfile
docker build --target test --build-arg TEST_BASE=gitea.dongar.net/dev/nisse-dev:0.1.0 -t nisse-dev:0.1.0-test /tmp/v010
NISSE_E2E_MODEL=qwen3.8-27b-nothink scripts/e2e.sh --image nisse-dev:0.1.0-test
The run reported spending $0.0591 on the test key. That overlapped main's CI checks job (22:55–22:58), whose integration tier uses Haiku on the same key, so it's almost certainly that, not a paid call from the e2e run.
Closes out M1.5. **`v0.1.0`'s published image passed the whole end-to-end suite: 9 of 9, in 11m 37s.** The tests were the release's own, running over the image as published.
## What changes
- **The Dockerfile's `test` stage stacks on `TEST_BASE`.** By default that's this build's agent; it can also be a published image. It adds only the test tools (the dev group, through `uv export`, into the image's environment) and never reinstalls the agent. So what's under test is exactly what was published.
- **`scripts/e2e.sh --image`** passes `NISSE_E2E_MODEL` into the container.
- **The plan** marks M1.5 done and records how to run acceptance against a release.
## How the acceptance was run
```
git worktree add /tmp/v010 v0.1.0 # the release's own tests
cp Dockerfile .dockerignore /tmp/v010/ # this PR's Dockerfile
docker build --target test --build-arg TEST_BASE=gitea.dongar.net/dev/nisse-dev:0.1.0 -t nisse-dev:0.1.0-test /tmp/v010
NISSE_E2E_MODEL=qwen3.8-27b-nothink scripts/e2e.sh --image nisse-dev:0.1.0-test
```
The run reported spending $0.0591 on the test key. That overlapped `main`'s CI `checks` job (22:55–22:58), whose integration tier uses Haiku on the same key, so it's almost certainly that, not a paid call from the e2e run.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
- The Dockerfile's test stage stacks on TEST_BASE: this build's agent by
default, or a published image. It adds only the test tools (uv export
of the dev group into the image's environment), never reinstalling the
agent, so the suite tests the image as published.
- scripts/e2e.sh --image passes NISSE_E2E_MODEL into the container.
- The plan marks M1.5 done: v0.1.0's published image passed the whole e2e
suite (9 of 9, 11m37s), with the release's own tests over it.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes out M1.5.
v0.1.0's published image passed the whole end-to-end suite: 9 of 9, in 11m 37s. The tests were the release's own, running over the image as published.What changes
teststage stacks onTEST_BASE. By default that's this build's agent; it can also be a published image. It adds only the test tools (the dev group, throughuv export, into the image's environment) and never reinstalls the agent. So what's under test is exactly what was published.scripts/e2e.sh --imagepassesNISSE_E2E_MODELinto the container.How the acceptance was run
The run reported spending $0.0591 on the test key. That overlapped
main's CIchecksjob (22:55–22:58), whose integration tier uses Haiku on the same key, so it's almost certainly that, not a paid call from the e2e run.🤖 Generated with Claude Code
https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE