docs(release): decouple the demo-webchat bump from promotion to latest - #296
Open
Dmitrii Ostasevich (kwinto) wants to merge 2 commits into
Open
docs(release): decouple the demo-webchat bump from promotion to latest#296Dmitrii Ostasevich (kwinto) wants to merge 2 commits into
Dmitrii Ostasevich (kwinto) wants to merge 2 commits into
Conversation
The post-release checklist listed the demo-webchat bump as step 5, after the 'promote to latest' step, so it read as gated on promotion — which happens ~1 week later, once attention has moved on. It isn't gated. Pointing demo-webchat at the freshly published pre-release is what gives QA something to exercise during the promotion window; waiting for promotion inverts the dependency. Practice already works this way: the 3.47.0 demo bump (cognigy#13417) landed 2026-07-13, the same day 3.47.0 was published, while promotion ran 2026-07-22. Split §8 into 8a (same-day work, incl. the demo bump), 8b (the bump itself) and 8c (promotion, the only part that waits for QA), and record what the bump actually involves: it's a PR against the protected main of the Cognigy/cognigy monorepo, the pin is exact, package.json must be hand-edited (no trailing newline, tabs) with the lockfile synced via npm install --package-lock-only, and the lockfile churn wants auditing so only @cognigy/webchat changes as a direct dep. Also document two things this release surfaced: publish.yml is named 'Publish to NPM (with pre-release tag)' so --workflow Publish misses it, and chat-components' release.yml fails with 'Bad credentials' on an expired RELEASE_ACTION_TOKEN — the tag push then creates no release and nothing reaches npm, silently. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Dmitrii Ostasevich (kwinto)
temporarily deployed
to
pr-preview-296
July 27, 2026 12:45 — with
GitHub Actions
Inactive
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the webchat-release skill documentation to reflect the correct real-world release flow: bumping the downstream demo-webchat immediately after publishing the Webchat pre-release (to enable QA during the promotion window), and only promoting to latest after QA sign-off. It also adds troubleshooting guidance for common CI/workflow failure modes that can silently prevent publishing.
Changes:
- Restructures the post-release checklist into “immediate” vs. “wait for QA” steps, explicitly decoupling the demo-webchat bump from promotion.
- Expands the demo-webchat bump section with concrete PR/worktree guidance and a lockfile-audit procedure.
- Documents two workflow-related gotchas: publish workflow name mismatch when using
gh, and chat-components release failure mode when the PAT expires.
Comments suppressed due to low confidence (1)
.claude/skills/webchat-release/SKILL.md:259
- Same issue as the lockfile line: the snippet opens
services/service-webchat/package.jsoneven though the instructionscdinto that directory first. Use the localpackage.jsonpath so the command works as written.
direct = set(json.loads(open('services/service-webchat/package.json').read()).get('dependencies', {}))
…ection The snippet followed a 'cd services/service-webchat' but then opened 'services/service-webchat/package-lock.json', which resolves to a doubled path from that directory and raises FileNotFoundError. It only worked when run from the repo root, which is not where the surrounding instructions leave you. Make all three paths relative to the service directory, git's 'HEAD:./package-lock.json' included, and state which directory to run it from. Verified by running the snippet verbatim from services/service-webchat: it prints the documented ['node_modules/@cognigy/webchat'] against 23 total changed packages. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs-only change to the
webchat-releaseskill. No source or build changes.Problem
The post-release checklist in §8 listed the demo-webchat bump as step 5, after the "promote to latest" step:
Read in order, step 5 looks gated on step 4 — and step 4 waits on QA sign-off, roughly a week after publishing. It isn't gated. Pointing demo-webchat at the freshly published pre-release version is exactly what gives QA something to exercise during that window; deferring it until after promotion inverts the dependency and defeats the purpose.
Existing practice already works the correct way, which makes the ordering in the doc actively misleading: the 3.47.0 demo bump (cognigy#13417) landed 2026-07-13, the same day 3.47.0 was published to npm, while promotion to
latestran 2026-07-22 — nine days later.Change
§8 now splits by what actually waits:
Cognigy/cognigy, whosemainis protected (1 approving review, a required team review, squash-only) — not a direct push. Suggests a worktree so the monorepo checkout's current branch isn't disturbed.pre-releasedist-tag fine.package.jsonmust be hand-edited — it has no trailing newline and uses tabs, sonpm install <pkg>@<ver>reformats it and appends a newline. Hand-edit plusnpm install --package-lock-onlykeeps it to a single changed line.@cognigy/webchatshould be the only changed direct dependency, everything else transitive (chat-components, and the caret-ranged@radix-ui/*tree beneath it). Includes a script, since eyeballing a ~200-line lockfile diff doesn't scale.services/service-ui/**, so they no-op here but still produce output — noted so it isn't mistaken for an error.Also documented (both hit during the 3.48.0 release)
publish.ymlis named "Publish to NPM (with pre-release tag)", sogh run list --workflow Publishsilently matches nothing. Cost a wasted diagnostic cycle when the workflow appeared not to have fired.release.ymlfails withBad credentialson an expiredRELEASE_ACTION_TOKENPAT. The tag push succeeds, but no GitHub release is created, sopublish.yml(onrelease: published) never fires and nothing reaches npm — silent unless checked. §0b now has the diagnosis and thegh release create --generate-notes --verify-tagunblock, plus the caveat that switching toGITHUB_TOKENwould stoppublish.ymlfiring at all, since releases created byGITHUB_TOKENdon't trigger workflows. The secret still needs rotating by an admin.Verification
npm run prettier:check— pass (Format Check gate).npm run lint:a11y— 0 errors.package.jsondiff and the lockfile audit showing@cognigy/webchatas the only changed direct dependency.🤖 Generated with Claude Code