Commit Graph

238 Commits

Author SHA1 Message Date
yuchou87 fcedba1c9d fix(docker): add profiles to build commands
Add --profile gateway --profile agent flags to docker build commands
to ensure services are built even when using profiles in compose files.

Without profiles specified, docker compose build skips all services
that have a profile defined, resulting in 'No services to build' warning.

Changes:
- docker-build: add --profile flags
- docker-build-full: add --profile flags

Fixes: WARN[0000] No services to build
2026-02-16 15:59:34 +08:00
yuchou87 1764181e6f fix(docker): correct uv installation path
Fix uv symlink path from /root/.cargo/bin to /root/.local/bin.
The uv installer puts binaries in ~/.local/bin, not ~/.cargo/bin.

Changes:
- Update uv symlink source: /root/.local/bin/uv
- Add uvx symlink as well (installed alongside uv)

Fixes: /bin/sh: 1: uv: not found error during build
2026-02-16 15:57:30 +08:00
yuchou87 1c9c32022e fix(docker): ensure uv is accessible in system PATH
Symlink uv from /root/.cargo/bin to /usr/local/bin to make it
accessible without relying on ENV PATH setting. Add version check
to verify successful installation during build.

Changes:
- Symlink uv to /usr/local/bin/uv
- Add 'uv --version' validation step
- Remove ENV PATH setting (no longer needed)

Fixes: uv: not found error in test script
2026-02-16 15:52:59 +08:00
yuchou87 c05742330d refactor(docker): migrate to docker compose v2 syntax
Replace docker-compose (v1) with docker compose (v2) command syntax
across all files. Docker Compose v2 is now the default in modern
Docker installations and uses 'docker compose' instead of 'docker-compose'.

Changes:
- scripts/test-docker-mcp.sh: update all 8 docker-compose commands
- Makefile: update all 8 docker-compose commands in docker-* targets
- No changes to file names (docker-compose.full.yml remains as-is)

Compatibility: Requires Docker with Compose v2 plugin (Docker Desktop
or docker-compose-plugin package)
2026-02-16 15:50:46 +08:00
yuchou87 b9c2b3555a fix(docker): override entrypoint in test script to avoid interactive mode
Add --entrypoint sh flag to docker-compose run commands in test script
to bypass picoclaw agent's interactive mode. This allows direct command
execution for testing MCP tools.

Changes:
- Add --entrypoint sh to all docker-compose run commands
- Use SERVICE variable for better maintainability
- Simplify command syntax: sh -c 'cmd' → -c 'cmd'
2026-02-16 15:49:14 +08:00
yuchou87 51ed54a414 refactor(docker): switch to node:24-bookworm-slim base image
Replace debian:bookworm-slim with node:24-bookworm-slim to:
- Use latest Node.js 24 LTS and npm
- Fix npm version compatibility issues (npm@11 requires node >=20.17)
- Simplify Dockerfile by removing nodejs/npm installation
- Better optimization from official Node.js image

Changes:
- Dockerfile.full: use node:24-bookworm-slim base
- Remove nodejs, npm installation steps
- Remove npm upgrade step (included in base image)
- Update Makefile descriptions to reflect Node.js 24
2026-02-16 15:40:07 +08:00
yuchou87 ce3fc4bc67 feat(docker): add full-featured Docker image with MCP tools support
Add Dockerfile.full with Debian-based runtime including git, nodejs, npm, python3, and uv for MCP servers. Add docker-compose.full.yml with npm cache optimization. Add Makefile targets for docker-build-full, docker-run-full, and docker-test. Add test script for MCP tools validation.
2026-02-16 14:48:40 +08:00
yuchou87 91c168db20 feat(mcp): add Model Context Protocol integration
Implement comprehensive MCP support with stdio/HTTP/SSE transports, environment variable configuration (env and envFile), custom headers, tool registration, and automatic resource cleanup. Includes full test coverage and VSCode-compatible configuration.

- Added pkg/mcp/manager.go for server lifecycle management
- Added pkg/tools/mcp_tool.go for tool wrapping
- Integrated into agent loop with cleanup
- Support for envFile loading (.env format)
- Headers injection for HTTP/SSE authentication
- Example configs for filesystem, github, brave-search, postgres
2026-02-15 17:26:36 +08:00
Meng Zhuo 9a3f3611c3 ci: init goreleaser 2026-02-15 09:54:32 +08:00
Meng Zhuo 8eb9dcd99a Merge pull request #173 from is-Xiaoen/fix/code-review-bugs-116
fix: resolve multiple bugs from code review #116
2026-02-15 09:42:26 +08:00
xiaoen 0a88ff0817 fix: resolve multiple bugs from code review #116
Fixes four issues identified in the community code review:

- Session persistence broken on Windows: session keys like
  "telegram:123456" contain ':', which is illegal in Windows
  filenames. filepath.Base() strips drive-letter prefixes on Windows,
  causing Save() to silently fail. Added sanitizeFilename() to
  replace invalid chars in the filename while keeping the original
  key in the JSON payload.

- HTTP client with no timeout: HTTPProvider used Timeout: 0 (infinite
  wait), which can hang the entire agent if an API endpoint becomes
  unresponsive. Set a 120s safety timeout.

- Slack AllowFrom type mismatch: SlackConfig used plain []string
  while every other channel uses FlexibleStringSlice, so numeric
  user IDs in Slack config would fail to parse.

- Token estimation wrong for CJK: estimateTokens() divided byte
  length by 4, but CJK characters are 3 bytes each, causing ~3x
  overestimation and premature summarization. Switched to
  utf8.RuneCountInString() / 3 for better cross-language accuracy.

Also added unit tests for the session filename sanitization.

Ref #116
2026-02-15 09:36:59 +08:00
Meng Zhuo ddd73cad48 Merge pull request #151 from qiaoborui/codex/fix-openai-oauth-authorize-url
fix(auth): align OpenAI OAuth browser login URL
2026-02-15 09:27:19 +08:00
Meng Zhuo 3334595859 Merge pull request #134 from Sethispr/patch-1
chore: lint readme.md
2026-02-15 09:23:13 +08:00
seth 25a47b50ef Merge branch 'main' into patch-1 2026-02-14 17:21:18 -08:00
Meng Zhuo 0f506d4202 Merge pull request #165 from alexhoshina/feat/onebot
feat: add OneBot channel support
2026-02-15 09:12:00 +08:00
Meng Zhuo 6ce7659090 Merge pull request #172 from mymmrac/docker-curl
feat(docker): Added curl for Docker image
2026-02-15 09:08:27 +08:00
Meng Zhuo 6f2e730eba Merge pull request #178 from Lixeer/main
feat: Add `GitHub Copilot` provider support
2026-02-15 09:04:05 +08:00
Lixeer 16e5a02953 fix(http_provider): Remove extra parameter from CreateProvider function. 2026-02-15 08:06:29 +08:00
Lixeer 4b886b6573 fix: not used result 2026-02-15 08:02:23 +08:00
Lixeer 0a4bf32e81 try after workflow fix 2026-02-15 07:54:04 +08:00
lxowalle 9eb1a53fb8 fix: PR workflow execution failure 2026-02-15 07:43:46 +08:00
Lixeer 5a6ad37dab code fmt 2026-02-15 07:34:12 +08:00
Lixeer f6d6221c09 make fmt 2026-02-15 07:00:40 +08:00
Lixeer 7a9659971d make fmt 2026-02-15 06:55:20 +08:00
Lixeer ecbe31599e chore: remove redundant debug output 2026-02-15 06:30:31 +08:00
Lixeer 6c392c3387 fix: openclaw crash because of empty config 2026-02-15 06:11:07 +08:00
Lixeer 0aab8d8afc feat:add github_copilot to providers factory 2026-02-15 06:10:00 +08:00
Lixeer 5faa67b77d feat: add Github Copilot provider 2026-02-15 05:23:42 +08:00
lxowalle 7140e73d46 * fix fmt bug 2026-02-15 03:07:12 +08:00
lxowalle dbf2739783 fix: Remove the waiting animation for Telegram replies to reduce the risk of being rate-limited. 2026-02-15 02:26:42 +08:00
lxowalle a9557aa073 feat: Support installing built-in AGENT files and skills during picoclaw onboard 2026-02-15 01:57:13 +08:00
Artem Yadelskyi a24cbd4385 feat(docker): Added curl for Docker image 2026-02-14 14:44:19 +02:00
Hoshina 8cff6cf312 fix: improve connection handling in OneBotChannel 2026-02-14 20:25:55 +08:00
Hoshina 60c3d96b5e style: fix alignment of fields in BotStatus struct 2026-02-14 20:02:30 +08:00
Hoshina 773ce9bcb6 fix: update BotStatus type in oneBotRawEvent and adjust status checks 2026-02-14 19:58:19 +08:00
Meng Zhuo 1cff7d4e37 Merge pull request #153 from alexhoshina/doc/fix-errors
docs: update QQ Open Platform link to correct URL
2026-02-14 17:48:04 +08:00
Hoshina f7421128a0 style: remove unnecessary log messages in WebSocket listener 2026-02-14 17:46:47 +08:00
Meng Zhuo 1cb690df32 Merge pull request #169 from PixelTux/architecture-32-bit
Architecture 32 bit
2026-02-14 17:27:20 +08:00
Meng Zhuo 59c7aa1628 Merge pull request #167 from Lixeer/main
feat: add provider `deepseek`
2026-02-14 17:27:01 +08:00
Hoshina 1fcf3fde0f style: fix format 2026-02-14 17:23:18 +08:00
Meng Zhuo b805ec8bde Merge pull request #158 from easyzoom/feat/device-hotplug-notifications
feat: add device hotplug event notifications (USB on Linux)
2026-02-14 17:17:53 +08:00
easyzoom 378045510d feat: add device hotplug event notifications (USB on Linux) 2026-02-14 17:03:04 +08:00
karan 2720fa71c7 add I2C and SPI tools for hardware interaction (#140)
* add I2C and SPI tools for hardware interaction

- Implemented I2CTool for I2C bus interaction, including device scanning, reading, and writing.
- Implemented SPITool for SPI bus communication, supporting device listing, data transfer, and reading.
- Added platform-specific implementations for Linux and stubs for non-Linux platforms.
- Updated agent loop to register new I2C and SPI tools.
- Created documentation for hardware skills, including usage examples and pinmux setup instructions.

* Remove build constraints for Linux from I2C and SPI tool files.
2026-02-14 16:53:17 +08:00
Hoshina 7fa641a2ed feat: add OneBot channel support 2026-02-14 16:50:21 +08:00
Lixeer 18d3634f1b feat: Improve parameter fault tolerance for DeepSeek 2026-02-14 16:47:46 +08:00
Lixeer afc3a2cda3 feat: add provider deepseek 2026-02-14 16:35:49 +08:00
PixelTux ba0ef4b62c Merge branch 'main' into architecture-32-bit 2026-02-14 09:32:24 +01:00
ex-takashima 7d45101fcd docs: add LINE channel setup instructions to README
Add LINE Official Account setup guide to both README.md and README.ja.md,
including configuration, webhook URL setup, and Docker Compose port note.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 16:29:46 +08:00
moveyield 1299b20465 refactor: remove unused min func
Signed-off-by: moveyield <moveyield@outlook.com>
2026-02-14 16:24:20 +08:00
qiaoborui da804a0748 fix(codex): include required instructions and improve account-id extraction 2026-02-14 12:48:16 +08:00