build:embedded outputs to repo-root dist/; the publish job and smoke-check expected embedded/web/dist (the publish template's files entry), which was never created in CI — so a tagged publish would fail its smoke-check or ship an empty tarball. Copy dist -> embedded/web/dist in both jobs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>