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
Commit d36dc42
Browse filesBrowse the repository at this point in the historyBrowse files
ci(ui): regenerate the SDUI manifest in Build & E2E UI and compare it with the committed bytes (#26137)
check-sdui-manifest judges freshness from committed per-package source
digests, so it cannot see an edit to @objectstack/sdui-parser, to a package
the registry imports, or two queued PRs whose effect only shows together.
Build & E2E UI now runs scripts/gen-sdui-manifest-node.mjs after its
@objectstack build and fails when sdui.manifest.json differs from what this
tree generates. The 36 @objectstack tasks replay from Build UI Deps; the 27
@object-ui builds plus the enumeration cost 213 s cold on 4 cores.
- ci.yml `ui` filter: turbo.json's globalDependencies and the manifest's
own four files, so a diff that moves only those still runs the step.
- Build & E2E UI ceiling re-derived 25 -> 35 (457 + 213 s), with the pin in
ui/scripts/__tests__/turbo-cache-save-bound.test.ts.
- lint.yml and check-sdui-manifest.mjs prose, and releases-maintenance.md,
point at the new step. The digest check stays until this is green on main.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6SEitNngAMugGbuJHWsDS
# The repo-root SDUI manifest, regenerated from this tree and compared
4114
+
# with the committed bytes (#26137). The generator builds the registry
4115
+
# with turbo: the 36 tasks of the step above replay, and the 27
4116
+
# @object-ui packages build (3m25s cold, measured on 4 cores, on main
4117
+
# 81bba6c3f), then it enumerates the registry under plain Node (~8 s; ~6 s
4118
+
# for the whole run when nothing moved). It serialises through the
4119
+
# @objectstack/sdui-parser the step above built, so a parser edit moves
4120
+
# this verdict too, which no committed digest does. On merge_group it runs
4121
+
# on the queue's combined tree, the one run that sees two entries' effect
4122
+
# on the manifest together. Only the artefact is compared: the records the
4123
+
# generator rewrites beside it are held by `check-sdui-manifest` in
4124
+
# lint.yml. The Console build below reads the registry through its src/
4125
+
# aliases, so the dist this step builds does not reach it.
4126
+
- name: The committed SDUI manifest is the one this tree generates
4127
+
run: |
4128
+
node scripts/gen-sdui-manifest-node.mjs
4129
+
if ! git diff --quiet -- sdui.manifest.json; then
4130
+
echo "::error file=sdui.manifest.json::sdui.manifest.json is not the manifest this tree generates. Run 'node scripts/gen-sdui-manifest-node.mjs' and commit what it writes."
4131
+
git diff --stat -- sdui.manifest.json
4132
+
git diff -- sdui.manifest.json | head -n 200
4133
+
exit 1
4134
+
fi
4135
+
echo "sdui.manifest.json is byte-identical to this tree's regeneration."
0 commit comments