Skip to content

docs: document WeChat channel and mark WeChat/WhatsApp experimental#4276

Merged
ericksoa merged 3 commits into
mainfrom
docs/some-fixes
May 27, 2026
Merged

docs: document WeChat channel and mark WeChat/WhatsApp experimental#4276
ericksoa merged 3 commits into
mainfrom
docs/some-fixes

Conversation

@miyoungc

@miyoungc miyoungc commented May 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

Restore the WeChat channel docs that had been removed via the docs/.docs-skip list, mark both WeChat and WhatsApp as experimental wherever they are user-visible, and re-document the host-side WeChat QR onboarding flow plus the NEMOCLAW_WECHAT_QUIET diagnostic env var. Also tighten the v0.0.50/v0.0.51 release-notes entries so each bullet lands in the version that actually shipped it.

Changes

  • docs/.docs-skip: drop wechat / WeChat / WECHAT from skip-features and skip-terms so the docs-to-skills gate stops suppressing WeChat content.
  • docs/manage-sandboxes/messaging-channels.mdx: add an experimental warning for WeChat and WhatsApp; document Tencent's iLink Bot API personal-WeChat (bot_type=3) integration, the host-side QR handshake, the <sandbox>-wechat-bridge OpenShell provider, the WECHAT_ACCOUNT_ID / WECHAT_BASE_URL / WECHAT_USER_ID / WECHAT_ALLOWED_IDS metadata, the cached-token short-circuit on channels add wechat, and the channels remove/stop/start wechat lifecycle.
  • docs/network-policy/integration-policy-examples.mdx, docs/network-policy/customize-network-policy.mdx, docs/reference/network-policies.mdx: list the wechat preset and Open-tier coverage, with explicit experimental tags on wechat and whatsapp.
  • docs/reference/commands.mdx: extend channels add / channels remove / channels stop to cover wechat, document the host-side QR login mode, mark WhatsApp's QR mode as experimental, and add NEMOCLAW_WECHAT_QUIET to the Onboarding Behavior Flags table.
  • docs/reference/troubleshooting.mdx, docs/get-started/quickstart.mdx: include wechat in command syntax and the wizard channel list, calling out experimental status.
  • ci/env-var-doc-allowlist.json: remove NEMOCLAW_WECHAT_QUIET now that it is publicly documented in docs/reference/commands.mdx.
  • docs/about/release-notes.mdx: move bullets that actually shipped in v0.0.51 (managed vLLM menu restoration on DGX Spark/Station, sudo-free user-local Linux Ollama install path, merged sandbox logs) into the v0.0.51 entry; rewrite the v0.0.50 DGX Spark bullet to focus on the CPU-fallback diagnostic and OLLAMA_LLM_LIBRARY=cuda_v13 systemd override.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Verification

  • npx prek run --all-files passes
  • npm test passes
  • Tests added or updated for new or changed behavior
  • No secrets, API keys, or credentials committed
  • Docs updated for user-facing behavior changes
  • npm run docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Notes:

  • Pre-existing failing CLI unit test src/lib/inference/local.test.ts > resolveNonInteractiveOllamaModel respects unknown tags and downgrades known oversize ones (asserts qwen3.6:35b but resolver now returns nemotron-3-nano:30b) is unrelated to this doc-only change. The corresponding pre-commit Test (CLI) hook is skipped because no src//test//bin/ files are touched.
  • docs-to-skills.py --dry-run, npx tsx scripts/check-env-var-docs.ts, and npm run docs were all run during preparation and reported no errors or skip-term violations.

Signed-off-by: Miyoung Choi miyoungc@nvidia.com

Summary by CodeRabbit

  • New Features

    • Added experimental WeChat and WhatsApp messaging channels with host-side WeChat QR login and token pairing.
  • Documentation

    • Extensive updates across quickstart, messaging channels, network policies, commands reference, troubleshooting, and release notes to document flows, prerequisites, onboarding, management, and experimental warnings.
  • Chores

    • Updated docs-skip lists and config allowlists to reflect messaging channel changes (removed one obsolete env-var entry).

Review Change Stack

Restore the WeChat channel docs that were removed via the docs-skip list,
mark both WeChat and WhatsApp as experimental wherever they are visible,
re-document the host-side WeChat QR onboarding flow and `NEMOCLAW_WECHAT_QUIET`
env var, and tighten v0.0.50/v0.0.51 release notes.

- docs/.docs-skip: drop wechat / WeChat / WECHAT skip entries.
- docs/manage-sandboxes/messaging-channels.mdx: add experimental warning,
  document iLink Bot API personal-WeChat (bot_type=3) integration, the
  host-side QR handshake and `<sandbox>-wechat-bridge` OpenShell provider,
  and channels add/remove/stop/start behavior for WeChat.
- docs/network-policy/integration-policy-examples.mdx,
  docs/network-policy/customize-network-policy.mdx,
  docs/reference/network-policies.mdx: list `wechat` preset and Open-tier
  coverage with experimental tags for WeChat and WhatsApp.
- docs/reference/commands.mdx: add WeChat to channels add/remove/stop,
  document the host-side QR login mode, and surface `NEMOCLAW_WECHAT_QUIET`.
- docs/reference/troubleshooting.mdx, docs/get-started/quickstart.mdx:
  include WeChat in command syntax and wizard description.
- ci/env-var-doc-allowlist.json: remove `NEMOCLAW_WECHAT_QUIET` now that it
  is publicly documented.
- docs/about/release-notes.mdx: move bullets that landed in v0.0.51
  (managed vLLM menu restoration, sudo-free Ollama install path, merged
  sandbox logs) into the v0.0.51 entry; rewrite the v0.0.50 DGX Spark
  bullet to focus on the CPU-fallback diagnostic and systemd override.

Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
@coderabbitai

coderabbitai Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: a0d58d3e-2e7c-416d-a8e6-70c1c3844c4d

📥 Commits

Reviewing files that changed from the base of the PR and between 21f0a98 and 76598f3.

📒 Files selected for processing (1)
  • docs/reference/commands.mdx
✅ Files skipped from review due to trivial changes (1)
  • docs/reference/commands.mdx

📝 Walkthrough

Walkthrough

Adds WeChat and WhatsApp messaging channel documentation across guides, CLI reference, network policy docs, and troubleshooting; removes WeChat entries from docs-skip lists and deletes the NEMOCLAW_WECHAT_QUIET allowlist entry.

Changes

WeChat Messaging Channel Documentation

Layer / File(s) Summary
Configuration and allowlist updates
ci/env-var-doc-allowlist.json, docs/.docs-skip
NEMOCLAW_WECHAT_QUIET removed from the env-var allowlist; wechat/WeChat/WECHAT entries removed from docs skip lists so WeChat terms are no longer filtered from generated docs.
Core WeChat messaging setup guide
docs/manage-sandboxes/messaging-channels.mdx
Front matter, prerequisites, channel requirements, experimental warning, host-side iLink QR onboarding for WeChat, per-account metadata capture, DM-only behavior and WECHAT_ALLOWED_IDS, QR polling/refresh/deadline, cached-token reuse, onboarding wizard changes, channels add wechat/channels remove wechat semantics, rotation/removal, stop/start behavior, and cross-sandbox account rules.
CLI command reference and environment variables
docs/reference/commands.mdx
nemoclaw <name> channels docs updated to include wechat and whatsapp (experimental), host-side QR flow for channels add wechat, token/metadata capture and storage notes, automatic WECHAT_ALLOWED_IDS population, and NEMOCLAW_WECHAT_QUIET env var documented.
Network policy and integration examples
docs/network-policy/customize-network-policy.mdx, docs/network-policy/integration-policy-examples.mdx, docs/reference/network-policies.mdx
Added wechat (experimental) to available and Open-tier presets, marked whatsapp experimental, updated baseline policy messaging note, and added integration/preset application guidance for WeChat/WhatsApp pairing flows.
Quickstart, release notes, and troubleshooting
docs/get-started/quickstart.mdx, docs/about/release-notes.mdx, docs/reference/troubleshooting.mdx
Quickstart now lists WeChat/WhatsApp with an experimental warning and link; release notes reallocated items between v0.0.50 and v0.0.51; troubleshooting updated with reconnect guidance, host-side QR capture, and CLI examples including wechat.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

v0.0.51

Suggested reviewers

  • cv
  • ericksoa

"🐰 WeChat hops into the docs bright and neat,
QR-scanned tokens make the pairing sweet,
Guides and CLI notes now sing the tune,
Experimental flags beneath the moon,
Docs and configs tidy — a tiny celebratory beat."

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: documenting WeChat as a messaging channel and marking both WeChat and WhatsApp as experimental across the codebase.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/some-fixes

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: None
Optional E2E: None

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • None. No E2E is recommended because this PR only changes documentation and documentation-governance metadata. It does not modify installer/onboarding code, sandbox lifecycle code, credential handling, network policy assets, inference routing, deployment logic, or assistant runtime flows.

Optional E2E

  • None.

New E2E recommendations

  • None.

@github-actions

github-actions Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor

E2E Scenario Advisor Recommendation

Required scenario E2E: None
Optional scenario E2E: None

Workflow run

Full scenario advisor summary

E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required scenario E2E

  • None. No scenario workflow, scenario metadata, scenario runtime, or validation-suite files changed.

Optional scenario E2E

  • None.

Relevant changed files

  • None.

@github-actions

github-actions Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor

Findings: 0 needs attention, 1 worth checking, 0 nice ideas
Since last review: 0 prior items resolved, 0 still apply, 1 new item found

Review findings

🛠️ Needs attention

  • None.

🔎 Worth checking

  • WeChat allowlist docs do not match `channels add wechat` behavior when IDs are pre-set (docs/reference/commands.mdx:671): The new docs say NemoClaw automatically adds the scanning operator's WeChat user ID to `WECHAT_ALLOWED_IDS` and that users can supply additional comma-separated IDs. That is true for onboarding's host-QR dispatch path, which merges the scanned user into any existing list, but the `channels add wechat` host-QR path only sets `WECHAT_ALLOWED_IDS` when it is not already present. If an operator exports additional IDs before `channels add wechat`, the scanner is not appended and may be locked out despite the docs saying it is automatic.
    • Recommendation: Either update `acquireHostQrChannel` to merge `result.defaultUserId` into `channel.userIdEnvKey` the same way `dispatchHostQrLogin` does, or narrow the docs to say that when `WECHAT_ALLOWED_IDS` is already set the operator must include the scanning user's ID explicitly.
    • Evidence: Docs: `docs/reference/commands.mdx:671` says the scanner is automatically added and `docs/manage-sandboxes/messaging-channels.mdx:81` says users can append more IDs. Runtime: `src/lib/onboard/host-qr-dispatch.ts:67-76` merges the scanned ID, but `src/lib/actions/sandbox/policy-channel.ts:620` sets `process.env[channel.userIdEnvKey] = result.defaultUserId` only when the env var is absent.

🌱 Nice ideas

  • None.
Since last review details

Current findings:

  • WeChat allowlist docs do not match `channels add wechat` behavior when IDs are pre-set (docs/reference/commands.mdx:671): The new docs say NemoClaw automatically adds the scanning operator's WeChat user ID to `WECHAT_ALLOWED_IDS` and that users can supply additional comma-separated IDs. That is true for onboarding's host-QR dispatch path, which merges the scanned user into any existing list, but the `channels add wechat` host-QR path only sets `WECHAT_ALLOWED_IDS` when it is not already present. If an operator exports additional IDs before `channels add wechat`, the scanner is not appended and may be locked out despite the docs saying it is automatic.
    • Recommendation: Either update `acquireHostQrChannel` to merge `result.defaultUserId` into `channel.userIdEnvKey` the same way `dispatchHostQrLogin` does, or narrow the docs to say that when `WECHAT_ALLOWED_IDS` is already set the operator must include the scanning user's ID explicitly.
    • Evidence: Docs: `docs/reference/commands.mdx:671` says the scanner is automatically added and `docs/manage-sandboxes/messaging-channels.mdx:81` says users can append more IDs. Runtime: `src/lib/onboard/host-qr-dispatch.ts:67-76` merges the scanned ID, but `src/lib/actions/sandbox/policy-channel.ts:620` sets `process.env[channel.userIdEnvKey] = result.defaultUserId` only when the env var is absent.

Workflow run details

This is an automated advisory review. A human maintainer must make the final merge decision.

@miyoungc miyoungc requested review from cv, ericksoa and wscurran May 26, 2026 23:36

@coderabbitai coderabbitai Bot 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.

🧹 Nitpick comments (4)
docs/get-started/quickstart.mdx (1)

280-280: ⚡ Quick win

Split into separate lines per the style guide.

This line contains two independent clauses joined by a semicolon. The style guide requires one sentence per line to keep diffs readable.

♻️ Proposed fix to split the sentence
-WeChat and WhatsApp are experimental; review [Messaging Channels](/manage-sandboxes/messaging-channels) before enabling them.
+WeChat and WhatsApp are experimental.
+Review [Messaging Channels](/manage-sandboxes/messaging-channels) before enabling them.

As per coding guidelines: "One sentence per line in source (makes diffs readable). Flag paragraphs where multiple sentences appear on the same line."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/get-started/quickstart.mdx` at line 280, Split the single line
containing "WeChat and WhatsApp are experimental; review [Messaging
Channels](/manage-sandboxes/messaging-channels) before enabling them." into two
separate lines, one per sentence: "WeChat and WhatsApp are experimental." and
"Review [Messaging Channels](/manage-sandboxes/messaging-channels) before
enabling them." to comply with the one-sentence-per-line style guide in
quickstart.mdx.
docs/reference/troubleshooting.mdx (1)

781-781: ⚡ Quick win

Split into separate lines per the style guide.

This line contains two independent clauses joined by a semicolon. The style guide requires one sentence per line to keep diffs readable.

♻️ Proposed fix to split the sentence
-WeChat captures its bot token through a host-side QR scan during `nemoclaw onboard` or `channels add wechat`; you scan the iLink QR from WeChat on your phone and NemoClaw registers the captured token with the OpenShell gateway.
+WeChat captures its bot token through a host-side QR scan during `nemoclaw onboard` or `channels add wechat`.
+You scan the iLink QR from WeChat on your phone and NemoClaw registers the captured token with the OpenShell gateway.

As per coding guidelines: "One sentence per line in source (makes diffs readable). Flag paragraphs where multiple sentences appear on the same line."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/reference/troubleshooting.mdx` at line 781, The sentence "WeChat
captures its bot token through a host-side QR scan during `nemoclaw onboard` or
`channels add wechat`; you scan the iLink QR from WeChat on your phone and
NemoClaw registers the captured token with the OpenShell gateway." contains two
independent clauses joined by a semicolon—split this into two separate sentences
and place each sentence on its own line in the docs (locate the line by
searching for the phrase and the commands `nemoclaw onboard` / `channels add
wechat`), e.g., end the first sentence after "channels add wechat" and start a
new line with "You scan..." so each sentence is on its own source line per the
style guide.
docs/manage-sandboxes/messaging-channels.mdx (1)

15-15: ⚡ Quick win

Split into separate lines per the style guide.

This line contains three independent clauses joined by semicolons. The style guide requires one sentence per line to keep diffs readable.

♻️ Proposed fix to split the sentence
-For token-based channels, NemoClaw registers credentials with OpenShell providers; WeChat captures a token through a host-side QR scan during onboarding; WhatsApp pairs inside the sandbox via QR scan and intentionally stores mutable session state there.
+For token-based channels, NemoClaw registers credentials with OpenShell providers.
+WeChat captures a token through a host-side QR scan during onboarding.
+WhatsApp pairs inside the sandbox via QR scan and intentionally stores mutable session state there.

As per coding guidelines: "One sentence per line in source (makes diffs readable). Flag paragraphs where multiple sentences appear on the same line."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/manage-sandboxes/messaging-channels.mdx` at line 15, The single line
contains three independent clauses; split it into three separate lines so each
sentence stands alone: one line for "For token-based channels, NemoClaw
registers credentials with OpenShell providers", one line for "WeChat captures a
token through a host-side QR scan during onboarding", and one line for "WhatsApp
pairs inside the sandbox via QR scan and intentionally stores mutable session
state", preserving punctuation and capitalization.
docs/reference/commands.mdx (1)

671-671: ⚡ Quick win

Split into separate lines for readability.

Line 671 contains two sentences separated by a semicolon.
The style guide requires one sentence per line to make diffs readable.

📝 Proposed fix
-  The scanning operator's WeChat user ID is added to `WECHAT_ALLOWED_IDS` automatically; supply additional comma-separated IDs to authorize more DM senders.
+  The scanning operator's WeChat user ID is added to `WECHAT_ALLOWED_IDS` automatically.
+  Supply additional comma-separated IDs to authorize more DM senders.

As per coding guidelines: "One sentence per line in source (makes diffs readable). Flag paragraphs where multiple sentences appear on the same line."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/reference/commands.mdx` at line 671, The line containing the two
sentences about WECHAT_ALLOWED_IDS needs to be split into separate lines (one
sentence per line) to follow the style guide; locate the sentence mentioning
"The scanning operator's WeChat user ID is added to `WECHAT_ALLOWED_IDS`
automatically" and the following clause "supply additional comma-separated IDs
to authorize more DM senders" and place each sentence on its own line so diffs
remain readable and adhere to the one-sentence-per-line rule.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@docs/get-started/quickstart.mdx`:
- Line 280: Split the single line containing "WeChat and WhatsApp are
experimental; review [Messaging Channels](/manage-sandboxes/messaging-channels)
before enabling them." into two separate lines, one per sentence: "WeChat and
WhatsApp are experimental." and "Review [Messaging
Channels](/manage-sandboxes/messaging-channels) before enabling them." to comply
with the one-sentence-per-line style guide in quickstart.mdx.

In `@docs/manage-sandboxes/messaging-channels.mdx`:
- Line 15: The single line contains three independent clauses; split it into
three separate lines so each sentence stands alone: one line for "For
token-based channels, NemoClaw registers credentials with OpenShell providers",
one line for "WeChat captures a token through a host-side QR scan during
onboarding", and one line for "WhatsApp pairs inside the sandbox via QR scan and
intentionally stores mutable session state", preserving punctuation and
capitalization.

In `@docs/reference/commands.mdx`:
- Line 671: The line containing the two sentences about WECHAT_ALLOWED_IDS needs
to be split into separate lines (one sentence per line) to follow the style
guide; locate the sentence mentioning "The scanning operator's WeChat user ID is
added to `WECHAT_ALLOWED_IDS` automatically" and the following clause "supply
additional comma-separated IDs to authorize more DM senders" and place each
sentence on its own line so diffs remain readable and adhere to the
one-sentence-per-line rule.

In `@docs/reference/troubleshooting.mdx`:
- Line 781: The sentence "WeChat captures its bot token through a host-side QR
scan during `nemoclaw onboard` or `channels add wechat`; you scan the iLink QR
from WeChat on your phone and NemoClaw registers the captured token with the
OpenShell gateway." contains two independent clauses joined by a semicolon—split
this into two separate sentences and place each sentence on its own line in the
docs (locate the line by searching for the phrase and the commands `nemoclaw
onboard` / `channels add wechat`), e.g., end the first sentence after "channels
add wechat" and start a new line with "You scan..." so each sentence is on its
own source line per the style guide.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 6f3a1c71-7387-48ed-8cd3-0fbc55f573d1

📥 Commits

Reviewing files that changed from the base of the PR and between b73bac9 and ee3fc38.

📒 Files selected for processing (10)
  • ci/env-var-doc-allowlist.json
  • docs/.docs-skip
  • docs/about/release-notes.mdx
  • docs/get-started/quickstart.mdx
  • docs/manage-sandboxes/messaging-channels.mdx
  • docs/network-policy/customize-network-policy.mdx
  • docs/network-policy/integration-policy-examples.mdx
  • docs/reference/commands.mdx
  • docs/reference/network-policies.mdx
  • docs/reference/troubleshooting.mdx
💤 Files with no reviewable changes (2)
  • ci/env-var-doc-allowlist.json
  • docs/.docs-skip

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

@coderabbitai coderabbitai Bot 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.

🧹 Nitpick comments (2)
docs/reference/commands.mdx (2)

671-671: ⚡ Quick win

Use active voice.

The sentence uses passive voice ("is added"). As per coding guidelines, active voice is required for all documentation.

Suggested revision
-  The scanning operator's WeChat user ID is added to `WECHAT_ALLOWED_IDS` automatically.
+  NemoClaw automatically adds the scanning operator's WeChat user ID to `WECHAT_ALLOWED_IDS`.

As per coding guidelines: "Active voice required. Flag passive constructions."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/reference/commands.mdx` at line 671, Replace the passive sentence "The
scanning operator's WeChat user ID is added to `WECHAT_ALLOWED_IDS`
automatically." with an active-voice phrasing; update the line containing
WECHAT_ALLOWED_IDS / "scanning operator's WeChat user ID" to read something like
"The system automatically adds the scanning operator's WeChat user ID to
WECHAT_ALLOWED_IDS." to use active voice.

1314-1314: ⚡ Quick win

Split sentences to separate lines.

The table cell contains two sentences on the same line. As per coding guidelines, documentation should use one sentence per line in source to make diffs readable.

Suggested revision

Consider restructuring the table cell content to place each sentence on its own line:

-| `NEMOCLAW_WECHAT_QUIET` | `1` to enable | Silences the `[wechat]` diagnostic lines printed during the host-side WeChat QR login (poll status, IDC redirects, swallowed gateway errors). Visible by default while the experimental WeChat path stabilizes, so set `1` once the flow is reliable in your environment. |
+| `NEMOCLAW_WECHAT_QUIET` | `1` to enable | Silences the `[wechat]` diagnostic lines printed during the host-side WeChat QR login (poll status, IDC redirects, swallowed gateway errors).<br/>Visible by default while the experimental WeChat path stabilizes, so set `1` once the flow is reliable in your environment. |

Note: Using <br/> in MDX preserves the table structure while keeping sentences on separate source lines.

As per coding guidelines: "One sentence per line in source (makes diffs readable). Flag paragraphs where multiple sentences appear on the same line."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/reference/commands.mdx` at line 1314, The table cell for the environment
variable `NEMOCLAW_WECHAT_QUIET` currently contains two sentences on one source
line; edit the table cell in docs/reference/commands.mdx so each sentence sits
on its own source line (use a line break like <br/> inside the MDX table cell to
preserve the table layout) so the first sentence "Silences the `[wechat]`
diagnostic lines printed during the host-side WeChat QR login (poll status, IDC
redirects, swallowed gateway errors)." is on its own line and the second
sentence "Visible by default while the experimental WeChat path stabilizes, so
set `1` once the flow is reliable in your environment." is on the next line.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@docs/reference/commands.mdx`:
- Line 671: Replace the passive sentence "The scanning operator's WeChat user ID
is added to `WECHAT_ALLOWED_IDS` automatically." with an active-voice phrasing;
update the line containing WECHAT_ALLOWED_IDS / "scanning operator's WeChat user
ID" to read something like "The system automatically adds the scanning
operator's WeChat user ID to WECHAT_ALLOWED_IDS." to use active voice.
- Line 1314: The table cell for the environment variable `NEMOCLAW_WECHAT_QUIET`
currently contains two sentences on one source line; edit the table cell in
docs/reference/commands.mdx so each sentence sits on its own source line (use a
line break like <br/> inside the MDX table cell to preserve the table layout) so
the first sentence "Silences the `[wechat]` diagnostic lines printed during the
host-side WeChat QR login (poll status, IDC redirects, swallowed gateway
errors)." is on its own line and the second sentence "Visible by default while
the experimental WeChat path stabilizes, so set `1` once the flow is reliable in
your environment." is on the next line.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 91d2b67e-68fb-4004-b776-638803ff429c

📥 Commits

Reviewing files that changed from the base of the PR and between ee3fc38 and 21f0a98.

📒 Files selected for processing (6)
  • docs/get-started/quickstart.mdx
  • docs/manage-sandboxes/messaging-channels.mdx
  • docs/network-policy/integration-policy-examples.mdx
  • docs/reference/commands.mdx
  • docs/reference/network-policies.mdx
  • docs/reference/troubleshooting.mdx
✅ Files skipped from review due to trivial changes (1)
  • docs/get-started/quickstart.mdx
🚧 Files skipped from review as they are similar to previous changes (2)
  • docs/network-policy/integration-policy-examples.mdx
  • docs/reference/network-policies.mdx

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

@ericksoa ericksoa 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.

Approved after docs review and follow-up commits. I fixed the WeChat non-interactive example to match the host-side QR flow and addressed the remaining docs nits. Local docs checks and the refreshed CI run passed.

@ericksoa ericksoa merged commit a5768a2 into main May 27, 2026
29 checks passed
@miyoungc miyoungc deleted the docs/some-fixes branch May 27, 2026 01:46
cv added a commit that referenced this pull request May 27, 2026
## Summary

Refresh NemoClaw documentation and regenerated user skills for the
v0.0.52 release-prep window. Adds the v0.0.52 release-notes entry and
regenerates `nemoclaw-user-*` skills so the published Fern docs and the
agent-skill references stay in sync.

## Source summary

- #4260 -> `docs/about/release-notes.mdx`: Document the OpenClaw runtime
bump to 2026.5.22 and call out the `min_openclaw_version` compatibility
floor versus `OPENCLAW_VERSION` Dockerfile pin. (Architecture and
commands pages were already updated in #4260 itself.)
- #4272 -> `docs/about/release-notes.mdx`: Document the Hermes v0.14
root-entrypoint sandbox layout repair (precreated runtime dirs, sticky
group-writable `/sandbox/.hermes`, removed `gateway.pid` symlink
precreation, legacy state cleanup at launch).
- #4261 -> `docs/about/release-notes.mdx`: Document the onboard ready
output restoration that points users at `nemoclaw <name> dashboard-url
--quiet`.
- #4200 -> `docs/about/release-notes.mdx`: Document Slack token
validation in onboarding so invalid `SLACK_BOT_TOKEN` values trigger a
re-prompt instead of silent advance.
- #4278 -> `docs/about/release-notes.mdx`: Document the Windows
bootstrap regression fix that restores the separate Ubuntu setup handoff
window, keeps `Ubuntu-24.04` as the default distro, and documents
`-DistroName Ubuntu` to reuse an existing distro. (The
`docs/get-started/windows-preparation.mdx` page was already updated in
#4278 itself.)
- #4092 -> `docs/about/release-notes.mdx`: Document the blueprint
private-network blocklist reload when `private-networks.yaml` changes on
disk.
- Release cleanup -> `.agents/skills/nemoclaw-user-*`: Regenerate user
skills with `scripts/docs-to-skills.py docs/ .agents/skills/ --prefix
nemoclaw-user --doc-platform fern-mdx` so the agent-skill references
pick up the v0.0.52 release-notes update plus the WeChat / WhatsApp doc
changes that already landed in #4276.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [x] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Verification

- `python3 scripts/docs-to-skills.py docs/ .agents/skills/ --prefix
nemoclaw-user --doc-platform fern-mdx` -> 10 skills, 1724 lines, 29
reference files.
- `npm run docs` -> 0 errors, 1 warning (Fern check clean).
- `npm run build:cli` -> success (refreshed `dist/` so the pre-push
TypeScript hook passes).
- Skip-list check against `docs/.docs-skip` `skip-terms`: no "permissive
mode", "shields down", "shields up", "shields status", "config
rotate-token", or "rotate-token" strings in `docs/` or generated skills.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Experimental WeChat messaging channel added (QR pairing), alongside
Telegram, Discord, Slack, and WhatsApp.

* **Documentation**
* Updated onboarding, messaging-channel, CLI, and troubleshooting docs
to include WeChat/WhatsApp (marked experimental) and new onboarding
flags/notes.
* Clarified provider validation and runtime routing behavior for
OpenAI-compatible endpoints and Google Gemini.
  * Updated Windows bootstrap/WSL guidance to target Ubuntu 24.04.

* **Chores**
* Added v0.0.52 release notes (runtime upgrade, sandbox hardening,
onboarding and network fixes).

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/NVIDIA/NemoClaw/pull/4293?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Carlos Villela <cvillela@nvidia.com>
@cv cv added the integration: whatsapp WhatsApp integration or channel behavior label May 30, 2026
@wscurran wscurran added area: docs Documentation, examples, guides, or docs build chore Build, CI, dependency, or tooling maintenance and removed documentation labels Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: docs Documentation, examples, guides, or docs build chore Build, CI, dependency, or tooling maintenance integration: whatsapp WhatsApp integration or channel behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants