feat(submodules): bump transcribe-and-fetch and hyperdimensions - #1546
Conversation
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR adds comprehensive host hardware probing and node-type classification for both Windows and Linux, with cross-platform NIC collision detection. It introduces a new PowerShell script, enhances the existing Bash script, and includes submodule and configuration updates. ChangesHost Probing and Classification
Configuration and Dependencies
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8b3b33ce55
ℹ️ 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".
| "API_TOKEN": "${HOSTINGER_API_KEY}" | ||
| } | ||
| }, | ||
| 3 |
There was a problem hiding this comment.
Remove stray token from MCP JSON
When .claude/mcp.json is loaded, this bare 3 makes the file invalid JSON (python3 -m json.tool .claude/mcp.json fails at this line), so any Claude/MCP tooling that reads the repo config will be unable to parse the server definitions at all. Remove the token or replace it with the missing comma/keyed entry before the tailscale server.
Useful? React with 👍 / 👎.
…cking main (#1548) Audit (post-#1531) revealed 6 submodules where the gitlink in parent's HEAD points to a SHA on the submodule's `main` branch, but `.gitmodules` still records `branch = PMOVES.AI-Edition-Hardened`. The recorded branch is no longer the active development line — running `git submodule update --remote` against these entries would *regress* the gitlink to a stale PMOVES.AI-Edition-Hardened tip rather than advance to current HEAD. Corrected entries (branch: PMOVES.AI-Edition-Hardened -> main): - PMOVES-E2B-Danger-Room - PMOVES-Danger-infra - PMOVES-Pipecat - PMOVES-MAI-UI - PMOVES-Headscale - Pmoves-cipher Per-submodule verification (each at origin/main parity, 0/0): - PMOVES-E2B-Danger-Room HEAD=7a38b33b origin/main=7a38b33b - PMOVES-Danger-infra HEAD=44d80c70 origin/main=44d80c70 - PMOVES-Pipecat HEAD=a74aa0cc origin/main=a74aa0cc - PMOVES-MAI-UI HEAD=182bcf4d origin/main=182bcf4d - PMOVES-Headscale HEAD=d050dbe9 origin/main=d050dbe9 - Pmoves-cipher HEAD=c4f8348f origin/main=c4f8348f No gitlink SHAs change in this PR — purely a metadata correction so future `submodule update --remote` and fleet-audit automation target the right branch. Out of scope (require individual investigation, deferred): - PMOVES-BoTZ (actual=main but flagged in plan Lane B for branch reconciliation) - PMOVES-BotZ-gateway (actual=dependabot/pip/... — wrong-branch-tracking) - PMOVES-transcribe-and-fetch (actual=dependabot/... — covered by PR #1546) - PMOVES-n8n (actual=codex/n8n-authoritative-runtime — codex agent scope) - pmoves-e2b-mcp-server (HEAD not in any remote branch — needs investigation) - pmoves/integrations/archon (actual=POWERFULMOVES-patch-1 — unusual) The top-of-file comment "All submodules track PMOVES.AI-Edition-Hardened" is now stale (it was already stale for ClawZ and skills/*); a follow-up policy decision is needed on whether to standardize on main or restore the PMOVES.AI-Edition-Hardened policy. Left unchanged here. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
deploy/provision/glances-autodetect.sh (1)
445-449: ⚡ Quick winPrimary/ghost classification differs from PowerShell implementation.
The Python logic assigns
members[0]as primary regardless of link state. The PowerShell version (lines 252-261) explicitly checks adapter status to classify primaries (Up) vs ghosts (not Up). This could misclassify collisions if the first-discovered interface is actually down.Consider aligning the heuristic: pass link state into Python and select the primary based on
UPstate, similar to the PowerShell logic.Sketch of aligned approach
- addr_list="$(ip -4 -o addr show 2>/dev/null | awk '/scope global/ {print $2, $4}')" + # Include link state in the data passed to Python + addr_list="$(ip -4 -o addr show 2>/dev/null | awk '/scope global/ {print $2, $4}')" + # Note: link_states is already captured at line 414Then modify the Python to receive and use link state:
# In Python section, accept state and pick primary by UP status # primary = next((m for m in members if m[2] == "UP"), members[0])🤖 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 `@deploy/provision/glances-autodetect.sh` around lines 445 - 449, The current loop over entries() assigns primary = members[0] regardless of link state and can misclassify a downed interface; modify the logic that prints primary/ghost pairs to choose primary by link state (prefer a member whose state field equals "UP") and fall back to members[0] if none are UP: locate the loop using variables entries, subnet, members, primary, ghost and change the selection to something like selecting next(m for m in members if m[2] == "UP", members[0]) before iterating ghosts so the primary is consistent with the PowerShell UP-vs-not-UP heuristic.
🤖 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 `@deploy/provision/glances-autodetect.ps1`:
- Around line 342-345: Documentation says desktop-workstation requires >=32 GB
RAM but the detection block uses $RamGb -ge 16; update the code to match the doc
by changing the RAM check to $RamGb -ge 32 (the GPU/name logic using
$nvidiaGpus/$amdGpus and the returned object with type='desktop-workstation',
confidence='medium', rationale=... should remain unchanged), or alternatively
update the header comment to reflect the 16 GB requirement if the intended
threshold is 16 GB.
- Around line 292-293: The null-comparison order in the $hasWsl2 assignment can
misbehave when the right-hand side is an array; change the comparison so $null
is on the left side. Update the expression that sets $hasWsl2 (the Get-Command
'wsl' check and the ((wsl --list --quiet 2>$null) -ne $null) part) to use $null
-ne (...) instead of (...) -ne $null so PowerShell does not enumerate arrays
during the comparison.
In `@Pmoves-hyperdimensions`:
- Line 1: The submodule pointer in Pmoves-hyperdimensions references commits
that cannot be found; verify that the commit hashes
1a6cb7254732785b5b429ff2fe5a534a7c845d89 (old) and
41e1dc60a91b6a4ef0043f6363c7b4ecb5e442d4 (new) exist in the submodule repo and
that the submodule remote is correct: check the submodule's .gitmodules and the
submodule's origin (and run a fetch on that remote) to confirm the commits are
present; if commits are missing, push them from the submodule repo or correct
the target hash (update the submodule to a reachable commit and then git add &
commit the submodule change in the parent repo); if the remote is wrong, fix
.gitmodules/.git/config to point to the proper URL, run git submodule sync and
fetch, then update the parent commit pointer and commit the change so CI can
verify the new pointer.
---
Nitpick comments:
In `@deploy/provision/glances-autodetect.sh`:
- Around line 445-449: The current loop over entries() assigns primary =
members[0] regardless of link state and can misclassify a downed interface;
modify the logic that prints primary/ghost pairs to choose primary by link state
(prefer a member whose state field equals "UP") and fall back to members[0] if
none are UP: locate the loop using variables entries, subnet, members, primary,
ghost and change the selection to something like selecting next(m for m in
members if m[2] == "UP", members[0]) before iterating ghosts so the primary is
consistent with the PowerShell UP-vs-not-UP heuristic.
🪄 Autofix (Beta)
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
Run ID: a86c8275-ae6c-4724-ba5c-d2bf66a20d40
📒 Files selected for processing (5)
.claude/mcp.jsonPMOVES-transcribe-and-fetchPmoves-hyperdimensionsdeploy/provision/glances-autodetect.ps1deploy/provision/glances-autodetect.sh
| $hasWsl2 = $null -ne (Get-Command 'wsl' -ErrorAction SilentlyContinue) -and | ||
| ((wsl --list --quiet 2>$null) -ne $null) |
There was a problem hiding this comment.
Fix null comparison order for safer array handling.
When comparing with $null, place $null on the left side. This prevents unexpected behavior when the result is an array (PowerShell iterates arrays on the right side of comparisons).
Proposed fix
- $hasWsl2 = $null -ne (Get-Command 'wsl' -ErrorAction SilentlyContinue) -and
- ((wsl --list --quiet 2>$null) -ne $null)
+ $hasWsl2 = $null -ne (Get-Command 'wsl' -ErrorAction SilentlyContinue) -and
+ ($null -ne (wsl --list --quiet 2>$null))📝 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.
| $hasWsl2 = $null -ne (Get-Command 'wsl' -ErrorAction SilentlyContinue) -and | |
| ((wsl --list --quiet 2>$null) -ne $null) | |
| $hasWsl2 = $null -ne (Get-Command 'wsl' -ErrorAction SilentlyContinue) -and | |
| ($null -ne (wsl --list --quiet 2>$null)) |
🧰 Tools
🪛 PSScriptAnalyzer (1.25.0)
[warning] 293-293: $null should be on the left side of equality comparisons.
Suggested fix: Use $null on the left hand side for safe comparison with $null.
(PSPossibleIncorrectComparisonWithNull)
[warning] Missing BOM encoding for non-ASCII encoded file 'glances-autodetect.ps1'
(PSUseBOMForUnicodeEncodedFile)
🤖 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 `@deploy/provision/glances-autodetect.ps1` around lines 292 - 293, The
null-comparison order in the $hasWsl2 assignment can misbehave when the
right-hand side is an array; change the comparison so $null is on the left side.
Update the expression that sets $hasWsl2 (the Get-Command 'wsl' check and the
((wsl --list --quiet 2>$null) -ne $null) part) to use $null -ne (...) instead of
(...) -ne $null so PowerShell does not enumerate arrays during the comparison.
| if (($nvidiaGpus.Count + $amdGpus.Count) -gt 0 -and $RamGb -ge 16) { | ||
| $gpuName = if ($nvidiaGpus.Count -gt 0) { $nvidiaGpus[0].model } else { $amdGpus[0].model } | ||
| return @{ type='desktop-workstation'; confidence='medium'; rationale="Detected $gpuName + $($CpuInfo.model) + $RamGb GB RAM" } | ||
| } |
There was a problem hiding this comment.
Documentation/code mismatch: RAM threshold for desktop-workstation.
The header comment (line 43) states desktop-workstation requires >=32 GB RAM, but the code checks for >=16 GB. Please align the documentation with the intended behavior.
🧰 Tools
🪛 PSScriptAnalyzer (1.25.0)
[warning] Missing BOM encoding for non-ASCII encoded file 'glances-autodetect.ps1'
(PSUseBOMForUnicodeEncodedFile)
🤖 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 `@deploy/provision/glances-autodetect.ps1` around lines 342 - 345,
Documentation says desktop-workstation requires >=32 GB RAM but the detection
block uses $RamGb -ge 16; update the code to match the doc by changing the RAM
check to $RamGb -ge 32 (the GPU/name logic using $nvidiaGpus/$amdGpus and the
returned object with type='desktop-workstation', confidence='medium',
rationale=... should remain unchanged), or alternatively update the header
comment to reflect the 16 GB requirement if the intended threshold is 16 GB.
Resolves P1 review comment: bare "3" between hostinger-api-mcp and tailscale server blocks made the file invalid JSON, preventing any Claude/MCP tooling from parsing server definitions.
91caff2 to
31aacbd
Compare
…1580) * chore(.gitmodules): correct stale branch records for 6 submodules tracking main Audit (post-#1531) revealed 6 submodules where the gitlink in parent's HEAD points to a SHA on the submodule's `main` branch, but `.gitmodules` still records `branch = PMOVES.AI-Edition-Hardened`. The recorded branch is no longer the active development line — running `git submodule update --remote` against these entries would *regress* the gitlink to a stale PMOVES.AI-Edition-Hardened tip rather than advance to current HEAD. Corrected entries (branch: PMOVES.AI-Edition-Hardened -> main): - PMOVES-E2B-Danger-Room - PMOVES-Danger-infra - PMOVES-Pipecat - PMOVES-MAI-UI - PMOVES-Headscale - Pmoves-cipher Per-submodule verification (each at origin/main parity, 0/0): - PMOVES-E2B-Danger-Room HEAD=7a38b33b origin/main=7a38b33b - PMOVES-Danger-infra HEAD=44d80c70 origin/main=44d80c70 - PMOVES-Pipecat HEAD=a74aa0cc origin/main=a74aa0cc - PMOVES-MAI-UI HEAD=182bcf4d origin/main=182bcf4d - PMOVES-Headscale HEAD=d050dbe9 origin/main=d050dbe9 - Pmoves-cipher HEAD=c4f8348f origin/main=c4f8348f No gitlink SHAs change in this PR — purely a metadata correction so future `submodule update --remote` and fleet-audit automation target the right branch. Out of scope (require individual investigation, deferred): - PMOVES-BoTZ (actual=main but flagged in plan Lane B for branch reconciliation) - PMOVES-BotZ-gateway (actual=dependabot/pip/... — wrong-branch-tracking) - PMOVES-transcribe-and-fetch (actual=dependabot/... — covered by PR #1546) - PMOVES-n8n (actual=codex/n8n-authoritative-runtime — codex agent scope) - pmoves-e2b-mcp-server (HEAD not in any remote branch — needs investigation) - pmoves/integrations/archon (actual=POWERFULMOVES-patch-1 — unusual) The top-of-file comment "All submodules track PMOVES.AI-Edition-Hardened" is now stale (it was already stale for ClawZ and skills/*); a follow-up policy decision is needed on whether to standardize on main or restore the PMOVES.AI-Edition-Hardened policy. Left unchanged here. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(patterns): add Known Road for submodule documentation patterns Codifies three load-bearing patterns surfaced by the 2026-05-20 CLAUDE.md fleet audit and the 8-PR landing wave (2026-05-22). Future agents following the fleet-audit pattern (or driving a multi-repo doc fix) need these as up-front knowledge, not session-rediscovery cost. 1. Upstream `CLAUDE.md -> AGENTS.md` symlink: overlay at `.claude/CLAUDE.md`, never overwrite. Includes the `.gitignore` `.claude/*` + `!.claude/CLAUDE.md` whitelist mechanic that newcomers get wrong (negate doesn't work under a fully-ignored parent dir). 2. `gh pr create` "no commits between" after fresh push: lookup race, not real divergence. Retry with explicit `--repo` + `org:branch` head form. 3. Fleet audit -> grep before opening per-finding PRs: the audit's rubric reports one file per finding but the same anti-pattern usually repeats. DoX TensorZero URL audit cited 1 line; grep found 4. Slotted between Skill Pairing (FlOO$) and PR Review & Merge Workflow so agents reach it on the same read pass they use for the merge sequence. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore(.gitmodules): correct stale branch records for 6 submodules tracking main Audit (post-#1531) revealed 6 submodules where the gitlink in parent's HEAD points to a SHA on the submodule's `main` branch, but `.gitmodules` still records `branch = PMOVES.AI-Edition-Hardened`. The recorded branch is no longer the active development line — running `git submodule update --remote` against these entries would *regress* the gitlink to a stale PMOVES.AI-Edition-Hardened tip rather than advance to current HEAD. Corrected entries (branch: PMOVES.AI-Edition-Hardened -> main): - PMOVES-E2B-Danger-Room - PMOVES-Danger-infra - PMOVES-Pipecat - PMOVES-MAI-UI - PMOVES-Headscale - Pmoves-cipher Per-submodule verification (each at origin/main parity, 0/0): - PMOVES-E2B-Danger-Room HEAD=7a38b33b origin/main=7a38b33b - PMOVES-Danger-infra HEAD=44d80c70 origin/main=44d80c70 - PMOVES-Pipecat HEAD=a74aa0cc origin/main=a74aa0cc - PMOVES-MAI-UI HEAD=182bcf4d origin/main=182bcf4d - PMOVES-Headscale HEAD=d050dbe9 origin/main=d050dbe9 - Pmoves-cipher HEAD=c4f8348f origin/main=c4f8348f No gitlink SHAs change in this PR — purely a metadata correction so future `submodule update --remote` and fleet-audit automation target the right branch. Out of scope (require individual investigation, deferred): - PMOVES-BoTZ (actual=main but flagged in plan Lane B for branch reconciliation) - PMOVES-BotZ-gateway (actual=dependabot/pip/... — wrong-branch-tracking) - PMOVES-transcribe-and-fetch (actual=dependabot/... — covered by PR #1546) - PMOVES-n8n (actual=codex/n8n-authoritative-runtime — codex agent scope) - pmoves-e2b-mcp-server (HEAD not in any remote branch — needs investigation) - pmoves/integrations/archon (actual=POWERFULMOVES-patch-1 — unusual) The top-of-file comment "All submodules track PMOVES.AI-Edition-Hardened" is now stale (it was already stale for ClawZ and skills/*); a follow-up policy decision is needed on whether to standardize on main or restore the PMOVES.AI-Edition-Hardened policy. Left unchanged here. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs+ops: CLAUDE.md fleet audit + daily/weekly automation pair Bundles the audit and the automations that close the gaps it surfaced. Audit (`pmoves/docs/audit/CLAUDE_MD_AUDIT_2026-05-20.md`): - 26 CLAUDE.md / .claude/CLAUDE.md files scored across root + top-level submodules + pmoves/services + worktree overrides - Per-file rubric scores, cross-file drift list, P0/P1/P2 priority queue - One verified false positive: Cipher port drift was already fixed - Submodule-level fixes already filed as separate PRs (ToKenism #49, DoX #170, ClawZ #2, tensorzero #4, Headscale #2, BoTZ #139) Submodule-count fix (`.claude/CLAUDE.md`): - Catalog said 20 submodules; `git submodule status` shows 50 Daily digest pair (paired with cloud routine `trig_01QMXAdArAv8EusKmJPMrcq9`): - `daily_pmoves_digest.ps1` -- worktree dirty/ahead/behind + light PR snapshot, posts to Discord webhook - `register_daily_digest_task.ps1` -- one-time Windows Task Scheduler registration that bakes DISCORD_WEBHOOK_URL into a per-task wrapper Fleet sweep pair: - `fleet_stale_node_sweep.ps1` -- weekly tailnet sweep via local `tailscale status --json` (no cloud Tailscale connector available), flags peers offline > N days, posts to Discord - `register_fleet_sweep_task.ps1` -- weekly Monday Task Scheduler registration Why local rather than cloud routines: the cloud routine layer can't reach the tailnet (no Tailscale MCP connector available) and can't see local worktree state. The daily-digest pair is cloud-for-PRs + local-for-worktrees; the fleet sweep is local-only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(tasks): keep webhook wrappers outside repo * fix(scripts): harden webhook wrappers — ACL + whitespace + gitmodules doc - Add Set-Acl lock-down after Set-Content in both register_*_task.ps1 wrappers (wrapper contains plaintext DISCORD_WEBHOOK_URL, restrict to current user only) - Tighten DISCORD_WEBHOOK_URL blank-check in daily_pmoves_digest.ps1 to also reject whitespace-only values - Update .gitmodules branch strategy header to reflect mixed strategy: most modules on PMOVES.AI-Edition-Hardened, E2B/infra + skills/* on main Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Shaela Bello <slbello@uncg.edu>
Updates submodule pointers for transcribe-and-fetch (provider-agnostic changes) and hyperdimensions (beats constellation preset).
Summary by CodeRabbit
New Features
Chores