Skip to content

feat: run Pocket Pi across macOS, simulator, and ESP32-P4 - #9

Merged
siwei-yuan merged 16 commits into
pocket-stack:mainfrom
siwei-yuan:codex/unified-hosts
Aug 6, 2026
Merged

feat: run Pocket Pi across macOS, simulator, and ESP32-P4#9
siwei-yuan merged 16 commits into
pocket-stack:mainfrom
siwei-yuan:codex/unified-hosts

Conversation

@siwei-yuan

Copy link
Copy Markdown
Collaborator

Summary

  • preserve the native macOS profile with the full unmodified pi-coding-agent runtime and its existing provider support
  • add a bounded pi-agent-core profile shared by the macOS ESP32 product simulator and physical ESP32-P4 firmware
  • share the PocketJS Chat, Files, Settings, keyboard, workspace, schedule, and core-tool contracts across embedded hosts
  • keep model transports at host boundaries: local Codex and direct providers in the simulator; UART Codex or Claude Code and direct wireless providers on hardware
  • keep product integrations such as Robinhood and Exa outside Pocket Pi core

Architecture

Pocket Pi remains one runtime family with two profiles and three supported run modes:

  1. native macOS with full pi-coding-agent
  2. the ESP32 product profile simulated on macOS
  3. the physical PocketJS and QuickJS agent on ESP32-P4

The simulator is a contract-level product simulator, not a CPU or peripheral emulator. It shares the embedded Agent, tool registry, UI state, touch hit map, and workspace rules with firmware while replacing hardware adapters with macOS implementations.

Validation

  • JavaScript desktop and embedded bundles rebuilt from source
  • cargo test --workspace: 46 passed, 3 ignored
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo build --workspace --all-targets
  • cargo fmt --all -- --check
  • cargo xtask build esp32-p4
  • Python UART bridge import and syntax checks
  • physical ESP32-P4 release firmware, UART Mac Codex streaming, LittleFS read/write, and recurring schedules were exercised end to end on 2026-08-05

The direct physical Wi-Fi to provider path compiles, but was not claimed as a live E2E result because the available AP did not provide the required route.

@siwei-yuan
siwei-yuan merged commit bb2c672 into pocket-stack:main Aug 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant