Repository navigation
v0.10.2 - #240
Merged
Merged
v0.10.2#240
Conversation
cpojer
pushed a commit
that referenced
this pull request
Sep 11, 2026
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
cpojer
pushed a commit
that referenced
this pull request
Sep 11, 2026
… 5xx (#239) * fix(alerts): stamp the error window in 5xx alert emails; surface edge 5xx ErrorAlertMonitor accumulated 5xx counts silently through its 24h cooldown and could later fire with a days-old total labelled "recently". The email now carries the concrete UTC window (firstErrorAt..lastErrorAt) plus a `void project logs --level error --range <R>` hint sized to that window. Count and window survive the cooldown (kept, then stamped); window fields backfill to null on legacy DO state. `--level error` log queries now also match a 5xx status (blob6 LIKE '5%'), so a returned 500 with no throw/log is findable (paired with the CLI-side filter in #281). Adds `GET /projects/:id/requests` over the edge request-metering dataset (void_requests) to surface 5xx that never reach a worker — edge-generated errors and static/SPA requests — with an optional status-class/exact-code filter. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011iZtc3xSUBc3NqapBXuYCH * fix(alerts): point the alert email at request-level data; harden query params Addresses review feedback on #239: - The email hinted only at `void project logs --level error`, which by construction cannot show edge-generated or static/SPA 5xx: those never invoke a worker, so they produce no tail rows — yet they are counted by this very alert. It now leads with `void project requests --status 5xx` and keeps the logs command for worker logs and exceptions. - `suggestRange` measured only the error window, so a send that retried for hours emitted a range excluding the errors it was reporting. It is now anchored at send time. - `/requests` keys on `blob1`, matching the requests-dataset convention used by the billing and top-traffic queries (meta/lessons.md). - `limit` is validated as a positive integer on both `/requests` and `/logs`; a negative previously reached the SQL `LIMIT` and surfaced an Analytics Engine rejection as a misleading 502. Exact `status` codes are bounded to 100-599. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011iZtc3xSUBc3NqapBXuYCH * chore(fmt): reformat 0051-websockets.md for the oxfmt in vite-plus 0.2.6 The vite-plus 0.2.6 bump (#240) ships an oxfmt that wraps this doc's TS union differently, which turned `lint-and-check` red on main and on every branch rebased onto it. Purely mechanical — one code-fence line, no content change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011iZtc3xSUBc3NqapBXuYCH * fix(alerts): stamp the 5xx window from edge enqueue times Cloudflare stamps every queue message with its enqueue time — which is when dispatch metered the response at the edge — and processUsageEventBatch was dropping it on the floor at the `.body` map. The ErrorAlertMonitor then stamped `Date.now()` at ingest, so a backlogged or retried batch reported a window around drain time, and sized the emailed `--range` so it excluded the very rows the command points at. Carry per-project min/max enqueue times through `/record` instead. `firstAt` and `lastAt` are optional with a Date.now() fallback, so in-flight calls keep working; no dispatch-side change, so the api-before-dispatch deploy order is not a factor. The timestamp read is instanceof-guarded because this is also the billing path. Legacy DO state (count > 0 written before the window fields existed) keeps a null window on purpose: those errors have no known time, so the email falls back to "recently" rather than claiming a window that excludes them. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016ZzGBP6hyUQNVNZXfd3h5M * chore(deps): point framework submodule at merged void#281 #281 squash-merged as 870b8c1, adding `void project requests` and folding 5xx into `--level error` on the CLI side of this change. The branch commit the submodule was pinned to (99dbe39) becomes unreachable once the PR branch is deleted, which would break `git submodule update --init` in CI. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016ZzGBP6hyUQNVNZXfd3h5M --------- Co-authored-by: Claude Opus 4.8 (1M context) <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.
Release bump for v0.10.2.
Verification run locally:
vp run build:allvp run checkvp checkvp test run(210 files passed, 2 skipped; 3023 tests passed, 8 skipped)Notes:
v0.10.2is the next patch after the publishedv0.10.1.v0.10.2tag has been pushed yet. After this PR is merged, create/sign/pushv0.10.2on the resultingmaincommit to trigger.github/workflows/publish.yml.Note
Low Risk
Version-only changes in package manifests; no application logic or security-sensitive code is modified.
Overview
Patch release prep: bumps the published
versionfield from 0.10.1 to 0.10.2 across seven packages:void,create-void,@void/md,@void/react,@void/vue,@void/svelte, and@void/solid.There are no runtime, API, or dependency changes in this diff—only metadata so npm publishes align on v0.10.2 after merge and tagging (per the PR notes,
v0.10.2tag triggers publish).Reviewed by Cursor Bugbot for commit a104435. Bugbot is set up for automated code reviews on this repo. Configure here.