From ac1512cfc81ad3259e1437e10c95e2407e273cd6 Mon Sep 17 00:00:00 2001 From: Marty Friedel Date: Thu, 6 Aug 2026 10:54:37 +0930 Subject: [PATCH 1/4] Exclude private (__) variables from cache context --- src/StaticCaching/NoCache/Region.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/StaticCaching/NoCache/Region.php b/src/StaticCaching/NoCache/Region.php index 52686d9b609..a970cfbcfa1 100644 --- a/src/StaticCaching/NoCache/Region.php +++ b/src/StaticCaching/NoCache/Region.php @@ -29,7 +29,19 @@ public function context(): array protected function filterContext(array $context) { $context = collect($context) - ->reject(fn ($value, $key) => in_array($key, ['__env', 'app', 'errors', 'resolve', 'resolveComponentsUsing', 'forgetComponentsResolver', 'forgetFactory', 'flushCache', 'constructor'])) + ->reject(function ($value, $key) { + return str_starts_with((string) $key, '__') + || in_array($key, [ + 'app', + 'errors', + 'resolve', + 'resolveComponentsUsing', + 'forgetComponentsResolver', + 'forgetFactory', + 'flushCache', + 'constructor', + ], true); + }) ->map(function ($value, $key) { if ($value instanceof InvokableComponentVariable) { return $value->resolveDisplayableValue(); From 19b22dc3014f7c3fa1b2a791a503cae389616679 Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Thu, 6 Aug 2026 11:18:53 -0400 Subject: [PATCH 2/4] Simplify private variable exclusion in filterContext --- src/StaticCaching/NoCache/Region.php | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/StaticCaching/NoCache/Region.php b/src/StaticCaching/NoCache/Region.php index a970cfbcfa1..257004d461d 100644 --- a/src/StaticCaching/NoCache/Region.php +++ b/src/StaticCaching/NoCache/Region.php @@ -29,19 +29,8 @@ public function context(): array protected function filterContext(array $context) { $context = collect($context) - ->reject(function ($value, $key) { - return str_starts_with((string) $key, '__') - || in_array($key, [ - 'app', - 'errors', - 'resolve', - 'resolveComponentsUsing', - 'forgetComponentsResolver', - 'forgetFactory', - 'flushCache', - 'constructor', - ], true); - }) + ->reject(fn ($value, $key) => str_starts_with((string) $key, '__')) + ->reject(fn ($value, $key) => in_array($key, ['app', 'errors', 'resolve', 'resolveComponentsUsing', 'forgetComponentsResolver', 'forgetFactory', 'flushCache', 'constructor'])) ->map(function ($value, $key) { if ($value instanceof InvokableComponentVariable) { return $value->resolveDisplayableValue(); From b44d726496f485cdc45e130405020341bf8b8de1 Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Thu, 6 Aug 2026 11:18:59 -0400 Subject: [PATCH 3/4] Add regression test for filtering private variables from nocache context --- tests/StaticCaching/NoCacheSessionTest.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/StaticCaching/NoCacheSessionTest.php b/tests/StaticCaching/NoCacheSessionTest.php index a0b755c27c4..d7651a710e0 100644 --- a/tests/StaticCaching/NoCacheSessionTest.php +++ b/tests/StaticCaching/NoCacheSessionTest.php @@ -48,6 +48,22 @@ public function when_pushing_a_region_it_will_filter_out_cascade() ], $region->context()); } + #[Test] + public function when_pushing_a_region_it_will_filter_out_private_variables() + { + $session = new Session('/'); + + $region = $session->pushRegion('', [ + 'foo' => 'bar', + '__env' => 'env value', + '__blaze' => fn () => 'a closure', + ], ''); + + $this->assertEquals([ + 'foo' => 'bar', + ], $region->context()); + } + #[Test] public function it_gets_the_fragment_data() { From b612f09d1dd5ae0c3dbccd388495b431d6b0e03c Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Thu, 6 Aug 2026 20:22:25 -0400 Subject: [PATCH 4/4] Trigger CI (GitHub Actions outage)