Skip to content

orchestrator active#16

Open
mionemedia wants to merge 16 commits intoopenagen:mainfrom
mionemedia:main
Open

orchestrator active#16
mionemedia wants to merge 16 commits intoopenagen:mainfrom
mionemedia:main

Conversation

@mionemedia
Copy link

Summary

Describe this PR in 2-5 bullets:

  • Base branch target (master for all contributions):
  • Problem:
  • Why it matters:
  • What changed:
  • What did not change (scope boundary):

Label Snapshot (required)

  • Risk label (risk: low|medium|high):
  • Size label (size: XS|S|M|L|XL, auto-managed/read-only):
  • Scope labels (core|agent|channel|config|cron|daemon|doctor|gateway|health|heartbeat|integration|memory|observability|onboard|provider|runtime|security|service|skillforge|skills|tool|tunnel|docs|dependencies|ci|tests|scripts|dev, comma-separated):
  • Module labels (<module>: <component>, for example channel: telegram, provider: kimi, tool: shell):
  • Contributor tier label (trusted contributor|experienced contributor|principal contributor|distinguished contributor, auto-managed/read-only; author merged PRs >=5/10/20/50):
  • If any auto-label is incorrect, note requested correction:

Change Metadata

  • Change type (bug|feature|refactor|docs|security|chore):
  • Primary scope (runtime|provider|channel|memory|security|ci|docs|multi):

Linked Issue

  • Closes #
  • Related #
  • Depends on # (if stacked)
  • Supersedes # (if replacing older PR)

Supersede Attribution (required when Supersedes # is used)

  • Superseded PRs + authors (#<pr> by @<author>, one per line):
  • Integrated scope by source PR (what was materially carried forward):
  • Co-authored-by trailers added for materially incorporated contributors? (Yes/No)
  • If No, explain why (for example: inspiration-only, no direct code/design carry-over):
  • Trailer format check (separate lines, no escaped \n): (Pass/Fail)

Validation Evidence (required)

Commands and result summary:

cargo fmt --all -- --check
cargo clippy --all-targets -- -D warnings
cargo test
  • Evidence provided (test/log/trace/screenshot/perf):
  • If any command is intentionally skipped, explain why:

Security Impact (required)

  • New permissions/capabilities? (Yes/No)
  • New external network calls? (Yes/No)
  • Secrets/tokens handling changed? (Yes/No)
  • File system access scope changed? (Yes/No)
  • If any Yes, describe risk and mitigation:

Privacy and Data Hygiene (required)

  • Data-hygiene status (pass|needs-follow-up):
  • Redaction/anonymization notes:
  • Neutral wording confirmation (use ZeroClaw/project-native labels if identity-like wording is needed):

Compatibility / Migration

  • Backward compatible? (Yes/No)
  • Config/env changes? (Yes/No)
  • Migration needed? (Yes/No)
  • If yes, exact upgrade steps:

i18n Follow-Through (required when docs or user-facing wording changes)

  • i18n follow-through triggered? (Yes/No)
  • If Yes, locale navigation parity updated in README*, docs/README*, and docs/SUMMARY.md for supported locales (en, zh-CN, ja, ru, fr, vi)? (Yes/No)
  • If Yes, localized runtime-contract docs updated where equivalents exist (minimum for fr/vi: commands-reference, config-reference, troubleshooting)? (Yes/No/N.A.)
  • If Yes, Vietnamese canonical docs under docs/i18n/vi/** synced and compatibility shims under docs/*.vi.md validated? (Yes/No/N.A.)
  • If any No/N.A., link follow-up issue/PR and explain scope decision:

Human Verification (required)

What was personally validated beyond CI:

  • Verified scenarios:
  • Edge cases checked:
  • What was not verified:

Side Effects / Blast Radius (required)

  • Affected subsystems/workflows:
  • Potential unintended effects:
  • Guardrails/monitoring for early detection:

Agent Collaboration Notes (recommended)

  • Agent tools used (if any):
  • Workflow/plan summary (if any):
  • Verification focus:
  • Confirmation: naming + architecture boundaries followed (AGENTS.md + CONTRIBUTING.md):

Rollback Plan (required)

  • Fast rollback command/path:
  • Feature flags or config toggles (if any):
  • Observable failure symptoms:

Risks and Mitigations

List real risks in this PR (or write None).

  • Risk:
    • Mitigation:

tgruben-circuit and others added 16 commits February 18, 2026 14:08
… MCU + Linux tools

Expand the existing UNO Q Bridge peripheral from 2 GPIO tools to 13 tools
covering the board's full capability set. ZeroClaw can now run as an
edge-native agent directly on the UNO Q's Debian Linux (Cortex-A53).

MCU tools (via Bridge socket to STM32U585):
- GPIO read/write (D0-D21), ADC read (A0-A5, 12-bit, 3.3V)
- PWM write (D3/D5/D6/D9/D10/D11), I2C scan/transfer, SPI transfer
- CAN send (stub), LED matrix (8x13), RGB LED (LED3-4)

Linux tools (direct MPU access):
- Camera capture (MIPI-CSI via GStreamer)
- Linux RGB LED (sysfs), System info (temp/mem/disk/wifi)

Also includes:
- Expanded Arduino sketch with all MCU peripheral handlers
- Expanded Python Bridge server with command routing
- DeployUnoQ CLI command for edge-native deployment via SSH
- Cross-compile script (dev/cross-uno-q.sh) for aarch64
- UNO Q datasheet for RAG pipeline (docs/datasheets/arduino-uno-q.md)
- Pin validation with datasheet constraints (PWM pins, ADC channels, etc.)
- 19 unit tests covering validation, response parsing, and tool schemas
Three issues discovered during deployment to actual UNO Q hardware:

1. Bridge.call() takes positional args, not a list — changed from
   Bridge.call("digitalRead", [pin]) to Bridge.call("digitalRead", pin)
2. Bridge.call() must run on main thread (not thread-safe) — restructured
   socket server to use a queue pattern: accept thread enqueues requests,
   main App.run() loop drains queue and calls Bridge
3. Docker container networking requires 0.0.0.0 bind (not 127.0.0.1)
4. Wire/SPI are built into Zephyr platform, removed from sketch.yaml
5. Renamed C++ functions to bridge_* prefix to avoid Arduino built-in clashes
6. Changed const char* params to String for MsgPack RPC compatibility

Tested on hannah.local: gpio_read, gpio_write, adc_read, pwm_write,
capabilities all confirmed working.
…l cross-compile config

- Camera capture tool now uses v4l2-ctl instead of GStreamer (works with
  USB cameras like NETUM, not just MIPI-CSI)
- Tool output includes [IMAGE:<path>] hint so Telegram channel sends
  the captured photo directly to the user
- Added width/height/device parameters (defaults: 1280x720, /dev/video0)
- Added aarch64-unknown-linux-musl linker config to .cargo/config.toml
…camera for USB

The daemon's channel server was missing peripheral tools — only the
interactive `agent` command loaded them. Now `start_channels()` calls
`create_peripheral_tools()` so Telegram/Discord/Slack channels get
access to all UNO Q hardware tools.

Also updated camera capture tool description to guide the LLM to use
[IMAGE:<path>] markers for Telegram photo delivery.
feat(peripherals): Arduino UNO Q edge-native agent with full MCU + Linux peripheral tools
- config.toml with supervised autonomy, SQLite memory, cost tracking
- docker-compose.yml with security-hardened container (non-root, capability drops)
- Uses zeroclaw-local:latest image (built from source)
- Telegram channel with auto-reconnect via allowed_users
- CLI channel enabled for gateway webhook access
- Model routes: Claude Sonnet 4 (default), Gemma 3n, GPT-OSS 20B, Claude 4.5, Gemini Flash Lite
- HTTP requests enabled for n8n webhook integration (workflows.mi1-media.com)
- Obsidian vault mounted read-only as knowledge base
- Pairing code helper scripts (PowerShell + batch)
- .env.example with placeholder API key
- README with full setup guide
- Replace hardcoded bot_token with __TELEGRAM_BOT_TOKEN__ placeholder
- Init container now injects token via sed from TELEGRAM_BOT_TOKEN env var
- Added TELEGRAM_BOT_TOKEN to .env.example with placeholder
- Token stays in .env (gitignored), never committed to repo
- Changed allowed_domains from ['workflows.mi1-media.com'] to ['*']
- Agent can now visit any website for marketing research
- Still protected by autonomy level (supervised), workspace isolation, and cost limits
- Created AGENTS.md with 16 specialist agents organized by category
- Mounted agency-agents repo at /zeroclaw-data/workspace/agents/ (read-only)
- AGENTS.md auto-injected into system prompt by ZeroClaw's OpenClaw identity system
- User says 'Activate Book Co-Author' in Telegram to switch personas
- Agents: Book Co-Author, Content Creator, Social Media Strategist, SEO Specialist,
  Brand Guardian, LinkedIn Creator, Podcast Strategist, Instagram Curator,
  TikTok Strategist, Twitter Engager, Reddit Builder, Orchestrator,
  Document Generator, Executive Summary, Analytics Reporter, Sales Extraction
- Includes workflow templates (e.g., Book Chapter Development)
- Mounted deploy/marketing/output/ into container at /zeroclaw-data/workspace/output/
- Init container chowns output dir to uid 65534 for write access
- Updated AGENTS.md with output folder instructions for all agents
- Agent can create .md, .txt, .pdf scripts, .docx scripts directly readable by user
…selection

- Orchestrator now auto-selects the right specialist based on user's request
- No need to manually 'Activate' agents — it reads definitions and adopts workflows automatically
- Multi-step projects get planned across multiple specialists sequentially
- Manual override still available via 'Activate [Agent Name]'
feat(deploy): make orchestrator the default mode for automatic agent …
…ce, audio, video)

- parse_update_message now falls back to 'caption' when 'text' is absent
- Extract file metadata from document, photo, voice, audio, and video messages
- Download files via Telegram Bot API (getFile + file URL) and save to workspace
- Files saved to output/uploads/ directory (host-accessible)
- Prepend file path to message content so agent can reference uploaded files
- Graceful fallback: if download fails, agent still receives the caption text
feat(telegram): support incoming file uploads (documents, photos, voi…
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.

3 participants