docs(readme): 补充新特性并精简文案 - #100
Conversation
- 修正 ABR 描述:实际为服务端决策 + 客户端 PID 回退,与 LLM 无关 - 新增 HDR Vivid 全链路与音频驱动振动反馈小节 - 补充 AV1 硬解、超分管线、剪贴板同步、USB DDK 手柄驱动、 自定义按键、WOL、主机 Web UI、开发者模式解锁等已实现但未记录的能力 - 帧率说明改为 60/120/144 FPS,与设置项一致 - 删除重复的一级标题,导航锚点同步去掉 emoji - 去掉标题与列表中的装饰性 emoji,营销化措辞改为陈述 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
📝 WalkthroughWalkthroughREADME.md 重构为中文文档,更新项目功能、安装使用、开发环境、项目结构、问题反馈、版权声明和页脚内容。 ChangesREADME 文档更新
Estimated code review effort: 1(低)| ~5 分钟 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 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.
Inline comments:
In `@README.md`:
- Line 7: 将 README.md 第 7 行的宣传性描述改为中性、陈述性的产品说明,并处理第 277 行:删除包含 ⭐️
和“欢迎点个”的页脚行动号召,或替换为不带装饰符号的中性说明。
- Line 5: Remove the two leading spaces before the Markdown heading marker in
the README title so the `# Moonlight V+ for HarmonyOS` heading starts at the
beginning of the line and satisfies markdownlint MD023.
- Line 63: 更新 README 中介绍 Moonlight Audio Haptics SDK 的链接,移除指向不存在的
audio-haptics-sdk/ 路径并复用 docs/AUDIO_HAPTICS_SDK_HARMONYOS.md 中记录的独立仓库地址;同时补充固定版本
v0.6.0、提交 b71b47a08fd400996ed374a97e1bff73bac2932e 及 ABI v1 信息。
- Around line 178-183: 更新 README 的开发环境与构建配置说明,使其与实际 CI 和仓库配置一致:将 Node.js 要求改为 CI
使用的 18.x,或明确区分本地验证版本;说明 CLI 构建未默认设置 TARGET_SDK_VERSION,并将 targetSdkVersion
6.1.1(24) 表述为需本地配置的前提或补充配置方式;同时明确当前以 entry/nativelib 配置为准,避免暗示仓库中存在未提供的根
build-profile.json5。
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 6e8723bf-242e-414d-9bff-dcb04e413f03
📒 Files selected for processing (1)
README.md
| # 🌙 Moonlight V+ for HarmonyOS | ||
|
|
||
| # Moonlight V+ for HarmonyOS |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
修复标题的前导空格。
第 5 行的 # 前有两个空格。markdownlint MD023 要求标题从行首开始。请删除前导空格。
建议修改
- # Moonlight V+ for HarmonyOS
+# Moonlight V+ for HarmonyOS📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # Moonlight V+ for HarmonyOS | |
| # Moonlight V+ for HarmonyOS |
🧰 Tools
🪛 markdownlint-cli2 (0.23.2)
[warning] 5-5: Headings must start at the beginning of the line
(MD023, heading-start-left)
🤖 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 `@README.md` at line 5, Remove the two leading spaces before the Markdown
heading marker in the README title so the `# Moonlight V+ for HarmonyOS` heading
starts at the beginning of the line and satisfies markdownlint MD023.
Source: Linters/SAST tools
|
|
||
| # Moonlight V+ for HarmonyOS | ||
|
|
||
| **专为鸿蒙打造的 PC 游戏串流客户端** |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
继续清理宣传式文案和装饰符号。
PR 目标要求使用陈述性表达并删除装饰性 emoji。第 7 行仍是宣传语;第 277 行仍包含 ⭐️ 和“欢迎点个”的行动号召。请改为中性说明,或删除页脚 CTA。
建议修改
- **专为鸿蒙打造的 PC 游戏串流客户端**
+ 鸿蒙原生 PC 游戏串流客户端。
...
- 觉得有用的话欢迎点个 ⭐️,也可以通过 [GitHub Sponsors](https://github.com/sponsors/AlkaidLab) 赞助我们
+ GitHub Sponsors 赞助入口:[GitHub Sponsors](https://github.com/sponsors/AlkaidLab)Also applies to: 277-277
🤖 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 `@README.md` at line 7, 将 README.md 第 7 行的宣传性描述改为中性、陈述性的产品说明,并处理第 277 行:删除包含 ⭐️
和“欢迎点个”的页脚行动号召,或替换为不带装饰符号的中性说明。
|
|
||
| 不依赖游戏本身的振动脚本,直接从串流音频里实时分析低频能量和节拍,转成手上的触感:爆炸是沉闷的长震颤,鼓点是清晰的短脉冲。 | ||
|
|
||
| 算法部分抽成了独立的 [Moonlight Audio Haptics SDK](audio-haptics-sdk/)(含算法溯源说明与测试),应用侧只负责接入。串流中可以直接在菜单里调强度和开关,也能选择振动跟随哪一路音频输出。实现细节见 [docs/AUDIO_HAPTICS_SDK_HARMONYOS.md](docs/AUDIO_HAPTICS_SDK_HARMONYOS.md),原理科普见 [docs/AUDIO_HAPTICS_DEEP_DIVE.md](docs/AUDIO_HAPTICS_DEEP_DIVE.md)。 |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
for path in audio-haptics-sdk docs/AUDIO_HAPTICS_SDK_HARMONYOS.md docs/AUDIO_HAPTICS_DEEP_DIVE.md; do
if [ -e "$path" ]; then
printf 'OK: %s\n' "$path"
else
printf 'MISSING: %s\n' "$path"
fi
done
rg -n 'moonlight-audio-haptics|b71b47a08fd400996ed374a97e1bff73bac2932e|v0\.6\.0|ABI' \
README.md docs/AUDIO_HAPTICS_SDK_HARMONYOS.mdRepository: AlkaidLab/moonlight-harmony
Length of output: 806
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf 'README excerpt:\n'
sed -n '55,70p' README.md
printf '\nSDK doc header excerpt:\n'
sed -n '1,18p' docs/AUDIO_HAPTICS_SDK_HARMONYOS.md
python3 - <<'PY'
from pathlib import Path
readme = Path('README.md').read_text()
for target in ['audio-haptics-sdk/', 'audio-haptics-sdk/', 'docs/AUDIO_HAPTICS_DEEP_DIVE.md']:
if target in readme:
print(f'REF_IN_README: {target}')
PYRepository: AlkaidLab/moonlight-harmony
Length of output: 1203
使用 SDK 的独立仓库链接并补充版本信息。
audio-haptics-sdk/ 在当前仓库不存在,会形成死链;此处应改为 docs/AUDIO_HAPTICS_SDK_HARMONYOS.md 记录的独立仓库链接,同时注明固定版本 v0.6.0、固定提交 b71b47a08fd400996ed374a97e1bff73bac2932e 和 ABI v1,避免读者无法获取对应 SDK。
🧰 Tools
🪛 LanguageTool
[uncategorized] ~63-~63: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...测试),应用侧只负责接入。串流中可以直接在菜单里调强度和开关,也能选择振动跟随哪一路音频输出。实现细节见 [docs/AUDIO_HAPTICS_SDK_HARMONY...
(wa5)
🤖 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 `@README.md` at line 63, 更新 README 中介绍 Moonlight Audio Haptics SDK 的链接,移除指向不存在的
audio-haptics-sdk/ 路径并复用 docs/AUDIO_HAPTICS_SDK_HARMONYOS.md 中记录的独立仓库地址;同时补充固定版本
v0.6.0、提交 b71b47a08fd400996ed374a97e1bff73bac2932e 及 ABI v1 信息。
| - **DevEco Studio**:6.1 或更高版本;已验证 HarmonyOS 26.0.0 Beta1 SDK 可进入编译流程 | ||
| - **HarmonyOS SDK**:兼容 API 12+;当前 targetSdkVersion 保持 6.1.1(24) | ||
| - **Node.js**:20.x 或更高版本 | ||
| - **JDK/JBR**:本地打包 HAP 需要可用的 Java Runtime,可直接使用 DevEco Studio 自带 JBR | ||
|
|
||
| > 说明:暂不直接把 targetSdkVersion 升到 API 26。API 26 会启用新的 ArkUI/权限/系统行为门控,当前优先保持运行行为稳定,同时让 CI 和本地 SDK 工具链先识别 HarmonyOS 26.0.0。 | ||
| 暂不把 targetSdkVersion 升到 API 26:API 26 会启用新的 ArkUI / 权限 / 系统行为门控,当前优先保持运行行为稳定,同时让 CI 和本地 SDK 工具链先识别 HarmonyOS 26.0.0。 |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
fd -HI -t f -e json5 -e ts -e json -e yml -e yaml -e gradle . \
-x rg -n -C 2 \
'targetSdkVersion|compileSdkVersion|compatibleSdkVersion|DevEco|HarmonyOS|26\.0\.0|Node\.js|JDK|JBR' {}Repository: AlkaidLab/moonlight-harmony
Length of output: 3064
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Relevant files:"
git ls-files | rg '(^README\.md$|build-profile\.json5$|^\.github/workflows/.*\.ya?ml$|hvigor|oh-package\.json5$|entry/src/main/module\.json5$)'
echo
echo "README lines 150-195:"
sed -n '150,195p' README.md
echo
echo "build-profile.json5 around environment/profile variables:"
if [ -f build-profile.json5 ]; then
rg -n -C 3 'targets|environments|compatibleSdkVersion|compileSdkVersion|targetSdkVersion|TARGET_SDK_VERSION|compatibility|openHarmony|node|java|JBR|JDK|Node\.js|DevEco' build-profile.json5
fi
echo
echo CI setup/version snippets if present:
for f in $(git ls-files '.github/workflows/*.ya*' 2>/dev/null); do
echo "--- $f"
rg -n -C 3 'setup-node|use-node|Node.*20|20\.x|Target|TARGET_SDK_VERSION|SDK.*26|Compatible|openHarmony|DevEco|JDK|JBR|Java Runtime|Java' "$f" || true
doneRepository: AlkaidLab/moonlight-harmony
Length of output: 2047
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "build-profile.json5:"
sed -n '1,280p' build-profile.json5
echo
echo "entry/build-profile.json5:"
sed -n '1,280p' entry/build-profile.json5
echo
echo "nativelib/build-profile.json5:"
sed -n '1,280p' nativelib/build-profile.json5
echo
echo ".github/workflows/build.yml relevant sections:"
sed -n '1,120p' .github/workflows/build.yml
sed -n '170,200p' .github/workflows/build.ymlRepository: AlkaidLab/moonlight-harmony
Length of output: 249
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "tracked files with version/env/sdk/build keywords:"
git ls-files | while read -r f; do
case "$f" in
*.json5|*.json|*.ts|*.yml|*.yaml|*.md)
if rg -q 'targetSdkVersion|compileSdkVersion|compatibleSdkVersion|api.*26|26\.0\.0|TARGET_SDK_VERSION|Node\.js|Nodejs|Node|setup-node|DevEco|JBR|JDK|java.*runtime|Java Runtime' "$f"; then
echo "--- $f"
rg -n -C 2 'targetSdkVersion|compileSdkVersion|compatibleSdkVersion|api.*26|26\.0\.0|TARGET_SDK_VERSION|Node\.js|Nodejs|Node|setup-node|DevEco|JBR|JDK|java.*runtime|Java Runtime' "$f"
fi
;;
esac
done
echo
echo "package scripts and dependencies:"
sed -n '1,220p' oh-package.json5 2>/dev/null || true
sed -n '1,140p' hvigor/package.json 2>/dev/null || true
echo
echo "README full environment section:"
sed -n '170,188p' README.mdRepository: AlkaidLab/moonlight-harmony
Length of output: 4400
修正开发环境版本说明与实际 CI 不一致之处。
- CI 使用
setup-nodenode-version: '18',但 README 写成 Node.js:20.x 或更高版本;将 CI 版本与 README 保持一致,或明确这是本地验证与 CI 版本不同。 - CLI 构建未设置
TARGET_SDK_VERSION,因此 README 说targetSdkVersion保持6.1.1(24)与实际未由构建配置固定的情况不完全一致;需补充如何配置该项,或将该要求从强制说明改为本地构建前提。 - 根包
build-profile.json5未体现在当前仓库路径下;如需用多模块构建配置说明,增加对应文件或在 README 明确当前以 entry/nativelib 配置为准。
🤖 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 `@README.md` around lines 178 - 183, 更新 README 的开发环境与构建配置说明,使其与实际 CI 和仓库配置一致:将
Node.js 要求改为 CI 使用的 18.x,或明确区分本地验证版本;说明 CLI 构建未默认设置 TARGET_SDK_VERSION,并将
targetSdkVersion 6.1.1(24) 表述为需本地配置的前提或补充配置方式;同时明确当前以 entry/nativelib
配置为准,避免暗示仓库中存在未提供的根 build-profile.json5。
Summary by CodeRabbit