- Add changelog generation task to fetch releases from GitHub and format them for documentation
- Integrate changelog into reference navigation and upgrade script
- Update search highlight colors to purple matching active state
Generated-by: aiautocommit
* Respect configured deploy inputs for config steps
When a config-defined step already has an explicit deploy input, Railpack should not append the implicit deploy output for the entire step. This preserves include filters such as Next.js standalone output selections and avoids copying the full build step into the final image.
Constraint: Config steps without explicit deploy inputs still need the existing implicit deploy output behavior.
Rejected: Change deploy input filter semantics globally | too broad for this bug and risks provider output behavior.
Confidence: medium
Scope-risk: moderate
Tested: go test ./core/generate -run 'TestHasInputForStep|TestGenerateContextKeepsConfiguredDeployInputFilters'
Tested: go test ./core/generate -run TestHasIncludeForStep
Tested: go test ./core/generate
Tested: git diff --check
* fix(generate): respect explicitly configured deploy inputs without implicit steps
- Prevent implicit deploy step outputs from being added when explicit deploy inputs are configured without a spread operator.
- Add comprehensive test coverage for various deploy input and output combinations.
Generated-by: aiautocommit
* feat(examples): respect configured deploy inputs
- Add `/usr/games` to runtime paths to support Debian's cowsay installation location in the config example.
- Assert that unrelated files do not leak through implicit deploy outputs.
Generated-by: aiautocommit
* refactor(generate): check configured deploy inputs for step
Generated-by: aiautocommit
---------
Co-authored-by: Michael Bianco <[email protected]>
* docs: add claude ref to agents
* refactor: simplify DockerignoreContext passing and make it required
* refactor: another take at fixing the initial docker ignore load stuff
* style: whitespace formatting tweaks
I'm not sure how it got into this state :/
* fix: apply dockerignore rules when copying local app context, not later in the build process
* fix: merge dockerignore excludes with top-level railpack.json excludes/includes
* test: top-level railpack.json exclude/include
* docs: update excluding files docs
* test: add negation to an existing dockerignore to expand test coverage
* fix: hack to determine if I'm understanding the llb exclude functionality right
* refactor: remove Includes and instead use negation operators and Excludes
* test: respect dockerignore on initial source load
- Apply exclude and include filters during the initial buildkit context load to improve local build performance
- Support top-level exclude and include configurations in railpack.json
Generated-by: aiautocommit
* feat: respect dockerignore on initial source load
- Load local source layers using the plan package directly to ensure .dockerignore patterns are respected at the buildkit level.
- Prevent unnecessary loading of ignored files like node_modules and virtual environments during local builds.
Generated-by: aiautocommit
* style: formatting updates
* docs(config): update documentation for dockerignore and exclude pattern handling
Generated-by: aiautocommit
* feat(plan): respect dockerignore on initial source load
Generated-by: aiautocommit
* refactor(core): access include rules directly from layer struct
Generated-by: aiautocommit
* feat(buildkit): respect exclude patterns on initial source load
- Apply exclude patterns at the buildkit level during local context loading to prevent transferring unnecessary large directories like node_modules or virtual environments.
Generated-by: aiautocommit
* feat: respect dockerignore on initial source load
Generated-by: aiautocommit
* feat(core): respect dockerignore on initial source load
- Expose the parsed dockerignore context via the build generate context
- Ensure build results preserve the correct dockerignore metadata and excludes on initial load
Generated-by: aiautocommit
* style(docs): fix trailing whitespace in CLAUDE.md
Generated-by: aiautocommit
* feat(core): respect dockerignore on initial source load
- Apply exclude and include filters during buildkit context setup to avoid loading large ignored directories locally.
- Support top-level exclude and include configuration in railpack.json.
Generated-by: aiautocommit
* test(plan): assert all expected empty dockerignore examples are found
Generated-by: aiautocommit
* docs(config): fix typo in excluding-files guide
Generated-by: aiautocommit
* feat(dockerignore): respect dockerignore on initial source load
- Apply exclude and include filters during Buildkit context establishment to drastically improve local build performance.
- Support top-level `exclude` and `include` rules directly in `railpack.json`.
Generated-by: aiautocommit
* docs(config): clarify directory matching behavior in excluding-files guide
Generated-by: aiautocommit
* refactor(core): remove dead dockerignore context fields
- Remove unused dockerignore context properties from build plans and options
- Clean up obsolete metadata checks in core tests
Generated-by: aiautocommit
* feat: add top-level exclude option to railpack config
Generated-by: aiautocommit
- Hide table of contents components when only a single heading exists
- Prevent initial transition flash on TOC progress indicators and dots
- Update sidebar scrollbar styling and hover behavior
Generated-by: aiautocommit
* feat(mise): support LTS version queries and improve version candidates
- Add support for resolving LTS and other non-semver version aliases in mise
- Introduce `versionQueryCandidates` to gracefully fall back from extracted semver to original version strings
- Add unit tests for LTS resolution and version query candidate generation
Generated-by: aiautocommit
* feat(node): update default Node version to lts
Generated-by: aiautocommit
* feat(mise): improve version resolution fallbacks and error messages
- Fallback to unconstrained release age queries when strict minimum age checks fail to respect pinned versions or custom configs.
- Include tried candidate versions in error messages to improve debugging when package lookups fail.
Generated-by: aiautocommit
* fix: preserve --env secrets when config defines secrets
Union env-derived secret names with merged config secrets so file-level no longer drops build-time env vars. Add a regression test that covers this merge behavior.
* refactor(core): use slices.Concat for merging secrets and update tests
Generated-by: aiautocommit
* refactor(core): inline mergeSecrets helper function
Generated-by: aiautocommit
---------
Co-authored-by: Michael Bianco <[email protected]>
- Add a dedicated Configuration Options page to explain configuration methods and build plans
- Remove redundant user-config page and update documentation links
- Add editor setup guidance for JSON5 support and schema validation in railpack.json
Generated-by: aiautocommit
* fix: update mise to 2026.7.16
* test: update snapshots
* chore: update go, mise, and bun packages
* test: update mise lock with latest version
* chore: update expected uv version in python test example
Generated-by: aiautocommit
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Michael Bianco <[email protected]>
* feat: automatically install packages required for playwright, and playwright browser
This reverts commit 2a5567ff09fa044cf391b1d79ecf1fe7846e8828.
* docs: update environment variable test configuration property name
Generated-by: aiautocommit
* docs(node): add production deployment guide link to start command help
Generated-by: aiautocommit
* feat(python-playwright): install playwright only when requested via env
- Enable Playwright browser installation conditionally using `RAILPACK_PYTHON_PLAYWRIGHT_INSTALL`.
- Update python-playwright example to test against example.com.
Generated-by: aiautocommit
* feat(python): make Playwright browser installation opt-in
- Require `RAILPACK_PYTHON_PLAYWRIGHT_INSTALL=1` to install Playwright browsers and their runtime dependencies automatically.
- Prevent unintended deployment size increases and breaking changes for existing users since automatic installation can cause issues.
- Add test coverage verifying opt-in behavior and production dependency resolution.
Generated-by: aiautocommit
* docs(python): document playwright install configuration variable
Generated-by: aiautocommit
* feat(node): add support for checking production-only dependencies
Generated-by: aiautocommit
* feat(node): make Playwright browser installation opt-in
- Restrict automatic Playwright detection to production dependencies and require an explicit environment variable to install browsers, preventing unexpected side effects for existing users.
- Add tests to verify Playwright installation behavior based on environment configuration.
Generated-by: aiautocommit
* docs: add unit testing guideline against testing log output
Generated-by: aiautocommit
* chore(deps): update playwright dependency to v1.60 in node-playwright example
Generated-by: aiautocommit
* feat(node,python): update Playwright runtime dependencies for Debian 12
- Align Playwright runtime dependencies with the official nativeDeps.ts list for Debian 12 Chromium.
- Ensure production runtime images include all required system libraries for Playwright without relying on builder-only installation flags.
Generated-by: aiautocommit
* feat(examples): navigate to example.com in playwright node example
Generated-by: aiautocommit
* docs(node): document opt-in Playwright browser installation
Generated-by: aiautocommit
* test(core): update test snapshots for playwright production-only dependencies
Generated-by: aiautocommit
* docs: add instruction regarding snapshot updates to PR template
Generated-by: aiautocommit
* feat(node): remove libatomic1 requirement for Node.js 25+
Generated-by: aiautocommit
* test(core): update playwright snapshots for mise version and apt caches
Generated-by: aiautocommit
- Upgrade Astro to version 7.1.4 and Starlight to version 0.41.4.
- Update Tailwind integration, llms-txt, and page actions Starlight plugins to their latest compatible versions.
Generated-by: aiautocommit
* refactor(node): remove duplicate log messages in Nx package resolution
Generated-by: aiautocommit
* refactor(node): prevent duplicate custom start log messages
- Move the custom start command log message from `isSPA` to `Plan` so it runs once during provider planning rather than during SPA checks.
- Add log message for Nx app resolution in the build step.
Generated-by: aiautocommit
* fix: update mise to 2026.7.14
* test: update snapshots
* chore: update go, mise, and bun packages
* test: update mise lock with latest version
* chore: update mise to 2026.7.14
Generated-by: aiautocommit
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Michael Bianco <[email protected]>
* feat(node): add out-of-sync package-lock npm example
- Add new example demonstrating npm ci failure with an out-of-sync lockfile
- Include test configuration and documentation for the scenario
Generated-by: aiautocommit
* fix(node): fallback to npm install when lockfile is missing
- Always use `npm install` for npm projects to prevent build failures when `package-lock.json` is missing.
- Log a warning when the lockfile is absent to encourage generating one.
- Clean up outdated comments regarding package manifest parsing.
Generated-by: aiautocommit
* test(core): update test snapshots for npm install changes
Generated-by: aiautocommit
* feat(node): add npm ci recommendation and railpack example
- Document recommendations for preferring `npm ci` over `npm install` for Node.js projects using npm.
- Add a corresponding `railpack.json` example demonstrating how to configure deterministic installs with `npm ci`.
Generated-by: aiautocommit
* refactor(core): use npm ci in build plan for node npm examples
- Switch from `npm install` to `npm ci` for deterministic builds when package-lock.json is present.
- Remove redundant cache directory creation step.
Generated-by: aiautocommit
* feat(node): add suggestions for missing lockfiles
- Log suggestions when `package-lock.json` or `pnpm-lock.yaml` is missing to encourage deterministic installs.
- Update architecture documentation with guidance on committing `package-lock.json`.
Generated-by: aiautocommit
* test(core): update out-of-sync package-lock snapshot for builder changes
Generated-by: aiautocommit
* feat(node): allow overriding npm install command via config variable
Generated-by: aiautocommit
* docs(node): document RAILPACK_NODE_NPM_INSTALL environment variable
Generated-by: aiautocommit
* docs: recommend committing all package manager lockfiles
Generated-by: aiautocommit
* feat(node): add support for SvelteKit with adapter-auto
- Configure SvelteKit builds to force adapter-node output via GCP_BUILDPACKS variable
- Set appropriate start command for SvelteKit projects using adapter-auto
- Add test coverage for SvelteKit detection and configuration
Generated-by: aiautocommit
* test(examples): replace justBuild flags with specific test assertions
Generated-by: aiautocommit
* docs(guides): remove obsolete justBuild reference from developing-locally guide
Generated-by: aiautocommit
* refactor(tests): remove JustBuild test option and logic
Generated-by: aiautocommit
* refactor(node): update SvelteKit adapter-auto comment reasoning
Generated-by: aiautocommit
* feat(core): add start command and build variables to sveltekit build plan
Generated-by: aiautocommit
* chore: exclude tmp directory when staging updated snapshots
Generated-by: aiautocommit
* chore: update react router to v8 and modernize node infrastructure
- Bump React Router to v8.0.0 and update associated dependencies.
- Upgrade Node.js base image to v24.
- Simplify TSConfig and Vite configuration by utilizing native TSConfig path resolution.
- Add .env to gitignore.
- Ensure consistent scripting and environment settings across SPA and SSR examples.
Generated-by: aiautocommit
* feat(node): detect React Router SPA mode from config
Generated-by: aiautocommit
* test(node): improve React Router SPA detection and handling
Generated-by: aiautocommit
* chore(deps): update mise.dev.lock
Generated-by: aiautocommit
* docs(node): clarify SPA detection limitation and manual override
Generated-by: aiautocommit
* test(node): bind React Router preview server to IPv4 in SPA example
- Force preview host to 127.0.0.1 in Vite config and generation script.
- Prevent connection mismatch issues between prerender requests and the preview server.
Generated-by: aiautocommit
* test(node-puppeteer): add test case for package override bug
Generated-by: aiautocommit
* test(node-puppeteer): preserve default packages in custom config
- Use the spread operator in apt package overrides to retain required Puppeteer dependencies during tests.
Generated-by: aiautocommit
* feat(core): add pretty print style for deprecation logs
Generated-by: aiautocommit
* feat(generate): support package overriding with ... operator
- Add support for explicit package overrides using the `...` operator in `buildAptPackages` and `deploy.aptPackages`.
- Emit deprecation warnings when `buildAptPackages` is specified without `...` before transitioning to replacement behavior.
- Emit info logs when `deploy.aptPackages` replaces generated packages without `...`.
Generated-by: aiautocommit
* feat(logger): add suggestion log level with optional documentation links
Generated-by: aiautocommit
* refactor(generate): use suggestion log type for apt package warnings
Generated-by: aiautocommit
* docs(guides): document apt package override syntax using ...
Generated-by: aiautocommit
* test(generate): update apt packages deprecation and suggestion log assertions
Generated-by: aiautocommit
* feat(tasks): add optional case filter to integration test task
Generated-by: aiautocommit
* test(integration): increase timeouts for QEMU emulated workloads
- Extend container execution timeout from 2 to 3 minutes in integration tests
- Increase Puppeteer launch and navigation timeouts in the node-puppeteer example to prevent failures on emulated arm runners
Generated-by: aiautocommit
* test(node-puppeteer): skip amd64 override case on arm64
QEMU-emulated Chrome on GHA arm runners hangs past the container
timeout; native amd64 CI already covers the apt package override case.
---------
Co-authored-by: Hanzo Dev <[email protected]>
* feat(mise): configure railpack to use musl-compatible mise binary
- Add dependencies (bash, git) required by mise's internal logic.
- Pin the mise version to match the repository's configuration.
- Symlink the installed musl-compatible mise binary to the railpack cache directory to ensure binary compatibility on the host side.
Generated-by: aiautocommit
* feat(mise): target musl-based builds for linux
- Refactor getAssetName to accept platform parameters, improving testability.
- Update linux asset resolution to favor musl-based binaries for improved compatibility with alpine and other musl environments.
- Add unit tests for platform-specific asset naming and error handling.
Generated-by: aiautocommit
* test: update railpack-builder and runtime versions in snapshots
Generated-by: aiautocommit
* feat(ci): add frontend integration test workflow
- Introduce a new workflow job to validate frontend builds using randomized examples.
- Implement a build plan generation step to ensure consistency during integration testing.
- Enable local image usage for frontend build testing within the CI pipeline.
Generated-by: aiautocommit
* build: pin docker version to v29.6.2 in CI workflows
- Update CI workflows to explicitly set up Docker v29.6.2.
- Bypass GitHub's default Docker 28 environment which uses the classic image store, ensuring compatibility with container-based merge operations used by Railpack.
- Introduce DOCKER_VERSION in mise.ci.toml for centralized management.
Generated-by: aiautocommit
* docs: update local development guide with build instructions
* Clarify local build workflow for the runtime image and frontend.
* Correct commands and configuration paths for consistency with current tooling.
* Update BuildKit integration instructions to reflect local registry requirements.
Generated-by: aiautocommit
* fix: update mise to 2026.7.11
* test: update snapshots
* chore: update go, mise, and bun packages
* test: update mise lock with latest version
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* feat: add --no-cache option to build subcommand
* docs: no cache docs
* refactor(buildkit): remove no-cache build option
* The no-cache option is no longer utilized in the BuildKit frontend logic.
* Updated documentation to reflect the removal of this parameter.
Generated-by: aiautocommit
* feat(ui): add styling helpers for build output
- Add box, section header, and text highlighting utilities to improve terminal output readability.
- Add unit tests to verify style rendering and content inclusion.
Generated-by: aiautocommit
* refactor: rename files to follow snake_case convention
Generated-by: aiautocommit
* build: improve build completion output formatting
- Add a descriptive header before starting the build process.
- Replace basic log statements with a formatted box to highlight build duration and post-build instructions, improving readability for the user.
Generated-by: aiautocommit
- introduce a new Linux-based shell orchestration task for container machines to facilitate development and debugging across environments.
- add `jq` to the project's development tools to support the new shell script's reliance on JSON parsing for network inspection.
- implement robust Docker TCP proxying via `socat` to allow the Linux guest machine to interface seamlessly with the host's Docker daemon.
Generated-by: aiautocommit
* feat(example): add node-nx-next workspace scaffold
- Initialize an Nx workspace with a Next.js application using pnpm.
- Configure workspace tooling including TypeScript, Prettier, and ESLint.
- Include a generation script to automate the workspace setup process.
Generated-by: aiautocommit
* feat(node): add BuildScriptContains helper to PackageJson
Generated-by: aiautocommit
* feat(node): add support for Nx workspaces with Next.js
- Implement Nx workspace detection and package resolution.
- Enable automatic Nx build commands when no root build script is detected.
- Add RAILPACK_NX_APP environment variable to support selecting specific apps in multi-app workspaces.
- Refactor Next.js detection logic to better support monorepo and Nx-inferred architectures.
- Include unit tests for Nx workspace detection and build/start command generation.
Generated-by: aiautocommit
* docs: add documentation for Nx monorepo support
- Explain how Railpack handles Nx workspaces, including automatic detection and support for inferred tasks.
- Document the new `RAILPACK_NX_APP` configuration variable to target specific apps in multi-app workspaces.
- Detail the build and start behavior for Next.js applications within an Nx context.
Generated-by: aiautocommit
* test: add snapshot for Nx Node.js and Next.js example
Generated-by: aiautocommit
* chore: bump railpack images and set version to dev
- Update builder and runtime images to mise-2026.7.7
- Include RAILPACK_VERSION environment variable in build plan
Generated-by: aiautocommit
* test: update snapshots to include RAILPACK_VERSION environment variable
Generated-by: aiautocommit
* feat: add RAILPACK_VERSION to runtime environment variables
- Inject the Railpack version into the build plan to ensure it is available as an environment variable in the final runtime image for observability.
- Update documentation to reflect that this variable is automatically set.
Generated-by: aiautocommit
* fix: update mise to 2026.7.7
* test: update snapshots
* chore: update go, mise, and bun packages
* test: update mise lock with latest version
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
- Remove orphaned railpack-builder and railpack-frontend images (both local and ghcr tags) during the cleanup task to ensure a cleaner state.
- Update railpack container stopping logic to be more robust with xargs.
Generated-by: aiautocommit
* feat: add linux shell environment task for Apple container machines
- Add `mise-linux-shell` task to manage a dedicated Alpine Linux container machine for tool isolation.
- Configure automatic bootstrapping for `mise` and `zsh` within the container.
- Implement Docker TCP proxying to allow the guest machine to interface with host Docker services.
- Update `mise.toml` cleanup task to include teardown for the machine and its network proxy.
Generated-by: aiautocommit
* docs: add documentation for running Linux container shell on macOS
Generated-by: aiautocommit
* feat: add .miserc.toml to gitignore and document local dev environment
- Ignore .miserc.toml to prevent accidental commits of local environment configurations.
- Update documentation to include the new workflow for loading development tools via mise.
Generated-by: aiautocommit
* chore: lock mise.toml environment versioning
Generated-by: aiautocommit
* fix(mise): prevent host config pollution by setting working directory
* Set the working directory for mise commands to the cache directory.
* Ensures that mise does not accidentally discover and apply local configuration files (like locked=true) from the host filesystem during operation.
Generated-by: aiautocommit
* docs(mise): add comment explaining cacheDir purpose
Generated-by: aiautocommit
* refactor(python): switch poetry installation back to mise native
- Stop using pipx to install poetry.
- Revert to using the native mise poetry plugin, which is now preferred for better environment integration.
Generated-by: aiautocommit
* refactor(python-poetry): remove default start command from config
* Remove the explicit start command to allow for standard project-level runtime defaults.
* The previous comment regarding poetry venv path issues is addressed by updated platform base images.
Generated-by: aiautocommit
* test: update snapshot
Generated-by: aiautocommit
* chore: remove unused railpack config example
Generated-by: aiautocommit
* feat: add node-vite-custom-caddyfile example
- Include a Vite-based SPA template with a custom Caddyfile configuration.
- Add test definitions to verify custom Caddyfile request handling and SPA navigation.
Generated-by: aiautocommit
* test: add snapshot for custom caddyfile support
Generated-by: aiautocommit
* refactor: clean up comments regarding version precedence
- Remove redundant comments about "last write wins" and version precedence, as the implementation order is clear from the code.
- Update the documentation for UseMiseVersions to clarify its role in the overwrite process.
Generated-by: aiautocommit
* docs: update contribution guidelines and add pull request template
- Establish clear "Lifecycle of a Change" guide for developers
- Formalize AI contribution policy and developer expectations
- Add standard PR template to improve contribution quality and consistency
- Refine documentation for local setup, testing, and workflow processes
Generated-by: aiautocommit
* docs: update contribution guidelines
- Improve formatting of links and instructions.
- Add instructions to run snapshot updates before finishing work.
Generated-by: aiautocommit
* feat: add retry-cli and apply to buildkit startup
* Add retry-cli via mise to improve CI reliability.
* Wrap the buildkit startup command with retry to mitigate transient connection or service availability issues during integration tests.
Generated-by: aiautocommit
* chore: replace retry-cli with local mise task
* Remove external dependency `retry-cli` to reduce toolchain overhead.
* Add a custom task script to handle command retries with exponential backoff directly within the project.
* Enable `locked` mode in `mise.toml` to ensure consistent environment versions.
Generated-by: aiautocommit
* chore: disable mise lockfile enforcement
* Commented out `locked` in `mise.toml` to allow for dependency updates without constant lockfile synchronization during development.
Generated-by: aiautocommit
* Replace manual file checking logic with App helper methods to reduce code duplication.
* Update entrypoint resolution to prefer main files in the project root before scanning the directory tree.
* Remove unused DenoJson struct.
Generated-by: aiautocommit
* feat(buildkit): attach docker registry auth to solve session
BuildKit keeps no static credential store of its own; without credentials
attached to a solve session it cannot authenticate pulls/pushes against
private registries. Load the caller's docker CLI config ($DOCKER_CONFIG,
default ~/.docker/config.json) and attach an authprovider alongside the
existing secrets provider on every SolveOpt.Session.
* chore: update dependencies and promote docker/cli
- Bump tonistiigi/fsutil to latest version
- Move docker/cli from indirect dependency to direct to ensure proper resolution
- Add necessary indirect dependencies triggered by the update
Generated-by: aiautocommit
* docs: document docker registry authentication for build command
Generated-by: aiautocommit
* fix(buildkit): enable docker auth provider for private registries
- Add the docker auth provider to the buildkit session attachables to ensure the daemon can authenticate with private registries using local configuration.
Generated-by: aiautocommit
* docs: remove AI comment
---------
Co-authored-by: Wei Mingzhi <[email protected]>
* fix: respect cache backend type for registry cache import/export
* docs: update local development build instructions
- Update local image building to use the provided project task.
- Document the workflow for building with a local registry.
- Add examples for configuring buildctl with caching and debugging flags.
Generated-by: aiautocommit
* refactor(buildkit): clean up code comments and formatting
- Remove redundant comments and improve internal documentation.
- Fix minor formatting inconsistencies in code blocks and comment descriptions.
Generated-by: aiautocommit
* feat: add ParseBool utility to handle common boolean string variants
Generated-by: aiautocommit
* feat: integrate local registry and buildkit configuration
- Add buildkitd configuration to enable HTTP/insecure access to the local registry.
- Introduce a local registry service container on port 7890.
- Update the buildkit setup to mount the new registry configuration.
- Add tasks for building the frontend image and running project builds using the local registry and buildctl.
Generated-by: aiautocommit
* docs: update CLAUDE.md with architecture and style guidance
Generated-by: aiautocommit
* feat: add support for multiple cache-from and cache-to build flags
- Allow users to configure external cache sources and destinations via the `build` subcommand.
- Update cache parsing logic to support multiple entries matching the Docker buildx CLI format.
- Remove hardcoded default cache type to provide better control over BuildKit cache configurations.
Generated-by: aiautocommit
* test: add integration tests for cache-import parsing
Generated-by: aiautocommit
* refactor(buildkit): extract cache entry parsing logic
- Centralize cache configuration logic by moving loop-based parsing into a reusable `cacheEntriesFromFlags` helper.
- Improve code maintainability and readability by reducing duplication in `BuildWithBuildkitClient`.
- Add comprehensive unit tests for cache entry processing, including edge cases for flag parsing and empty inputs.
Generated-by: aiautocommit
* fix(test): remove unused buildkit cache flags from integration tests
* Remove unused flag variables that were meant for remote BuildKit caching.
* Ensure integration tests avoid remote cache (e.g., type=gha) to prevent exceeding GitHub Actions cache limits and excessive eviction.
Generated-by: aiautocommit
* test(buildkit): consolidate cache import tests
- Move TestParseCacheImports from its own file to frontend_test.go to consolidate related buildkit frontend tests.
Generated-by: aiautocommit
* style: fix indentation in build test helper
Generated-by: aiautocommit
* docs: document support for BuildKit cache backends
Generated-by: aiautocommit
* docs(developing-locally): add information on Docker, BuildKit, and caching
- Add missing setup prerequisites.
- Include debugging and configuration guidance for BuildKit/Docker.
- Clarify cache export and import implementation expectations in Railpack.
Generated-by: aiautocommit
* docs: clarify cache flag parsing and pnpm version logic
Generated-by: aiautocommit
---------
Co-authored-by: Matt Van Horn <[email protected]>
Co-authored-by: Michael Bianco <[email protected]>
Co-authored-by: Hanzo Dev <[email protected]>