Commit graph

1541 commits

Author SHA1 Message Date
zeed zhao
6ea364e67d
feat(web): protect launcher dashboard with token and SPA login (#1953)
Add token-based authentication for the Launcher's embedded Web Dashboard.

- Ephemeral token generated in-memory each run (or via PICOCLAW_LAUNCHER_TOKEN env var)
- HMAC-SHA256 session cookie (HttpOnly, SameSite=Lax, Secure when HTTPS)
- Bearer token support for API/script access
- Rate limiting on login (10 attempts/IP/min)
- Referrer-Policy: no-referrer on all responses
- POST-only logout with JSON content-type (CSRF-safe)
- System tray "Copy dashboard token" action
- Login page shows contextual help (console/tray/log file path)
- Path traversal protection via path.Clean
- X-Forwarded-Host/Port/Proto support for reverse proxy deployments
- Full i18n support (English, Chinese)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 13:11:43 +08:00
肆月
27f638e909
fix: unified restart required (#1978)
Unified restart-required detection and notification mechanism so that model, tool, and configuration changes all follow the same signature-based comparison logic.
2026-03-28 22:13:50 +08:00
Kunal Karmakar
1809d04905
chore(provider): use openai responses api for azure openai endpoints (#2110)
Migrate Azure OpenAI provider from legacy Chat Completions API to the OpenAI Responses API.

- Switch API endpoint from `/openai/deployments/{deployment}/chat/completions` to `/openai/v1/responses`
- Change auth header from `Api-Key` to `Authorization: Bearer`
- Use `responses.ResponseNewParams` SDK types for request construction
- Extract shared Responses API utilities into `openai_responses_common` package
- Deduplicate 178 lines from codex_provider.go by reusing shared package
- Add 593 lines of comprehensive test coverage for the shared package

Closes #2111

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 20:50:24 +08:00
Mauro
026a1339c7
simplified duplicated code (#1935) 2026-03-28 20:28:24 +08:00
champly
11dec0c80a
fix(weixin): persist context tokens to disk to survive restarts (#2124) 2026-03-28 20:23:14 +08:00
Guoguo
30155c1c59
Merge pull request #2119 from BeaconCat/fix/update-assets
docs: add macOS Gatekeeper bypass guide to WebUI Launcher section
docs: update WeCom channel docs and README provider/channel tables
docs: add Malay README and docs, add v0.2.4 news to all languages
docs(wecom): add fr/ja/pt-br/vi translations for unified WeCom channel
2026-03-28 19:02:43 +08:00
Guoguo
465ca0361c docs(wecom): add fr/ja/pt-br/vi translations for unified WeCom channel docs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 03:58:52 -07:00
Guoguo
62d40a02d4
fix: resolve typecheck errors in loop_test.go and dingtalk_test.go (#2122)
- loop_test.go: replace undefined WithSecurity/SecurityConfig/ModelSecurityEntry
  with direct APIKeys field using SimpleSecureStrings()
- dingtalk_test.go: use ClientSecret.String() and ClientSecret.Set()
  instead of non-existent ClientSecret() and SetClientSecret() methods

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 18:58:09 +08:00
BeaconCat
4d6292ca20
Merge branch 'main' into fix/update-assets 2026-03-28 18:47:49 +08:00
BeaconCat
836cbc3066 docs: add Malay README and docs, add v0.2.4 news to all languages
- Add README.my.md (full Malay translation from English, including
  macOS guide, MiMo provider, unified WeCom row, all sections)
- Add docs/my/ (chat-apps, configuration, debug, docker, spawn-tasks,
  troubleshooting) from upstream PR #1770
- Add [Malay](README.my.md) language link to all 8 existing READMEs
- Add v0.2.4 news entry to all 9 READMEs (en/zh/fr/ja/pt-br/vi/id/it/my)
- Move 2026-02-26 20K Stars entry into Earlier news in all READMEs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 18:46:21 +08:00
Alix-007
b6951b6925
fix(dingtalk): honor mention-only groups and strip leading mentions (#2054)
* fix(dingtalk): honor @mention flag in mention-only groups

* fix(dingtalk): strip leading mentions in group payloads

---------

Co-authored-by: Alix-007 <267018309+Alix-007@users.noreply.github.com>
2026-03-28 18:26:10 +08:00
Hua Audio
0e13f6bdec
fix/wechat-new-protocol (#2106)
* fix/wechat-new-protocol

* fix cdn download logic
2026-03-28 18:18:01 +08:00
BeaconCat
ba96f11f90 docs: update WeCom channel docs and README provider/channel tables
- Rewrite docs/channels/wecom/README.md and README.zh.md with unified
  3-option setup guide (Web UI QR / CLI QR / manual config), full config
  table with defaults and env vars, runtime behavior details, and
  migration notes from legacy wecom_bot/wecom_app/wecom_aibot
- Add assets/wecom-qr-binding.jpg screenshot for Web UI QR binding flow
- Remove obsolete docs/channels/wecom/wecom_bot/, wecom_app/, wecom_aibot/
  subdirectories (18 files, all language variants)
- Update Channels table in all 8 READMEs: replace 3 legacy WeCom rows
  with single unified WeCom row; zh README links to README.zh.md,
  others link to README.md
- Add Xiaomi MiMo (mimo/) to Providers table in all 8 READMEs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 18:02:13 +08:00
Muhammad Asyraf
d7c0205052
docs: add Malay language (#1770)
* Add comprehensive documentation for PicoClaw configuration, chat applications, debugging, Docker setup, async tasks, and troubleshooting on MY language:

- Introduced a new document on MY language for chat applications configuration detailing setup for Telegram, Discord, WhatsApp, and others.
- Created a configuration guide on MY language outlining environment variables, workspace structure, and security settings.
- Added a debugging section to assist users in troubleshooting and understanding agent interactions on MY language.
- Provided a Docker guide on MY language for easy deployment using Docker Compose.
- Documented the use of spawn on MY language for asynchronous tasks and how to configure heartbeat settings.
- Included a troubleshooting section on MY language for common model-related errors.

* docs: add Malay language support to documentation

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-28 17:34:58 +08:00
BeaconCat
5d0cf36a18 docs: add macOS Gatekeeper bypass guide to WebUI Launcher section
Add a collapsible macOS security warning guide under the WebUI Launcher
section in all 8 README languages (en/zh/fr/ja/pt-br/vi/id/it).

- New assets: macos-gatekeeper-warning.jpg, macos-gatekeeper-allow.jpg
- Updated asset: launcher-tui.jpg
- Two-step guide: shows Gatekeeper warning screenshot, then
  Privacy & Security → Open Anyway flow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 17:29:16 +08:00
Mauro
230942d234
fix(loop): polling (#2103) 2026-03-28 16:36:06 +08:00
xiwuqi
e011284d8f
fix(agent): use light provider for routed model calls (#2038) 2026-03-28 15:25:23 +08:00
BeaconCat
c6061dd0d7
docs: update WeChat QR code and TUI launcher screenshot (#2109)
* docs: update WeChat QR code and TUI launcher screenshot

* docs: convert launcher-tui.jpg from PNG to proper JPEG format

---------

Co-authored-by: BeaconCat <BeaconCat@users.noreply.github.com>
2026-03-28 14:22:46 +08:00
Cytown
f1cb7cc8f5
fix gateway reload will cause pico stop working issue (#2082)
* fix gateway reload will cause pico stop working issue

* fix for review
2026-03-28 11:30:31 +08:00
Mauro
60d7ec20a5
feat(log): prompt tokens (#2047) 2026-03-28 02:00:12 +08:00
Cytown
b646d3b8fe
refactor config and security to simplified the structure (#2068) 2026-03-28 00:03:34 +08:00
Cytown
98c78363b3
change default debug level to warn (#2084) 2026-03-27 21:04:28 +08:00
Cytown
0c9e4f0658
fix for FlexibleStringSlice cause picoclaw start crash issue (#2078) 2026-03-27 20:49:51 +08:00
daming大铭
25ce52715d
Merge pull request #2070 from afjcjsbx/feat/improve-web-tools
feat(tools) time range in web_search
2026-03-27 19:36:24 +08:00
Mauro
76cd7f8ad5
Merge pull request #2085 from lc6464/fix/chat/break-word
fix(chat): add break-words class to user message for better text wrapping
2026-03-27 10:56:47 +01:00
lc6464
b5e29ae501
fix(chat): add break-words class to user message for better text wrapping 2026-03-27 17:11:19 +08:00
Meng Zhuo
9cbb4ab7ad
Merge pull request #2071 from afjcjsbx/fix/array-placeholder
fix(config): array placeholder
2026-03-27 09:24:23 +08:00
afjcjsbx
d385491592 fix(config): array placeholder 2026-03-26 21:40:38 +01:00
afjcjsbx
e2018c4aa7 fix lint 2026-03-26 21:33:43 +01:00
afjcjsbx
b7f6ab7176 fix conf 2026-03-26 21:27:35 +01:00
afjcjsbx
48c04e050d feat(tools) range in web_search 2026-03-26 21:02:46 +01:00
Mauro
e6c05cb4ec
Merge pull request #2069 from Alix-007/docs/issue-1908-model-cascade
docs(providers): clarify automatic model failover cascade configuration
2026-03-26 20:51:09 +01:00
Alix-007
9f02a5f33c docs(providers): clarify automatic model failover cascade 2026-03-27 02:29:48 +08:00
Mauro
463a647a33
Merge pull request #2043 from apnea/main
docs(providers): add Z.AI Coding Plan to providers info
2026-03-26 13:33:53 +01:00
apnea
06be65e2e2
Fix API key links for Z.AI API key and add Z.AI example
Updated API key links for Z.AI Coding Plan and explicit Z.AI config example
2026-03-26 11:09:09 +01:00
Mauro
4bdf8f0e1d
Merge pull request #1829 from perhapzz/test/add-fileutil-health-tests
test: add unit tests for pkg/fileutil and pkg/health
2026-03-26 10:42:13 +01:00
pete
5db5717fdb docs: Add Z.AI Coding Plan provider example
## Summary
- Add zai-coding to Providers table
- Add Z.AI Coding Plan to All Supported Vendors table
- Add Z.AI Coding Plan configuration example with troubleshooting note
2026-03-26 09:19:15 +01:00
Alix-007
9d6a445bb1
docs: clarify gateway.log_level default and options (#2013) (#2015)
Co-authored-by: Alix-007 <267018309+Alix-007@users.noreply.github.com>
2026-03-26 09:32:56 +08:00
Alix-007
5c210e6f15
fix(config): disable tool feedback by default (#2026)
Co-authored-by: Alix-007 <267018309+Alix-007@users.noreply.github.com>
2026-03-26 09:31:42 +08:00
Alix-007
9503f38ace
docs: clarify gateway vs launcher chat endpoints (#2025)
Co-authored-by: Alix-007 <267018309+Alix-007@users.noreply.github.com>
2026-03-26 09:27:34 +08:00
Mauro
5db1e94693
Merge pull request #1998 from abnerhexu/main
feat(config): allow placeholder text to be string or list
2026-03-25 22:47:39 +01:00
Mauro
1dff5e6903
Merge pull request #2016 from badgerbees/fix/context-overflow-errors
fix(providers): improve context overflow detection and classification
2026-03-25 21:58:53 +01:00
Badgerbees
ae94893605 adding test units 2026-03-26 03:03:19 +07:00
Badgerbees
97dec16769 fix(providers): improve context overflow detection and classification 2026-03-26 01:07:56 +07:00
柚子
ed618e14aa
feat(channels): support multi-message sending via split marker (#2008)
* Add multi-message sending via split marker

* Add marker and length split integration tests

Tests that SplitByMarker and SplitMessage work together correctly, and
that code block boundaries are preserved during marker splitting.

* Simplify message chunking logic in channel worker

Extract splitByLength helper function and remove goto-based control
flow.
The logic now flows more naturally - try marker splitting first, then
fall
back to length-based splitting.

* Update multi-message output instructions in agent context

* Add split_on_marker to config defaults

* Add split_on_marker config option

* Rename 'Multi-Message Sending' setting to 'Chatty Mode'

* Add SplitOnMarker config option
2026-03-26 01:33:49 +08:00
daming大铭
82c78e853b
build(deps): upgrade pty and reorganize sqlite dependencies (#2012)
- Upgrade github.com/creack/pty from v1.1.9 to v1.1.24
- Move github.com/mattn/go-sqlite3 to indirect dependency
- Move rsc.io/qr from indirect to direct dependency
2026-03-25 17:35:56 +01:00
daming大铭
664e23e4fb
Merge pull request #1828 from liuy/feat/logging-config
feat(logger): add PICOCLAW_LOG_FILE env var for file-only logging
2026-03-25 23:54:29 +08:00
daming大铭
70c4714988
feat(tools): add exec tool enhancement with background execution and PTY support
Merge #1869: Unified exec tool with actions (run/list/poll/read/write/send-keys/kill), PTY support, background execution, process session management.
2026-03-25 23:50:42 +08:00
肆月
bb2eddc79d
Feature/add mimo provider (#1987)
* feat: add Xiaomi MiMo provider support

- Add 'mimo' protocol prefix support in factory_provider.go
- Add default API base URL for MiMo: https://api.xiaomimimo.com/v1
- Update provider-label.ts to include Xiaomi MiMo label
- Add MiMo to provider tables in both English and Chinese documentation
- Add comprehensive unit tests for MiMo provider

MiMo API is compatible with OpenAI API format, making it easy to integrate
with the existing HTTPProvider infrastructure.

Users can now use MiMo by configuring:
{
  "model_name": "mimo",
  "model": "mimo/mimo-v2-pro",
  "api_key": "your-mimo-api-key"
}

* hassas dosyaları kaldırma

* Add .security.yml and onboard to .gitignore
2026-03-25 23:29:44 +08:00
Liu Yuan
155af28841 feat(logger): add PICOCLAW_LOG_FILE env var for file-only logging 2026-03-25 21:34:27 +08:00