Skip to content
6 changes: 4 additions & 2 deletions src/workerd/io/compatibility-date-test.c++
Original file line number Diff line number Diff line change
Expand Up @@ -590,8 +590,7 @@ KJ_TEST("encode to full flag list") {
}

KJ_TEST("compatibility dates must be Tuesday, Wednesday, or Thursday") {
// List of specific flags that are allowed to use non-conformant dates
// (already deployed and can't be changed for compatibility reasons)
// Specific flags with compatibility dates outside the normal release weekdays.
kj::HashSet<kj::StringPtr> allowedFlagExceptions;
allowedFlagExceptions.insertAll(std::initializer_list<kj::StringPtr>{
// Existing non-conformant dates that are already deployed
Expand Down Expand Up @@ -632,6 +631,9 @@ KJ_TEST("compatibility dates must be Tuesday, Wednesday, or Thursday") {
"stripAuthorizationOnCrossOriginRedirect"_kj, // 2025-09-01 (Monday)
"enableCtxExports"_kj, // 2025-11-17 (Monday)

// Scheduled default enablement on November 8, 2026 (Sunday).
"enableRequestSignal"_kj,

// Non-conformant dates via impliedByAfterDate
"pythonWorkers"_kj, // 2000-01-01 (Saturday) via impliedByAfterDate
"nodeJsCompatV2"_kj, // 2024-09-23 (Monday) via impliedByAfterDate
Expand Down
4 changes: 2 additions & 2 deletions src/workerd/io/compatibility-date.capnp
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Copyright (c) 2017-2022 Cloudflare, Inc.
# Licensed under the Apache 2.0 license found in the LICENSE file or at:
# https://opensource.org/licenses/Apache-2.0
Expand Down Expand Up @@ -793,9 +793,9 @@

enableRequestSignal @90 :Bool
$compatEnableFlag("enable_request_signal")
$compatDisableFlag("disable_request_signal");
$compatDisableFlag("disable_request_signal")
$compatEnableDate("2026-11-08");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[WARNING] The updated test only exempts this field from the weekday check; it never compiles a date on either side of 2026-11-08. Deleting or changing this annotation, or breaking the disable_request_signal override, would therefore pass the suite while removing the announced default. Add a boundary assertion to KJ_TEST("encode to full flag list") in compatibility-date-test.c++:

Suggested change
$compatEnableDate("2026-11-08");
{
constexpr auto flag = "enable_request_signal"_kj;
KJ_EXPECT(!contains(
decompileCompatibilityFlags(compileOwnFeatureFlags("2026-11-07", {}).get()), flag));
KJ_EXPECT(contains(
decompileCompatibilityFlags(compileOwnFeatureFlags("2026-11-08", {}).get()), flag));
KJ_EXPECT(!contains(decompileCompatibilityFlags(compileOwnFeatureFlags(
"2026-11-08", {"disable_request_signal"_kj})
.get()),
flag));
}

# Enables Request.signal for incoming requests.
# This feature is still experimental and the compat flag has no default enable date.

connectPassThrough @91 :Bool
$compatEnableFlag("connect_pass_through")
Expand Down
Loading