← Dev log
EduQate·infrastructure

A shared-package fix that wasn't shared

Docker COPY bakes packages/ into the image rather than bind-mounting it, so host-side rebuilds of a shared workspace package never reached the running container.

It said it worked

Green, 200, saved, “already handled” — and wrong. No error anywhere to go on.

Fixed a packages/ui-web component, rebuilt with tsc, reloaded, same broken behavior. The build succeeded with zero errors, which is what made it confusing.

The frontend apps run in Docker and the dev Dockerfile does COPY packages/ ./packages/ at image build time. It's baked in, not bind-mounted like apps/*/src. A host-side build updates the real files while the container keeps serving whatever was copied in the last time that image was built, which for packages/ could be arbitrarily long ago. Editing a mounted path and a baked-in path look identical from the editor.

Rebuilt the images for every app depending on the package and recreated the containers. In a mixed mount/bake setup it's worth knowing cold which paths are live, because the fix differs (restart vs rebuild) and guessing wrong wastes a cycle convincing yourself the fix didn't work.