feat(blog): hold, switch, and transfer post - #112
Merged
Conversation
Draft (unpublished) post covering call hold, call waiting, and blind + attended transfer, ahead of the wavekat-voice release that ships them. Kept as draft: true until the release version and date are known. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simplified Chinese translation of the draft post, mirroring it section-for-section. Stays draft: true alongside the English one. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Match the established post conventions: '### question' headings under 'Frequently asked questions' (headings are the extraction signal since blog markdown emits no FAQPage schema), and a closing 'Try it' section with the /voice/download/ CTA. Adds search-shaped questions (how to transfer, blind vs attended, platforms) in both languages. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Description now says 'blind or attended' and names the platforms; intro binds the softphone category term and links the alternatives hub; the call-waiting heading names the feature; FAQ answers cite the SIP standards (RFC 3515 REFER, RFC 3264 re-INVITE). Mirrored in zh-Hans. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Three new scenes from the wavekat-voice screenshot pipeline (its PR #252), one per section of the draft post, embedded in all nine locales with localized alt text. Ubuntu light frames, synced as WebP via sync-screenshots.js like the existing scenes.
Centralize blog draft/lang filtering in src/lib/blog.ts (blogFilter) so every route (listings, per-post pages, RSS, all 9 locales) drops drafts in one place. Drafts are hidden by default and shown only when DRAFTS=1; add `make dev-draft` and `make build-draft` for local preview. The var is read in Node at build time and unset in CI, so drafts never reach prod. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Riz2byk9HuBJpBeLtVBhcS
Apply seo-content + seo-geo review findings across all nine locales: - name WaveKat Voice in the intro lede and second paragraph (was "the app") so cold-extracted passages identify the product - lead the hold section with the recording/transcript-pause differentiator instead of burying it mid-sentence - state the switch-away recording pause concretely, not metaphorically - rewrite the on-hold FAQ answer to lead with the product and the positive fact - add a "works with any SIP provider" FAQ (RFC 3264 / 3515) - surface the recording-pause hook in the meta description Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
wavekat-voice 0.0.42 shipped (2026-07-05) with hold, call waiting, and blind + attended transfer. Un-draft the post across all nine locales, set the release date, and drop the pre-publish TODO. The version was already 0.0.42 as assumed, so the changelog links need no change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PVcQwJ4XbY6RYDzHb2UYqg
wavekat-eason
marked this pull request as ready for review
July 5, 2026 07:42
The post ships in all nine locales, but its base path was missing from `translatedRoutes` (fullSite). Without it the page emitted no hreflang, was absent from the sitemap alternates, and — the visible symptom — the language switcher on the post sent every language to that locale's home instead of the translated post. Registering the base path lights up hreflang, the sitemap alternates, and the switcher targets, matching the other blog posts. Audited the rest: providers (2talk) and alternatives (linphone) were already registered; this post was the only drift. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PVcQwJ4XbY6RYDzHb2UYqg
wavekat-eason
pushed a commit
that referenced
this pull request
Jul 5, 2026
🤖 I have created a release *beep* *boop* --- ## [0.0.42](wavekat-com-v0.0.41...wavekat-com-v0.0.42) (2026-07-05) ### Features * **blog:** hold, switch, and transfer post ([#112](#112)) ([151390c](151390c)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.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.
What
Adds a blog post covering the call-handling cluster that shipped in wavekat-voice 0.0.42 (2026-07-05):
The post ships in all nine locales (en, zh-Hans, zh-Hant, ja, ko, de, es, fr, it), mirrored section-for-section, with locale-prefixed internal links and each locale's established softphone/telephony terminology. Content is sourced from wavekat-voice design docs 42, 43, 44 (hold, transfer, multi-call).
Each section carries a real product screenshot (Ubuntu light frame, localized per language, alt text translated), from three wavekat-voice demo scenes (wavekat-voice#252):
in-call-holdin-call-waitingin-call-transferThe
###FAQ sections feed the markdown-derivedFAQPageschema automatically in every locale.Now published
The post was authored as a draft ahead of the release. With 0.0.42 out (2026-07-05), it's now live:
0.0.42(the version was correct as assumed) anddate: 2026-07-05, the actual release date; the/voice/changelog/#0.0.42links resolve once the changelog syncs at deploy.draft: trueremoved from all nine files (and the pre-publish TODO comment dropped)Verified:
astro build(159 pages) +npm run check:links(no broken/leaking internal links) +npm run check:screenshots(72/72 present) all pass.🤖 Generated with Claude Code