Conversation
🦋 Changeset detectedLatest commit: f3e1256 The changes in this PR will be included in the next version bump. This PR includes no changesetsWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types 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 |
✅ Documentation PR preview deployed successfullyThis pull request gets a stable PR-scoped preview link that is updated in place on every preview run.
Logs and details
|
✅ Testing branch preview deployed successfullyThis workflow publishes a branch-scoped testing preview on every qualifying push, even when no pull request exists. When the branch belongs to an open pull request, the same run also refreshes the stable PR preview comment.
Logs and details
|
…command for branch-scoped previews
…ents and improve verification logic
…ate workflows for deployed binding checks
…flows for version handling
…cts + Services (CF-5)
DO/services were mislabelled remote-boundary ("No offline support classification
exists") despite running fully locally under createTestContext() (Miniflare).
Reclassified offline-native with an honest message: runs via createTestContext,
no pure in-memory createMockEnv mock. createOfflineBindings still flags them
(distinct axis: pure-offline can't provide a real DO/service). Containers wording
confirmed accurate (no separate container env binding; config compiles via
compileContainers); AI `remote` confirmed accepted by wrangler. Fifth batch of
the Cloudflare-coverage gap-closure (docs/CLOUDFLARE_GAPS.md).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…-6a) - deploy --prod --percentage <n> [--version <id>]: canary rollout via `wrangler versions upload` then `wrangler versions deploy <new>@<n> [<old>@<rest>]`. Production-only; rejected on preview/dry-run; fails loudly if the new version id can't be resolved (never rolls out the wrong version). - devflare tail: streams a deployed worker's logs via the Cloudflare tail API (ws, trace-v1), --format pretty|json, deletes the tail + closes the socket on exit. Honest, thin wrappers over the real wrangler/Cloudflare mechanisms. Part of the Cloudflare-coverage gap-closure (CF-6a; docs/CLOUDFLARE_GAPS.md). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…k + prod secrets hint (CF-6b) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…eEnv/DevflareVars createReadonlyProxy inferred its type parameter from the internal getter (Record<string, unknown>) rather than the exported type, so a consumer that declared vars (giving DevflareEnv/DevflareVars required keys) got a type error importing env/vars. Pass the declared type explicitly. Surfaced by the docs app's svelte-check once the turbo `check` cache was invalidated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… + legacy-blob passthrough, email routing rules Document the four CF-7 boundary/clarity gaps in the support matrix and mark them covered in the gap ledger. DO WebSocket Hibernation works locally (Miniflare runs the DO in real workerd; the DO wrapper relays webSocket* handlers) — the prior "not in DO context/bridge" framing was a stale claim, corrected with the case18 worked example and the one cross-process-bridge nuance. unsafe bindings/metadata and legacy wasm_modules/text_blobs/data_blobs are passthrough-only via wrangler.passthrough with no local emulation (rules is the modern path). Email Routing rules are a dashboard service, not wrangler config. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ing-tails/dev-server/compliance/etc.) (CF-9) A dependency-grounded re-investigation (wrangler 4.85.0 / miniflare 4.20260424.0 / workers-types 4.20260426.1) surfaced 13 remaining gaps; this implements them, each mirroring an existing sibling and additive/back-compatible. Locally wired: queue producer deliveryDelay, service binding props, streamingTailConsumers (Miniflare streamingTails), server https/inspectorPort/ upstream, cachePersist, dev/test-only outboundService. Deploy-compiled: queue consumer visibilityTimeoutMs, complianceRegion, workersDev toggle, custom-domain route enabled/previewsEnabled, sendEmail remote (deploy directive; stripped locally like mTLS). Legacy `site` documented as wrangler.passthrough-reachable. Two files split to stay <1000 lines (schema-types-runtime-server.ts extraction with back-compat re-export; bridge/miniflare.ts inlined helpers). Fresh quality-reviewer PASS (0 must-fix); the cross-process bridge's simplified queue-producer model is documented in the support matrix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ility/placement/limits matrix docs (CF-11) CF-10 convergence pass (6/8 areas zero candidates) found 2 low gaps on already-working backends. Adds a read-only `devflare productions deployments` subcommand surfacing the full deployment history (strategy/traffic-split/message/ triggeredBy) via the existing account.workerDeployments read API, and documents the deploy-only observability/placement/limits config keys in the support matrix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ail + offline auto-wire (CF-13) CF-12 convergence pass (7/8 areas zero candidates) found the last gap: sendEmail had a pure local mock but was the only mockable binding not auto-wired into createOfflineEnv()/createMockEnv nor classified in the offline SUPPORT_MATRIX. Adds a recording createMockSendEmail() (asserts dispatched mail, enforces allow-lists), auto-wires it offline at parity with analyticsEngine/vectorize, classifies sendEmail offline-native (was a false remote-boundary), and exports the helpers from devflare/test. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
CF-14 convergence pass (only 2 low gaps, both the same class) — two unthreaded Miniflare CoreSharedOptions local-dev knobs, direct siblings of the server.https/inspectorPort/upstream added in CF-9. Adds server.liveReload (in-browser auto-reload) and server.cf (override request.cf for local dev), threaded into the dev Miniflare sharedOptions. Deploy-inert. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…treamingTailConsumer is service-only) (CF-17) CF-16 convergence pass found a CF-9 regression: streamingTailConsumers was modeled as a full twin of tailConsumers including an optional environment, but wrangler's StreamingTailConsumer accepts only service (additionalProperties: false). A config setting environment validated locally but failed at deploy. Remove environment from the streaming-tail schema/input-type/compiler so it is rejected at config-parse time — validate-locally == deploy-valid. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…CF-19) CF-18 convergence pass found the last per-binding environment gap: cross-worker DO bindings accept an environment (service-environment of the target script) that devflare didn't model, so a user-set value was silently dropped before deploy. Model environment? on the DO binding + normalization, emit it for cross-worker DOs only (script_name present). Per-binding environment now matches wrangler across services/dispatch/DOs (streaming tail consumers correctly omit it, CF-17). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… (CF-21) CF-20 convergence pass found service bindings emitted a separate environment field, but wrangler's services item is additionalProperties:false and addresses an environment via the service name (<worker_name>-<environment_name>). Settled the contested service-vs-DO environment fact by reading wrangler 4.85.0 config-schema.json directly (services: no separate field; DO/dispatch/tail: yes). Fold environment into the emitted service name (keep the ergonomic input), producing deploy-valid output; fixed the preview-bindings consumer + stale docs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… (CF-23) CF-22 convergence pass found a documentation-completeness nit: the bundling boundary named a closed list (minify/define/alias/no_bundle) that omitted same-class esbuild flags (jsx_factory/jsx_fragment/keep_names). No capability missing (all passthrough-reachable; rolldown is the native path). Made the boundary enumeration open-ended and added a matrix subsection. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…server inspectorHost/verbose/logRequests (CF-25) CF-24 convergence pass: 1 medium correctness gap + 2 low dev knobs. - Route enabled/previews_enabled are only valid on custom-domain routes (wrangler zone_id/zone_name routes are additionalProperties:false); reject at parse time + emit only for custom-domain routes (the CF-17/19/21 validate-locally==deploy-valid class, now applied to routes). - Add server.inspectorHost/verbose/logRequests (last user-facing CoreSharedOptions local-dev knobs); enumerated the full set to close the class (rest are internal). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
`server.publicUrl` is the public-facing URL the local dev runtime advertises for itself (Miniflare's `/core/public-url` loopback; otherwise the runtime entry URL) — for when dev sits behind a reverse proxy, tunnel, or custom domain. Added to `serverConfigSchema`/`ServerConfigInput`, threaded into the dev `sharedOptions` like its `upstream`/`cf`/`liveReload` siblings, and documented. Local-dev only — no deploy effect (no wrangler analogue, verified absent in wrangler v3 + v4 config-schema.json). This is the CF-27 confirmation pass's lone confirmed gap: the final user-facing `CoreSharedOptions` field (after `telemetry`) that CF-25's "close the class" enumeration overlooked. Corrects that stale claim in the gap ledger. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…o gaps, 2 consecutive clean passes) Two consecutive zero-gap re-investigation passes after the CF-28 publicUrl fix: CF-29 surfaced 6 candidates (all independently verified already-covered/n-a), CF-30 surfaced zero. Fixpoint reached — the Cloudflare-coverage gap loop is closed. Docs-only (gap ledger); no package change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.