Skip to content

docs(release): decouple the demo-webchat bump from promotion to latest - #296

Open
Dmitrii Ostasevich (kwinto) wants to merge 2 commits into
mainfrom
docs/release-skill-demo-webchat
Open

docs(release): decouple the demo-webchat bump from promotion to latest#296
Dmitrii Ostasevich (kwinto) wants to merge 2 commits into
mainfrom
docs/release-skill-demo-webchat

Conversation

@kwinto

Copy link
Copy Markdown
Collaborator

Docs-only change to the webchat-release skill. 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:

4. After the green light, promote to latest by running the Promote Release to Latest workflow …
5. Update the demo-webchat version in service-webchat …

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 latest ran 2026-07-22 — nine days later.

Change

§8 now splits by what actually waits:

  • §8a — same-day work: Testing Webchat check, the demo-webchat bump, ticket tagging, then opening the QA tech-story. Only the QA wait is a blocker.
  • §8b — the bump itself, with what it actually involves (previously a one-liner):
    • It's a PR against Cognigy/cognigy, whose main is 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.
    • The pin is exact (no caret), and the exact pin resolves the pre-release dist-tag fine.
    • package.json must be hand-edited — it has no trailing newline and uses tabs, so npm install <pkg>@<ver> reformats it and appends a newline. Hand-edit plus npm install --package-lock-only keeps it to a single changed line.
    • The lockfile churn wants auditing: @cognigy/webchat should 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.
    • The monorepo's pre-commit hooks only target services/service-ui/**, so they no-op here but still produce output — noted so it isn't mistaken for an error.
  • §8c — promotion, the only step that waits for QA.

Also documented (both hit during the 3.48.0 release)

  • publish.yml is named "Publish to NPM (with pre-release tag)", so gh run list --workflow Publish silently matches nothing. Cost a wasted diagnostic cycle when the workflow appeared not to have fired.
  • chat-components' release.yml fails with Bad credentials on an expired RELEASE_ACTION_TOKEN PAT. The tag push succeeds, but no GitHub release is created, so publish.yml (on release: published) never fires and nothing reaches npm — silent unless checked. §0b now has the diagnosis and the gh release create --generate-notes --verify-tag unblock, plus the caveat that switching to GITHUB_TOKEN would stop publish.yml firing at all, since releases created by GITHUB_TOKEN don'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.
  • Applied in practice while writing it: cognigy#13634 bumps demo-webchat to 3.48.0 following §8b exactly, with a single-line package.json diff and the lockfile audit showing @cognigy/webchat as the only changed direct dependency.

🤖 Generated with Claude Code

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>
Copilot AI review requested due to automatic review settings July 27, 2026 12:45
@snyk-io

snyk-io Bot commented Jul 27, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.json even though the instructions cd into that directory first. Use the local package.json path so the command works as written.
direct = set(json.loads(open('services/service-webchat/package.json').read()).get('dependencies', {}))

Comment thread .claude/skills/webchat-release/SKILL.md Outdated
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants