Retire the legacy RTC product folders in favor of rtc - #1096
Merged
Merged
Conversation
The video, voice, interactive-live-streaming, and broadcast-streaming folders are superseded by rtc and are slated for removal. Four files outside those folders still linked into them: - rtc/build/add-advanced-video-features/face-capture.mdx (x4) now points at the marketplace MetaKit page. The rtc copy of metakit.mdx was removed deliberately in #972, so the marketplace page is canonical. - api-reference/faq/integration/switch_screen_camera_web.mdx (x2) now points at the rtc screen-sharing page. - api-reference/faq/integration/video_profile.mdx used a hardcoded docs.agora.io URL, which no internal link check would have caught once the folder was deleted. It is now a relative link to the rtc encoding page, keeping the /android platform suffix. - ai/best-practices/manual-turn-control.mdx now points at rtc/get-started-sdk, matching the absolute link style of its siblings. content/docs/ no longer references the four folders from outside them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Six legacy redirect rules still pointed at /en/realtime-media/video/build/add-advanced-video-features/metakit, which no longer exists in rtc (the rtc copy was removed in #972). The affected legacy paths are the android and ios variants of: /en/video-calling/advanced-features/metakit /en/interactive-live-streaming/advanced-features/metakit /en/broadcast-streaming/advanced-features/metakit They now point at the marketplace MetaKit page, matching the existing /en/extensions-marketplace/develop/integrate/metakit rules. Retargeting rather than deleting keeps these inbound legacy URLs from 404ing once the video folder is removed. Generated artifacts refreshed with `npm run legacy-redirects:generate`. This also resyncs artifacts that had drifted from the generator on main, fixing three generate-legacy-redirect-artifacts tests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The page existed only in the interactive-live-streaming and
broadcast-streaming folders, which are slated for removal. It now lives
at rtc/build/join-and-manage-channels/cross-channel-media-relay, next to
join-multiple-channels.
Ported from the broadcast-streaming copy with the usual rtc conventions
("RTC SDK", absolute rtc quickstart and pricing links), plus:
- Link to support@agora.io instead of the ticket portal.
- Re-indent step content to 4 spaces so paragraphs, code blocks, and
notes nest inside their steps, and flatten the step 1 note bullets.
- Normalize the tab/space-mixed Windows callback sample to 4 spaces.
- Collapse the workflow diagram into an accordion.
- Fold the Development considerations section into the steps it applies
to. This also drops a web bullet that named the native
startOrUpdateChannelMediaRelay method instead of updateChannelMediaRelay.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The video, voice, interactive-live-streaming, and broadcast-streaming folders are being removed now that their pages live under rtc. These redirects cover all 279 of their pages, and every platform URL the app published for them, before the folders are deleted. src/lib/legacy-sitemap/rtc-folder-redirects.json holds 134 rules, which generate-legacy-redirect-artifacts.mjs merges into vercel.json right after the vercel.base.json redirects: - 31 platform rules send platform URLs the rtc page doesn't have to its Android version, or to the page itself when it has no platform versions. Python quickstart and sample project URLs go to rtc-server-sdk. - 99 page rules cover pages that moved to a different rtc path, plus the use-tokens, quickstart, product overview, MetaKit, and Console REST API decisions. - 4 folder rules send everything else to the same path under rtc. Also: - Retarget the 20 legacy redirects.json rules that pointed into the retired folders, so old docs.agora.io URLs reach rtc in one hop. - Remove the three video release notes ?platform= rules from vercel.base.json. The folder rule now handles those URLs. - Add rtc-folder-redirects.test.ts, which resolves all 1,703 retired URLs through vercel.json in order and checks that each destination page and platform exists. - Replace the release notes rule test with a check that no redirect points into the retired folders. Mapping, decisions, and verification are in docs/agents/reports/2026-09-15-rtc-folder-redirect-mapping.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Update the live code that still referenced pages in the video, voice, interactive-live-streaming, and broadcast-streaming folders, ahead of deleting them. - docs-link-normalize.ts: point the 21 link aliases that targeted the retired folders at their rtc pages, using the redirect mapping. /help/account-and-billing/billing_account pointed at a video page that never existed; it now goes to the billing FAQ, matching redirects.json. Aliases whose sources are links inside the retired folders stay until those folders are deleted. - analytics/docs-page-context.ts: move the analytics taxonomy entries to the rtc pages with product 'rtc'. The video and voice overview entries merge into one rtc entry. - search/algolia-records.server.ts: remove the search indexing exception for the Interactive Live Streaming and Broadcast Streaming product overviews. The rtc overview is already indexed through navigation. - search/golden-search-queries.ts: expect the rtc overview for the "interactive live streaming" and "broadcast streaming" queries. It ranks in the top three for both. Tests follow each change. docs-page.server.test.ts now checks that the analytics context is attached to the payload, and leaves the taxonomy values to docs-page-context.test.ts. Left unchanged on purpose: the video/quickstart redirect in docs-page.server.ts already targets rtc, and SdksCatalog.tsx uses SDK product IDs rather than paths, with product=video and product=voice still linked from pages outside the retired folders. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
#901 replaced the React Native host OS CodeBlockTabs on the Picture-in-Picture page with regular persisted tabs. The rtc copy was created in #890 from a version that predates that fix, so only the retired video, interactive-live-streaming, and broadcast-streaming copies had it. Deleting those folders would have lost it. Apply the same markup to rtc: the four React Native Android/iOS blocks now use <Tabs defaultValue="android" groupId="react-native-host-os" persist>. The rest of the page is unchanged; it now differs from the old video copy only in RTC SDK naming and quickstart links. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Every platform section opened with "This <platform> quickstart shows you how to create a basic Voice Calling app using the Agora RTC SDK." Only the Web section followed it with a sentence pointing to other platforms' quickstarts. Replace all 13 openings with one platform-neutral sentence: "This page provides a step-by-step guide on how to create a voice-only app using the Agora RTC SDK." Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Remove the video, voice, interactive-live-streaming, and
broadcast-streaming folders under content/docs/en/realtime-media (347
files), whose pages all live under rtc now, plus the stray
.tmp-voice-pages.json. Redirects for every retired URL landed in an
earlier commit.
Source:
- docs-link-normalize.ts: drop the 13 link aliases whose sources were
links inside the retired folders.
- realtime-media-api-reference-links.ts: drop the voice, video,
broadcast-streaming, and interactive-live-streaming product entries,
which only applied to pages in those folders.
Tests that read retired pages now read their rtc equivalents. That
covers docs-content-regressions (31 tests passed unchanged against rtc),
source.server, docs-journeys, pricing, and the audio route, migration
guide, and voice quickstart tests, renamed from voice-* to rtc-*. Tests
adjusted to current rtc content: supported platforms ("RTC SDK") and
error codes (the combined page from #890). The old-folder entries in
the overview and API reference navigation tests are removed, and the
sidebar API reference test now checks an rtc page.
Removed as obsolete:
- the voice build route structure test;
- the screenshot upload provider tabs test (#1009 made the page
AWS-only);
- video-release-notes-platform.test.ts, which covered the per-platform
video release notes pages from #1054.
Two tests that were already failing now pass: the Realtime Media
journey test and the overview sidebar titles test. No new failures.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Vercel PreviewPreview URL: https://docs-portal-2iceftv0q-agora-gdxe.vercel.app |
Conflicts resolved: - 19 pages in the retired video, voice, interactive-live-streaming, and broadcast-streaming folders that main edited in #1111 (fold release notes by version) and #984 (Android codec library names). Both commits made the same changes to the rtc copies, so the retired copies are deleted as planned and nothing is lost. - vercel.base.json: keep main's new server gateway cloud proxy redirect (#1100) and the removal of the three video release notes ?platform= rules (#1054), whose pages no longer exist. - vercel.json, vercel-legacy-redirects.json, and static-redirects.json are generated, so they were regenerated from the resolved sources. Follow-up inside the merge: main's high-traffic 404 redirects (#1147) added 8 rules targeting retired URLs, which would have chained through this branch's folder rules. They now point at their rtc destinations directly, and posthog-404-redirects.test.ts is updated to match. The four rtc destinations postdate the docs inventory snapshot, so they use the test's existing migrated-article escape hatch. Suite: 39 failures against 44 on main, with none unique to this branch. Five that fail on main pass here, including three redirect artifact tests that fail there because main's committed artifacts have drifted from the generator. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
saudsami
added a commit
that referenced
this pull request
Sep 30, 2026
Re-apply the RTC 4.7.0 release notes work on top of the accordion structure introduced by #1096, and act on review feedback: - Drop the software-based H.265 sentence pending legal confirmation. - Retitle the co-hosting and first-frame improvements, and describe them in past tense to match the bullet titles (4.6.x entries swept to match). - Remove the MetaKit extension: the marketplace page, its sidebar entry, the release-note sections, and the face capture recommendations. Legacy MetaKit URLs now redirect to the marketplace section. - Set the 4.7.0 release date to October 1, 2026. Camera Movement still references MetaKit and is left for a follow-up. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
saudsami
added a commit
that referenced
this pull request
Sep 30, 2026
* docs: add RTC 4.7.0 English release notes * docs: update RTC 4.7.0 SDK release metadata * docs: address RTC release note wording comments * docs: port RTC 4.7.0 companion updates and polish release notes Port the product documentation updates that ship with RTC Native 4.7.0: - ProGuard: document the consumer-proguard-rules.pro option in the Android quickstarts, split by AAR and JAR integration. - App size: add the "Integrate the FFmpeg plugin as needed" section and list the plugin in the Voice SDK required libraries for Android and iOS. - Audio formats FAQ: sync the Android format list, fix the AMR and FLAC codec names, and correct the Android multi-track switching statement to match the source. Also tighten the release notes language: replace literal translations with plain English, match the ProGuard wording used in the quickstarts, and open bullets with the verb instead of repeating "This release" (4.6.x and 4.7.0). The 4.7.0 date is a placeholder until the release ships. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs: remove MetaKit extension and set the RTC 4.7.0 release date Re-apply the RTC 4.7.0 release notes work on top of the accordion structure introduced by #1096, and act on review feedback: - Drop the software-based H.265 sentence pending legal confirmation. - Retitle the co-hosting and first-frame improvements, and describe them in past tense to match the bullet titles (4.6.x entries swept to match). - Remove the MetaKit extension: the marketplace page, its sidebar entry, the release-note sections, and the face capture recommendations. Legacy MetaKit URLs now redirect to the marketplace section. - Set the 4.7.0 release date to October 1, 2026. Camera Movement still references MetaKit and is left for a follow-up. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs: drop MetaKit from Camera Movement prerequisites Camera Movement is built on the Portrait Rhythm extension and never uses MetaKit, so the note about MetaKit pulling in the Face Capture and Virtual Background extensions did not apply. With that sentence gone each note holds a single item, so drop the list wrapper too. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs: remove the Camera Movement extension and set the 4.7.0 date Remove the Camera Movement extension documentation the same way as MetaKit: the rtc and marketplace pages, their sidebar entries, and the release-note sections with their platform wrappers and contents links. Legacy and retired-folder URLs for both extensions now redirect to the marketplace section. This also fixes rtc-folder-redirects, which still sent retired-folder URLs to the deleted MetaKit page. Set the 4.7.0 release date to September 30, 2026. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs: correct the Android FFmpeg library name for v4.7.0 The video SDK renamed libagora-ffmpeg.so to libagora_ffmpeg.so in v4.7.0, confirmed against the published Android package. Neither the release notes nor the CN source mention this rename, only the Voice SDK plugin change. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Saud <65331551+saudsami@users.noreply.github.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
saudsami
added a commit
that referenced
this pull request
Oct 1, 2026
Most entries come from the RTC folder consolidation (#1096) and other recent commits on main. Co-Authored-By: Claude Opus 5.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.
The
video,voice,interactive-live-streaming, andbroadcast-streamingfolders undercontent/docs/en/realtime-media/were merged intortcin #890, but they still built as live routes. This PR moves everything that depended on them over tortc, redirects every retired URL, and deletes the folders.Supersedes #1086.
What changed
Links and legacy redirects (
9ea2c23a0,cb2ca4203)face-capture.mdxnow links to the Marketplace MetaKit page, since thertccopy was removed deliberately in Remove RTC metakit doc #972.docs.agora.ioredirect rules that pointed into the retired folders, so old URLs reachrtcin one hop.New
rtcpage (721126222)rtc/build/join-and-manage-channels/. It existed only ininteractive-live-streamingandbroadcast-streaming.support@agora.io, fixed step indentation so content nests inside its steps, collapsed the workflow diagram into an accordion, and moved each Development considerations bullet into the step it applies to. That also drops a web bullet that named the nativestartOrUpdateChannelMediaRelaymethod.Redirects for every retired URL (
e69052118)src/lib/legacy-sitemap/rtc-folder-redirects.jsonholds 134 rules, whichscripts/generate-legacy-redirect-artifacts.mjsmerges intovercel.jsonafter thevercel.base.jsonredirects:rtcpage doesn't have go to its Android version, or to the page itself when it has no platform versions. Python quickstart and sample project URLs go tortc-server-sdk.rtcpath, plus the decisions foruse-tokens,quickstart, product overviews, MetaKit, and the Console REST API page.rtc.video/reference/release-notes?platform=rules fromvercel.base.json(feat: lazy-load Video release notes by platform #1054). The folder rule now handles those URLs.rtc-folder-redirects.test.ts, which resolves all 1,703 retired URLs (every page plus every published platform URL) throughvercel.jsonin order, and checks that each destination page and platform exists.docs/agents/reports/2026-09-15-rtc-folder-redirect-mapping.md.Source code (
658bd2086)docs-link-normalize.ts: link aliases that targeted the retired folders now targetrtc./help/account-and-billing/billing_accountpointed at a page that never existed and now goes to the billing FAQ.analytics/docs-page-context.ts: analytics taxonomy moved to thertcpages withproduct: 'rtc'.search/algolia-records.server.ts: removes the search indexing exception for the ILS and Broadcast Streaming product overviews.search/golden-search-queries.ts: the "interactive live streaming" and "broadcast streaming" queries now expect thertcoverview, which ranks in the top three for both.Content fixes in
rtc(1f77abd67,c67e3b958)rtcpage was created in 1028 RTC products unification #890 from a copy that predates that fix, so only the retired folders had it. A regression test caught this during the deletion.Folder deletion and tests (
ec9aa00d6).tmp-voice-pages.json.realtime-media-api-reference-links.ts.rtcequivalents. 31 content regression tests passed unchanged againstrtc.video-release-notes-platform.test.ts.Review guide
1f77abd67andc67e3b958are the only edits to livertcpages besides the new cross-channel page.rtcpages now reportproduct: 'rtc'in PostHog. Before 1028 RTC products unification #890 the old pages reportedvideoorvoice, and since then thertcpages have reportedunknown. Dashboards filtering on the old values needrtcadded.SdksCatalog.tsx. Itsvideoandvoiceproduct filters are SDK product IDs, not paths, and are still linked from pages outside the retired folders.Verification
npm run types:checkandnpm run legacy-redirects:checkpass.@vercel/routing-utils, the library Vercel uses to convert redirects. All 454 destinations return 200 on a local dev server.content/docs/and live source code no longer reference the retired folders. Remaining matches are redirect sources, generated files, migration-era scripts and snapshots, and URL fixtures inside passing tests.mainand are unrelated. CI doesn't run the test suite, so compare againstmainlocally when reviewing.Before merge
/en/realtime-media/interactive-live-streaming/build/manage-video-and-streaming/configure-video-encoding/android) and a?platform=URL.After merge
npm run docs:last-updated.search:sync) right after deploy. Until then, search results can still point at retired URLs, and in-app navigation from a result bypasses the Vercel redirects.Not in this PR
🤖 Generated with Claude Code