Skip to content

chore(pbnj): convert to submodule of combined PMOVES-pinokio fork - #2175

Merged
POWERFULMOVES merged 6 commits into
mainfrom
chore/pbnj-meta-submodule
Jul 30, 2026
Merged

POWERFULMOVES merged 6 commits into
mainfrom
chore/pbnj-meta-submodule

Conversation

@POWERFULMOVES

Copy link
Copy Markdown
Owner

Convert pbnj/ to a submodule of the combined PMOVES-pinokio fork

Replaces the 80 loose tracked files under pbnj/ with a single submodule → POWERFULMOVES/PMOVES-pinokio (branch PMOVES.AI-Edition-Hardened), aligning pbnj/ with the fork-as-submodule fleet pattern. Launcher paths shift from pbnj/pinokio/api/* to pbnj/api/*.

What changed

  • pbnj/ (80 loose files) → submodule gitlink at pbnjPMOVES-pinokio @ 40a6295.
  • Path references fixed (pbnj/pinokio/api/pbnj/api/): deploy/runbooks/pinokio-pbnj-install.md (4), .hermes/plans/…p8-launcher-mesh-plan.md (4, local-only — not included in this commit; it stays untracked).

The combined fork this points at

PMOVES-pinokio (hardened) is the aggregator: the Pinokio app + 10 in-tree api/pmoves-* launchers + submodules api/pmoves-claude-code (PMOVES-claude-code), plugin/code (POWERFULMOVES/code, a fork of pinokiocomputer/code with the claude plugin repointed at PMOVES-claude-code, plus the relocated pmoves-codex), and sources/pmoves-crush (PMOVES-crush) surfaced via a thin api/pmoves-crush delegate.

Design / plan

  • Spec: docs/superpowers/specs/2026-07-20-pmoves-combined-pinokio-customization-design.md
  • Plan: docs/superpowers/plans/2026-07-20-combined-pinokio-customization.md

Notes for reviewers

  • pbnj has nested submodules; git submodule update --init --recursive pulls the combined Pinokio fork + its three children.
  • The claude plugin launches vanilla npx @anthropic-ai/claude-code with CLAUDE_CONFIG_DIR pointed at PMOVES-claude-code (the CLI is a closed npm bundle; customization is via the extension surface).
  • Follow-ups (not in this PR): a 70MB .wav historical blob in the Pinokio fork history (BFG cleanup); PMOVES-claude-code deep-integration content is a separate spec.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@POWERFULMOVES, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 23 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 984a9447-15f8-4e05-a1c6-e573909d9797

📥 Commits

Reviewing files that changed from the base of the PR and between 3dd38a6 and be54095.

⛔ Files ignored due to path filters (7)
  • pbnj/pinokio/api/pmoves-agent-zero/icon.svg is excluded by !**/*.svg
  • pbnj/pinokio/api/pmoves-model-selector/icon.svg is excluded by !**/*.svg
  • pbnj/pinokio/api/pmoves-notebooklm/icon.svg is excluded by !**/*.svg
  • pbnj/pinokio/api/pmoves-pbnj/icon.png is excluded by !**/*.png
  • pbnj/pinokio/api/pmoves-remote/icon.png is excluded by !**/*.png
  • pbnj/pinokio/api/pmoves-services/icon.png is excluded by !**/*.png
  • pbnj/pinokio/plugin/code/pmoves-codex/icon.svg is excluded by !**/*.svg
📒 Files selected for processing (90)
  • .gitmodules
  • deploy/runbooks/pinokio-pbnj-install.md
  • pbnj
  • pbnj/README.md
  • pbnj/pinokio/api/pmoves-agent-zero/.gitignore
  • pbnj/pinokio/api/pmoves-agent-zero/README.md
  • pbnj/pinokio/api/pmoves-agent-zero/install.js
  • pbnj/pinokio/api/pmoves-agent-zero/pinokio.js
  • pbnj/pinokio/api/pmoves-agent-zero/pinokio.json
  • pbnj/pinokio/api/pmoves-agent-zero/reset.js
  • pbnj/pinokio/api/pmoves-agent-zero/start.js
  • pbnj/pinokio/api/pmoves-agent-zero/status.js
  • pbnj/pinokio/api/pmoves-agent-zero/update.js
  • pbnj/pinokio/api/pmoves-cipher-beats/SKILL.md
  • pbnj/pinokio/api/pmoves-discord-bot/README.md
  • pbnj/pinokio/api/pmoves-discord-bot/app/.gitignore
  • pbnj/pinokio/api/pmoves-discord-bot/app/config/channel-structure.yaml
  • pbnj/pinokio/api/pmoves-discord-bot/app/package.json
  • pbnj/pinokio/api/pmoves-discord-bot/app/src/config.js
  • pbnj/pinokio/api/pmoves-discord-bot/app/src/index.js
  • pbnj/pinokio/api/pmoves-discord-bot/app/src/secure.js
  • pbnj/pinokio/api/pmoves-discord-bot/app/src/setup.js
  • pbnj/pinokio/api/pmoves-discord-bot/install.js
  • pbnj/pinokio/api/pmoves-discord-bot/pinokio.js
  • pbnj/pinokio/api/pmoves-discord-bot/pinokio.json
  • pbnj/pinokio/api/pmoves-discord-bot/setup.js
  • pbnj/pinokio/api/pmoves-discord-bot/start.js
  • pbnj/pinokio/api/pmoves-holographic-blocks/SKILL.md
  • pbnj/pinokio/api/pmoves-model-registry/SKILL.md
  • pbnj/pinokio/api/pmoves-model-selector/.gitignore
  • pbnj/pinokio/api/pmoves-model-selector/README.md
  • pbnj/pinokio/api/pmoves-model-selector/install.js
  • pbnj/pinokio/api/pmoves-model-selector/pinokio.js
  • pbnj/pinokio/api/pmoves-model-selector/pinokio.json
  • pbnj/pinokio/api/pmoves-model-selector/reset.js
  • pbnj/pinokio/api/pmoves-model-selector/select-model.js
  • pbnj/pinokio/api/pmoves-model-selector/start.js
  • pbnj/pinokio/api/pmoves-model-selector/update.js
  • pbnj/pinokio/api/pmoves-notebooklm/install.js
  • pbnj/pinokio/api/pmoves-notebooklm/pinokio.js
  • pbnj/pinokio/api/pmoves-notebooklm/start.js
  • pbnj/pinokio/api/pmoves-pbnj/.gitignore
  • pbnj/pinokio/api/pmoves-pbnj/4090-deploy.json
  • pbnj/pinokio/api/pmoves-pbnj/4090-models.json
  • pbnj/pinokio/api/pmoves-pbnj/4090-status.json
  • pbnj/pinokio/api/pmoves-pbnj/AGENTS.md
  • pbnj/pinokio/api/pmoves-pbnj/CLAUDE.md
  • pbnj/pinokio/api/pmoves-pbnj/ENVIRONMENT
  • pbnj/pinokio/api/pmoves-pbnj/GEMINI.md
  • pbnj/pinokio/api/pmoves-pbnj/QWEN.md
  • pbnj/pinokio/api/pmoves-pbnj/README.md
  • pbnj/pinokio/api/pmoves-pbnj/SKILL.md
  • pbnj/pinokio/api/pmoves-pbnj/demo.js
  • pbnj/pinokio/api/pmoves-pbnj/kvm2-deploy.json
  • pbnj/pinokio/api/pmoves-pbnj/kvm4-1-deploy.json
  • pbnj/pinokio/api/pmoves-pbnj/kvm4-2-deploy.json
  • pbnj/pinokio/api/pmoves-pbnj/kvm4-down.json
  • pbnj/pinokio/api/pmoves-pbnj/kvm4-up.json
  • pbnj/pinokio/api/pmoves-pbnj/lab-down.json
  • pbnj/pinokio/api/pmoves-pbnj/lab-up.json
  • pbnj/pinokio/api/pmoves-pbnj/local-down.json
  • pbnj/pinokio/api/pmoves-pbnj/local-logs.json
  • pbnj/pinokio/api/pmoves-pbnj/local-up.json
  • pbnj/pinokio/api/pmoves-pbnj/nats-launch-hook.js
  • pbnj/pinokio/api/pmoves-pbnj/nats-session-hook.js
  • pbnj/pinokio/api/pmoves-pbnj/pinokio.js
  • pbnj/pinokio/api/pmoves-pbnj/status.json
  • pbnj/pinokio/api/pmoves-pbnj/vps-status.json
  • pbnj/pinokio/api/pmoves-remote/README.md
  • pbnj/pinokio/api/pmoves-remote/SKILL.md
  • pbnj/pinokio/api/pmoves-remote/install.js
  • pbnj/pinokio/api/pmoves-remote/pinokio.js
  • pbnj/pinokio/api/pmoves-remote/pinokio.json
  • pbnj/pinokio/api/pmoves-remote/start.js
  • pbnj/pinokio/api/pmoves-remote/status.js
  • pbnj/pinokio/api/pmoves-services/README.md
  • pbnj/pinokio/api/pmoves-services/SKILL.md
  • pbnj/pinokio/api/pmoves-services/install.js
  • pbnj/pinokio/api/pmoves-services/pinokio.js
  • pbnj/pinokio/api/pmoves-services/pinokio.json
  • pbnj/pinokio/api/pmoves-services/reset.js
  • pbnj/pinokio/api/pmoves-services/start-core.js
  • pbnj/pinokio/api/pmoves-services/start-external.js
  • pbnj/pinokio/api/pmoves-services/start-monitoring.js
  • pbnj/pinokio/api/pmoves-services/start-voice.js
  • pbnj/pinokio/api/pmoves-services/status.js
  • pbnj/pinokio/api/pmoves-services/stop.js
  • pbnj/pinokio/api/pmoves-services/update.js
  • pbnj/pinokio/plugin/code/pmoves-codex/README.md
  • pbnj/pinokio/plugin/code/pmoves-codex/pinokio.js
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/pbnj-meta-submodule

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.

❤️ Share

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

… conflict)

Conflict: main added PMOVES-OpenRoom, Pmoves-pretext, PMOVES-Spark-VSS submodule
entries after the pbnj-conversion commit was made. Resolved by taking main's
.gitmodules content (with the new submodule entries) and appending the pbnj
entry at the end.

The pbnj/ tree from main (94 loose files) is correctly removed; pbnj is
staged as a submodule gitlink (160000) pointing at 40a6295.

Resolves mergeability for PR #2175 (pbnj-meta-submodule conversion).
@POWERFULMOVES
POWERFULMOVES marked this pull request as ready for review July 30, 2026 12:33

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a13b329e88

ℹ️ 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".

### 2. Configure PBNJ Launchers

PBNJ launcher configs are at `pbnj/pinokio/api/pmoves-services/`.
PBNJ launcher configs are at `pbnj/api/pmoves-services/`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Migrate executable PBNJ references to the new layout

When the demo room is launched through P7/Hermes or .claude/skills/demo-room, the migration leaves executable references at the removed pbnj/pinokio/api/pmoves-pbnj/demo.js path (pmoves/config/rooms/demo.room.extras.json:8 and .claude/skills/demo-room/SKILL.md:43,72). Since this change establishes pbnj/api/* as the replacement layout, those flows can no longer find demo.js; update the runtime and skill references along with the runbook paths.

AGENTS.md reference: AGENTS.md:L7-L7

Useful? React with 👍 / 👎.

@POWERFULMOVES

Copy link
Copy Markdown
Owner Author

Marked ready for review. Resolved one .gitmodules merge conflict that came up when 123 main commits landed between the branch's creation (2026-07-21) and now — main added PMOVES-OpenRoom, Pmoves-pretext, and PMOVES-Spark-VSS submodule entries. Resolution: kept main's .gitmodules (with the three new entries) and appended the pbnj entry at the end. The 80-file pbnj/ tree deletion applies cleanly (no main changes to those files since 2026-07-21).

CI: green except \ riage\ which is the pre-existing Bun runtime bug (unrelated to this PR's diff). The PR is otherwise mergeable.

@POWERFULMOVES
POWERFULMOVES merged commit e094d95 into main Jul 30, 2026
22 checks passed
@POWERFULMOVES
POWERFULMOVES deleted the chore/pbnj-meta-submodule branch July 30, 2026 17:08
POWERFULMOVES added a commit that referenced this pull request Jul 30, 2026
…lves recurring triage BLOCKED) (#2302)

* docs(trail): sign creator-collab + pbnj lane merges (2026-07-30)

- creator-collab lane SHIPS at 7/7 (PR #2293 squash 4c1c384)
- pbnj-meta-submodule conversion lands (PR #2175 squash e094d95)
- cron self-disarm path: state file on main now shows ship_count=7,
  status=complete, closing_summary posted; operator paused the
  creator-collab cron from the Mavis UI (mavis CLI is broken for
  the command-line disarm path; not blocking the lane SHIP)

Next: pmoves-pinokio fork sync to P8 + pinokio_bridge default-up
+ supabase stack default-up + claude-review/triage Bun CI fix.

* docs(trail): queued lanes plan post creator-collab SHIP (2026-07-30)

4 queued follow-on lanes ranked by impact:
1. pmoves-pinokio fork sync to P8 (no-op, gitlink already at HEAD)
2. pinokio_bridge default-up (high impact, slice 2-7 actually exercisable)
3. supabase stack default-up (real-running fix for pmoves-ui degraded)
4. claude-review + triage Bun runtime CI bug (meta-blocker for all PRs)

Operator said 'proceed though all 4 update AGNOTE first to track lanes'.

* fix(workflows): swap claude-code-action OAuth to direct API key

Root cause: CLAUDE_CODE_OAUTH_TOKEN (Pro/Max subscription) is expired.
The action's Claude API call returns result is_error:true after ~17s,
exits 1, and the workflow's triage check fails with BLOCKED.

The action's own dependencies install fine (Bun 1.3.14 cache hit; the
claude-code-action runtime is healthy) — the failure is downstream, in
the OAuth-authenticated Claude API call.

Fix: swap claude_code_oauth_token for anthropic_api_key on all 3
workflows that use anthropics/claude-code-action@be7b93b:
- .github/workflows/review-comment-monitor.yml  (actively failing)
- .github/workflows/claude-code-review.yml       (if: false, preventative)
- .github/workflows/review-autofix.yml            (opt-in via pr-trim:auto)

ANTHROPIC_API_KEY is the direct API key, rotated 2026-02-27, and is
the persistent credential. The previous OAuth token is the
Pro/Max subscription credential which expires; if the operator
re-enables OAuth later they can swap back.

Validation: the next pull_request_review event from a trusted bot
reviewer will be the live test.

---------

Co-authored-by: Shaela Bello <slbello@uncg.edu>
POWERFULMOVES added a commit that referenced this pull request Jul 30, 2026
…p (creator-collab slices 2+3) (#2300)

* docs(trail): sign creator-collab + pbnj lane merges (2026-07-30)

- creator-collab lane SHIPS at 7/7 (PR #2293 squash 4c1c384)
- pbnj-meta-submodule conversion lands (PR #2175 squash e094d95)
- cron self-disarm path: state file on main now shows ship_count=7,
  status=complete, closing_summary posted; operator paused the
  creator-collab cron from the Mavis UI (mavis CLI is broken for
  the command-line disarm path; not blocking the lane SHIP)

Next: pmoves-pinokio fork sync to P8 + pinokio_bridge default-up
+ supabase stack default-up + claude-review/triage Bun CI fix.

* docs(trail): queued lanes plan post creator-collab SHIP (2026-07-30)

4 queued follow-on lanes ranked by impact:
1. pmoves-pinokio fork sync to P8 (no-op, gitlink already at HEAD)
2. pinokio_bridge default-up (high impact, slice 2-7 actually exercisable)
3. supabase stack default-up (real-running fix for pmoves-ui degraded)
4. claude-review + triage Bun runtime CI bug (meta-blocker for all PRs)

Operator said 'proceed though all 4 update AGNOTE first to track lanes'.

* feat(compose+make): wire nats_event_bus + pinokio_bridge to default-up (creator-collab slices 2+3)

Slice 2 (pinokio_bridge) and slice 3 (nats_event_bus) of the creator-collab
lane shipped the service code + tests + skill frontmatter on 2026-07-28
but never landed in any docker-compose file. The only way to run them
was manual uvicorn (which is what slice 7's E2E evidence did). This
lane closes that gap.

What this lane ships:
1. pmoves/docker-compose.apps.yml (+104 lines)
   - nats_event_bus service (port 8131, fail-closed token, depends on
     nats, profiles=[apps, pinokio])
   - pinokio_bridge service (port 8130, fail-closed token, bind-mounts
     \, user=1000:1000, depends on nats + nats_event_bus,
     profiles=[apps, pinokio])
2. pmoves/Makefile (+44 lines)
   - up-pinokio target brings up both via
     'docker compose --profile apps --profile pinokio up -d'
   - nats-event-bus-smoke + pinokio-bridge-smoke targets (handles 503
     with pterm-not-found hint gracefully)
   - up-creator-collab + bringup-creator-collab aliases
3. pmoves/env.shared.example (+22 lines)
   - 7 new env vars documented (NATS_EVENT_BUS_TOKEN,
     PMOVES_BRIDGE_TOKEN, PINOKIO_BRIDGE_PORT, etc)

Why profile=apps/pinokio (not the default 'up'):
- the operator's default stack intentionally excludes the Pinokio
  dependency chain (you need pterm on the host)
- bringing it up requires 'make up-pinokio' explicitly
- /apps profile keeps the apps tier; /pinokio profile isolates the
  Pinokio dependency for selective bring-up

Validation:
- YAML parse OK: 7 services in apps.yml (wger, wger-db, wger-nats-bridge,
  botz-gateway, pmoves-yt, nats_event_bus, pinokio_bridge)
- 'make -n up-pinokio' expands cleanly (env vars must be set in env.shared
  for real boot)
- 171/171 service tests still green (no code changes to the services
  themselves, only compose + make wiring)

* fix(compose): move nats_event_bus + pinokio_bridge into source (fixes overlay drift gate)

#2300's two creator-collab services were added only to the GENERATED overlay
docker-compose.apps.yml, never to the source docker-compose.yml. CI regenerates
overlays from source (split_compose.py) and fails the drift gate because the
regen wipes the hand-added services (99 deletions).

Proper fix (overlays are generated, runtime reads source):
- docker-compose.yml: add both service blocks in the source, placed right after
  pmoves-yt (an apps-group service) so ruamel attaches the leading comment to an
  apps-tier node — keeps it in apps.yml instead of leaking into workers.yml.
- split_compose.py: register nats_event_bus + pinokio_bridge in SERVICE_GROUPS
  ["apps"] so the regen routes them to apps.yml (else they fall into core).
- docker-compose.apps.yml: regenerated — byte-identical to what CI produces, so
  the drift gate now passes (apps.yml is the only overlay that changes).

Verified: split_compose regen leaves ONLY apps.yml changed (7 services, both
present); CI-parity `docker compose config --quiet` on source passes (the :? bus/
bridge token guards are satisfied by env.shared.example's non-empty defaults).

Merge of origin/main also carried in (cipher gitlink current, AGNOTE register
conflict resolved as union) so the submodule-gitlink-gate passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(compose): canonical PMOVES_NETWORKS wiring for the two new services

The Validate-Compose job runs inject_pmoves_networks.py --check BEFORE the split
gate. It failed because pinokio_bridge carried a mid-service comment (between
environment: and ports:) that the injector's canonical serialization drops, so
committed != canonical. Ran the injector (removes that comment; PMOVES_NETWORKS
values were already correct) and re-split. The 503/fail-closed note it removed is
already stated in the service's leading comment block.

Verified: inject_pmoves_networks.py --check now reports "in sync (99 services)";
split regen leaves only apps.yml changed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Shaela Bello <slbello@uncg.edu>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
POWERFULMOVES pushed a commit that referenced this pull request Jul 31, 2026
- creator-collab lane SHIPS at 7/7 (PR #2293 squash 4c1c384)
- pbnj-meta-submodule conversion lands (PR #2175 squash e094d95)
- cron self-disarm path: state file on main now shows ship_count=7,
  status=complete, closing_summary posted; operator paused the
  creator-collab cron from the Mavis UI (mavis CLI is broken for
  the command-line disarm path; not blocking the lane SHIP)

Next: pmoves-pinokio fork sync to P8 + pinokio_bridge default-up
+ supabase stack default-up + claude-review/triage Bun CI fix.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants