You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[scanner] site-rollback runbook claims sync failures fall back to committed content; prebuild is strict and fails the build #493
runbooks/site-rollback.md step 3 ("Decide whether the cause is site code … or content synced at build time") states:
The prebuild script falls back to committed content when a sync is unavailable, so a sync failure alone does not fail the build.
That is no longer how prebuild behaves. scripts/run-sync-step.ts (which wraps every sync step in package.jsonprebuild) propagates a non-zero exit and fails the build unless DOCS_SYNC_OPTIONAL=1 is set — and README.md ("How content is sourced") documents exactly that: "If a sync source is unreachable at build time, the build fails so stale content is never deployed silently … CI and Netlify always use the strict behavior. Only the meeting-recordings refresh always falls back to its committed data."
Why it matters
The runbook is the document an operator reads during a broken deploy. As written it tells them to rule out sync failures as a cause of a failed Netlify build, which is the opposite of the current behaviour: an unreachable hivecommons/hive (or any sibling repo) at build time is now a direct cause of a red deploy. That sends triage in the wrong direction at the worst moment.
The same sentence's project list (hive, hotshot, pluk, rationguard, promptargs, dibs) also omits Crux (#490) and Spektacular.
scripts/run-sync-step.ts header comment + runSyncStep: "Failures fail the build unless DOCS_SYNC_OPTIONAL=1 is set"
README.md "How content is sourced", last paragraph
package.jsonprebuild: every sync runs through scripts/run-sync-step.ts
Proposed fix
Rewrite step 3 to match run-sync-step.ts: a sync failure does fail the build (so a red deploy may be caused by an unreachable project repo, not only by site code); only the meeting-recordings refresh falls back to committed data; DOCS_SYNC_OPTIONAL=1 is local-only. Update the project list to include Crux and Spektacular (or point at the README list to avoid a second copy). Single-file docs change, no code.
Activity