* feat: migrate tooling and runtimes to bun
* fix: serialize act installs and adapt backup checks
* fix: finish bun scripts and rootless act setup
* fix: support bun images in runtime benchmarks
* fix: keep a single bun toolchain configuration
* fix: include docs mascot sources in workshop build
* docs: use bun in remaining tool commands
* fix: complete bun sqlite development tooling
* docs: explain sqlite development adapter
* fix: align remaining commands and local ci validation
* fix: use renovate regex fallback with bun
* fix: finalize bun sqlite connections during cleanup
* fix: preserve sqlite foreign key enforcement
* fix: align docker build frontends
* fix: prepare release versions with bun
* Add Bun benchmarks and preserve SQLite connection defaults
* Benchmark Bun installs, conflicts and production workloads
* Force Bun workspace tools and HTTP/1.1 upstream streaming
* Exclude benchmark evidence from Docker contexts
* Expose branch benchmarks through CI
* Verify hydrated widget data in production benchmarks
* Measure image archives and document benchmark protocol
* Audit dependency sharing across every workspace
* Pin pnpm for nested baseline benchmark scripts
* Preserve nested manager pinning on benchmark resume
* Include application and runtime image footprints
* Fail benchmark gates on candidate command errors
* Report complete build overhead and sampled memory bounds
* Validate migration comparisons across pinned revisions
* Record configurable runtime memory budgets
* Retain out-of-memory kills in runtime budget probes
* Reject OOM events consistently across runtime metrics
* Record complete Bun migration benchmarks
* Record memory diagnosis and correct Turbo caching
* Use Bun package management while preserving Node runtimes
* Keep native build fallbacks and exclude development artifacts
* Fix Node ESM metadata and isolate local CI configuration
* Measure development performance and isolate act environment
* Support isolated environment files in rootless act
* Validate the full migration range with act
* Preserve native SQLite binding for bundled migrations
* Use documented dev defaults and report benchmark scope
* Validate dev defaults and isolate restart measurements
* Record package-manager and development benchmarks
* Keep benchmark measurements and link full command artifacts
* Clean up temporary act environment files
* Validate Node runtimes in package-manager comparisons
* Validate every workspace in manual CI runs
* Retain patched nested brace expansion versions
* Complete package-manager and Node performance report
* Normalize archived benchmark logs
* Record final hosted validation
* Cache both Next builds with platform isolation
* Prime cache with write-only mode
* Split Next artifacts below Cloudflare upload limit
* Assemble coherent standalone cache outputs
* Preserve traced middleware entrypoints
* Assemble traced directory links before files
* Separate cached dependencies from assembled output
* Record signed Turbo cache benchmarks
* Remove archived benchmark captures
Full benchmark evidence is preserved at 8f7d3bcd14109bfb13fa664d31710b88d820ad66.
* Remove migration benchmark harness
* fix: correct migration launch and local Act prerequisites
* Consolidate Turbo caches and production artifacts
* Exclude generated files from Docker cache inputs
* fix: address Bun migration review findings
* fix: check restored compiler bundle manifests
* ci: drop --delete-branch from reconcile auto-merge call
The reconcile job runs without a git checkout, so gh pr merge --delete-branch
fails with 'not a git repository' before enabling auto-merge. Auto-merge
itself needs no local git state; branch cleanup is already handled by the
PR-creating workflows.
* ci: checkout repo in bot auto-merge workflows
gh pr merge fails with 'not a git repository' when no checkout is present,
which prevented the reconcile job from enabling auto-merge. Restore the
checkout the previous approval workflow relied on.
The reconcile job runs without a git checkout, so gh pr merge --delete-branch
fails with 'not a git repository' before enabling auto-merge. Auto-merge
itself needs no local git state; branch cleanup is already handled by the
PR-creating workflows.
* ci: auto-approve and auto-merge trusted bot pull requests
Replace the approve-only automatic-approval workflow with a combined
approve + enable-auto-merge workflow that also re-runs on every push,
plus a scheduled reconcile job that re-enables auto-merge for prepared
bot PRs if GitHub ever disables it. Bot PRs are gated to the known bot
actors, same-repo head, and base branch dev.
* ci: match bot authors by app slug in reconcile filter
gh pr list reports pull request authors of GitHub Apps as app/<slug>;
adjust the allowlist so the reconcile job actually matches bot PRs.
CodeRabbit review addressed:
- Removed the env-var gating (simpler: just remove source maps entirely)
- CI health check now fails fast if container never becomes healthy
Changes vs origin/main:
- next.config.ts: remove productionBrowserSourceMaps and serverSourceMaps
(they default to false, restoring pre-v1.68.0 behavior)
- Dockerfile: remove .map copy step and NODE_OPTIONS=--enable-source-maps
- CI: add memory-regression job (<700MB guardrail)
Closes#6123
Production source maps (--enable-source-maps) caused a ~50% memory increase
(600MB to 1000MB) in v1.68.0. Node.js loads all .map files into memory when
this flag is enabled, and Next.js server chunks generate hundreds of map files.
Changes:
- Guard productionBrowserSourceMaps and serverSourceMaps behind
HOMARR_ENABLE_SOURCE_MAPS env var (default off)
- Guard .map copy step and NODE_OPTIONS in Dockerfile behind
ENABLE_SOURCE_MAPS build arg (default false)
- run.sh checks HOMARR_ENABLE_SOURCE_MAPS before setting --enable-source-maps
- Add Docker-based memory regression CI job (<700MB threshold)
Closes#6123