Skip to content

test(worker): configure CIMD compatibility in Vitest - #950

Merged
chrisdoc merged 2 commits into
mainfrom
feat/worker-cimd
Aug 9, 2026
Merged

test(worker): configure CIMD compatibility in Vitest#950
chrisdoc merged 2 commits into
mainfrom
feat/worker-cimd

Conversation

@chrisdoc

@chrisdoc chrisdoc commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • Provide the Cloudflare.compatibilityFlags.global_fetch_strictly_public runtime global to Node/Vitest unit tests.
  • Prevent @cloudflare/workers-oauth-provider from reporting CIMD as disabled while importing the Worker in unit tests.
  • Keep the production, preview, and Cloudflare pool-worker configurations covered by their existing CIMD compatibility flag and discovery assertion.

Validation

  • mise exec -- npm run test:unit
  • mise exec -- npm run test:worker
  • mise exec -- npm run test:worker-http
  • mise exec -- npm run check
  • mise exec -- npm run check:types
  • mise exec -- npm run worker:dry-run
  • mise exec -- npm run check:changeset

Summary by Sourcery

Configure Vitest to mirror the Cloudflare worker runtime compatibility flag used in production so OAuth-related unit tests correctly detect CIMD support.

New Features:

  • Introduce a Cloudflare runtime setup file that defines the global compatibilityFlags.global_fetch_strictly_public flag for Node-based tests.

Tests:

  • Wire the Cloudflare runtime setup file into Vitest via the setupFiles option to ensure worker-related unit tests run under the expected compatibility configuration.

Summary by CodeRabbit

  • Tests
    • Improved test environment compatibility for Cloudflare-based OAuth provider scenarios.
    • Automatically initializes the required Cloudflare-compatible runtime configuration when tests run.
    • Preserves existing runtime settings while providing consistent, secure test behavior.

✨ PR Description

Purpose: Configure Cloudflare Worker runtime compatibility flags in Vitest to enable OAuth provider testing in Node environment.

Main changes:

  • Created cloudflare-runtime setup file defining Cloudflare global with CIMD compatibility flags for Worker simulation
  • Added setupFiles configuration to vitest.config.ts to inject runtime globals before test execution

Generated by LinearB AI and added by gitStream.
AI-generated content may contain inaccuracies. Please verify before using.
💡 Tip: You can customize your AI Description using Guidelines Learn how

@assert-app

assert-app Bot commented Aug 8, 2026

Copy link
Copy Markdown

Review on Assert →

3 clusters identified

Merge candidate is ready!

@sourcery-ai

sourcery-ai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Configures Vitest to load a Cloudflare runtime shim for Node-based tests so that the OAuth provider sees CIMD-related compatibility flags as enabled without affecting production/preview worker configurations.

File-Level Changes

Change Details Files
Configure Vitest to run a Cloudflare runtime setup file before tests to expose the expected compatibility flag global.
  • Add a setup file path to the Vitest test.setupFiles configuration so it runs for unit and worker tests
  • Ensure the setup file is loaded early so globals are available during module import
vitest.config.ts
Introduce a Cloudflare runtime shim that defines the Cloudflare.compatibilityFlags.global_fetch_strictly_public global for Node test environments.
  • Define a non-enumerable, configurable, writable Cloudflare property on globalThis in tests
  • Set compatibilityFlags.global_fetch_strictly_public to true to mirror Wrangler’s CIMD flag
  • Document that this global is required for the OAuth provider to treat CIMD as enabled during import
tests/setup/cloudflare-runtime.ts

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@gitar-bot gitar-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Gitar has auto-approved this PR (configure)

@gitar-bot gitar-bot Bot added the gitar-approved Added by Gitar label Aug 8, 2026
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Configure Cloudflare CIMD compatibility flag for Vitest/Node unit tests

🧪 Tests ⚙️ Configuration changes 🕐 10-20 Minutes

Grey Divider

AI Description

• Add a Node/Vitest runtime shim for Cloudflare Workers CIMD compatibility flags.
• Load the shim via Vitest setupFiles so Worker imports see globalThis.Cloudflare.
• Prevent the OAuth provider from treating CIMD as disabled during unit test execution.
Diagram

graph TD
  A["Vitest runner"] --> B["vitest.config.ts"] --> C["tests/setup/cloudflare-runtime.ts"] --> D["globalThis.Cloudflare (compatibilityFlags)"] --> E["@cloudflare/workers-oauth-provider (import-time check)"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Mock the global in each affected test suite
  • ➕ No shared/global side effects across the entire unit test run
  • ➕ Keeps setup closer to the tests that need it
  • ➖ Easy to miss new tests that import the Worker indirectly
  • ➖ Duplicates boilerplate and increases maintenance cost
2. Provide a custom Vitest environment that emulates Workers globals
  • ➕ Scales better if more Workers runtime globals need to be emulated
  • ➕ Centralizes all Workers-specific shims in one place
  • ➖ More moving parts than needed for a single compatibility flag
  • ➖ Potentially harder to understand/debug than a simple setup file

Recommendation: The current approach (single Vitest setupFiles shim that mirrors Wrangler’s compatibility flag) is the simplest and most reliable way to ensure import-time checks see the expected Workers global in Node-based unit tests. Consider a custom environment only if more Workers globals/config need to be simulated over time.

Files changed (2) +13 / -0

Tests (1) +12 / -0
cloudflare-runtime.tsAdd Cloudflare runtime global shim with CIMD compatibility flag +12/-0

Add Cloudflare runtime global shim with CIMD compatibility flag

• Introduces a Vitest/Node test setup shim that defines 'globalThis.Cloudflare' with 'compatibilityFlags.global_fetch_strictly_public = true'. This mirrors Wrangler’s compatibility behavior so import-time checks behave consistently in unit tests.

tests/setup/cloudflare-runtime.ts

Other (1) +1 / -0
vitest.config.tsRegister Cloudflare runtime shim via Vitest setupFiles +1/-0

Register Cloudflare runtime shim via Vitest setupFiles

• Configures Vitest to load './tests/setup/cloudflare-runtime.ts' before tests run. Ensures Worker imports during tests see the expected Cloudflare runtime global.

vitest.config.ts

@deepsource-io

deepsource-io Bot commented Aug 8, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 2443cad...5a9ce59 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
JavaScript Aug 9, 2026 7:18a.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hey - I've left some high level feedback:

  • The global Cloudflare definition in tests/setup/cloudflare-runtime.ts will apply to all tests; consider scoping or resetting this in a per-suite setup (e.g. via beforeAll/afterAll) to avoid unintentionally affecting tests that don’t rely on this runtime flag.
  • When defining globalThis.Cloudflare, you currently overwrite any existing value; consider checking for and merging with an existing Cloudflare object to avoid clobbering other runtime configuration used in tests.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The global `Cloudflare` definition in `tests/setup/cloudflare-runtime.ts` will apply to all tests; consider scoping or resetting this in a per-suite setup (e.g. via `beforeAll/afterAll`) to avoid unintentionally affecting tests that don’t rely on this runtime flag.
- When defining `globalThis.Cloudflare`, you currently overwrite any existing value; consider checking for and merging with an existing `Cloudflare` object to avoid clobbering other runtime configuration used in tests.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Cloudflare Worker preview

@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor
MCP tool token cost

MCP tool token cost

Measured with o200k_base over the complete json-serialized mcp tools/list result payload: { tools }.
Targets are advisory except the enforced total-token budget.

Metric Current Target Status
Tools 22 ≤ 20 Above target
Total tokens 7247 ≤ 8900 Within target
Average tokens/tool 329.41 < 600 Within target

Component totals

Component Tokens
name 128
description 487
inputSchema 3248
outputSchema 2693
annotations 529

Change from baseline

Metric Baseline Current Delta
Tools 22 22 0
Total tokens 7247 7247 0
Average tokens/tool 329.41 329.41 0

Per-tool changes

Tool Baseline Current Delta
create-body-measurement 328 328 0
create-exercise-template 354 354 0
create-routine 420 420 0
create-routine-folder 109 109 0
create-workout 532 532 0
get-body-measurement 300 300 0
get-body-measurements 372 372 0
get-exercise-history 247 247 0
get-exercise-template 172 172 0
get-routine 332 332 0
get-routine-folder 145 145 0
get-routines 277 277 0
get-training-summary 624 624 0
get-workout 322 322 0
get-workout-events 499 499 0
get-workouts 273 273 0
replace-workout-exercises 416 416 0
search-exercise-templates 258 258 0
search-routines 280 280 0
update-body-measurement 328 328 0
update-routine 423 423 0
update-workout 232 232 0

Component changes

Component Delta
name 0
description 0
inputSchema 0
outputSchema 0
annotations 0

Per-tool breakdown

Tool name description inputSchema outputSchema annotations Total Share of total
get-training-summary 5 30 31 531 19 624 8.61%
create-workout 5 20 470 0 31 532 7.34%
get-workout-events 6 22 84 360 19 499 6.89%
update-routine 5 18 363 0 31 423 5.84%
create-routine 5 20 358 0 31 420 5.8%
replace-workout-exercises 7 17 354 0 32 416 5.74%
get-body-measurements 7 24 62 252 19 372 5.13%
create-exercise-template 6 18 292 0 32 354 4.88%
get-routine 5 23 31 247 18 332 4.58%
create-body-measurement 7 24 259 0 32 328 4.53%
update-body-measurement 7 24 259 0 32 328 4.53%
get-workout 5 23 33 235 18 322 4.44%
get-body-measurement 7 25 43 198 19 300 4.14%
search-routines 5 24 42 182 19 280 3.86%
get-routines 5 23 62 160 19 277 3.82%
get-workouts 5 25 47 169 19 273 3.77%
search-exercise-templates 7 25 113 86 19 258 3.56%
get-exercise-history 6 22 58 134 19 247 3.41%
update-workout 5 17 173 0 31 232 3.2%
get-exercise-template 6 23 33 83 19 172 2.37%
get-routine-folder 6 25 31 56 19 145 2%
create-routine-folder 6 15 50 0 32 109 1.5%

Per-component counts are diagnostic and non-additive because keys and separators live in complete tool objects. Per-tool counts encode each complete tool object independently. The total encodes the complete { tools } envelope, so punctuation and separators mean the per-tool values need not sum exactly to the total.

@gitstream-cm gitstream-cm Bot left a comment

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.

✨ PR Review

LGTM

Generated by LinearB AI and added by gitStream.
AI-generated content may contain inaccuracies. Please verify before using.
💡 Tip: You can customize your AI Review using Guidelines Learn how

@codecov

codecov Bot commented Aug 8, 2026

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 18.46kB (7.05%) ⬆️⚠️, exceeding the configured threshold of 5%.

Bundle name Size Change
hevy-mcp-esm 280.53kB 18.46kB (7.05%) ⬆️⚠️

Affected Assets, Files, and Routes:

view changes for bundle: hevy-mcp-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
src-BkdC17g9.mjs (New) 182.7kB 182.7kB 100.0% 🚀
runtime-DIm3GJAF.mjs (New) 94.37kB 94.37kB 100.0% 🚀
index.mjs 1.04kB 1.76kB 143.29% ⚠️
index.d.mts 673 bytes 1.14kB 143.5% ⚠️
cli.mjs -456 bytes 548 bytes -45.42%
src-faGQXQTl.mjs (Deleted) -259.86kB 0 bytes -100.0% 🗑️

@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: e254f2bf-5669-41fe-ad74-38cfe73db339

📥 Commits

Reviewing files that changed from the base of the PR and between f2313ac and 5a9ce59.

📒 Files selected for processing (3)
  • .changeset/950-cimd-vitest-setup.md
  • tests/setup/cloudflare-runtime.ts
  • vitest.config.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • vitest.config.ts

📝 Walkthrough

Walkthrough

Vitest now loads a setup file that defines a frozen Wrangler-compatible globalThis.Cloudflare object. The object preserves existing properties and sets global_fetch_strictly_public to true.

Changes

Cloudflare test runtime

Layer / File(s) Summary
Configure the Cloudflare test global
tests/setup/cloudflare-runtime.ts, vitest.config.ts, .changeset/950-cimd-vitest-setup.md
The test setup defines the frozen, configurable, non-enumerable Cloudflare global and preserves existing values. Vitest loads the setup file before tests run. Changesets metadata records the update.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: configuring CIMD compatibility in the Vitest worker test runtime.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/worker-cimd

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@vitest.config.ts`:
- Line 15: Add a Changesets entry for the test configuration change in
vitest.config.ts, using the repository’s documented empty changeset format if no
published package is affected; otherwise identify the affected package and
include the appropriate non-empty release metadata.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: e35eed81-146d-4322-afcb-32e03cb97a5b

📥 Commits

Reviewing files that changed from the base of the PR and between 2443cad and f2313ac.

📒 Files selected for processing (2)
  • tests/setup/cloudflare-runtime.ts
  • vitest.config.ts

Comment thread vitest.config.ts Outdated
},
},
test: {
setupFiles: ["./tests/setup/cloudflare-runtime.ts"],

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.

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Add a Changesets entry before merge.

This change affects tracked test configuration and internal runtime behavior. The supplied change set does not include a Changesets file. If the change has no published package impact, use the repository’s documented empty changeset format. Otherwise, add a non-empty changeset for the affected package.

As per coding guidelines, changes affecting tests or internal behavior must include an appropriate Changesets file.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@vitest.config.ts` at line 15, Add a Changesets entry for the test
configuration change in vitest.config.ts, using the repository’s documented
empty changeset format if no published package is affected; otherwise identify
the affected package and include the appropriate non-empty release metadata.

Source: Coding guidelines

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Aug 8, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Remediation recommended

1. Mutable Cloudflare global state ✓ Resolved 🐞 Bug ☼ Reliability
Description
The Vitest setup defines globalThis.Cloudflare as a writable, mutable object, so any test/code
that mutates Cloudflare.compatibilityFlags can leak state to later tests executed in the same
runtime context. This can create order-dependent/flaky unit tests because the setup doesn’t prevent
or reset mutations of the nested object.
Code

tests/setup/cloudflare-runtime.ts[R3-6]

+Object.defineProperty(globalThis, "Cloudflare", {
+	configurable: true,
+	enumerable: false,
+	writable: true,
Evidence
The setup file explicitly sets a writable global object and provides a mutable nested
compatibilityFlags object; since it’s registered as a Vitest setupFiles entry, it becomes shared
ambient state for unit tests unless made immutable or reset by tests.

tests/setup/cloudflare-runtime.ts[1-12]
vitest.config.ts[14-17]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`tests/setup/cloudflare-runtime.ts` defines a writable `globalThis.Cloudflare` whose nested `compatibilityFlags` object is mutable. If any test or imported code mutates it, the mutation can persist for subsequent tests.
### Issue Context
This global is needed early (before Worker modules are imported) to satisfy `@cloudflare/workers-oauth-provider` import-time checks, so it must remain a setup file. The key improvement is making the provided value immutable (while still allowing tests to override it via `configurable: true`).
### Fix Focus Areas
- tests/setup/cloudflare-runtime.ts[1-12]
### Suggested change
- Keep `configurable: true`.
- Make the provided value immutable, e.g.:
- `const flags = Object.freeze({ global_fetch_strictly_public: true });`
- `const cf = Object.freeze({ compatibilityFlags: flags });`
- use `value: cf` and consider `writable: false` (still redefinable because `configurable: true`).
This prevents accidental mutation-driven test flakiness while preserving the ability for tests to redefine the global if needed.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


To customize comments, go to the Qodo configuration screen, or learn more in the docs.

Qodo Logo

Comment thread tests/setup/cloudflare-runtime.ts Outdated
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Unit Test Results

  1 files   82 suites   25s ⏱️
883 tests 883 ✅ 0 💤 0 ❌
890 runs  890 ✅ 0 💤 0 ❌

Results for commit 5a9ce59.

♻️ This comment has been updated with latest results.

@gitar-bot

gitar-bot Bot commented Aug 9, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

Configures Vitest to provide the Cloudflare runtime compatibility flag and global setup required for OAuth provider unit tests. No issues found.

Auto-approved: No blocking issues found.
Please see Auto-approve Docs for details on setting custom approval criteria.

Options

Auto-apply is off → Gitar will not commit updates to this branch.
Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Auto-apply Compact
gitar auto-apply:on         
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source

@codecov

codecov Bot commented Aug 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.66%. Comparing base (2443cad) to head (5a9ce59).
⚠️ Report is 11 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #950      +/-   ##
==========================================
+ Coverage   82.58%   82.66%   +0.07%     
==========================================
  Files          84       91       +7     
  Lines        5738     6160     +422     
  Branches     1620     1731     +111     
==========================================
+ Hits         4739     5092     +353     
- Misses        458      490      +32     
- Partials      541      578      +37     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

@chrisdoc
chrisdoc merged commit 9c8c701 into main Aug 9, 2026
25 checks passed
@chrisdoc
chrisdoc deleted the feat/worker-cimd branch August 9, 2026 07:27
chrisdoc added a commit that referenced this pull request Aug 9, 2026
* refactor: reduce root package scripts

* docs: publish runtime architecture review (#940)

* docs: attach architecture review to issue 937

* style: format issue 937 architecture report

* docs: attach runtime architecture review to issue 941

* chore: scope architecture report PR to issue 941

* fix: apply CodeRabbit auto-fixes

Fixed 2 file(s) based on 2 unresolved review comments.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>

* fix: format runtime-architecture-review HTML report

Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
Co-authored-by: Gitar <noreply@gitar.ai>
Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>

* refactor: centralize Hevy endpoint policy (#944)

* refactor: centralize Hevy endpoint policy

* refactor(client): simplify retry failure transition

* feat(operations): route routine listing through shared operation (#946)

* feat(operations): route routine listing through shared operation

* refactor(cli): split command dispatchers

* fix(cli): avoid async dispatch wrappers

* refactor(node): separate embedding from runtime bootstrap (#947)

* refactor(node): separate embedding from runtime bootstrap

* fix(node): clean up embedding test diagnostics

* fix(node): include runtime chunk in Sentry source maps

* refactor(node): centralize process lifecycle (#948)

* refactor(node): centralize process lifecycle

* fix(node): satisfy lifecycle static analysis

* feat(worker): add safe tool observation (#949)

* feat(worker): add safe tool observation

* refactor(worker): simplify safe observation projection

* feat(node): bound HTTP session admission (#951)

* feat(node): bound HTTP session admission

* refactor(node): split HTTP request admission paths

* fix(node): satisfy HTTP admission lint

* fix(node): remove HTTP handler lint regressions

* test(core): add initial runtime contract matrix (#952)

* test(core): add initial runtime contract matrix

* fix(test): satisfy contract matrix lint

* fix(test): remove redundant async wrappers

* style(test): format contract fixture

* feat(operations): add routine retrieval operation (#953)

* feat(operations): add routine retrieval operation

* fix(test): remove redundant routine async wrapper

* feat(operations): add workout retrieval operation (#954)

* feat(operations): add workout retrieval operation

* fix(test): remove redundant workout async wrappers

* style(test): format workout fixture

* fix(deps): bump hono from 4.12.31 to 4.13.1 (#955)

Bumps [hono](https://github.com/honojs/hono) from 4.12.31 to 4.13.1.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.31...v4.13.1)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.13.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* test(worker): configure CIMD compatibility in Vitest (#950)

* test(worker): configure CIMD compatibility in Vitest

* fix(test): harden Cloudflare Vitest runtime setup

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
Co-authored-by: Gitar <noreply@gitar.ai>
Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chrisdoc added a commit that referenced this pull request Aug 9, 2026
* ci: accelerate build and test workflows

* ci: isolate package performance validation

* ci: address validation helper findings

* ci: align Node 26 coverage output

* fix: apply CodeRabbit auto-fixes

Fixed 3 file(s) based on 2 unresolved review comments.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>

* ci: install mise in build-and-test workflow jobs

Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>

* test: align control-plane config test with mise-wrapped script commands

Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>

* fix: correct oxfmt formatting in control-plane config test

Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>

* ci: enable optional Nx remote cache

* docs: publish runtime architecture review (#940)

* docs: attach architecture review to issue 937

* style: format issue 937 architecture report

* docs: attach runtime architecture review to issue 941

* chore: scope architecture report PR to issue 941

* fix: apply CodeRabbit auto-fixes

Fixed 2 file(s) based on 2 unresolved review comments.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>

* fix: format runtime-architecture-review HTML report

Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
Co-authored-by: Gitar <noreply@gitar.ai>
Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>

* refactor: centralize Hevy endpoint policy (#944)

* refactor: centralize Hevy endpoint policy

* refactor(client): simplify retry failure transition

* feat(operations): route routine listing through shared operation (#946)

* feat(operations): route routine listing through shared operation

* refactor(cli): split command dispatchers

* fix(cli): avoid async dispatch wrappers

* refactor(node): separate embedding from runtime bootstrap (#947)

* refactor(node): separate embedding from runtime bootstrap

* fix(node): clean up embedding test diagnostics

* fix(node): include runtime chunk in Sentry source maps

* refactor(node): centralize process lifecycle (#948)

* refactor(node): centralize process lifecycle

* fix(node): satisfy lifecycle static analysis

* feat(worker): add safe tool observation (#949)

* feat(worker): add safe tool observation

* refactor(worker): simplify safe observation projection

* feat(node): bound HTTP session admission (#951)

* feat(node): bound HTTP session admission

* refactor(node): split HTTP request admission paths

* fix(node): satisfy HTTP admission lint

* fix(node): remove HTTP handler lint regressions

* test(core): add initial runtime contract matrix (#952)

* test(core): add initial runtime contract matrix

* fix(test): satisfy contract matrix lint

* fix(test): remove redundant async wrappers

* style(test): format contract fixture

* feat(operations): add routine retrieval operation (#953)

* feat(operations): add routine retrieval operation

* fix(test): remove redundant routine async wrapper

* feat(operations): add workout retrieval operation (#954)

* feat(operations): add workout retrieval operation

* fix(test): remove redundant workout async wrappers

* style(test): format workout fixture

* fix(deps): bump hono from 4.12.31 to 4.13.1 (#955)

Bumps [hono](https://github.com/honojs/hono) from 4.12.31 to 4.13.1.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.31...v4.13.1)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.13.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* test(worker): configure CIMD compatibility in Vitest (#950)

* test(worker): configure CIMD compatibility in Vitest

* fix(test): harden Cloudflare Vitest runtime setup

* refactor: reduce root package scripts by 31% (#939)

* refactor: reduce root package scripts

* docs: publish runtime architecture review (#940)

* docs: attach architecture review to issue 937

* style: format issue 937 architecture report

* docs: attach runtime architecture review to issue 941

* chore: scope architecture report PR to issue 941

* fix: apply CodeRabbit auto-fixes

Fixed 2 file(s) based on 2 unresolved review comments.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>

* fix: format runtime-architecture-review HTML report

Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
Co-authored-by: Gitar <noreply@gitar.ai>
Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>

* refactor: centralize Hevy endpoint policy (#944)

* refactor: centralize Hevy endpoint policy

* refactor(client): simplify retry failure transition

* feat(operations): route routine listing through shared operation (#946)

* feat(operations): route routine listing through shared operation

* refactor(cli): split command dispatchers

* fix(cli): avoid async dispatch wrappers

* refactor(node): separate embedding from runtime bootstrap (#947)

* refactor(node): separate embedding from runtime bootstrap

* fix(node): clean up embedding test diagnostics

* fix(node): include runtime chunk in Sentry source maps

* refactor(node): centralize process lifecycle (#948)

* refactor(node): centralize process lifecycle

* fix(node): satisfy lifecycle static analysis

* feat(worker): add safe tool observation (#949)

* feat(worker): add safe tool observation

* refactor(worker): simplify safe observation projection

* feat(node): bound HTTP session admission (#951)

* feat(node): bound HTTP session admission

* refactor(node): split HTTP request admission paths

* fix(node): satisfy HTTP admission lint

* fix(node): remove HTTP handler lint regressions

* test(core): add initial runtime contract matrix (#952)

* test(core): add initial runtime contract matrix

* fix(test): satisfy contract matrix lint

* fix(test): remove redundant async wrappers

* style(test): format contract fixture

* feat(operations): add routine retrieval operation (#953)

* feat(operations): add routine retrieval operation

* fix(test): remove redundant routine async wrapper

* feat(operations): add workout retrieval operation (#954)

* feat(operations): add workout retrieval operation

* fix(test): remove redundant workout async wrappers

* style(test): format workout fixture

* fix(deps): bump hono from 4.12.31 to 4.13.1 (#955)

Bumps [hono](https://github.com/honojs/hono) from 4.12.31 to 4.13.1.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.31...v4.13.1)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.13.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* test(worker): configure CIMD compatibility in Vitest (#950)

* test(worker): configure CIMD compatibility in Vitest

* fix(test): harden Cloudflare Vitest runtime setup

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
Co-authored-by: Gitar <noreply@gitar.ai>
Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: remove brittle configuration tests (#959)

* chore: enforce type-aware async linting (#958)

* chore: enforce type-aware async linting

* fix: apply CodeRabbit auto-fixes

Fixed 1 file(s) based on 1 unresolved review comment.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: CodeRabbit <noreply@coderabbit.ai>

* fix: apply CodeRabbit auto-fixes

Fixed 5 file(s) based on 6 unresolved review comments.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>

* test: verify real session-signal independence in lifecycle test

Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>

* fix(test): provide operation descriptors in workout fixture

Align the typed operation fixture with the descriptors required by the operations interfaces.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
Co-authored-by: Gitar <noreply@gitar.ai>
Co-authored-by: Christoph Kieslich <9047291+chrisdoc@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant