Repository navigation
feat: add Root hotspot routing and configurable Web listeners - #7
Conversation
|
@codex review |
|
To use Codex here, create a Codex account and connect to github. |
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0408cddd2a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Replace the Tesla VPN alias with a VPN Hotspot-based Root routing adapter so hotspot clients can reach WheelPlay's local HTTP and HTTPS services. Manage the custom IPv4 alias, scoped return routing, and low-port mappings in one transaction with rollback and cleanup on service/hotspot changes. Keep ordinary HTTP/HTTPS listeners independent of Root in Web listener settings. Add a persistent HTTPS switch and inline default, PEM, and PKCS#12 certificate choices. Label the shared HTTP/HTTPS hostname as Web domain and migrate existing listener/domain preferences. Normalize imported EC private-key algorithms for Android Conscrypt and retain active listeners and identities when configuration changes fail. Check Root once in the background at startup, refresh Tesla controls after authorization, and retain the manual retry button. Remove the redundant addrtype match from destination-scoped DNAT rules for kernels without that extension. Report the failing routing command and preserve it after rollback. Block new installations after unconfirmed startup rollback, including retries and plan changes. Accept one optional leading EC PARAMETERS block in PEM while still enforcing a single private key and rejecting trailing objects. Preserve upstream authentication import and activation checks when rebasing onto main: listeners and wake locks still require a validated identity. Validation on upstream main 1dc11aa: Common 197 and Shared 239 tests passed; Android Lint reported 0 errors and Debug assembly passed. Browser 64 tests passed before the final Root/TLS fixes and their code is unchanged. Before this upstream sync, the signed arm64 APK passed packaging checks and OnePlus 7 Pro / EvolutionX Android 16 / Magisk device checks for startup Root authorization, HTTP 80 and HTTPS 443, TLS hostname/CA validation, and rule cleanup/restoration. Other hotspot clients and Tesla remain untested. Co-authored-by: Codex <noreply@openai.com>
0408cdd to
63e8557
Compare
Use the App's audio buffer setting (300, 500 or 1000 ms; 300 ms by default) for browser media playback instead of a fixed short start delay. Changing the setting is now persisted and pushed through WebSession so connected browsers rebuild their media playback buffer; first playback and recovery after buffer exhaustion both use the selected delay. Calls, navigation and other non-media audio keep the short buffer, and microphone sampling is unaffected. Mark media PCM packets with a reserved flags word in the WPA1 header. The sender sizes each stream's queue by PCM duration: media keeps the configured buffer plus 200 ms, non-media keeps 100 ms, with a 128-frame total cap and four frames awaiting acknowledgement. The browser accepts a media burst above the selected start buffer, drops newly arriving audio once the backlog limit is reached instead of tearing down sound that is already queued, and applies a buffer change to the affected stream only. Add bridge, sender, server and browser regressions, and document the buffer behaviour in BROWSER_AUDIO.md. Bump the version to 0.3.0 (21) for the signed arm64 release build. Validation: Common 201 and Shared 239 tests passed, 0 failures; Android Lint reported 0 errors and 18 warnings; browser 67 tests and the JavaScript syntax check passed. The arm64 release APK passed package, signature, 16 KiB alignment, arm64-only, authentication asset and web asset checks, and was installed over the previous signed build on OnePlus 7 Pro / Android 16 with app data preserved. Co-authored-by: Codex <noreply@openai.com>
|
新增修复web媒体通道播放断断续续的问题,可考虑单独为 web 播放缓冲设置时间,电话通道没有这种现象。 我这日志显示五个统计窗口内,maxGapMs 分别是 423、416、398、401、396ms,这远超浏览器目前 60ms 的播放缓冲。 |
|
Thanks! |

#4 中的 Tesla IPv4 VPN 地址无法直接共享给 Android 热点设备。本 PR 将该入口改为基于 VPN Hotspot 的内置 Root 路由适配,并将普通 Web 监听设置与 Tesla 端口映射分开。
变化
EC PARAMETERS,仍拒绝缺失或多把私钥及额外对象,保留导入失败时的原证书和监听器;迁移旧的端口与域名偏好。验证
:common:testDebugUnitTest:197 项;:shared:testDebugUnitTest:239 项,均无失败、错误或跳过。npm test64 项通过及 JavaScript 语法检查结果。:mobile:lintDebug:0 错误、18 项警告;:mobile:assembleDebug通过。同步至上游 main 的 1dc11aa,保留新增的认证资源导入、认证校验与全屏启动功能。
此前在一加 7 Pro / EvolutionX Android 16 / Magisk 上通过 ADB 验证了自动 Root 授权、HTTP 80 和 HTTPS 443 映射、HTTPS 系统 CA / 主机名验证,以及强制停止后的规则清理和冷启动恢复。真机测试使用同步上游前的版本;其他热点客户端及 Tesla 实机浏览器仍待验证。