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 d19cc58
Browse filesBrowse the repository at this point in the historyBrowse files
fix(docker): the runtime image installs its CLI and drivers under a pinned npm 11
node:22-slim bundles npm 10.9.9, whose arborist crashes with `edgesOut`
on `npm install -g @objectstack/cli pg mysql2` since vitest@4.1.12 was
published, and a global install reads no `overrides`. The install RUN
now fetches npm@11.21.0 into /tmp with the image's npm, puts it first on
PATH for that RUN only, asserts its version, and deletes it in the same
layer, so the image keeps node:22-slim's npm and the installed set is
unchanged.
check-docs-image-tag anchors the driver install on `npm install -g`
after a `RUN` or `&&` leader. The installer fetch (no `-g`) is not an
anchor, and the self-test pins that the driver line is the one read.
Claude-Session: https://claude.ai/code/session_016PVjjuVPte5XEJvaQx1E4t
Co-authored-by: Claude <noreply@anthropic.com>
// Quotes are how a `^` range survives some shells; they are not part of the
@@ -813,7 +840,7 @@ export function checkDriverPromise({ root }) {
813
840
file: DRIVER_PROMISE.dockerfile,
814
841
line: 0,
815
842
detail:
816
-
`no line starts with '${DRIVER_PROMISE.installPrefix}', so this gate cannot see what the image `
843
+
`no line starts with ${DRIVER_PROMISE.installLeaders.map((leader)=>`'${leader}${DRIVER_PROMISE.installPrefix}'`).join(' or ')}, so this gate cannot see what the image `
817
844
+'installs and would report OK over a comparison it never made. Either the install was re-spelled '
818
845
+'-- re-anchor DRIVER_PROMISE.installPrefix -- or the image stopped installing drivers, in which '
819
846
+`case delete the '${DRIVER_PROMISE.heading}' section of ${DRIVER_PROMISE.readme} and this limb in `
@@ -2064,6 +2091,67 @@ async function selfTest() {
2064
2091
+`this limb reports OK over a comparison it never made. Got ${JSON.stringify(driverNoInstall.findings.map((f)=>f.kind))}`,
2065
2092
);
2066
2093
2094
+
// #23788: the image fetches a pinned npm earlier in the SAME RUN, so the driver
2095
+
// install opens with `&&`, and the line above it is an `npm install` too. The
2096
+
// anchor must be the driver line, and the installer's spec is not a driver.
0 commit comments