Skip to content

fix(deploy): migrate off deprecated Cloudflare service environments#269

Open
chitcommit wants to merge 2 commits into
mainfrom
claude/fervent-yonath-bdf3ab
Open

fix(deploy): migrate off deprecated Cloudflare service environments#269
chitcommit wants to merge 2 commits into
mainfrom
claude/fervent-yonath-bdf3ab

Conversation

@chitcommit

@chitcommit chitcommit commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Problem

wrangler.jsonc set "legacy_env": false, putting chittyconnect in Cloudflare's deprecated service-environments model. Every build logged:

Service environments are deprecated, and will be removed in the future. DO NOT USE IN PRODUCTION.

Consequences:

  • Production deploys worked only because the production service environment was already grandfathered in.
  • Staging deploys failed outright: code 10223 — This account cannot create new non-production service environments. This is the source of the perpetually-red deploy:staging PR check. env.staging was fully declared; the account-level capability was the blocker.

chittyconnect and chittysecrets were the only two repos across CHITTYOS/ and CHITTYFOUNDATION/ still setting legacy_env: false.

Changes

remove  "legacy_env": false
add     env.production.name = "chittyconnect"          // pins to the EXISTING script
add     env.staging.name    = "chittyconnect-staging"  // new top-level worker, no 10223

The production name pin is load-bearing. env.production had no name key of its own, so it inherited. Without service environments wrangler name-suffixes by default — an unnamed env.production would have targeted a brand-new chittyconnect-production worker and stranded the live script along with its connect.chitty.cc/* route. That failure mode has already caused three prod binding-wipe incidents (#219, #207, and twice on 2026-06-03; #218 closed, #223 open).

Verified the trap is real rather than theoretical: env.dev, which still has no name key, now resolves to chittyconnect-dev.

Follows the org's existing pattern — chittyentity/workers/chittyagent-imessage/wrangler.jsonc (top-level name + env.production.name pinned to the same value).

Also: a shadow config was silently overriding the tracked one

scripts/safe-deploy.sh ran wrangler deploy --env "$ENV" with no --config. Wrangler's config discovery prefers wrangler.json over wrangler.jsonc and walks up parent directories — and an untracked wrangler.json (gitignored at .gitignore:59, so invisible in CI) sat at the repo root shadowing the tracked file. The script was auditing wrangler.jsonc while deploying whatever wrangler happened to find.

Both files happened to resolve to byte-identical production bindings, so nothing was broken — but it was un-reviewable drift waiting to happen, and it would have made this migration silently inert for local deploys. --config "$WRANGLER_CFG" now pins the reviewed file on every deploy path; the stray file has been removed (backed up off-repo).

Live verification — no route handoff

Confirmed against the live Cloudflare API (read-only) that the base script and the production service environment are the same underlying Worker object, so this migration is a no-op on worker identity:

Path etag
/workers/scripts (base script) e66e8221e9712ac7d1473ccd1da42532…
/workers/services/chittyconnectdefault_environment.script.etag e66e8221e9712ac7d1473ccd1da42532…

Corroborated by identical script_tag (19a1d50542d84acb99cd2c1ee8142c7f) and byte-identical binding sets (114 live bindings) via both paths.

Decisive datapoint — route ownership:

{"pattern":"connect.chitty.cc/*","script":"chittyconnect"}

The route is owned by the unsuffixed base script. Also confirmed: chittyconnect-production does not exist (10090), chittyconnect-staging does not yet exist, and chittyconnect has exactly one service environment (production) — consistent with the 10223 error on staging.

No route handoff, no cutover window, no orphaned script.

Config validation — no credentials, no deploy

  • Wrangler's own resolver (unstable_readConfig):
    • --env production"chittyconnect", route connect.chitty.cc/*
    • --env staging"chittyconnect-staging", no routes
  • wrangler deploy --env production --dry-run73 bindings, byte-identical to the pre-migration baseline (diff empty)
  • --env staging --dry-run → 73, identical to baseline
  • scripts/lib/extract-declared-bindings.mjs production independently agrees at 73
  • Deprecation warning gone
  • 496 tests pass, 1 pre-existing skip
  • bash -n scripts/safe-deploy.sh clean

Rollback plan for connect.chitty.cc/*

Because the name is pinned to the existing script, the route never changes hands. If a prod deploy still needs reverting:

  • Rollback target: deployment 808c1147-a377-4107-a5c0-ec4d76d3439f / version ac53e49e-63fc-4f78-aa35-2316e42eac46 (#946, 2026-07-24T23:32:35Z)
  • Current at time of writing: version 0384daab-f6a6-4f70-a22d-ded03e9f05e7 (#947, 2026-07-25T02:15:33Z) — the Workers Build for fix(ci): stop a stale binding-drift issue from suppressing new incident alerts #268
  • npx wrangler rollback --name chittyconnect, or revert this commit and re-run npm run deploy:production
  • Route-level fallback: re-point route 10bad0c1831d44f29906383ea3c1c8d8 on zone 7a4f759e0928fb2be4772a2f72ad0df2 to script: chittyconnect

Expected effect on CI

The deploy:staging check should go green for the first time — staging becomes a top-level worker (chittyconnect-staging, workers_dev only, no routes) instead of an impossible service environment. That staging deploy is the first real end-to-end proof of the migration and it cannot touch production.

Refs #219, #207, #218, #223

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added safer deployment validation, including explicit environment and configuration requirements.
    • Added checks to confirm deployments target the intended worker and that live bindings match configuration.
    • Configured staging and production deployments to use dedicated, explicitly named worker scripts.
  • Bug Fixes

    • Improved detection of deployment warnings and binding drift, preventing potentially incorrect releases.

wrangler.jsonc set "legacy_env": false, putting the worker in the
service-environments model that Cloudflare has deprecated ("DO NOT USE
IN PRODUCTION" on every build). Production deploys only worked because
the `production` service environment was already grandfathered in;
staging deploys failed outright with API error 10223 ("This account
cannot create new non-production service environments").

Changes:
  - remove top-level "legacy_env": false
  - pin env.production.name  = "chittyconnect"          (EXISTING script)
  - pin env.staging.name     = "chittyconnect-staging"  (new top-level worker)

The production name pin is load-bearing. Without service environments
wrangler name-suffixes by default, and env.production had no "name" key
of its own, so `--env production` would have targeted a brand-new
`chittyconnect-production` worker and stranded the live script along
with its connect.chitty.cc/* route. Verified the trap is real: env.dev,
which still has no "name" key, now resolves to "chittyconnect-dev".

Also pins --config in safe-deploy.sh. Wrangler's config discovery prefers
`wrangler.json` over `wrangler.jsonc` and walks up parent directories, so
an untracked (gitignored, therefore CI-invisible) `wrangler.json` at the
repo root was silently shadowing the tracked config — the script audited
wrangler.jsonc while deploying whatever wrangler happened to find. That
stray file has been removed and --config now makes the reviewed file
authoritative on every deploy path.

Validation (no credentials required, no deploy performed):
  - wrangler's own resolver (unstable_readConfig) confirms:
      --env production -> "chittyconnect",         route connect.chitty.cc/*
      --env staging    -> "chittyconnect-staging", no routes
  - `wrangler deploy --env production --dry-run` resolves 73 bindings,
    byte-identical to the pre-migration baseline (diff empty)
  - `--env staging` likewise resolves 73, identical to baseline
  - scripts/lib/extract-declared-bindings.mjs production independently
    agrees at 73
  - deprecation warning is gone
  - 496 tests pass, 1 pre-existing skip

Refs #219, #207, #218, #223

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 25, 2026 02:22
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@cloudflare-workers-and-pages

Copy link
Copy Markdown
Contributor

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
chittyconnect aa030c4 Jul 25 2026, 02:23 AM

@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The deployment configuration now pins staging and production worker names. safe-deploy.sh requires the repository config, validates Wrangler’s target and exit status, and audits bindings through the deployed script’s settings endpoint.

Changes

Deployment safety

Layer / File(s) Summary
Explicit environment worker targets
wrangler.jsonc
Removes legacy_env and assigns explicit worker names for staging and production deployments.
Deployment and binding verification
scripts/safe-deploy.sh
Requires explicit Wrangler configuration, validates CI name overrides and uploaded worker names, preserves Wrangler failures, and compares declared bindings with live script bindings.

Estimated code review effort: 3 (Moderate) | ~20 minutes

### Sequence Diagram(s)

sequenceDiagram
  participant SafeDeploy
  participant Wrangler
  participant CloudflareAPI
  SafeDeploy->>Wrangler: deploy with explicit environment and config
  Wrangler-->>SafeDeploy: deployment status and uploaded worker name
  SafeDeploy->>CloudflareAPI: fetch deployed script settings
  CloudflareAPI-->>SafeDeploy: live binding names
  SafeDeploy->>SafeDeploy: validate target and binding drift
Loading

Possibly related PRs

Suggested reviewers: copilot

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly matches the main change: migrating deployment config off deprecated Cloudflare service environments.
Description check ✅ Passed The description covers the problem, changes, validation, and rollback, though it doesn't follow the template's checklist headings exactly.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/fervent-yonath-bdf3ab

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI 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.

Pull request overview

Migrate chittyconnect off Cloudflare’s deprecated service environments by removing the legacy_env: false opt-in and explicitly pinning worker names for production and staging, plus hardening the deploy wrapper to always deploy using the reviewed Wrangler config.

Changes:

  • Remove legacy_env: false and explicitly set env.production.name = "chittyconnect" to avoid accidental -production suffix deployments.
  • Set env.staging.name = "chittyconnect-staging" so staging deploys become a separate top-level worker (avoids API 10223).
  • Update scripts/safe-deploy.sh to pass --config "$WRANGLER_CFG" to prevent config shadowing by an untracked wrangler.json.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
wrangler.jsonc Removes deprecated service-environments opt-in and pins env.production/env.staging worker names to prevent route/binding mishaps.
scripts/safe-deploy.sh Pins Wrangler to the reviewed config during deploys to avoid accidental shadow-config behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/safe-deploy.sh
Comment on lines 84 to 85
# ── 2. Audit declared vs attached bindings ───────────────────────────────────
echo "[safe-deploy] auditing bindings on live worker $DEPLOYED_NAME ..."
@chitcommit
chitcommit marked this pull request as draft July 25, 2026 02:28
@chitcommit

Copy link
Copy Markdown
Contributor Author

⛔ DO NOT MERGE — this branch clobbers production config on push

Converting to draft. Pushing this branch overwrote production configuration, and the cause is infrastructure coupling that must be fixed before this change can land.

What happened

Pushing commit aa030c4 fired Workers Builds trigger a2c659fc ("Deploy non-production branches", branch_includes: ["*"], branch_excludes: ["main"]), which runs npm run deploy:staging. Wrangler correctly resolved the name to chittyconnect-staging — and then Workers Builds overrode it:

[safe-deploy] running: npx wrangler deploy --env staging --config /opt/buildhome/repo/wrangler.jsonc
▲ [WARNING] Failed to match Worker name. Your config file is using the Worker name
  "chittyconnect-staging", but the CI system expected "chittyconnect".
  Overriding using the CI provided Worker name.
Uploaded chittyconnect (6.00 sec)
Current Version ID: 92d625a2-b532-4083-b57b-c8e9fecc6a97

Both triggers are bound to the same external_script_id (19a1d50542d84acb99cd2c1ee8142c7f), so Workers Builds forces every branch build onto the production script regardless of env.staging.name.

Why this change surfaced it

The pre-existing 10223 failure was load-bearing as an accidental safety net. Baseline build 9ce1d2f0 (branch claude/heuristic-darwin-69968a) died here:

✘ [ERROR] A request to the Cloudflare API
  (/accounts/.../workers/services/chittyconnect/environments/staging) failed.
  This account cannot create new non-production service environments. [code: 10223]

It never reached the upload step. Removing legacy_env: false removed the service environment that had to be created — so wrangler stopped failing and proceeded straight to uploading onto production. The old red check was harmless; the new one is destructive.

Current production state

version created
Expected (#947) 0384daab-f6a6-4f70-a22d-ded03e9f05e7 02:15:33Z
Actual (#948) 92d625a2-b532-4083-b57b-c8e9fecc6a97 02:22:54Z

Code is unaffected — bundle etag identical (e66e8221…); this commit touches only wrangler.jsonc and scripts/safe-deploy.sh, neither of which is bundled. /health → 200, v2.2.0. Route connect.chitty.cc/* intact.

Config is wrong:

  • ENVIRONMENT=staging (was production) — 0 references in src/, cosmetic only
  • CHITTYCONNECT_URL=https://chittyconnect-staging.chittyos.workers.dev — a script that does not exist (10007). Consumed at src/services/DocumentStorageService.js:163 to build document download URLs, so links minted since 02:22:54Z are dead.

Blockers before this can merge

  1. Restore production config — re-run the main trigger (a5c58269) at a0fd6c51, the last known-good production deploy (build 0b8a6c6f, 02:15:07Z, succeeded → #947).
  2. Decouple trigger a2c659fc from the production script — give it its own external_script_id targeting a real chittyconnect-staging script, or disable it. Until then, any branch containing this commit clobbers production on push.
  3. safe-deploy.sh cannot detect the override — it audits DEPLOYED_NAME as computed (line 63), not the name wrangler actually deployed, and then queries the legacy service-environments bindings path (line 99). It should parse wrangler's output for the name-mismatch warning and fail before the deploy, not after.

Not currently at risk

Other open branches still carry legacy_env: false, so their builds still stop at 10223. The exposure is limited to branches containing aa030c4 — i.e. this one. After merge, every branch cut from main becomes a production-clobbering push, which is why blocker 2 gates this PR.

The config change itself validated cleanly (73 bindings byte-identical, correct name resolution, same-etag proof of no route handoff). The defect is not in the diff — it's that the diff removes a guard the CI topology was silently depending on.

… a service env

Two defects that let a branch push write staging config onto production
on 2026-07-25 (build fe9061f3) without this script noticing.

1. Cloudflare Workers Builds ignores the name in wrangler.jsonc and forces
   the name of the script its trigger is bound to, printing a warning and
   deploying anyway:

     ▲ [WARNING] Failed to match Worker name. Your config file is using the
       Worker name "chittyconnect-staging", but the CI system expected
       "chittyconnect". Overriding using the CI provided Worker name.

   Both build triggers were bound to the same script id, so `deploy:staging`
   landed on the production script. This script could not see it: the audit
   checked the name it COMPUTED, never the name wrangler actually shipped to.

   Now the deploy output is captured with tee and checked two ways — grep for
   the override warning, and compare wrangler's "Uploaded <name>" line against
   the intended target. Either mismatch exits 72. Verified both trip when
   replayed against the real fe9061f3 log.

2. The binding audit queried
     /workers/services/$WORKER_NAME/environments/$ENV/bindings
   a service-environments path that only resolves for a grandfathered
   environment. It 404s for any real top-level worker — that 404 is what
   failed build fe9061f3, *after* the bad deploy had already landed, which is
   why the failure looked unrelated to the clobber. Switched to the
   script-scoped /workers/scripts/$DEPLOYED_NAME/settings endpoint, which
   works for production and staging alike (confirmed live: it returns the same
   binding set for chittyconnect as the legacy path did).

Prevention belongs at the infra layer — the branch trigger must not be bound
to the production script. These guards make a recurrence loud and immediately
diagnosable instead of silent.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 25, 2026 02:57
@linear-code
linear-code Bot marked this pull request as ready for review July 25, 2026 02:57
@chitcommit

Copy link
Copy Markdown
Contributor Author

✅ Production restored — incident closed. PR still blocked on CI decoupling.

Restore

Rolling back to v947 did not work, and the reason is worth recording. Cloudflare's Rollbacks doc, verbatim:

Resources connected to your Worker will not be changed during a rollback.

A rollback re-points traffic at an old version's code; it does not revert bindings or vars. The damage here was entirely bindings, so the rollback (deployment 430c77f0, 02:45:59Z) left ENVIRONMENT=staging in place. Only a fresh upload fixes config.

Fixed by re-running the main trigger (a5c58269) pinned to a0fd6c51 — build 61092308-d22b-4e8f-a204-7743928c530c, outcome success, 02:51:31→02:51:54Z. Pre-flights confirmed main HEAD unmoved and still pre-migration before firing.

Check Result
ENVIRONMENT production
CHITTYCONNECT_URL https://connect.chitty.cc
Live version ✅ #950 c4b52b18-7cb0-46af-91a5-c5c2693cdca1 @ 02:51:49Z, 100%
Bundle etag e66e8221… unchanged throughout — code never moved
Bindings ✅ 114 total, 41 secret_text intact, only_in_947: []
/health HTTP 200, v2.2.0
Route connect.chitty.cc/*chittyconnect

The build log independently confirms the binding arithmetic rather than us asserting it:

[safe-deploy] OK — 73 declared bindings all present (live worker has 114 total)

114 = 73 declared in wrangler.jsonc + 41 set via wrangler secret put. Those 41 aren't in config and aren't recoverable from it — they all survived, so this was a config swap, not a repeat of the #219/#207 binding-strip family.

Two benign deviations, recorded not glossed

  1. Script tag array is now empty rather than back to cf:environment=production. environments correctly lists only ["production"]; functionally correct, tag simply absent.
  2. Route was recreated with a new ID10bad0c1831d44f29906383ea3c1c8d808145f96ab864ca19452950e3e289169. Same pattern, same script, only route on the zone pointing at chittyconnect; custom domain binding intact. Verified the old ID is referenced nowhere in this repo, so nothing is stale. Likely wrangler deleted/recreated rather than updating in place, since the staging config had no routes block to reconcile against.

Unrelated find: version #949

Version 303fd59a-8c27-48aa-b821-99e794c6d27a @ 02:34:00Z has source: "dash" and carries the staging vars — created via the Cloudflare Dashboard ~10 min before any of our mutations, and never deployed. Inert, superseded by #950. Flagging only because it means a dashboard session was touching this worker mid-incident.

Containment

Trigger a2c659fc is deleted — the API exposes no enable/disable field, so delete was the only mechanism. Config backed up verbatim, including a do-not-reuse warning on the production external_script_id. Trigger a5c58269 (main) verified intact, deleted_on: null.

Side effect: branch/preview deploys no longer exist at all. That's intended containment, but it's a capability gap until a real chittyconnect-staging script is created and the trigger rebound to it.

Remaining blocker for this PR

Just one now — item 2 from the previous comment. The config diff in this PR is correct and validated; the bug is in Workers Builds' name-override behaviour, not in this diff. Before it can merge, chittyconnect-staging must exist as its own script with its own trigger, because after merge every branch cut from main carries this change.

Item 3 is now addressed in 9dc673b (pushed): safe-deploy.sh detects the override two independent ways — grepping for Failed to match Worker name, and comparing wrangler's Uploaded <name> against the intended target — verified by replaying the real fe9061f3 log. It also moves the binding audit off /workers/services/{name}/environments/{env}/bindings (the service-environments path that 404s, which is what failed that build after the bad deploy had already landed) onto /workers/scripts/{name}/settings.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/safe-deploy.sh`:
- Around line 85-109: Post-deploy log inspection in scripts/safe-deploy.sh
cannot prevent a Workers Builds override, so block or disable this staging CI
deployment path before wrangler deploy runs until its trigger is bound to
chittyconnect-staging; do not rely on the exit-72 check as prevention. Keep the
staging target in wrangler.jsonc at lines 180-184 unchanged, and explicitly
treat that site as requiring no direct code change; rebind or disable the
dashboard trigger and restore chittyconnect before enabling staging deploys.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 556eda4a-ad7c-40ba-836d-6da25e6c1889

📥 Commits

Reviewing files that changed from the base of the PR and between a0fd6c5 and 9dc673b.

📒 Files selected for processing (2)
  • scripts/safe-deploy.sh
  • wrangler.jsonc

Comment thread scripts/safe-deploy.sh
Comment on lines +85 to +109
CHITTYCONNECT_SAFE_DEPLOY=1 npx wrangler deploy --env "$ENV" --config "$WRANGLER_CFG" 2>&1 | tee "$DEPLOY_LOG"
WRANGLER_RC="${PIPESTATUS[0]}"
set -e

# ── 1a. Detect a CI-side Worker name override ────────────────────────────────
# Cloudflare Workers Builds IGNORES the name in wrangler.jsonc and forces the
# name of the script its build trigger is bound to. It prints a warning and
# then deploys anyway:
#
# ▲ [WARNING] Failed to match Worker name. Your config file is using the
# Worker name "chittyconnect-staging", but the CI system expected
# "chittyconnect". Overriding using the CI provided Worker name.
#
# On 2026-07-25 that override put the *staging* var set onto the *production*
# script, because both build triggers were bound to the same script id. Nothing
# in this script noticed: the audit below checks the name we COMPUTED, not the
# name wrangler actually shipped to. Fail loud so a clobber is diagnosed in the
# build that caused it rather than discovered later in prod.
if grep -q "Failed to match Worker name" "$DEPLOY_LOG"; then
echo "::error::safe-deploy: CI overrode the Worker name. This deploy may have written env.$ENV config onto a DIFFERENT worker than intended." >&2
echo " Expected to deploy: $DEPLOYED_NAME" >&2
grep -m1 "but the CI system expected" "$DEPLOY_LOG" >&2 || true
echo " Fix the Workers Builds trigger so it is bound to a script named '$DEPLOYED_NAME', then redeploy." >&2
echo " If this ran against production, restore it before doing anything else." >&2
exit 72

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟠 Major | 🏗️ Heavy lift

This detects the Workers Builds override only after it has mutated the target Worker.

wrangler deploy completes before the log is inspected, so exit 72 only reports the already-applied staging-to-production overwrite described in the PR objectives. Rebind or disable the staging Workers Builds trigger and restore chittyconnect before enabling these staging deploys.

  • scripts/safe-deploy.sh#L85-L109: do not treat post-deploy log inspection as a preventive safeguard; block this CI path until its trigger targets chittyconnect-staging.
  • wrangler.jsonc#L180-L184: keep this target, but do not enable the associated Workers Builds deployment until the dashboard trigger is bound to chittyconnect-staging.
📍 Affects 2 files
  • scripts/safe-deploy.sh#L85-L109 (this comment)
  • wrangler.jsonc#L180-L184
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/safe-deploy.sh` around lines 85 - 109, Post-deploy log inspection in
scripts/safe-deploy.sh cannot prevent a Workers Builds override, so block or
disable this staging CI deployment path before wrangler deploy runs until its
trigger is bound to chittyconnect-staging; do not rely on the exit-72 check as
prevention. Keep the staging target in wrangler.jsonc at lines 180-184
unchanged, and explicitly treat that site as requiring no direct code change;
rebind or disable the dashboard trigger and restore chittyconnect before
enabling staging deploys.

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

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