How to disable the default action in dune

I’m building a library and have an examples directory where some of the code is dependent on libraries that the user may not want to install. So, I created a dune file with a default stanza:

(executables
 (names example_async)
 (libraries async core))

(alias
 (name default)
 (deps))

(alias
 (name examples_async)
 (deps example_async.exe))

This works fine when I am in the directory containing the dune file. I can run dune build and nothing happens. When I run dune build @examples_async the exe is built (or fails if the libraries are missing).

However, when I build from the top level of the project with dune build --debug-dependency-path, I get:

File "examples/async/dune", line 3, characters 25-29:
3 |  (libraries async core))
                      ^^^^
Error: Library "core" not found.
-> required by examples/async/example_async.exe
-> required by alias examples/async/all
-> required by alias examples/default
Hint: try:
  dune external-lib-deps --missing --debug-dependency-path @@default

Is it possible to disable the default action this way or am I missing something?

I figured this out: I didn’t have a dune file in the examples directory, only in the sub-directories of examples. Adding

(alias
 (name default)
 (deps))

To the examples directory fixed the issue. What is odd is that the default stanza when the default alias is missing is defined in the manual as

(alias
 (name default)
 (deps (alias_rec all)))

Which only builds installable artifacts. But the executables in the examples directory are not installed when dune build @install is run. So why are they installable for the all alias? I may submit a bug report