Skip to content

test: route test/ and scripts/ off the daemon's testing exports - #3733

Open
thymikee wants to merge 19 commits into
mainfrom
refactor/daemon-testing-exports-integration
Open

thymikee wants to merge 19 commits into
mainfrom
refactor/daemon-testing-exports-integration

Conversation

@thymikee

@thymikee thymikee commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Rebased onto origin/main after refactor(remote): extract src/remote into @agent-device/remote #3711 extracted src/remote into @agent-device/remote and refactor(plugins): extract the provider plugins into a private package #3712 moved provider plugins into a private package. The remote diagnostics conflict now targets @agent-device/remote/remote-request-diagnostics; the artifact-directory client test moved beside packages/remote/src/daemon-artifacts.ts.
  • Rebuilt the provider-scenario harness on startDaemonRuntime, the root composition, the real daemon HTTP server, and a real client. Provider scenarios use the public runtime/client and no daemon testing imports.
  • Moved the HTTP server provider-scenario test beside packages/daemon/src/server/http; moved the Node concurrency-torture lane and its helpers into packages/daemon/test/nightly.
  • Added package-local tests for the touch response payload and action recording. Updated command-coverage path evidence and made output-economy snapshots local fixtures.
  • Removed the 15 daemon testing exports listed below.

Placement

  • (b) Composed behavior: provider scenarios start the public daemon runtime and drive it through a real client or HTTP RPC. They do not inspect daemon state.
  • (a) Daemon logic: the HTTP server scenario is beside the server module; the touch response and action recorder invariants are tested beside their daemon modules. The concurrency suite is package-local.
  • (c) Root behavior: command-coverage declarations cite test paths only; output-economy consumes local response fixtures. No daemon internals are imported from root tests.
  • remote-test-artifacts-directory now tests @agent-device/remote's daemon-artifacts module in packages/remote/src/__tests__, beside the module it exercises. The proxy diagnostics, tenant, parity, and materialization scenarios stay in test/integration/provider-scenarios because they cover composed proxy, daemon, replay-port, and remote-client behavior; the package-local remote tests already cover its individual transfer modules. Provider scenarios remain integration tests around the real daemon and private plugin packages, rather than copies of their package-local runtime tests.
  • The scripts/layering files were checked as text: model.ts has a comment, while package-boundaries-facade.test.ts and test-kit-isolation.test.ts use fixture strings. None imports daemon test support or calls vi.mock with it.

Test counts

Counts are test cases at the main path and at the head destination. Helper files have no test cases.

Main path Main Head path Head
test/integration/provider-scenarios/harness.ts 0 same 0
test/integration/provider-scenarios/stale-provider-runtime-admission.fixtures.ts 0 same 0
test/integration/provider-scenarios/cloud-webdriver-lease-http.test.ts 1 same 1
test/integration/provider-scenarios/cloud-webdriver-runtime.test.ts 7 same 7
test/integration/provider-scenarios/daemon-http-server.test.ts 10 packages/daemon/src/server/http/http-server-provider-scenarios.test.ts 10
test/integration/provider-scenarios/ios-fold.test.ts 2 same 2
test/integration/provider-scenarios/ios-wait-selector.test.ts 4 same 4
test/integration/provider-scenarios/limrun-ios-snapshot-owner.test.ts 1 same 1
test/integration/provider-scenarios/remote-proxy-artifact-tenant.test.ts 2 same 2
test/integration/provider-scenarios/remote-proxy-parity.test.ts 5 same 5
test/integration/provider-scenarios/remote-proxy-request-diagnostics.test.ts 1 same 1
test/integration/provider-scenarios/remote-test-artifacts-directory.test.ts 3 packages/remote/src/__tests__/daemon-artifacts-directory.test.ts 3
test/integration/provider-scenarios/remote-test-artifacts-materialization.test.ts 2 same 2
test/integration/provider-scenarios/scroll-until.test.ts 3 same 3
test/integration/nightly/concurrency-torture/bindings.ts 0 packages/daemon/test/nightly/concurrency-torture/bindings.ts 0
test/integration/nightly/concurrency-torture/harness.ts 0 packages/daemon/test/nightly/concurrency-torture/harness.ts 0
test/integration/nightly/concurrency-torture/invariants.ts 0 packages/daemon/test/nightly/concurrency-torture/invariants.ts 0
test/integration/nightly/concurrency-torture/real-scope-serialization.ts 0 packages/daemon/test/nightly/concurrency-torture/real-scope-serialization.ts 0
test/integration/command-coverage/declarations.ts 0 same 0
test/integration/interaction-contract/native-ref.contract.test.ts 9 same 9
test/output-economy/render-fixtures.ts 0 same 0
scripts/__tests__/help-conformance-sample-producers.ts 0 same 0
scripts/layering/model.ts 0 same, string evidence only 0
scripts/layering/package-boundaries-facade.test.ts 5 same, string fixtures only 5
scripts/layering/test-kit-isolation.test.ts 12 same, string fixture only 12

Additional moves and split tests:

Main path Main Head path Head
test/integration/nightly/concurrency-torture.test.ts 5 packages/daemon/test/nightly/concurrency-torture.test.ts 5
test/integration/nightly/concurrency-torture/claim-registry.ts 0 packages/daemon/test/nightly/concurrency-torture/claim-registry.ts 0
test/integration/nightly/concurrency-torture/deterministic-scheduler.ts 0 packages/daemon/test/nightly/concurrency-torture/deterministic-scheduler.ts 0
test/integration/nightly/concurrency-torture/envelope.ts 0 packages/daemon/test/nightly/concurrency-torture/envelope.ts 0
test/integration/nightly/concurrency-torture/prng.ts 0 packages/daemon/test/nightly/concurrency-torture/prng.ts 0
New 0 packages/daemon/test/nightly/concurrency-torture/lane-envelope.ts 0
Existing 29 packages/daemon/src/core/__tests__/session-action-recorder.test.ts 31
New 0 packages/daemon/src/execution/interaction/internal/interaction-touch-response-contract.test.ts 1

The native-ref contract remains at 9 cases; its daemon-only response-builder assertion moved to the new package test, the response builder keeps capture evidence out of serialized touch payloads. The recorder test adds ordinary action history preserves authored commands, positionals, and replay flags and --no-record suppresses a mutating coordinate press from action history. Root script-publication scenarios retain their public error, saved-file, and replay assertions; daemon recording and publication state assertions are covered beside the owning daemon modules, including parameterized fills keep literals out of recording state with deterministic placeholders, publishes without close, returns the path/count, and leaves a terminal live session, #1533: a re-open leaves an aborted authoring lifecycle aborted, and not recording, and #1533: an ordinary armed authoring session still publishes on bare close. The scroll pass-limit assertion is covered by packages/daemon/src/execution/scroll-until.test.ts, test the default budget is the shared constant. The stale-provider scenario still asserts unavailable facts; the daemon fail-closed response/no-bind assertion is owned by packages/daemon/src/sessions/handlers/__tests__/session-reinstall.test.ts, test install fails closed before binding when its provider owner lacks deployment. No test case was dropped from a moved test.

Selection

  • Provider scenarios remain selected by Vitest project provider-integration (vitest.config.ts, include test/integration/provider-scenarios/**/*.test.ts).
  • Package-local daemon src/**/*.test.ts tests are selected by unit-core via packages/*/src/**/*.test.ts.
  • packages/remote/src/__tests__/daemon-artifacts-directory.test.ts is selected by unit-core through that same package-source include and by CI's unit-ci coverage gate (test:coverage:ci). Its three tests pass after the relocation.
  • Concurrency torture is a Node node:test lane, not a Vitest project. The test:concurrency-torture script selects packages/daemon/test/nightly/concurrency-torture.test.ts; both the PR CI lane and nightly workflow call the existing concurrency-torture gate. The package test/ path is outside unit-core.
  • pnpm check:gate-manifest: passed, 57 checks wired across 25 lanes. pnpm test:concurrency-torture: passed, 4 tests.

Moves

Pure move commits are separate from edits: 20972a21f (concurrency tree), f402a5f00 (HTTP test), and 10c48bf63 (remote artifact-directory test). The move commits contain no line edits; follow-up edits are separate. git diff -M --summary origin/main...HEAD reports the concurrency test 100%, concurrency helpers 77–98%, HTTP test 98%, and remote artifact-directory test 69% similarity.

Mocks and spies

  • limrun-ios-snapshot-owner.test.ts: @limrun/api mock is observed by createInstance.mock.calls.length === 1.
  • limrun-ios-snapshot-owner.test.ts: @limrun/api/ios-client mock is observed by elementTree.mock.calls.length === 1.
  • stale-provider-runtime-admission.test.ts: @limrun/api mock is observed by one allocation before release and no additional allocation before admission.
  • stale-provider-runtime-admission.test.ts: @limrun/api/instance-client mock is observed by the release-time disconnect.
  • cloud-webdriver-runtime.test.ts: the Date.now spy advances past lease expiry; the server records WebDriver DELETE.
  • remote-proxy-parity.test.ts expiry case: the Date.now spy advances past expiry; the proxy returns LEASE_NOT_FOUND and a fresh lease has no prior comparison state.
  • remote-proxy-parity.test.ts heartbeat case: the Date.now spy proves renewed expiry moves forward and the session baseline remains usable.
  • ios-fold.test.ts: the Date.now spy advances by accumulated tool timeout; the final permitted hinge read succeeds and stays within the client envelope.

The dead ios-app-session-hint and Apple runner operations mocks were removed.

Mutation checks

Each new or moved destination test was mutated and then restored:

  • HTTP body limit changed from 1 MiB to 2 MiB: the moved HTTP server test failed.
  • Recorded touch capture evidence replaced with an empty object: the touch response contract test failed.
  • Action history changed from append to prepend: the recorder ordering assertion failed.
  • Fresh-session device locking disabled: the concurrency-torture lane failed all four cases on overlap.
  • downloadRemoteArtifact forced to treat directories as files: the moved remote artifact-directory test failed on extraction and rejected symlink coverage; the implementation was restored.
  • The Apple output-guard fake's runner authority changed to scoped-provider: the iOS guard hit its record timeout; the fake was restored to local-lease.

Exports

packages/daemon exports: 78 on main (. plus 77 testing exports) → 63 on this branch (. plus 62 testing exports). This PR removes:

./testing/daemon-command-registry
./testing/device/device-claim-conflict
./testing/handlers/session-app-deployment
./testing/interaction/internal/interaction-touch-response
./testing/interactor-resolution
./testing/ios-app-session-hint
./testing/request-binding
./testing/request-execution-scope
./testing/request-router
./testing/response-views
./testing/scroll-until
./testing/selector-match-errors
./testing/session-observability/__tests__/*
./testing/session-recovery-hints
./testing/web-session-names

Remaining exports and their owners:

  • daemon-composition owner mcp:57b5c3dd (44): ./testing/__tests__/android-observation-fixture, ./testing/__tests__/application-lifecycle-runtime-fixture, ./testing/__tests__/capture-disclosure-target-activation-fact, ./testing/__tests__/interaction-get-runtime-fixture, ./testing/__tests__/legacy-snapshot-capture-fixture, ./testing/__tests__/request-router-dispatch-mocks, ./testing/__tests__/request-router-open-harness, ./testing/__tests__/runtime-binding-conformance, ./testing/__tests__/screenshot-runtime-fixture, ./testing/__tests__/selector-capture-fixture, ./testing/__tests__/snapshot-runtime-fixture, ./testing/__tests__/support/command-surface-fake, ./testing/__tests__/support/screen-recording-live-handle, ./testing/__tests__/support/unavailable-device-runtime-gateway, ./testing/__tests__/test-device-runtime-gateway, ./testing/android-system-dialog, ./testing/app-events, ./testing/artifact-tracking, ./testing/capture-disclosure, ./testing/deferred-interaction-outcome, ./testing/device/device-ready, ./testing/generic-leaf-execution, ./testing/gesture-runtime, ./testing/handlers/snapshot, ./testing/interaction/index, ./testing/interaction/internal/__tests__/*, ./testing/provider-device-admission, ./testing/ref-frame, ./testing/request-dispatch-disclosure, ./testing/request-finalization, ./testing/request-generic-dispatch, ./testing/request-handler-chain, ./testing/request-platform-provider-context, ./testing/screenshot-runtime, ./testing/selector-capture-binding, ./testing/selector-runtime, ./testing/selector-runtime-backend, ./testing/session-capture-binding, ./testing/session-snapshot, ./testing/session-state, ./testing/snapshot-diff-runtime, ./testing/snapshot-quality-latch, ./testing/snapshot-runtime, ./testing/wait-runtime.
  • Other src/** owner (9): ./testing/__tests__/human-control-fixtures, ./testing/__tests__/platform-services-fixture, ./testing/handlers/__tests__/*, ./testing/handlers/lease, ./testing/handlers/session-appstate, ./testing/provider-lease-expiry, ./testing/server/transport, ./testing/session-action-recorder, ./testing/session-runtime. test: move root src tests off the daemon's testing exports #3728 owns seven removals from this root-src work, including ./testing/server/transport; this PR leaves all nine alone.
  • Shared by both src/** owners (8): ./testing/__tests__/support/session-factories, ./testing/__tests__/support/store-factory, ./testing/lease-registry, ./testing/request-dispatch-ledger, ./testing/request-runtime-binding, ./testing/server/http-server, ./testing/session-store, ./testing/snapshot-interactor-capture.
  • String-only guard evidence (1): ./testing/context is named only by scripts/layering/test-kit-isolation.test.ts; it is not a live importer. Its released export remains for the final-pin owner, thread mcp:57b5c3dd, to resolve.

Validation: CI=true pnpm install --frozen-lockfile, pnpm build, pnpm format, pnpm check:quick, pnpm check:layering, pnpm check:fallow, pnpm check:gate-manifest, pnpm test:concurrency-torture, and provider-integration (61 files, 184 tests) passed. Layering reports 75 test-only exports against 90 at its base and R84 unchanged at 191 unmatched tests. The rebase's four prior check:affected --run timing failures were rerun one by one and all passed: daemon-command-policy 1/1 (14.03s), fuzz self-check 1/1 (4.02s), Apple runner cancellation 8/8 (0.82s), and request-router open-claim recovery 3/3 (0.89s). The full affected run is not repeated here. The output guard's fake runner-recording transport now declares runner recording unavailable; its iOS simulator case passes with the injected simulator transport.

View guided diff Turn on auto-fix

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Size Report

Metric Base Current Diff
Installed (including dependencies) 5.32 MB 5.32 MB +4 B
Package (unpacked) 5.32 MB 5.32 MB +4 B
Package (download) 1.60 MB 1.60 MB -11 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 22.4 ms 22.4 ms +0.0 ms
CLI --help 62.1 ms 64.2 ms +2.1 ms

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://callstack.github.io/agent-device/pr-preview/pr-3733/

Built to branch gh-pages at 2026-10-16 20:38 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@cubic-dev-ai cubic-dev-ai 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.

All reported issues were addressed across 56 files

Reply with feedback, questions, or to request a fix.

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread test/output-economy/render-fixtures.ts Outdated
Comment thread packages/daemon/test/nightly/concurrency-torture/envelope.ts Outdated
Comment thread test/integration/provider-scenarios/harness.ts
Comment thread scripts/__tests__/help-conformance-sample-producers.ts Outdated
Comment thread test/integration/provider-scenarios/remote-proxy-artifact-tenant.test.ts Outdated
Comment thread test/integration/provider-scenarios/remote-proxy-artifact-tenant.test.ts Outdated
Comment thread test/integration/provider-scenarios/remote-proxy-request-diagnostics.test.ts Outdated
Comment thread packages/remote/src/__tests__/daemon-artifacts-directory.test.ts Outdated
Comment thread test/integration/provider-scenarios/remote-proxy-parity.test.ts Fixed
@thymikee

Copy link
Copy Markdown
Member Author

Two tests in this PR no longer reach the real daemon, so they cannot catch daemon regressions. Reviewed commit 1908337. CodeQL fails on this head, and the Smoke Tests jobs are still queued. Once the two findings below are fixed and the checks are green, nothing else stops the merge. No conflicts.

The test in remote-test-artifacts-materialization.test.ts (https://github.com/callstack/agent-device/blob/1908337/test/integration/provider-scenarios/remote-test-artifacts-materialization.test.ts#L75) says it covers the composed daemon and client path. It now packs the directory with createDirectoryArtifactArchive and serves it from a hand-written server. The real packaging in packages/daemon/src/server/downloadable-artifact-http.ts no longer feeds downloadRemoteArtifact. If the daemon changes the archive root name or layout, every test still passes while real test --remote materialization breaks. The rule: every scenario that names the daemon must serve its bytes from the real daemon HTTP server. Start the daemon with createProviderScenarioHarness and produce the artifact with a real command. Or move the composed case into packages/daemon/src/server/http beside daemon-runtime-artifacts.test.ts. Then delete the archive packer copy.

The fake upstream in remote-proxy-artifact-tenant.test.ts (https://github.com/callstack/agent-device/blob/1908337/test/integration/provider-scenarios/remote-proxy-artifact-tenant.test.ts#L28) enforces the tenant rule itself, then the test asserts that the fake refuses the other tenant. remote-proxy-request-diagnostics.test.ts:50 likewise answers any session path with a canned record. These doubles fail the way the test author wrote them, not the way the daemon fails. A regression in the daemon's artifact tenant check or diagnostics path resolution would still pass. createRecordingUpstreamServer in remote-proxy-parity.test.ts:284 already forwards to the real harness daemon and records traffic. The rule: one shared fixture owns "proxy in front of the real daemon", and every proxy scenario asserts on its recorded requests. Please lift it into harness.ts and route the tenant, diagnostics and materialization scenarios through it. That also covers the upstream-auth and params.tenantId threads.

Not blocking: at remote-proxy-parity.test.ts:314, fetch(new URL(request.url ?? '/', baseUrl)) lets an absolute request URL replace baseUrl, which is what CodeQL flags. You can build the target from baseUrl plus the parsed pathname and search only. Fix it in the harness copy once the helper moves. You can take or leave this.

Could one rule replace most of the copies here: a root test that names a daemon producer either runs it through the public harness or moves into the daemon package? Then the proxy and artifact scenarios would use the harness daemon behind the shared forwarder. The output-economy digests and help-conformance error samples would become golden fixtures that tests in packages/daemon pin against RESPONSE_VIEWS and the error builders, and the root gates would keep reading the same fixtures. That is the contracts/fixtures pattern from AGENTS.md. The torture lane would import one lane-envelope. Most of the 175-line response-view-fixtures copy and the duplicated archive server would go away. What would have to change first is a shared home for golden daemon-output fixtures that both daemon tests and root gates can import, and moving lane-envelope out of scripts/lib.

Open review threads still apply:

This was a read-only review. I did not rerun the mutation checks, provider-integration or concurrency-torture. I did not inspect the individual move commits, so similarity comes from the PR body. I also did not confirm whether a daemon-package test already pins web-provider ref actions without coordinates, or the /artifacts tenant refusal end to end.

@cubic-dev-ai cubic-dev-ai 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.

All reported issues were addressed across 33 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread test/integration/provider-scenarios/stale-provider-runtime-admission.test.ts Outdated
Comment thread test/output-economy/render-fixtures.ts Outdated
Comment thread test/integration/provider-scenarios/remote-proxy-parity.test.ts Outdated
@thymikee

Copy link
Copy Markdown
Member Author

Thanks for the update. The new commit 6c6437e fixes most of the earlier points, but two findings from 1908337 are still open.

Fixed since the last review: the response-views and help-conformance fixtures now call the real daemon code, the platform-runtime flag is gone, the stale-provider install now goes through the harness daemon, and the extra assertions on the proxy upstream are in. Required evidence is in place.

The materialization scenario at test/integration/provider-scenarios/remote-test-artifacts-materialization.test.ts:76 is named "composed daemon and client path", but it still does not use the daemon. The new expectedToken check lives in the hand-written server in artifact-download-fixtures.ts, and the archive still comes from the test's own packer, not from packages/daemon/src/server/downloadable-artifact-http.ts. If the daemon changes the archive root name, the layout or its artifact auth, this test still passes while real test --remote materialization breaks. Please make every scenario that names the daemon serve its bytes from the real daemon HTTP server. Start createProviderScenarioHarness and produce the artifact with a real command, or move the case next to daemon-runtime-artifacts.test.ts in packages/daemon/src/server/http. Then delete the packer copy.

The tenant scenario at test/integration/provider-scenarios/remote-proxy-artifact-tenant.test.ts:27 has the same gap. The upstream is a fake that returns 401 when the tenant header differs (lines 27-36), and the test asserts that the fake refuses. remote-proxy-request-diagnostics.test.ts:50 still answers with a canned record. On main this scenario used the real createDaemonHttpServer with trackDownloadableArtifact. A regression in the daemon's tenant check or in its diagnostics path resolution now passes, so "tenant-scoped" proves only that the proxy forwards the header. Please move createRecordingUpstreamServer (remote-proxy-parity.test.ts:285), which forwards to the real harness daemon, into harness.ts. Then route the tenant, diagnostics and materialization scenarios through it and assert on the recorded forwarded requests, so one shared fixture owns "proxy in front of the real daemon".

Not blocking, and you can take or leave it: scripts/lib/lane-envelope.ts is now a pass-through re-export with four importers (scripts/fuzz/envelope.ts, scripts/fuzz/harness.test.ts, scripts/mutation/envelope.test.ts, scripts/mutation/run.ts), so you could import @agent-device/test-kit there and delete the shim, and the related-selection edge raised on render-fixtures.ts also applies to the second subprocess driver at scripts/tests/help-conformance-sample-producers.ts:109, so fixing both together would be cleaner.

Would lifting the recording forwarder into harness.ts and running every proxy and artifact scenario against the harness daemon be simpler overall? Both archive and download-server copies (packages/remote/src/tests/support and test/integration/provider-scenarios/artifact-download-fixtures.ts) could then go. For output-economy and help-conformance, could tests in packages/daemon emit or pin golden fixtures from RESPONSE_VIEWS and the error builders, so the root gates read static fixtures with no subprocess and no hidden import edge? That needs a shared home for golden daemon-output fixtures that both daemon tests and root gates can import, plus a harness-owned proxy-in-front-of-daemon fixture.

Open threads from other reviewers: these still apply, #3733 (comment) (finally-block cleanup order), #3733 (comment) (subprocess driver import edge), #3733 (comment) (proxy diagnostics parity), #3733 (comment) (token checked only by fake), and one lower-priority thread on the duplicated packer and server (#3733 (comment)). These are fixed at 6c6437e and can be resolved: #3733 (comment) (public open response check added), #3733 (comment) (click and hover ref checks added), #3733 (comment) (digests now come from RESPONSE_VIEWS), #3733 (comment) (lane-envelope moved to test-kit), #3733 (comment) (boolean flag removed), #3733 (comment) (real error builders used), #3733 (comment) (install goes through harness daemon), #3733 (comment) (device id and lease checks added), #3733 (comment) (tenantId asserted), #3733 (comment) (Bearer token asserted), #3733 (comment) (exact URL asserted), #3733 (comment) (redundant rmSync removed), #3733 (comment) (rpc URL built from baseUrl).

CI is still running and no job has failed. Smoke and Coverage run the test tree this PR rewrites, so their results matter once they finish. The Mutants kernel-errors and selectors shards run on packages this PR does not touch. There are no conflicts.

I did not run the two subprocess drivers, so their package resolution under node --experimental-strip-types from packages/daemon/test is unverified. I also did not check whether a daemon-package test already covers the /artifacts tenant refusal end to end. If one does, the tenant half narrows to the scenario's name and claim. Before merge, the materialization, tenant and diagnostics scenarios must run through the real harness daemon via a shared forwarder in harness.ts.

@cubic-dev-ai cubic-dev-ai 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.

All reported issues were addressed across 15 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread test/integration/provider-scenarios/remote-proxy-request-diagnostics.test.ts Outdated
Comment thread test/output-economy/output-economy.baseline.test.ts
Comment thread test/integration/provider-scenarios/help-conformance-error-routes.ts Outdated
@thymikee
thymikee force-pushed the refactor/daemon-testing-exports-integration branch from c197ce8 to eee378d Compare October 16, 2026 19:38
Comment thread test/integration/provider-scenarios/harness.ts Fixed

@cubic-dev-ai cubic-dev-ai 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.

All reported issues were addressed across 2 files (changes from recent commits).

You’re at about 91% of the monthly reviewed-line limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.

Reply with feedback, questions, or to request a fix.

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread test/integration/provider-scenarios/remote-proxy-parity.test.ts Outdated
@thymikee
thymikee force-pushed the refactor/daemon-testing-exports-integration branch from ed4d96d to f2592cb Compare October 16, 2026 20:18

This branch has not been deployed

No deployments
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.

2 participants