Commit graph

1891 commits

Author SHA1 Message Date
Nicolas Leão
bc274e5d80
Merge pull request #1404 from 3clyp50/ready
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
quick update flow and migration guidance
2026-03-31 17:01:15 -03:00
Alessandro
bfe4119d72 quick update flow and migration guidance 2026-03-31 21:53:47 +02:00
Nicolas Leão
b531e5ee42 simplify preset editing screen 2026-03-31 14:08:04 -03:00
Jan Tomášek
797def4785
Merge pull request #1398 from 3clyp50/docsupdate 2026-03-31 18:09:49 +02:00
Alessandro
97591b6908 docs: align install and update flow 2026-03-31 16:36:27 +02:00
frdel
0bbc657dd3 fix: apply btn-field class to disabled update buttons in self-update modal
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
2026-03-31 15:29:51 +02:00
frdel
b94d4b79ae refactor: comprehensive UI server restructuring and self-update enhancements
- Extract UI server setup into UiServerRuntime class with modular initialization
- Move environment configuration, route registration, and transport handlers to helpers/ui_server.py
- Add released_at timestamp tracking for git tags and branch heads across update system
- Implement get_current_major_main_latest_info to find latest same-major version on main branch
- Add major_upgrade_versions and main_branch_latest fields to update info payload
- Remove
2026-03-31 15:20:57 +02:00
frdel
80518f22a6 Squashed commit of the following:
commit 5193ef7501
Author: frdel <38891707+frdel@users.noreply.github.com>
Date:   Tue Mar 31 09:47:02 2026 +0200

    refactor: change default mode from dedicated to self-chat and reorder UI settings

    - Change default mode to self-chat across all modules
    - Update README to reflect self-chat as primary mode with security warning
    - Move session/media storage from usr/whatsapp to tmp/whatsapp
    - Reorder config UI: move Mode above Allowed Numbers
    - Add warning banner when allowed_numbers is empty in self-chat mode
    - Move Bridge Port and Poll Interval to bottom of settings
    - Update mode descriptions to clarify self-chat handles both self

commit 9fece911b5
Author: frdel <38891707+frdel@users.noreply.github.com>
Date:   Tue Mar 31 09:20:35 2026 +0200

    refactor: centralize WhatsApp storage paths and improve bridge dependency handling

    - Add storage_paths.py helper for consistent session/media/runtime paths
    - Replace hardcoded usr/whatsapp paths across all modules
    - Fix bridge lock to be event-loop-aware (recreate per loop)
    - Add automatic dependency reinstall on startup failures
    - Track bridge startup output for better error diagnostics
    - Add dependency state tracking with package.json hash validation
    - Implement force reinstall when node_modules appears

commit bc511d221d
Author: linuztx <linuztx@gmail.com>
Date:   Tue Mar 31 09:07:46 2026 +0800

    fix: stop poll loop immediately when Node.js is not installed

commit a9554e132f
Author: linuztx <linuztx@gmail.com>
Date:   Tue Mar 31 08:49:15 2026 +0800

    fix: auto-reinstall corrupt node_modules and stop poll loop after repeated bridge failures

    _ensure_npm_install now verifies key package exists, not just
    node_modules dir. Wipes and reinstalls if corrupt.

    Poll loop stops after 5 consecutive bridge start failures instead
    of spamming errors and making A0 unusable.

commit 61fa1bf487
Author: linuztx <linuztx@gmail.com>
Date:   Tue Mar 31 08:38:51 2026 +0800

    fix: move allowed_numbers filtering from JS bridge to Python handler

    The JS bridge used LIDs (internal WhatsApp identifiers) for sender
    matching which never matched actual phone numbers. Moved filtering
    to Python handler.py where config is read fresh each poll cycle.

    - Add senderNumber (resolved phone) to bridge message payload
    - Filter in poll_messages() with normalized number comparison
    - Remove --allowed-numbers CLI arg and JS-side filtering
    - Fix ensure_bridge_http_up not recording _bridge_config
    - Fix falsy empty-dict check in bridge restart detection

commit 64ee177897
Author: linuztx <linuztx@gmail.com>
Date:   Sat Mar 28 23:34:23 2026 +0800

    refactor: move email agent instructions to system prompt and update prompt labels

commit 0f53b41d80
Author: linuztx <linuztx@gmail.com>
Date:   Sat Mar 28 10:59:44 2026 +0800

    Add node_modules to gitignore

commit eb6a4d3ad2
Author: linuztx <linuztx@gmail.com>
Date:   Sat Mar 28 10:53:59 2026 +0800

    Add WhatsApp plugin thumbnail

commit 39bed4f538
Author: linuztx <linuztx@gmail.com>
Date:   Sat Mar 28 10:51:47 2026 +0800

    refactor: rename allowed_users to allowed_numbers across plugin

commit e4991b6e6e
Author: linuztx <linuztx@gmail.com>
Date:   Fri Mar 27 21:58:29 2026 +0800

    improve: move agent instructions from per-message to system prompt

commit 4f1be15fa7
Author: linuztx <linuztx@gmail.com>
Date:   Fri Mar 27 21:00:25 2026 +0800

    improve: add macOS port kill support and bridge process destructor cleanup

commit f5349753d7
Author: linuztx <linuztx@gmail.com>
Date:   Fri Mar 27 17:09:56 2026 +0800

    improve: remove redundant bridge_manager from execute, rely on poll loop finally

commit 9d9dd4bd7f
Author: linuztx <linuztx@gmail.com>
Date:   Fri Mar 27 14:41:14 2026 +0800

    fix: stop bridge and poll loop when plugin is disabled or toggled off

commit 66b0a7d3e0
Author: linuztx <linuztx@gmail.com>
Date:   Fri Mar 27 11:05:58 2026 +0800

    improve: fix allowed users input, auto-strip + prefix, log ignored messages

commit 938e7b9312
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 23:26:42 2026 +0800

    improve: add line break to allowed users description

commit 4ef64b9121
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 22:44:55 2026 +0800

    feat: convert markdown to WhatsApp formatting before sending replies

commit f549b49f44
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 22:34:56 2026 +0800

    improve: add progress update instructions to system context prompt

commit 66e5d51dcf
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 22:23:32 2026 +0800

    fix: stop typing indicator on agent error or generation failure

commit 3dd01cd04c
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 18:31:38 2026 +0800

    improve: persistent typing indicator with poll-based refresh

commit 8d0ec86f15
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 17:11:25 2026 +0800

    Update README.md

commit e664673c1c
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 16:05:44 2026 +0800

    feat: add agent prefix to self-chat replies for visual distinction

commit 18c5716d10
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 15:43:01 2026 +0800

    fix: clear typing indicator after sending reply in self-chat mode

commit 7c653c9d56
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 14:43:06 2026 +0800

    improve: merge WhatsApp Link and Disconnect into single Account field

commit 57c95e6f13
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 14:11:05 2026 +0800

    feat: add disconnect account option to switch WhatsApp accounts

commit c62695356e
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 14:00:00 2026 +0800

    improve: move mode description inline and reorder Allow Group after Allowed Users

commit 18a56ea446
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 13:44:17 2026 +0800

    fix: remove duplicate typing indicator before sending reply

commit 44c90a118f
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 13:30:06 2026 +0800

    improve: remove sender number from DM prompt

commit 64fe7d0302
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 13:17:29 2026 +0800

    fix: handle documentWithCaptionMessage wrapper for captioned documents

commit 00b6657185
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 13:06:40 2026 +0800

    feat: add attachment reader/writer with RFC and download all media types

commit 8041c085d2
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 11:45:17 2026 +0800

    improve: update group prompt and reply instructions

commit 71a6eb7557
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 11:26:36 2026 +0800

    feat: reply to specific messages in group chats with quote

commit 6bf63eb9c6
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 09:57:34 2026 +0800

    feat: detect replies to bot messages in group chats

commit b4492e0759
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 09:20:27 2026 +0800

    improve: resolve group names and sender LIDs in bridge messages

commit 14e673f165
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 04:44:50 2026 +0800

    feat: add allow_group toggle to respond only when mentioned in group chats

commit 40f4884319
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 03:20:02 2026 +0800

    refactor: rename mode value from bot to dedicated

commit 50af7c2bde
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 02:34:51 2026 +0800

    fix: kill orphaned bridge process on port before starting new one

commit 45b21c093a
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 02:07:45 2026 +0800

    improve: auto-restart bridge when config changes

commit a12183ba6e
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 01:39:55 2026 +0800

    feat: add bot and self-chat mode selection for WhatsApp bridge

commit bb8961ab73
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 00:56:56 2026 +0800

    improve: send typing indicator immediately on message receive

commit 84c12b0c23
Author: linuztx <linuztx@gmail.com>
Date:   Thu Mar 26 00:29:04 2026 +0800

    feat: add WhatsApp integration plugin with Baileys bridge and QR pairing
2026-03-31 09:47:25 +02:00
frdel
3df7065685 Squashed commit of the following:
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
commit e48ee68bf6
Author: keyboardstaff <keyboardstaff@gmail.com>
Date:   Sun Mar 29 06:27:50 2026 -0700

    fix(_model_config): restore utility preset provider fallback and empty option

commit c16134e624
Author: keyboardstaff <keyboardstaff@gmail.com>
Date:   Sun Mar 29 00:28:49 2026 -0700

    fix(_model_config): prevent Settings Save from clobbering API keys saved via Configure Models

commit 9ff4133d7d
Author: keyboardstaff <keyboardstaff@gmail.com>
Date:   Sat Mar 28 10:11:57 2026 -0700

    refactor(_model_config): extract reusable model-field component, split store into mixins, unify API key lifecycle

commit 14de2ab442
Merge: 69e17748 eef6d6d0
Author: Wabifocus <keyboardstaff@gmail.com>
Date:   Sat Mar 28 19:41:43 2026 -0700

    Merge pull request #48 from agent0ai/development

    Development
2026-03-30 17:19:33 +02:00
frdel
fb02b5f4cc enable api caching
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
enable websocket and api caching params
2026-03-30 17:15:50 +02:00
Jan Tomášek
9390ba9624
Merge pull request #1344 from keyboardstaff/ws-rework
refactor: Comprehensive WebSocket System Rework
2026-03-30 16:45:49 +02:00
frdel
44e008745d Sanitize print logs; refactor popular plugin logic
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
Ensure printed output and HTML logs are safe by importing and applying sanitize_string, opening log files with utf-8 and errors='replace', and sanitizing text before writing. Add tests to verify lone surrogate characters are replaced and that logging won't crash on invalid Unicode. In the plugin installer UI, introduce POPULAR_PLUGIN_MIN_STARS and centralize popularity checking in _isPopularPlugin, using it for filtering and counts.
2026-03-30 11:50:59 +02:00
Jan Tomášek
430f8479a9
Merge pull request #1385 from 3clyp50/small_prompts
prompts: a0_small prompt set
2026-03-30 11:45:24 +02:00
frdel
2a21500a88 onboarding thumbnail
generated thumbnail for onboarding plugin
2026-03-30 09:43:05 +02:00
Alessandro
a2bd044a9d a0_small prompt set prototype
Created a new prompt set for small models.

A0 now starts with 2.5k tokens usage, not 10k.

improve small model tool policy

prompts: knowledge with tool call examples

- Adds knowledge examples for tool-call shapes and memory usage (workaround to not have examples in tool prompts)
- Adds a small prompt hint to consult memory examples when tool args are unclear

stricter small-model guardrails

Canonical JSON example, exact tool-name matching, method suffix enforcement, British spelling for behaviour_adjustment, boolean guidance for call_subordinate.reset, and the “don’t improvise tools after an error” rule are the new additions here.

Trying to make
2026-03-30 07:11:34 +02:00
Nicolas Leão
4b9f0ecc23
Merge pull request #1381 from nicolasleao/development
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
fix: let agents fix their own tool call format instead of erroring
2026-03-29 16:12:23 -03:00
Nicolas Leão
bd5eb7c61c fix: let agents fix their own tool call format instead of erroring 2026-03-29 11:06:39 -03:00
Nicolas Leão
6c4167755a Merge remote-tracking branch 'origin/development' into ready
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
2026-03-29 08:24:45 -03:00
Nicolas Leão
1623088699
Merge pull request #1375 from keyboardstaff/chat-nav-buttons
feat(ui): reposition chat nav buttons as floating overlay in bottom-right of chat area
2026-03-29 08:17:11 -03:00
keyboardstaff
1539424d64 feat(ui): reposition chat nav buttons as floating overlay in bottom-right of chat area 2026-03-29 02:13:30 -07:00
Nicolas Leão
63988108b7
Merge pull request #1369 from 3clyp50/ready
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
progress-bar-right css hotfix
2026-03-28 20:08:47 -03:00
Alessandro
39bb30646a progress-bar-right css hotfix 2026-03-28 23:53:13 +01:00
Nicolas Leão
eef6d6d007
Merge pull request #1362 from TerminallyLazy/update-model-config-ui
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
Add model config presets and ignore agent artifacts
2026-03-28 16:20:08 -03:00
Nicolas Leão
7e7933e235
Merge pull request #1359 from 3clyp50/pluginreadme
fix plugin README image rebasing and sanitize rendered markdown
2026-03-28 16:13:47 -03:00
Alessandro
c2e14b6cd1 sanitize plugin markdown rendering with shared helper
Add a shared safe markdown pipeline for plugin READMEs and docs.

- vendor DOMPurify and introduce a shared safe-markdown helper
- centralize GitHub README link/image rebasing, including repo routes like `releases`
- sanitize rendered HTML before all plugin-related x-html sinks
- apply the shared renderer to Plugin Hub README, installed plugin README, and markdown modal docs
- preserve target/rel handling for external links
2026-03-28 19:29:26 +01:00
frdel
1eb78607c9 Remove scan queue and enable parallel plugin scans
Remove the scan queue mechanism that serialized plugin scans. Each scan now runs in its own temporary chat context immediately upon request, allowing multiple scans to execute in parallel. Update UI to reflect that scans are no longer queued and remove the "queued" state tracking from store and API.
2026-03-28 18:52:17 +01:00
TerminallyLazy
b3bdb6e480 revert .gitignore 2026-03-28 11:30:59 -04:00
TerminallyLazy
a2547f12a1 Add model config presets and ignore agent artifacts
- Add model switcher component for chat input with progress display
- Enhance model config store with active preset/model retrieval
- Show agent progress as ghost text in chat input placeholder
- Add agent artifact patterns to .gitignore
2026-03-28 11:10:52 -04:00
Alessandro
f577dad6bf
Merge pull request #21 from 3clyp50/rebase-image-paths-in-install-detail.html
Rebase README links and images to correct GitHub blob/raw paths
2026-03-28 14:47:32 +01:00
Alessandro
baa806558e Handle GitHub route links in README rebasing 2026-03-28 14:47:07 +01:00
keyboardstaff
4e222e2cf7 refactor: extract constants, deduplicate ack pattern 2026-03-28 02:51:57 -07:00
keyboardstaff
04d930ab02 refactor: extract shared utilities, fix send_data signature & plugins.py bug
- Consolidate ConnectionIdentity, _ws_debug_enabled(), ws_debug() into ws.py as single-source exports, removing duplicate definitions in ws_manager.py and state_monitor.py
- Make send_data() optional args keyword-only to prevent positional argument confusion with the instance method signature
- Fix clear_plugin_cache in plugins.py: wrong parameter name (event_name → event_type) and stale namespace (/webui → /ws)
2026-03-28 00:38:46 -07:00
keyboardstaff
0749ddc932 fix: WsDevTest non-standard error format and align doc examples
- Fix two error returns in ws_dev_test.py using non-standard {"_error": True, ...} format, which _collect_results misidentifies as a success response and wraps as ok=True, sending a false-success to the client
- Switch to WsResult.error(code=..., message=...) standard API, consistent with all other handlers
- Fix 5 occurrences of process_event → process in documentation examples
- Remove non-existent HANDLER_ID and HANDLED_EVENTS class attribute examples from docs
- Fix validate_event_types (plural) → validate_event_type (singular) in docs
2026-03-27 23:34:52 -07:00
keyboardstaff
4065385630 fix: dispatch_to_all_sids security issue
- move _ws_contexts snapshot inside _contexts_lock critical section, add ctx is None skip logic to prevent security check bypass during concurrent disconnects
2026-03-27 23:04:30 -07:00
keyboardstaff
6e8c9d8224 refactor: extract _collect_results and unify internal helpers
1. Extract _collect_results method — Deduplicated ~30 lines of identical result processing from route_event and process_client_event (Exception→error / WsResult→as_result / dict→wrap / None→strategy branch) into a private method with a skip_none parameter.
    * route_event calls _collect_results(skip_none=False) — None becomes ok=True (server-initiated, callers expect a result for every handler)
    * process_client_event calls _collect_results(skip_none=True) — None is skipped (client-initiated, matching legacy _dispatch fire-and-forget semantics)
2. Document None semantics difference — Added # NOTE: comment at the route_event call site explaining why skip_none=False differs from process_client_event.
3. Unify _timestamp() usage — Replaced inline timestamp formatting in _wrap_envelope and handle_connect with self._timestamp() method reuse.#
2026-03-27 23:00:09 -07:00
Nicolas Leão
4cbb320587
Merge pull request #1348 from 3clyp50/onboard
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
ux: onboarding flow for missing API key
2026-03-27 20:30:18 -03:00
Alessandro
1304195d4c ux: onboarding flow prototype
reuse /banners for composer missing-key status

polish onboarding ui; add chat composer API key banner

drop dedicated status backend endpoint
2026-03-27 18:46:09 +01:00
Nicolas Leão
69e177487f Update README and installation docs
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
2026-03-27 11:19:50 -03:00
Nicolas Leão
8111e3d3c6 Merge branch 'main' into ready 2026-03-27 09:44:17 -03:00
Nicolas Leão
c48507091b
Merge pull request #1345 from 3clyp50/ux1 2026-03-27 09:29:10 -03:00
frdel
68e65ae873 fix scheduler api calls
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
2026-03-27 12:47:53 +01:00
Alessandro
dae502bc1d ux: trigger focus on chat input after new chat and ctx switch 2026-03-27 12:12:26 +01:00
frdel
b6d152c873 Merge branch 'development' into ready
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
2026-03-27 10:40:22 +01:00
frdel
fad07c5ba8 Remove force parameter from plugin index fetch in API handler
Remove force parameter parsing and passing from _fetch_index method in PluginInstall API handler. The force refresh functionality is now handled client-side through cache-busting headers and timestamp parameters added in previous commit (c7a9836).
2026-03-27 10:26:50 +01:00
Jan Tomášek
1e6976f568
Merge pull request #1342 from Deimos-AI/pr/webui-page-head-extension
feat(webui): add page-head extension point for plugin script/style injection
2026-03-27 09:48:44 +01:00
keyboardstaff
b351de456e fix: resolve option whitelist, memory leak, task tracking, and dispatch unification
- Fix Memory Leaks: Resolved SID retention in _known_sids after disconnection and cleaned up unreferenced broadcast tasks in _schedule_lifecycle_broadcast.
- Unify Dispatching Paths: Unified client and server event dispatching through the process_client_event() method to ensure diagnostic consistency.
- Optimization & Cleanup: Expanded the _OPTION_KEYS whitelist, removed dead code (iter_event_types), and deleted unused websocket exports.
- Robustness: Added handling for None responses in process_client_event to prevent cluttering responses with empty results.
- Testing: Added test cases to verify SID TTL expiration and stale SID cleanup on disconnect.
2026-03-27 01:21:45 -07:00
Agent Zero
abd7ac08bb feat(webui): add page-head extension point to index.html
Adds an x-extension injection point inside <head> so plugins can
inject <script> and <link> tags at page load time. This enables
plugins to load vendor libraries (e.g. mermaid.js, custom fonts)
via the standard extension mechanism rather than dynamic DOM
manipulation from JS extension hooks.

Consistent with existing sidebar-start and sidebar-end extension
points. Zero impact on existing functionality.
2026-03-26 22:13:01 +00:00
Nicolas Leão
486eafd97b
Merge pull request #1339 from nicolasleao/feat-chat-compaction
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
fix: add thumbnail to chat compaction plugin
2026-03-26 17:24:45 -03:00
Nicolas Leão
0d1f84e33e fix: add thumbnail to chat compaction plugin 2026-03-26 17:15:59 -03:00
Nicolas Leão
b2dca35584
Merge pull request #1338 from nicolasleao/feat-chat-compaction
feat: Add built-in chat compaction plugin
2026-03-26 17:13:18 -03:00