Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
179 commits
Select commit Hold shift + click to select a range
defd4f0
add error info to workerd/io
ibbykhazanchi Jun 15, 2026
30e7596
populate error info
ibbykhazanchi Jun 15, 2026
29b5182
js API surface, ts types
ibbykhazanchi Jun 15, 2026
e2ad177
console.* can have n number of arguments
ibbykhazanchi Jun 15, 2026
aca56f8
include errorInfoSize in trace buget & only allocate slots if an erro…
ibbykhazanchi Jun 16, 2026
21b8231
coalesce addExceptionToTrace and console.* errorInfo handling
ibbykhazanchi Jun 17, 2026
8df4245
feedback
ibbykhazanchi Jun 23, 2026
11f7508
Remove this capture in basics.c++
jasnell Jul 1, 2026
3b96f76
Remove this capture in analytics-engine.c++
jasnell Jul 1, 2026
1d57f4c
Remove this capture in container.c++
jasnell Jul 1, 2026
0acd8c8
Remove this capture in http.c++
jasnell Jul 1, 2026
e1dbd21
Remove this capture from r2-bucket.c++
jasnell Jul 1, 2026
562ef4e
Remove this captures from sockets.c++
jasnell Jul 1, 2026
90e7126
AUTH-8288: update getIdentity to rpc
BSFishy Jun 11, 2026
163a8fc
Weak WritableStream owner
mikea Jul 2, 2026
c0c7450
Weak ReadableStream owner
mikea Jul 2, 2026
98033f6
allocate Pipe on the heap
mikea Jul 2, 2026
31a18a1
Merge branch 'maizatskyi/2026-07-02-weak-pipe' into 'gitlab'
mikea Jul 2, 2026
4867422
Merge branch 'maizatskyi/2026-07-02-weak-readable-stream' into 'gitlab'
mikea Jul 2, 2026
a177fa7
Merge branch 'maizatskyi/2026-07-02-weak-writable-stream' into 'gitlab'
mikea Jul 2, 2026
69cb7bb
Clean up JsRpcProperty MAX_PROPERTY_DEPTH
fhanau Jul 3, 2026
71f8036
STOR-5304: Add actor-call delivery-position exception detail IDs
apeacock1991 Jun 27, 2026
8cf8bb7
CFSQL-1705: D1 add support for the JSRPC `.query` method
FlorentCollin Jul 1, 2026
bf60ab7
CFSQL-1705: D1 add JSRPC binding tests
FlorentCollin Jul 1, 2026
e743436
Merge branch 'apeacock/detail-ids-disconnects' into 'gitlab'
apeacock1991 Jul 3, 2026
06eb912
Merge branch 'fcollin/d1-binding-jsrpc' into 'gitlab'
FlorentCollin Jul 3, 2026
8ab143b
Use non-sandbox buffer to read in internal.c++
erikcorry Jul 3, 2026
2eb09e7
Merge branch 'ecorry/internal-copy-buffer' into 'gitlab'
erikcorry Jul 3, 2026
6102c85
Implements Worker::Isolate::runInLockScope.
dom96 Jul 1, 2026
e73e932
Merge branch 'felix/070226-rpcrecursion-cleanup' into 'gitlab'
fhanau Jul 3, 2026
cbfab3b
Merge branch 'dominik/startProfile-rpc' into 'gitlab'
dom96 Jul 3, 2026
b2a4fad
Respect no_build for rust test compilation
npaun Jul 3, 2026
8f34e08
Merge branch 'npaun/rust-test-no-build' into 'gitlab'
npaun Jul 4, 2026
570a6e2
[ci] Stream internal build logs
ketanhwr Jul 6, 2026
a5fb243
Merge branch 'ketan/update-internal-build' into 'gitlab'
ketanhwr Jul 6, 2026
e54a453
WOR-1263: migrate workflow wrapped binding into jsrpc
Caio-Nogueira Jun 15, 2026
6581bd2
Merge branch 'caio/workflows-binding-jsrpc' into 'gitlab'
Caio-Nogueira Jul 6, 2026
92361ff
Use simdutf for remaining base64 decodes
Brooooooklyn Jun 29, 2026
3cd5c6c
Make new module registry error classes consistent across resolve paths
logan-gatlin Jul 6, 2026
e4c89bb
Merge branch 'logan/new-resolver-error-consistency' into 'gitlab'
logan-gatlin Jul 6, 2026
afc1df6
CC-8007: add abort signal to container exec
flakey5 Jul 6, 2026
20eb188
Merge branch 'asnell/CC-8007' into 'gitlab'
flakey5 Jul 6, 2026
bd97b53
Fix for vuln 136997
jasnell Jul 6, 2026
3579a2c
Merge branch 'jasnell/replace-this-capture' into 'gitlab'
jasnell Jul 6, 2026
b517339
Add synthetic IP for Hyperdrive bindings, resolvable via node:dns
guybedford Jul 6, 2026
1d26cbb
Merge branch 'hyperdrive-synthetic-ip' into 'gitlab'
guybedford Jul 6, 2026
49255e3
Merge branch 'jasnell/vuln-136997' into 'gitlab'
jasnell Jul 6, 2026
6d429c9
Initial TS streams impl
jasnell Jun 25, 2026
9bf6466
Merge branch 'jasnell/ts-streams' into 'gitlab'
jasnell Jul 7, 2026
dcfcfda
Document DataUrl base64 compatibility behavior
Brooooooklyn Jul 7, 2026
81303b4
Fix hibernatable WebSocket DOs failing to hibernate on concurrent upg…
apeacock1991 Jul 6, 2026
046fc0d
Merge branch 'apeacock/fix-ws-hibs' into 'gitlab'
apeacock1991 Jul 7, 2026
09ca3e9
Simplify Body::Buffer handling
jasnell Jun 30, 2026
289bd13
Add JsReadableStream abstraction
jasnell Jul 1, 2026
2275098
Use non-sandbox buffer to read in kv.c++
erikcorry Jul 7, 2026
58f5a40
Merge branch 'ecorry/kv-copy-buffer' into 'gitlab'
erikcorry Jul 7, 2026
abfddc0
Improve spec compliance and run wpt's for ts-implemented encoding str…
jasnell Jul 7, 2026
c54cde0
Merge branch 'jasnell/ts-impled-encoding-streams' into 'gitlab'
jasnell Jul 7, 2026
82b76d1
Merge branch 'jasnell/http-cleanups' into 'gitlab'
jasnell Jul 7, 2026
dc47d9b
Merge branch 'mprovost/AUTH-8288' into 'gitlab'
BSFishy Jul 7, 2026
cfba31b
Minor per_isolate primordials cleanups, notes
jasnell Jul 7, 2026
73e94d8
Update unsafe-continuation-capture path filter to be based on file path
ObsidianMinor Jun 24, 2026
78ce789
Remove .js module extension limitation when main module is .py
Jul 7, 2026
452057b
Merge branch 'kira/js-module-in-python-worker' into 'gitlab'
Jul 7, 2026
ba3373e
Merge branch 'jasnell/minor-primordials-cleanups' into 'gitlab'
jasnell Jul 7, 2026
2f52a45
Merge branch 'port-simdutf-base64-decode' into 'gitlab'
guybedford Jul 7, 2026
265f437
Improve handling of serialization errors for diag channel tracing
jasnell Jul 7, 2026
78a90bd
Merge branch 'jasnell/improve-diagnostic-channel-ser-error' into 'git…
jasnell Jul 8, 2026
c34e603
[build] Use -Wl,--lto-O0 when linking tests
fhanau Jul 4, 2026
ac4d449
Merge branch 'felix/070326-lto-O0' into 'gitlab'
fhanau Jul 8, 2026
478c944
Enable socket operations in Python Workers
ryanking13 Jun 25, 2026
daa7142
Merge branch 'gyeongjae/socket-enable' into 'gitlab'
ryanking13 Jul 8, 2026
82f97da
Remove cases for deprecated promise reject events
ObsidianMinor Jul 8, 2026
93fad3e
Merge branch 'fix/deprecated-reject-events' into 'gitlab'
ObsidianMinor Jul 8, 2026
e55b437
feat(WO-1475): expose Durable Object id on RPC exceptions
Ankcorn Jul 8, 2026
e2a08c5
Merge branch 'tankcorn/jsrpc-durable-object-error-id' into 'gitlab'
Ankcorn Jul 8, 2026
9d971fd
pyodide: disable implicit __init__.py creation for unit-test-introspe…
dcarney-cf Jul 8, 2026
4d0b825
Merge branch 'dcarney/pyodide-legacy-create-init' into 'gitlab'
dcarney-cf Jul 8, 2026
479acdc
Merge branch 'feat/more-tidy' into 'gitlab'
ObsidianMinor Jul 8, 2026
9414446
Propagate trace context to container snapshots
spahl Jul 8, 2026
ac236f4
Merge branch 'trace-snapshot-span-context' into 'gitlab'
spahl Jul 8, 2026
ded415e
Revert "Use non-sandbox buffer to read in kv.c++"
dcarney-cf Jul 8, 2026
dfb998b
Merge branch 'revert-22750983' into 'gitlab'
dcarney-cf Jul 8, 2026
d9ce147
More general improvements to ts streams
jasnell Jul 9, 2026
a0ddf96
Improve normalized expected length consistency
jasnell Jul 8, 2026
a5a60a2
Remove respondWithNewView from native facade
jasnell Jul 8, 2026
3e38796
Additional minor native.ts cleanups
jasnell Jul 9, 2026
baf07aa
Add Rust ada-url based URL implementation
logan-gatlin Jul 9, 2026
51c642a
Merge branch 'logan/url-rust' into 'gitlab'
logan-gatlin Jul 9, 2026
7c9d584
Improve TypeScript IdentityTransformStream/FixedLengthStream impl
jasnell Jul 7, 2026
49478cd
Merge branch 'jasnell/improve-ts-its-fls' into 'gitlab'
jasnell Jul 9, 2026
48d9cc7
Merge branch 'jasnell/ts-streams-general-improvements' into 'gitlab'
jasnell Jul 9, 2026
df571d2
Merge branch 'jasnell/improve-native-ts-consistency' into 'gitlab'
jasnell Jul 9, 2026
4d3a15a
Add span for access getIdentity
danlapid Jul 10, 2026
7c9b7df
Merge branch 'dlapid/accessIdentitySpan' into 'gitlab'
danlapid Jul 10, 2026
216f5e9
fix: incorrect handling of `node:process` imports in new module registry
logan-gatlin Jul 10, 2026
4bbe474
Merge branch 'logan/new-registry-dynamic-builtin-import-fix' into 'gi…
logan-gatlin Jul 10, 2026
5bdf81b
Revert "Use non-sandbox buffer to read in internal.c++"
dcarney-cf Jul 11, 2026
83321c8
Merge branch 'dcarney/revert-non-sandbox-buffer-internal-cxx' into 'g…
dcarney-cf Jul 11, 2026
935c6bf
[o11y] Emit warning when reporting trace with exception outcome witho…
fhanau Jul 11, 2026
02a5874
Merge branch 'felix/071026-trace-missingexception' into 'gitlab'
fhanau Jul 12, 2026
2c86b87
RAG-1400: add conversion output options to Markdown Conversion types
Naapperas Jul 10, 2026
3140ead
Merge branch 'nunopereira/RAG-1400/update-markdown-conversion-types-f…
Naapperas Jul 13, 2026
dff2d25
Support windows arm
danlapid Jul 13, 2026
070fca0
Merge branch 'dlapid/windowsarm' into 'gitlab'
danlapid Jul 13, 2026
23133f6
WOR-000: fix types for forward steps with delay functions
Naapperas Jul 13, 2026
daeb2f1
Introduce JsWritableStream abstraction
jasnell Jul 7, 2026
576b8bf
Scaffold pipeTo/pipeThrough support in JsReadableStream/JsWritableStream
jasnell Jul 7, 2026
dd171a4
Use JsWritableStream in sockets code
jasnell Jul 7, 2026
6ca22b2
Use JsWritableStream in containers code
jasnell Jul 7, 2026
94ac2bf
Fix copyright header years
jasnell Jul 7, 2026
015c358
Fixup pipeTo holding strong reference
jasnell Jul 8, 2026
13a2f09
WOR-000: fix types for rollback steps with delay functions
Naapperas Jul 13, 2026
4f67ee7
hardening.md
mikea Jul 13, 2026
db51bd4
Edit AGENTS.md
mikea Jul 13, 2026
752b6fe
Merge branch 'maizatskyi-gitlab-patch-61721' into 'gitlab'
mikea Jul 13, 2026
c9024c7
Merge branch 'maizatskyi/2026-07-13-hardening-md' into 'gitlab'
mikea Jul 13, 2026
85a82bf
harden ReadableStreamSource reference
mikea Jul 13, 2026
39c99f5
Merge branch 'jasnell/jswritablestream' into 'gitlab'
jasnell Jul 13, 2026
d201678
Fix workerd Date.now() to more closely mimic production behavior.
danlapid Jul 13, 2026
addb54a
Just format
danlapid Jul 13, 2026
8909c73
Merge branch 'dlapid/2026-07-13-format' into 'gitlab'
danlapid Jul 13, 2026
bc709f2
Merge branch 'maizatskyi/2026-07-13-readable-stream-source' into 'git…
mikea Jul 13, 2026
b41154b
Harden WritableStreamSink reference
mikea Jul 13, 2026
581a268
Add `bytes` variant to Frankenvalue
danlapid Jul 3, 2026
28ba2b6
Add decompileCompatibilityFlags for the full flag set
danlapid Jul 3, 2026
da2cfe1
Implement WorkerInterface Rust->C++ bridge
danlapid Jul 3, 2026
2ff3f49
Merge branch 'maizatskyi/2026-07-13-sink' into 'gitlab'
mikea Jul 13, 2026
21aab10
Merge branch 'dlapid/workerd-cxx-bump' into 'gitlab'
danlapid Jul 13, 2026
a30d6b9
EW-9327 Implement connection string override support
fhanau May 8, 2026
606e98d
Merge branch 'felix/050426-connect-EW-9327' into 'gitlab'
fhanau Jul 13, 2026
307d33a
Merge branch 'dlapid/fixWorkerdTime' into 'gitlab'
danlapid Jul 13, 2026
72cd7e4
Merge branch 'gitlab' into error-info
ibbykhazanchi Jul 13, 2026
fec7456
Upgrade to V8 15.1
dcarney-cf Jul 14, 2026
60638a6
Merge branch 'dcarney/v8-15.1' into 'gitlab'
dcarney-cf Jul 14, 2026
3223f34
[o11y] Omit fetch headers when stringifying FetchEventInfo outside of…
fhanau Jul 14, 2026
4225ee1
Merge remote-tracking branch 'origin/gitlab' into error-info
ibbykhazanchi Jul 14, 2026
7c1479f
Merge branch 'felix/071426-trace-headers' into 'gitlab'
fhanau Jul 14, 2026
cf3b907
Merge branch 'nunopereira/fix-workflow-step-do-single-typearg' into '…
Naapperas Jul 14, 2026
6d285c2
[build] Update to Bazel 9.2.0, build maintenance
fhanau Jul 13, 2026
6ec059d
Link wd_rust_binary against our rust_runtime target
npaun Jul 13, 2026
4241b8a
[o11y] Additional hardening for outcome reporting
fhanau Jun 22, 2026
8dff836
Merge branch 'felix/071326-bazel-920' into 'gitlab'
fhanau Jul 14, 2026
4a7cb3e
Merge branch 'felix/062126-outcome-hardening' into 'gitlab'
fhanau Jul 14, 2026
8648ecb
Merge branch 'npaun/more-rust-runtime' into 'gitlab'
npaun Jul 14, 2026
d3c2595
Enable nodejs_compat by default.
jasnell Jul 14, 2026
2ca2843
Fixup tests with nodejs_compat as default
jasnell Jul 14, 2026
1592c5c
Merge branch 'jasnell/nodejs-compat-its-time' into 'gitlab'
jasnell Jul 14, 2026
e960fba
iocontext run tidy
mikea Jul 14, 2026
e7458a6
Merge remote-tracking branch 'origin/gitlab' into error-info
ibbykhazanchi Jul 14, 2026
fb18d25
Merge branch 'maizatskyi/2026-07-14-iocontext-manual-capture' into 'g…
mikea Jul 14, 2026
b4f8fc9
use more idiomatic switch with which
ibbykhazanchi Jul 14, 2026
3853b75
Merge branch 'error-info' into 'gitlab'
ibbykhazanchi Jul 14, 2026
0b10be7
Extra ffi utilities for headers
danlapid Jul 14, 2026
fdfa0f6
Merge branch 'dlapid/extraHeadersFfi' into 'gitlab'
danlapid Jul 15, 2026
d1b417a
Add item_id and key filters to AiSearch list items types
nelsonjsduarte Jul 8, 2026
12bbc3b
Merge branch 'nduarte/ai-search-list-items-filters' into 'gitlab'
nelsonjsduarte Jul 15, 2026
9627de2
update capnproto
mikea Jul 15, 2026
1f12b8f
Merge branch 'maizatskyi/2026-07-15-workerd-update-capnp' into 'gitlab'
mikea Jul 15, 2026
619d28e
use WeakRc for weak IoContext
mikea Jul 13, 2026
d1bacde
Merge branch 'maizatskyi/2026-07-13-iocontext-weakrc' into 'gitlab'
mikea Jul 15, 2026
6d87a62
[clang-tidy] improved iocontext capture check
mikea Jul 15, 2026
3fe8832
Merge branch 'maizatskyi/2026-07-15-clang-tidy-iocontext-run' into 'g…
mikea Jul 15, 2026
b3c97ce
[build] split small io pieces
mikea Jul 15, 2026
dc7e74b
just format
mikea Jul 15, 2026
9f2514e
hardening IoContext& in api/streams
mikea Jul 15, 2026
66dfe41
Fix getBuiltinModule to return default export for node built-ins in n…
logan-gatlin Jul 15, 2026
30f5d55
Merge branch 'logan/fix-getbuiltinmodule-node-default' into 'gitlab'
logan-gatlin Jul 15, 2026
a08757e
Ignore query/fragment when redirecting node:process in new module reg…
logan-gatlin Jul 15, 2026
ff4722b
Merge branch 'logan/fix-node-process-query-redirect' into 'gitlab'
logan-gatlin Jul 15, 2026
068c847
Merge branch 'maizatskyi/2026-07-15-split-io' into 'gitlab'
mikea Jul 15, 2026
a3dfe21
Merge branch 'maizatskyi/2026-07-15-iocontext-ref' into 'gitlab'
mikea Jul 15, 2026
06ba249
Reject require() of a top-level-await module even when already evaluated
logan-gatlin Jul 15, 2026
06d5f5c
Merge branch 'logan/fix-require-tla-already-evaluated' into 'gitlab'
logan-gatlin Jul 15, 2026
3ab9ffe
Fix normalizePathEncoding dropping encoded slash after a non-%2f escape
logan-gatlin Jul 15, 2026
9aa8e57
Merge branch 'logan/fix-normalize-path-encoding-multi-percent' into '…
logan-gatlin Jul 15, 2026
3591a85
Merge branch 'maizatskyi/2026-07-15-just-format' into 'gitlab'
mikea Jul 15, 2026
60997f6
Merge remote-tracking branch 'gitlab/gitlab' into maizatskyi/2026-07-…
mikea Jul 16, 2026
281677d
just generate-types
mikea Jul 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ build:unix --features=external_include_paths --host_features=external_include_pa
# Disable deprecated cfg = "host" Bazel rule setting. Blocked on perfetto.
# common --incompatible_disable_starlark_host_transitions

# Globally disable the "diabolic behavior" of implicit __init__.py creation (https://github.com/bazel-contrib/rules_python/issues/2945)
common --incompatible_default_to_explicit_init_py

# Our dependencies (ICU, zlib, etc.) produce a lot of these warnings, so we disable them.
build --per_file_copt='external@-Wno-error'
build --per_file_copt='external@-Wno-suggest-override'
Expand Down Expand Up @@ -282,6 +285,11 @@ build:unix --cxxopt='-Wsuggest-override'
build:linux --config=unix
build:macos --config=unix

# Disable the deprecated rules_cc macOS toolchain – no need to configure this since we always use
# the apple_support one, this will be removed in the future. See https://github.com/bazelbuild/rules_cc/issues/754
# for context.
build:macos --repo_env=BAZEL_USE_LEGACY_MACOS_TOOLCHAIN=0

# Support macOS 13 as the minimum version. There should be at least a warning when backward
# compatibility is broken as -Wunguarded-availability-new is enabled by default. Only enable for
# target configuration as host configuration tools are only used during the build process.
Expand Down
2 changes: 1 addition & 1 deletion .bazelversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
9.1.1
9.2.0
43 changes: 42 additions & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ Checks: >
readability-use-concise-preprocessor-directives,
jsg-visit-for-gc,
workerd-consume,
workerd-unsafe-continuation-capture
workerd-unsafe-continuation-capture,
custom-iocontext-run-manual-capture

# TODO: Fix and enable
# bugprone-derived-method-shadowing-base-method
Expand All @@ -93,3 +94,43 @@ CheckOptions:
value: "jsg/jsg.h|jsg/dom-exception.h"
- key: cppcoreguidelines-missing-std-forward.ForwardFunction
value: "kj::fwd"

####
# Custom checks.
#
# Query-based custom checks (see capnp-cpp's `.clang-tidy` for more examples).
# These require clang-tidy's `--experimental-custom-checks` flag, which is passed
# by `build/tools/clang_tidy/clang_tidy.bzl`.
#
# References:
# - https://clang.llvm.org/extra/clang-tidy/QueryBasedCustomChecks.html
# - https://clang.llvm.org/docs/LibASTMatchersReference.html
CustomChecks:
- Name: iocontext-run-manual-capture
# `IoContext::run()` (and friends) accept a callback of either
# `(Worker::Lock&)` or `(Worker::Lock&, IoContext&)`. When the callback needs
# the IoContext, the two-argument form should be used so that the IoContext is
# passed in as a parameter, rather than capturing it manually in the lambda
# capture list (which is easy to get wrong with respect to lifetimes).
#
# This matches a call to `IoContext::run(...)` whose first argument is a lambda
# that captures a variable whose type is `IoContext` (by value, reference, or
# pointer), e.g. `ctx.run([&ctx](Worker::Lock& lock) { ... })`.
Query: |
match cxxMemberCallExpr(
callee(cxxMethodDecl(
hasName("run"),
ofClass(cxxRecordDecl(hasName("::workerd::IoContext")))
)),
hasArgument(0, ignoringImplicit(lambdaExpr(
hasAnyCapture(lambdaCapture(capturesVar(varDecl(hasType(qualType(anyOf(
hasDeclaration(cxxRecordDecl(hasName("::workerd::IoContext"))),
references(cxxRecordDecl(hasName("::workerd::IoContext"))),
pointsTo(cxxRecordDecl(hasName("::workerd::IoContext")))
)))))))
).bind("lambda")))
).bind("call")
Diagnostic:
- BindName: lambda
Message: "IoContext::run() lambda captures the IoContext manually; use the two-argument (Worker::Lock&, IoContext&) lambda form instead"
Level: Warning
7 changes: 6 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ Key elements: `modules` (embed JS/TS files), `compatibilityFlags`, `bindings` (s

### Dependencies

- **Cap'n Proto source code** available in `external/capnp-cpp` - contains KJ C++ base library and
- **Cap'n Proto source code** available in `external/+http+capnp-cpp/` - it contains KJ C++ base library and
capnproto RPC library. Consult it for all questions about `kj/` and `capnproto/` includes and
`kj::` and `capnp::` namespaces.

Expand Down Expand Up @@ -246,6 +246,11 @@ C++ classes are exposed to JavaScript via JSG macros in `src/workerd/jsg/`. See
- The `jsg-visit-for-gc` clang-tidy check (`//tools/clang-tidy:workerd-lint`)
validates that GC-visitable fields are traced in `visitForGc()`. Run via
`just clang-tidy <target>`. See `build/AGENTS.md` for details.
- The `workerd-unsafe-continuation-capture` clang-tidy check flags lambdas
passed to async sinks (`kj/jsg::Promise::then`, `IoContext::run/awaitIo/...`,
`kj::evalLater`, ...) that capture bare references, `[this]`, or non-owning
views. See `docs/reference/detail/async-patterns.md` §Continuation Captures
for the safe-capture pattern catalog.

### Feature Management

Expand Down
1 change: 1 addition & 0 deletions BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ genrule(
outs = ["merged.clang-tidy"],
cmd = "$(location //build/tools/clang_tidy:merge_clang_tidy_configs) $@ $(location :.clang-tidy) $(location @capnp-cpp//:.clang-tidy)",
tools = ["//build/tools/clang_tidy:merge_clang_tidy_configs"],
visibility = ["//visibility:public"],
)

# Plugin to generate .js files
Expand Down
5 changes: 1 addition & 4 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,6 @@ include("//build/deps:v8.MODULE.bazel")
include("//build/deps:oci.MODULE.bazel")
include("//build/deps/formatters:rustfmt.MODULE.bazel")

# compatibility proxy is needed when using current rules_cc with Bazel 8
compat = use_extension("@rules_cc//cc:extensions.bzl", "compatibility_proxy")
use_repo(compat, "cc_compatibility_proxy")

# Make local_config_cc available, used for retrieving Windows clang-cl toolchain
cc_configure = use_extension("@rules_cc//cc:extensions.bzl", "cc_configure_extension")
use_repo(cc_configure, "local_config_cc")
10 changes: 5 additions & 5 deletions build/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,22 +74,22 @@ supports this:

1. Add the check to `.clang-tidy` Checks list
2. Add an entry to `CHECK_PATH_FILTERS` with an empty list (runs nowhere)
3. Add packages as they are cleaned up
3. Add file paths as they are cleaned up
4. Remove the entry once fully rolled out (runs everywhere)

Example:

```python
CHECK_PATH_FILTERS = {
"workerd-unsafe-continuation-capture": [
"//src/workerd/io",
"//src/workerd/api",
"src/workerd/io",
"src/workerd/api",
],
}
```

Package prefixes match themselves and all subpackages (`//src/workerd/io`
matches `//src/workerd/io:*` and `//src/workerd/io/subdir:*`).
Path prefixes match all files under that directory (`src/workerd/io`
matches `src/workerd/io/foo.c++` and `src/workerd/io/subdir/bar.c++`).

To run a filtered check everywhere during development:

Expand Down
11 changes: 0 additions & 11 deletions build/config/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,3 @@ config_setting(
values = {"define": "never_match=true"}, # This will never match
visibility = ["//visibility:public"],
)

# Whether rules_rust binaries/tests should link via cc_common.link (see the
# wd_rust_* macros). Always false standalone; an embedder may override this
# when it needs these targets to link through the cc toolchain (e.g. to pick
# up a custom allocator selected via --custom_malloc). Kept off here because
# standalone workerd builds with non-hermetic system clang.
config_setting(
name = "rust_cc_common_link",
values = {"define": "never_match=true"}, # This will never match
visibility = ["//visibility:public"],
)
58 changes: 58 additions & 0 deletions build/deps/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Bazel makes it difficult to define link options so that they can be set to different values for
# tool/test binaries and across different C++ and Rust binaries – define a common configuration for
# linker flags for workerd and downstream builds.

load("@rules_cc//cc:cc_library.bzl", "cc_library")

cc_library(
name = "linkopts_common",
# -dead_strip is the macOS equivalent of -ffunction-sections, -Wl,--gc-sections.
# -no_exported_symbols is used to not include the exports trie, which significantly reduces
# binary sizes. Unfortunately, the flag and the exports trie are poorly documented. Based
# on analyzing the binary sections with and without the flag, the information being removed
# consists of weak binding info, export binding info and stub bindings as described in
# http://www.newosxbook.com/articles/DYLD.html. The flag itself is described in
# https://www.wwdcnotes.com/notes/wwdc22/110362/.
# The affected sections appear to not be needed for debugging and are only used when
# external code needs to look up bindings in a binary, e.g. when loading a plugin
# (mac-specific feature). In particular, the symbol table is not affected (the name of the
# flag is misleading here).
linkopts = select({
"@//:use_dead_strip": [
"-Wl,-dead_strip",
"-Wl,-no_exported_symbols",
],
"//conditions:default": [""],
}),
visibility = ["//visibility:public"],
)

cc_library(
name = "linkopts_default",
# For test binaries, reduce thinLTO optimizations and inlining to speed up linking. This
# only has an effect if thinLTO is enabled. -Wl,--lto-O0 results in disabling cross-optimization
# entirely without affecting codegen optimizations within a translation unit. Also limit thinLTO
# parallelism since our many test binaries may lead to resource exhaustion, but are unlikely to
# be on the critical path of a build step.
# TODO(someday): We used to turn down thinLTO optimization slightly less – maybe there's a use
# case for these settings somewhere still?
# linkopts = ["-Wl,--lto-O1", "-Wl,-mllvm,-import-instr-limit=5"],
linkopts = select({
"@platforms//os:linux": [
"-Wl,--lto-O0",
"-Wl,--thinlto-jobs=4",
],
"//conditions:default": [""],
}),
visibility = ["//visibility:public"],
deps = [":linkopts_common"],
)

# link options to use with tools where we don't want to compromise performance, e.g. workerd. At
# present, this is identical to linkopts_common, but we may want to move some linker optimizations
# here in the future.
cc_library(
name = "linkopts_tool",
visibility = ["//visibility:public"],
deps = [":linkopts_common"],
)
4 changes: 2 additions & 2 deletions build/deps/deps.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
"owner": "fastfloat",
"repo": "fast_float",
"branch": "main",
"freeze_commit": "05087a303dad9c98768b33c829d398223a649bc6",
"freeze_commit": "34164f547b7df3f5d794ff67e9f885c36819ebfc",
"build_file_content": "cc_library(name = 'fast_float', hdrs = glob(['include/fast_float/*.h']), visibility = ['//visibility:public'], include_prefix = 'third_party/fast_float/src')",
"use_module_bazel_from_bcr": "8.0.2"
},
Expand All @@ -67,7 +67,7 @@
"use_bazel_dep": true,
"owner": "Maratyszcza",
"repo": "FP16",
"freeze_commit": "3d2de1816307bac63c16a297e8c4dc501b4076df",
"freeze_commit": "782eea126dc5c755827be751a099eb01826175cf",
"build_file_content": "exports_files(glob(['**']))",
"use_module_bazel_from_bcr": "0.0.0-20210320-0a92994"
},
Expand Down
24 changes: 12 additions & 12 deletions build/deps/gen/deps.MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ bazel_dep(name = "brotli", version = "1.2.0.bcr.1")
# capnp-cpp
http.archive(
name = "capnp-cpp",
sha256 = "94e5bcd03d14b8f1a1713e2477941e00b130b63b5a1aad97a10ff5edf05b6765",
strip_prefix = "capnproto-capnproto-e9fa5c7/c++",
sha256 = "fb221d3727b12fe3165b8dbbdfbf6f3d7073b353e434f1b9de9022618a3ed446",
strip_prefix = "capnproto-capnproto-bd8232b/c++",
type = "tgz",
url = "https://github.com/capnproto/capnproto/tarball/e9fa5c7dc98192fc0dc0098ec770db68f997a938",
url = "https://github.com/capnproto/capnproto/tarball/bd8232ba2e09761c0901d1f64d14c83c17832001",
)
use_repo(http, "capnp-cpp")

Expand All @@ -52,10 +52,10 @@ archive_override(
build_file_content = "cc_library(name = 'fast_float', hdrs = glob(['include/fast_float/*.h']), visibility = ['//visibility:public'], include_prefix = 'third_party/fast_float/src')",
remote_file_integrity = {"MODULE.bazel": "sha256-Q1BGZO/fpMbPE0libIcTXJuHkmMlxyBFjzlu7iVWjto="},
remote_file_urls = {"MODULE.bazel": ["https://raw.githubusercontent.com/bazelbuild/bazel-central-registry/refs/heads/main/modules/fast_float/8.0.2/MODULE.bazel"]},
sha256 = "aa2ab8d370d1011a7a6d4ab90589b298b7e5973fe00041c06ecc7298328c25b4",
strip_prefix = "fastfloat-fast_float-05087a3",
sha256 = "9b239eaa54c58fc3a1bb7e1a11030b67211e38ce7f4781b41b004f26f6fd1528",
strip_prefix = "fastfloat-fast_float-34164f5",
type = "tgz",
url = "https://github.com/fastfloat/fast_float/tarball/05087a303dad9c98768b33c829d398223a649bc6",
url = "https://github.com/fastfloat/fast_float/tarball/34164f547b7df3f5d794ff67e9f885c36819ebfc",
)

# fp16
Expand All @@ -65,10 +65,10 @@ archive_override(
build_file_content = "exports_files(glob(['**']))",
remote_file_integrity = {"MODULE.bazel": "sha256-2YAHXAyoWo6FapWo2MBLpWyewByY+F4tSWUMbYt8gmg="},
remote_file_urls = {"MODULE.bazel": ["https://raw.githubusercontent.com/bazelbuild/bazel-central-registry/refs/heads/main/modules/fp16/0.0.0-20210320-0a92994/MODULE.bazel"]},
sha256 = "81686dc45a7897cf958ee99f655879a066dde41db5fc1379a1e8db338ad17589",
strip_prefix = "Maratyszcza-FP16-3d2de18",
sha256 = "ee835b205fabb4035d2c64a2dda54f2e8ff720f9f77a1945b8fa71ba61290c70",
strip_prefix = "Maratyszcza-FP16-782eea1",
type = "tgz",
url = "https://github.com/Maratyszcza/FP16/tarball/3d2de1816307bac63c16a297e8c4dc501b4076df",
url = "https://github.com/Maratyszcza/FP16/tarball/782eea126dc5c755827be751a099eb01826175cf",
)

# highway
Expand Down Expand Up @@ -136,10 +136,10 @@ bazel_dep(name = "tcmalloc", version = "0.0.0-20250927-12f2552")
# workerd-cxx
http.archive(
name = "workerd-cxx",
sha256 = "d4db1075562a134a19dee7751adfc79bba95cad7740bb42d5621c4dfd78158d3",
strip_prefix = "cloudflare-workerd-cxx-5cb35c5",
sha256 = "f3213d568e0d135753da8e3f3c16c5a4f2c508c567d567a608e85ba61d98aa2c",
strip_prefix = "cloudflare-workerd-cxx-61285bf",
type = "tgz",
url = "https://github.com/cloudflare/workerd-cxx/tarball/5cb35c57a904f3c949b13583a66a4ae55ebb6eda",
url = "https://github.com/cloudflare/workerd-cxx/tarball/61285bf53ffed51e4bc47d795f0e92461ce41ab4",
)
use_repo(http, "workerd-cxx")

Expand Down
14 changes: 7 additions & 7 deletions build/deps/python.MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -24,31 +24,31 @@ use_repo(
"all_pyodide_wheels_20250808",
"beautifulsoup4_src_0.26.0a2",
"beautifulsoup4_src_0.28.2",
"beautifulsoup4_src_314.0.0",
"beautifulsoup4_src_314.0.2",
"beautifulsoup4_src_development",
"fastapi_src_0.26.0a2",
"fastapi_src_0.28.2",
"numpy_src_0.28.2",
"numpy_src_314.0.0",
"numpy_src_314.0.2",
"numpy_src_development",
"pyodide-0.26.0a2",
"pyodide-0.28.2",
"pyodide-314.0.0",
"pyodide-314.0.2",
"pyodide-snapshot-baseline-4569679fb.bin",
"pyodide-snapshot-baseline-484e61538.bin",
"pyodide-snapshot-baseline-61eedf943.bin",
"pyodide-snapshot-baseline-8816cf608.bin",
"pyodide-snapshot-snapshot_a6b652a95810783f5078b9a5dbd4a07c30718acb4ff724e82c25db7353dd7f2d.bin",
"pyodide_0.26.0a2_2024-03-01_83.capnp.bin",
"pyodide_0.28.2_2025-01-16_14.capnp.bin",
"pyodide_314.0.0_2026-06-10_6.capnp.bin",
"pyodide_314.0.2_2026-06-10_12.capnp.bin",
"pyodide_dev.capnp.bin",
"pytest-asyncio_src_0.26.0a2",
"pytest-asyncio_src_0.28.2",
"pytest-asyncio_src_314.0.0",
"pytest-asyncio_src_314.0.2",
"pytest-asyncio_src_development",
"python-workers-runtime-sdk_src_0.26.0a2",
"python-workers-runtime-sdk_src_0.28.2",
"python-workers-runtime-sdk_src_314.0.0",
"python-workers-runtime-sdk_src_314.0.2",
"python-workers-runtime-sdk_src_development",
"scipy_src_0.26.0a2",
"shapely_src_0.28.2",
Expand Down
13 changes: 6 additions & 7 deletions build/deps/v8.MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "ht

git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")

VERSION = "15.0.245.14"
VERSION = "15.1.206.7"

INTEGRITY = "sha256-6Txsw77ZX2BQoqTdA0WQQ5C2EmgUu6lYQAkT/wJ2UUM="
INTEGRITY = "sha256-BToQQPeqVh//fw86DQYHhNVBzyfJ7f+Wlwlfz4nRBZs="

PATCHES = [
"0001-Allow-manually-setting-ValueDeserializer-format-vers.patch",
Expand Down Expand Up @@ -58,10 +58,9 @@ PATCHES = [
"0033-Return-false-on-Object.hasOwnProperty-with-intercept.patch",
"0034-Remove-V8-MODULE.bazel-llvm-toolchain-and-libcxx-rep.patch",
"0035-Remove-libcxx-dep-from-defs.bzl-not-resolvable-via-h.patch",
"0036-Fix-non-portable-std-atomic_flag-construction-in-run.patch",
"0037-Fix-ExtendedMap-layout-on-Windows.patch",
"0038-Fix-CFunction-MemorySpan-declarations-on-Windows.patch",
"0039-Properly-depend-on-llvm-libc.patch",
"0036-Fix-ExtendedMap-layout-on-Windows.patch",
"0037-Fix-CFunction-MemorySpan-declarations-on-Windows.patch",
"0038-Properly-depend-on-llvm-libc.patch",
]

http_archive(
Expand All @@ -83,7 +82,7 @@ git_repository(
git_repository(
name = "com_googlesource_chromium_icu",
build_file = "@v8//:bazel/BUILD.icu",
commit = "ee5f27adc28bd3f15b2c293f726d14d2e336cbd5",
commit = "d578f2e8b7bd5938e21cfb6bf15c079e0aa5b738",
patch_cmds = ["find source -name BUILD.bazel | xargs rm"],
patch_cmds_win = ["Get-ChildItem -Path source -File -Include BUILD.bazel -Recurse | Remove-Item"],
remote = "https://chromium.googlesource.com/chromium/deps/icu.git",
Expand Down
9 changes: 1 addition & 8 deletions build/kj_test.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,12 @@ def kj_test(
srcs = [src],
deps = [
"@capnp-cpp//src/kj:kj-test",
"//build/deps:linkopts_default",
] + deps,
linkstatic = select({
"@platforms//os:linux": 0,
"//conditions:default": 1,
}),
# For test binaries, reduce thinLTO optimizations and inlining to speed up linking. This
# only has an effect if thinLTO is enabled. Also apply dead_strip on macOS to manage binary
# sizes.
linkopts = select({
"@platforms//os:linux": ["-Wl,--lto-O1", "-Wl,-mllvm,-import-instr-limit=5"],
"@//:use_dead_strip": ["-Wl,-dead_strip", "-Wl,-no_exported_symbols"],
"//conditions:default": [""],
}),
data = data,
tags = tags,
target_compatible_with = select({
Expand Down
Loading
Loading