Skip to content

Multilevel break/continue with GraphQL fallback to executeBridge#104

Merged
aarne merged 13 commits intomainfrom
copilot/add-control-flow-examples
Mar 6, 2026
Merged

Multilevel break/continue with GraphQL fallback to executeBridge#104
aarne merged 13 commits intomainfrom
copilot/add-control-flow-examples

Conversation

Copy link
Contributor

Copilot AI commented Mar 6, 2026

  • Inspect current branch state and merge-conflict status
  • Pull latest main into this branch and resolve merge conflicts
  • Run targeted tests for touched conflict areas (packages/bridge/test/control-flow.test.ts, packages/bridge-compiler/test/codegen.test.ts)
  • Run repo validation (npx pnpm build, npx pnpm lint, npx pnpm test; npx pnpm e2e still fails due external fetch in weather/composed examples)
  • Run code review and security scan (CodeQL: 0 alerts)
  • Share screenshot and reply with commit hash
Original prompt

This section details on the original issue you should resolve

<issue_title>Create examples for control flow</issue_title>
<issue_description>Array mapping control flow (break and continue) statements have no examples in playground

throw and panic are simple - and they can be triggered from any place (array loops of just bridge blocks)

break and continue - are only for array use-cases (similar to prefiltering)

  • one skips an item
  • one stops the loop

for example sit is important to remember that the also take additional parameter of break 2 for eaxmple to break out of the parent loop as in normal programming languages

create examples in playground</issue_description>

Comments on the Issue (you are @copilot in this section)


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

@changeset-bot
Copy link

changeset-bot bot commented Mar 6, 2026

🦋 Changeset detected

Latest commit: e24c4b5

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 5 packages
Name Type
@stackables/bridge-compiler Minor
@stackables/bridge-parser Minor
@stackables/bridge-core Minor
@stackables/bridge-graphql Minor
@stackables/bridge Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

…tinue

Co-authored-by: aarne <82001+aarne@users.noreply.github.com>
@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Mar 6, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
bridge 2d74f8b Commit Preview URL

Branch Preview URL
Mar 06 2026, 12:21 PM

Copilot AI changed the title [WIP] Add examples for break and continue in control flow Add Playground examples for control-flow gates in arrays and error paths Mar 6, 2026
Copilot finished work on behalf of aarne March 6, 2026 11:06
@aarne
Copy link
Contributor

aarne commented Mar 6, 2026

@copilot

i suspect the multilevel break and continue have not been implemented in code

o <- i.catalog[] as cat {
.name <- cat.name
.items <- cat.items[] as item {
.sku <- item.sku ?? continue
.price <- item.price ?? break 2
}
}

the break 2 should break out of the outer loop of i.catalog[] as cat ... but the syntax shows already error in playground

same for continue

lets make sure we have proper unit tests for this usecase also not only examples in the playground. if its not implemented please implement tehfeature

===

correct example for throw is ... this is a langauge limitation for now ... but we are ok with this one. only applies to () ? a " b syntax

version 1.5

bridge Query.validateProfile {
with input as i
with output as o

o.name <- i.name || throw "name is required"
o.status <- i.fatal ? null : "ok" ?? panic "fatal validation error"
}

Co-authored-by: aarne <82001+aarne@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Mar 6, 2026

@copilot

i suspect the multilevel break and continue have not been implemented in code
...

Implemented in commit 822cce7.

break N / continue N are now supported end-to-end (parser, serializer, runtime, compiler), with new unit coverage for parse/roundtrip and dual-engine execution of break 2/continue 2 in nested array loops. I also updated the throw/panic playground example to the supported syntax:
o.status <- i.fatal ? null : "ok" ?? panic "fatal validation error".

UI screenshot: https://github.com/user-attachments/assets/0a06bced-16fb-4113-814c-28fddc1c1a28

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • api.open-meteo.com
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts rol-flow-examples (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts rol-flow-examples ules/pnpm/dist/node-gyp-bin/node (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts (dns block)
  • dummyjson.com
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts rol-flow-examples (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts (dns block)
  • nominatim.openstreetmap.org
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts rol-flow-examples (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts rol-flow-examples ules/pnpm/dist/node-gyp-bin/node (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts (dns block)
  • transport.opendata.ch
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts rol-flow-examples graphql/node_modules/.bin/node (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts --conditions=source graphql/node_modules/.bin/node est/*.test.ts rol-flow-example-c /rg bash (dns block)
  • v6.db.api.bahn.guru
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts rol-flow-examples graphql/node_modules/.bin/node (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts --conditions=source graphql/node_modules/.bin/node est/*.test.ts rol-flow-example-c /rg bash (dns block)
  • workers.cloudflare.com
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/bridge/bridge/packages/playground/node_modules/.bin/../vite/bin/vite.js -- --host 127.0.0.1 --port 4173 h p (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title Add Playground examples for control-flow gates in arrays and error paths Add Playground control-flow examples and implement multilevel break/continue support Mar 6, 2026
Copilot finished work on behalf of aarne March 6, 2026 11:51
@aarne
Copy link
Contributor

aarne commented Mar 6, 2026

@copilot please pull in latest from main and fix the merge conflict

retest and push for my final review

Co-authored-by: aarne <82001+aarne@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Mar 6, 2026

@copilot please pull in latest from main and fix the merge conflict

retest and push for my final review

Merged latest main, resolved the conflict in packages/bridge-compiler/src/codegen.ts, re-ran validation, and pushed commit 69cef4e.

Validation run:

  • npx pnpm build
  • npx pnpm lint
  • npx pnpm test
  • npx pnpm e2e ⚠️ still failing on external fetch-dependent weather/composed example tests (same environment/network issue).

Screenshot: https://github.com/user-attachments/assets/0a06bced-16fb-4113-814c-28fddc1c1a28

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • api.open-meteo.com
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts rol-flow-examples ules/pnpm/dist/node-gyp-bin/node (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts (dns block)
  • dummyjson.com
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts (dns block)
  • nominatim.openstreetmap.org
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts rol-flow-examples ules/pnpm/dist/node-gyp-bin/node (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts (dns block)
  • transport.opendata.ch
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts rol-flow-examples n/node (dns block)
  • v6.db.api.bahn.guru
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --heap-prof-interval=524288 --cpu-prof-interval=1000 --test-coverage-functions=0 --test-concurrency=0 --inspect-publish-uid=stderr,http --inspect-port=127.0.0.1:9229 --experimental-transform-types --report-signal=SIGUSR2 --test-coverage-lines=0 --test-isolation=process --conditions=source --tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA est/*.test.ts rol-flow-examples n/node (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot finished work on behalf of aarne March 6, 2026 12:11
@aarne aarne marked this pull request as ready for review March 6, 2026 12:20
@github-actions
Copy link
Contributor

github-actions bot commented Mar 6, 2026

🐰 Bencher Report

Branchcopilot/add-control-flow-examples
Testbedubuntu-latest
Click to view all benchmark results
BenchmarkLatencyBenchmark Result
nanoseconds (ns)
(Result Δ%)
Upper Boundary
nanoseconds (ns)
(Limit %)
compiled: absolute baseline (passthrough, no tools)📈 view plot
🚷 view threshold
0.00 ns
(-2.28%)Baseline: 0.00 ns
0.00 ns
(90.15%)
compiled: array + tool-per-element 10📈 view plot
🚷 view threshold
0.01 ns
(-0.72%)Baseline: 0.01 ns
0.01 ns
(93.05%)
compiled: array + tool-per-element 100📈 view plot
🚷 view threshold
0.03 ns
(+0.36%)Baseline: 0.03 ns
0.04 ns
(94.62%)
compiled: chained 3-tool fan-out📈 view plot
🚷 view threshold
0.00 ns
(-1.40%)Baseline: 0.00 ns
0.00 ns
(91.85%)
compiled: flat array 10 items📈 view plot
🚷 view threshold
0.00 ns
(-2.16%)Baseline: 0.01 ns
0.01 ns
(91.40%)
compiled: flat array 100 items📈 view plot
🚷 view threshold
0.01 ns
(-1.64%)Baseline: 0.01 ns
0.01 ns
(93.49%)
compiled: flat array 1000 items📈 view plot
🚷 view threshold
0.07 ns
(-1.64%)Baseline: 0.07 ns
0.07 ns
(94.29%)
compiled: nested array 10x10📈 view plot
🚷 view threshold
0.02 ns
(-1.87%)Baseline: 0.02 ns
0.02 ns
(91.82%)
compiled: nested array 20x10📈 view plot
🚷 view threshold
0.03 ns
(-1.55%)Baseline: 0.03 ns
0.04 ns
(92.50%)
compiled: nested array 5x5📈 view plot
🚷 view threshold
0.01 ns
(-0.67%)Baseline: 0.01 ns
0.01 ns
(93.75%)
compiled: short-circuit (overdefinition bypass)📈 view plot
🚷 view threshold
0.00 ns
(-2.54%)Baseline: 0.00 ns
0.00 ns
(90.04%)
compiled: simple chain (1 tool)📈 view plot
🚷 view threshold
0.00 ns
(-0.62%)Baseline: 0.00 ns
0.00 ns
(92.08%)
exec: absolute baseline (passthrough, no tools)📈 view plot
🚷 view threshold
0.00 ns
(+3.70%)Baseline: 0.00 ns
0.00 ns
(84.90%)
exec: array + tool-per-element 10📈 view plot
🚷 view threshold
0.08 ns
(+1.71%)Baseline: 0.08 ns
0.10 ns
(77.78%)
exec: array + tool-per-element 100📈 view plot
🚷 view threshold
0.68 ns
(+0.27%)Baseline: 0.68 ns
0.91 ns
(74.69%)
exec: chained 3-tool fan-out📈 view plot
🚷 view threshold
0.02 ns
(+10.26%)Baseline: 0.01 ns
0.02 ns
(82.15%)
exec: flat array 10 items📈 view plot
🚷 view threshold
0.01 ns
(-8.10%)Baseline: 0.02 ns
0.03 ns
(42.07%)
exec: flat array 100 items📈 view plot
🚷 view threshold
0.07 ns
(-20.27%)Baseline: 0.09 ns
0.30 ns
(25.13%)
exec: flat array 1000 items📈 view plot
🚷 view threshold
0.68 ns
(-27.43%)Baseline: 0.94 ns
3.61 ns
(18.92%)
exec: nested array 10x10📈 view plot
🚷 view threshold
0.12 ns
(-13.62%)Baseline: 0.14 ns
0.37 ns
(33.64%)
exec: nested array 20x10📈 view plot
🚷 view threshold
0.24 ns
(-15.18%)Baseline: 0.28 ns
0.75 ns
(31.83%)
exec: nested array 5x5📈 view plot
🚷 view threshold
0.05 ns
(-7.16%)Baseline: 0.05 ns
0.10 ns
(46.36%)
exec: short-circuit (overdefinition bypass)📈 view plot
🚷 view threshold
0.00 ns
(+3.47%)Baseline: 0.00 ns
0.00 ns
(90.64%)
exec: simple chain (1 tool)📈 view plot
🚷 view threshold
0.01 ns
(+8.16%)Baseline: 0.01 ns
0.01 ns
(83.93%)
parse: large bridge (20 handles x 5 wires)📈 view plot
🚷 view threshold
1.09 ns
(+8.76%)Baseline: 1.00 ns
1.37 ns
(79.32%)
parse: simple bridge📈 view plot
🚷 view threshold
0.04 ns
(+17.38%)Baseline: 0.03 ns
0.05 ns
(82.57%)
🐰 View full continuous benchmarking report in Bencher

@aarne aarne changed the title Add Playground control-flow examples and implement multilevel break/continue support Multilevel break/continue with GraphQL fallback to executeBridge Mar 6, 2026
@aarne aarne merged commit b213e9f into main Mar 6, 2026
9 checks passed
@aarne aarne deleted the copilot/add-control-flow-examples branch March 6, 2026 13:54
@github-actions github-actions bot mentioned this pull request Mar 6, 2026
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.

Create examples for control flow

2 participants