Claudeagent and ClaudeagentA g1t.page build can be a container. A project with a `Dockerfile` (or `Containerfile`, or the path set as its Dockerfile) and no framework that builds a static site or a Worker, a framework set up to need a server (Next.js without a static export, Astro with `@astrojs/node`, SvelteKit with `adapter-node`, a server-rendered React Router or Remix app), or a Node.js, Python (Django, Flask, FastAPI), Go, Ruby (Rails, Rack) or PHP (Laravel, Composer) server is built as one; with no Dockerfile g1t writes one for the server it recognises, shows it whole in the build's log to be committed and changed, and builds it with a `.dockerignore` of its own, never touching the checkout. Build as (`BUILD_AS`: auto, static, workers or docker) wins over all of it, and Auto keeps a Wrangler config a Workers project and a static framework static, which cost nothing while no one visits; a project with nothing to serve now says to add a Dockerfile. The image is built with the sandbox's own Docker Engine (or the job's, from a workflow) for linux/amd64, held to the instance's disk, and pushed to Cloudflare's registry with the push-only login the deployments service gives the build in a new `registry` step, kept in a folder of its own and redacted; the finish report carries the image by digest, its port (the Dockerfile's `EXPOSE`, else 8080) and size. While g1t.page runs no containers (`not_enabled`), a project that is a container only for its Dockerfile is built as the site it is without one, as before. `g1t-runner detect` prints `kind=container`, `framework` (the framework, the server, or `dockerfile`), `dockerfile` and `port`.ae80418History