Skip to content

feat(flutter): derive OPEN_RUNTIMES_BUILD_KEYS from user variables - #248

Merged
Meldiron merged 5 commits into
open-runtimes:mainfrom
jaysomani:feat/flutter-build-keys
Aug 19, 2026
Merged

feat(flutter): derive OPEN_RUNTIMES_BUILD_KEYS from user variables#248
Meldiron merged 5 commits into
open-runtimes:mainfrom
jaysomani:feat/flutter-build-keys

Conversation

@jaysomani

Copy link
Copy Markdown
Contributor

Captures user-supplied variable keys before executor merges its own internal vars, then adds OPEN_RUNTIMES_BUILD_KEYS as a space-separated list.

Captures user-supplied variable keys before executor merges its own
internal vars, then adds OPEN_RUNTIMES_BUILD_KEYS as a space-separated
list.
@greptile-apps

greptile-apps Bot commented Aug 13, 2026

Copy link
Copy Markdown

Greptile Summary

The PR captures user-provided variable names before adding executor-managed variables and exposes those names through OPEN_RUNTIMES_BUILD_KEYS.

  • Adds build-key propagation for runtime builds.
  • Adds Node and Flutter end-to-end coverage for build-time variable injection.
  • Makes the test client timeout configurable.
  • Adjusts maintenance handling for runtimes under creation and container-removal failures.

Confidence Score: 5/5

The PR appears safe to merge because no blocking failure remains in the eligible follow-up review scope.

No blocking failure remains.

Important Files Changed

Filename Overview
app/controllers.php Captures user variable keys before internal-variable merging and passes them to build helpers through OPEN_RUNTIMES_BUILD_KEYS.
src/Executor/Runner/Maintenance.php Excludes in-progress runtime creation from idle cleanup and prevents removal exceptions from escaping the maintenance batch.
tests/e2e/Client.php Adds a configurable request timeout while preserving the existing 60-second default.
tests/e2e/ExecutorTest.php Adds end-to-end tests for build-key propagation and Flutter compile-time variable injection.
tests/resources/functions/flutter/lib/main.dart Adds a minimal Flutter fixture that renders a compile-time environment variable.
tests/resources/functions/flutter/pubspec.yaml Defines the minimal Flutter test application and SDK constraints.
tests/resources/functions/flutter/web/index.html Adds the Flutter web bootstrap page used by the end-to-end fixture.

Reviews (5): Last reviewed commit: "fix(maintenance): don't reap runtimes th..." | Re-trigger Greptile

jaysomani and others added 2 commits August 17, 2026 21:05
dart2js requires more than 512MB to compile Flutter web. Set memory to
2048MB to match the minimum Deployments.php already enforces for Sites
builds in production.
The maintenance sweep treated any runtime whose `updated` timestamp was
older than OPR_EXECUTOR_INACTIVE_THRESHOLD as idle. That timestamp is only
refreshed once creation finishes, so a build taking longer than the
threshold (60s in CI) had its container force-removed mid-build. The
build command then failed and /v1/runtimes answered 400 build_failed.

This is what broke testBuildKeysFlutter in CI: the Flutter build plus the
3.6GB image pull runs well past 60s, while every other e2e build finishes
under it. Skip runtimes that have not finished initialising.

Also restore the try/catch around the container removal that was dropped
when maintenance was extracted from Docker.php. Without it, removing an
already-gone container throws Orchestration inside the maintenance
coroutine and takes the whole executor process down.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Meldiron
Meldiron merged commit c5474c2 into open-runtimes:main Aug 19, 2026
16 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants