Skip to content

feat(platform): add minimal runtime logs - #683

Merged
Brooooooklyn merged 4 commits into
mainfrom
feat/platform-minimal-telemetry
Nov 3, 2026
Merged

Brooooooklyn merged 4 commits into
mainfrom
feat/platform-minimal-telemetry

Conversation

@Brooooooklyn

Copy link
Copy Markdown
Member

Fixes #667

Adds an opt-in setting that keeps request URLs, log messages and exception messages out of platform and project Worker telemetry. The default stays full, so nothing changes unless you ask for it.

void platform install  --runtime-logs minimal
void platform upgrade [id] --runtime-logs minimal   # or full, to switch back

What minimal changes

                         full (default)            minimal
                         ───────────────           ───────────────────────────
Platform Workers         Workers Logs on           Workers Logs off
  (api/proxy/email/
   tail/dispatch)
Project Workers          Workers Logs on, 100%     Workers Logs off
  (user-*, void-do-*)                              (new uploads + existing ones swept)
Tail → Analytics Engine  url, logs, exceptions     url = ''
                                                   logs = level + time only
                                                   exceptions = name + time only
Dispatch metering        path in message           no path
Kept in both modes       outcome, method, status, deployment id → error rate,
                         status and level filters still work

How the setting flows

void platform install/upgrade --runtime-logs minimal
        │
        ▼
deployment manifest  runtimeLogs: 'minimal'  (schema v5, so an older CLI refuses it)
        │
        ├─► worker-config ─► platform Workers: observability off + PLATFORM_RUNTIME_LOGS
        │                        │
        │                        ├─► api: new project uploads + DO restores use observability off
        │                        ├─► tail: strip url / messages before writing
        │                        └─► logs API: answers runtimeLogs: 'minimal'
        │                                  └─► CLI + admin view show "not recorded on this platform"
        │
        └─► CLI after cutover: PATCH settings on every user-* / void-do-* script
            (re-run on every upgrade/repair while minimal; a failure warns with the next command)

Answers to the issue's questions

Question Choice
1. Flag shape One --runtime-logs full|minimal flag on install and upgrade, saved in the manifest. Later upgrades keep it.
2. URL Dropped entirely. A path can still carry personal data (one-time links, ids).
3. Per project Platform-wide only for now.
4. PR This one.

Guards

  • Needs a platform runtime that declares support (runtimeLogs: 1 in the runtime manifest). Install, upgrade and rollback refuse a runtime that does not.
  • repair keeps the saved setting. Only upgrade can change it.
  • The plan shows Runtime logs: minimal (was full) when the value changes.

Known gaps (left as is)

  • During cutover, the database briefly holds a schema v5 manifest while the old API is still running, so its admin status page can fail for that window. This is the same as the earlier v4 bump.
  • A project deploy that starts on the old API during cutover can upload with Workers Logs on. The next upgrade/repair sweep fixes it.
  • Ingress, sandbox controller and email uploads are not touched. They never turn on observability.

Tests

  • Manifest parse/create (v5), runtime gate, worker config, plan drift guard and display
  • Tail and dispatch stripping, logs endpoints, admin view
  • CLI flag, sweep wiring on upgrade/repair, rollback guard, log output in both modes
  • Durable Object restore of an older release keeps Workers Logs off

A second commit raises the timeout of a Container build test that runs two real Vite builds (about 4s against the 5s default).

🤖 Generated with Claude Code

Brooooooklyn and others added 2 commits November 3, 2026 13:50
The test runs two real Vite builds, which take about four seconds and
come close to the default five-second timeout under load.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add `--runtime-logs full|minimal` to platform install and upgrade. In
minimal mode, platform and project Workers run with Workers Logs off,
the tail Worker stores no URL, log message or exception message, and
dispatch metering drops the request path. Outcome, method, status and
deployment id are still recorded. The setting is saved in the
deployment manifest (schema version 5) and existing project Workers
are updated after each upgrade or repair while minimal.

Fixes #667

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Brooooooklyn
Brooooooklyn requested a review from a team as a code owner November 3, 2026 05:50
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-03T06:02:49.936443Z 14fafb0 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://feat-platform-minimal-telemetry-void-cloud.voidzero-docs.workers.dev (commit 14fafb0)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://acfe7bc0-void-cloud.voidzero-docs.workers.dev 14fafb0 2026-11-03T06:02:23.530Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://c0d97df0-void-cloud.voidzero-docs.workers.dev 32398d3 2026-11-03T05:57:43.260Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://834963f5-void-cloud.voidzero-docs.workers.dev fc872f8 2026-11-03T05:51:34.782Z Visit the dashboard ↗

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fc872f81d1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread platform/packages/tail/src/index.ts Resolved
…ell minimal rows apart

A Durable Object restore now always applies the installation's current
Workers Logs setting, so a release saved in minimal mode cannot turn
logs off after a switch back to full.

Minimal log rows store no URL, so two requests in the same millisecond
could look identical and be merged by the readers. Minimal rows now
keep the request Ray ID in blob8, and the readers group by it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 32398d37d5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

The live tail dropped any row it had already shown by shape. With
minimal runtime logs, two requests in the same millisecond can share a
shape, so the tail now counts each shape and shows only rows beyond
the count it has already seen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Brooooooklyn
Brooooooklyn merged commit 2cbd071 into main Nov 3, 2026
20 checks passed
@Brooooooklyn
Brooooooklyn deleted the feat/platform-minimal-telemetry branch November 3, 2026 06:24
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.

platform: option to keep request URLs, logs and exceptions out of platform and project Worker telemetry

1 participant