Skip to content

feat(ci): flag overrides that exist only in CI builds#635

Merged
gewenyu99 merged 1 commit into
experiment/orchestrator-01-bootstrap-gatingfrom
experiment/orchestrator-ci-flag-overrides
Jun 18, 2026
Merged

feat(ci): flag overrides that exist only in CI builds#635
gewenyu99 merged 1 commit into
experiment/orchestrator-01-bootstrap-gatingfrom
experiment/orchestrator-ci-flag-overrides

Conversation

@gewenyu99

@gewenyu99 gewenyu99 commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

WIZARD_CI_FLAG_OVERRIDES, a JSON object of flag key to value, merges over whatever PostHog returns, so CI routes deterministically instead of depending on a live flag someone can edit. The override path exists only in build:ci bundles. Published builds inline NODE_ENV and tsdown strips it entirely, and the smoke test asserts the env var's name is physically absent from production output and present in CI output, on every build. A malformed override fails the run loudly, and a valid one applies even when the flag fetch fails.

@github-actions

Copy link
Copy Markdown

🧙 Wizard CI

Run the Wizard CI and test your changes against wizard-workbench example apps by replying with a GitHub comment using one of the following commands:

Test all apps:

  • /wizard-ci all

Test all apps in a directory:

  • /wizard-ci basic-integration
  • /wizard-ci error-tracking-upload-source-maps
  • /wizard-ci misc
  • /wizard-ci revenue

Test an individual app:

  • /wizard-ci basic-integration/android
  • /wizard-ci basic-integration/angular
  • /wizard-ci basic-integration/astro
Show more apps
  • /wizard-ci basic-integration/django
  • /wizard-ci basic-integration/fastapi
  • /wizard-ci basic-integration/flask
  • /wizard-ci basic-integration/javascript-node
  • /wizard-ci basic-integration/javascript-web
  • /wizard-ci basic-integration/laravel
  • /wizard-ci basic-integration/next-js
  • /wizard-ci basic-integration/nuxt
  • /wizard-ci basic-integration/python
  • /wizard-ci basic-integration/rails
  • /wizard-ci basic-integration/react-native
  • /wizard-ci basic-integration/react-router
  • /wizard-ci basic-integration/sveltekit
  • /wizard-ci basic-integration/swift
  • /wizard-ci basic-integration/tanstack-router
  • /wizard-ci basic-integration/tanstack-start
  • /wizard-ci basic-integration/vue
  • /wizard-ci error-tracking-upload-source-maps/android
  • /wizard-ci error-tracking-upload-source-maps/flutter
  • /wizard-ci error-tracking-upload-source-maps/ios
  • /wizard-ci error-tracking-upload-source-maps/next
  • /wizard-ci error-tracking-upload-source-maps/next-no-posthog
  • /wizard-ci error-tracking-upload-source-maps/node-raw
  • /wizard-ci error-tracking-upload-source-maps/node-rollup
  • /wizard-ci error-tracking-upload-source-maps/node-rollup-typescript-plugin
  • /wizard-ci error-tracking-upload-source-maps/node-webpack
  • /wizard-ci error-tracking-upload-source-maps/nuxt-3-6
  • /wizard-ci error-tracking-upload-source-maps/nuxt-4-3
  • /wizard-ci error-tracking-upload-source-maps/react-native
  • /wizard-ci error-tracking-upload-source-maps/react-vite
  • /wizard-ci error-tracking-upload-source-maps/rust
  • /wizard-ci misc/quack-quack
  • /wizard-ci revenue/stripe

Results will be posted here when complete.

@gewenyu99 gewenyu99 force-pushed the experiment/orchestrator-ci-flag-overrides branch from 6fa5a9e to a66f029 Compare June 10, 2026 19:37
@gewenyu99 gewenyu99 force-pushed the experiment/orchestrator-email-targeting branch from 2804e98 to 52f3310 Compare June 10, 2026 20:04
@gewenyu99 gewenyu99 force-pushed the experiment/orchestrator-ci-flag-overrides branch from a66f029 to 2dc8205 Compare June 10, 2026 20:04
@gewenyu99 gewenyu99 force-pushed the experiment/orchestrator-email-targeting branch from 52f3310 to d306bbf Compare June 10, 2026 20:38
@gewenyu99 gewenyu99 force-pushed the experiment/orchestrator-ci-flag-overrides branch from 2dc8205 to cf2068f Compare June 10, 2026 20:38
@gewenyu99 gewenyu99 force-pushed the experiment/orchestrator-ci-flag-overrides branch from cf2068f to a152b1c Compare June 16, 2026 21:48
@gewenyu99 gewenyu99 force-pushed the experiment/orchestrator-email-targeting branch from d306bbf to 06915e5 Compare June 16, 2026 21:48
@gewenyu99 gewenyu99 marked this pull request as ready for review June 17, 2026 14:01
@gewenyu99 gewenyu99 force-pushed the experiment/orchestrator-email-targeting branch from 06915e5 to 751692d Compare June 17, 2026 15:48
@gewenyu99 gewenyu99 force-pushed the experiment/orchestrator-ci-flag-overrides branch from a152b1c to 49b7368 Compare June 17, 2026 15:48

@edwinyjlim edwinyjlim left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nice

@gewenyu99 gewenyu99 force-pushed the experiment/orchestrator-email-targeting branch from 751692d to b695c9a Compare June 18, 2026 14:22
POSTHOG_WIZARD_CI_FLAG_OVERRIDES (a JSON object of flag key → value) merges
over the flags PostHog returns, so CI routes deterministically — a run that
tests the orchestrator arm says so instead of depending on a live flag.
Published builds inline NODE_ENV and tsdown strips the entire override path
from the bundle; the smoke test asserts the env var's name is physically
absent from production output and present in CI output, on every build.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Base automatically changed from experiment/orchestrator-email-targeting to experiment/orchestrator-01-bootstrap-gating June 18, 2026 14:22
@gewenyu99 gewenyu99 force-pushed the experiment/orchestrator-ci-flag-overrides branch from 49b7368 to 552c7be Compare June 18, 2026 14:22
@gewenyu99 gewenyu99 merged commit 0f0d223 into experiment/orchestrator-01-bootstrap-gating Jun 18, 2026
5 checks passed
@gewenyu99 gewenyu99 deleted the experiment/orchestrator-ci-flag-overrides branch June 18, 2026 14:22
gewenyu99 added a commit that referenced this pull request Jun 18, 2026
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
gewenyu99 added a commit that referenced this pull request Jun 18, 2026
…rd-orchestrator flag) (#606)

Experimental task-queue orchestrator, collapsed from an 11-PR stack into this single branch. Behind the `wizard-orchestrator` feature flag, off by default — with the flag off it is a no-op and the existing linear flow runs unchanged.

## Wizard PRs folded in (squash-merged into this branch)
- #607 — queue persistence
- #608 — orchestrator MCP tools: enqueue_task / complete_task / read_handoffs, with guards
- #609 — executor
- #619 — agent loader
- #620 — email targeting
- #635 — CI flag overrides
- #637 — ephemeral skills
- #638 — telemetry (responsiveness A/B spine)
- #639 — CI task filter
- #677 — run cache + responsiveness analytics
- #678 — CI health-check advisory

## Related PRs, other repos
- PostHog/context-mill#181 — `agents` content type: agent prompts plus the `basic-integration` step-skills, built and served alongside skills
- PostHog/wizard-workbench#1879 — CI flag-override and task-exclude dispatch inputs (dev/CI stack)

## Flag gating — why this is a no-op with the flag off
- `runProgram` forks on `isOrchestratorEnabled(flags)` = `flags['wizard-orchestrator'] === 'true'` (default false). Off, it runs `runLinearProgram`, the existing path, untouched.
- The shared `runAgent` threads the same flag through, so its orchestrator-specific message handling is gated too.
- The CI flag-override (`WIZARD_CI_FLAG_OVERRIDES`) is guarded by `NODE_ENV === 'production'` and stripped from published builds — a smoke test asserts the env-var names are physically absent — so it cannot flip the flag for real users.
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