Use a current WA protocol version, start the sidecar via local tsx with inherited proxy, and stop auto-opening the QR UI on unbound connecting.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose sidecar status, start/stop, QR bind, and unbind so 405 session failures are visible instead of a stuck connecting state.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep field essentials (xlsx/deliverable, wiki, FS read, schedule) plus full MCP; drop unused public noise and ensure binding edits clear frozen tool wire.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prefer report tools without hard-hiding CLI, keep soft CLI budgets, store compact+result_ref for the model, and clear frozen wire after MCP sync.
Co-authored-by: Cursor <cursoragent@cursor.com>
Cut time-to-interactive on those admin pages and align button/table copy with the existing zh/en i18n switch.
Co-authored-by: Cursor <cursoragent@cursor.com>
Plugins/Skills install and edit via mcpServers JSON, with clearer row actions, soft reloads, and instant loading placeholders; also drop MCP market and harden related scheduler/logging/exec guards.
Co-authored-by: Cursor <cursoragent@cursor.com>
Load the latest 80 messages first and fetch older pages on scroll-up via before_id, instead of pulling thousands of rows up front.
Co-authored-by: Cursor <cursoragent@cursor.com>
Surface group names in channel titles, theme composer chips for light mode, and trim unused Runtime alert/stack panels.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add a netx theme preset as the default, variable-drive chrome styles, and keep legacy DeepSeek/other palettes available.
Co-authored-by: Cursor <cursoragent@cursor.com>
Map legacy manager specialists to generalist labels, rename stream status off 主控, and drop unused Manager i18n / decision-mode leftovers.
Co-authored-by: Cursor <cursoragent@cursor.com>
Wave C subtraction: keep skills as prompt-only, route netx via MCP with a shared netx_http client for xlsx/context inject, and delete plan_agent_v2 from the gateway.
Co-authored-by: Cursor <cursoragent@cursor.com>
Default scheduled CLI steps to ne_ids/ume_ne_ids batch, compact oversized tool chat_message/tool_log after turns, and on getManagedNe miss guide agents to listManagedNe/UME paths instead of blind retries.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keeps recent days of chat tool messages, tool_log, traces, and sent outbound; admin API and CLI support apply + optional VACUUM.
Co-authored-by: Cursor <cursoragent@cursor.com>
Due ticks no longer stack on an active run (WA skip notice + stale clear); schedule_list/admin/gateway now show playbook, steps_n, and last_run signals without dumping full recipes.
Co-authored-by: Cursor <cursoragent@cursor.com>
Legacy jobs with empty recipes (e.g. dying-gasp algorithms in prompt_text) now compile into durable playbooks on create/enqueue, and each run gets a short previous-run summary for continuity.
Co-authored-by: Cursor <cursoragent@cursor.com>
Wrap successful scheduled jobs with a short WA header (+ attachment count), expire stale access pending and DM requesters on admin approve/deny, and add concrete next_steps for insufficient_scope:sql:query.
Co-authored-by: Cursor <cursoragent@cursor.com>
Wire should_stop from aborted runs, snapshot abort before clearing flags so finals are not emitted after stop, and keep fail-path turn_uuid aligned for bubble splitting.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keeps the running-count badge visible without competing with the new-chat action above the session list.
Co-authored-by: Cursor <cursoragent@cursor.com>
start_job/get_job/sleep replace blocked run_command for multi-hour work; Chat shows a live count badge and allows manual kill, with a reaper reclaiming timed-out or stale processes.
Co-authored-by: Cursor <cursoragent@cursor.com>
Enqueue deliverable tool attachments on the WhatsApp queue path, and dedupe the same attachment_id within one Chat bubble (prefer deliverable).
Co-authored-by: Cursor <cursoragent@cursor.com>
Claim pending rows atomically and serialize the sidecar poller so overlapping polls cannot send the same reply twice; also stop inbound queue delivery from falling through to a second enqueue.
Co-authored-by: Cursor <cursoragent@cursor.com>
Align administrator session deletion with the administrator chat view so
sessions surfaced through channel_session_v2 can be removed without a
ui_session_owner row.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace hardcoded dark modal, menu, toast, and lightbox colors with theme CSS variables so text stays readable in light mode.
Co-authored-by: Cursor <cursoragent@cursor.com>
Store self-contained playbook recipes on scheduled jobs, add schedule_propose draft gate, and run playbook instructions at fire time instead of only short reminders.
Co-authored-by: Cursor <cursoragent@cursor.com>
Wire mention JIDs/names through scheduled delivery and immediate replies (including attachment captions), sanitize group message text for the model, and surface channel-derived sessions in admin Chat.
Co-authored-by: Cursor <cursoragent@cursor.com>
Require deliverable:true for all channel attachments including images; extend save_deliverable_attachment with attachment_id; add WeChat proactive attachment delivery; inject channel file rules via system prompt instead of repeating on every user message.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace hardcoded Asia/Shanghai with host IANA timezone detection for new scheduled jobs across tools, admin API, gateway cron, and store layer.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce whitelist/blacklist gating, pending requests, Admin UI management, and stanza-mapped quote approval so admins can approve via WhatsApp DM without blocking normal LLM chat.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce persisted cron/interval jobs, gateway scheduler loop, worker turns,
and admin CRUD/edit UI. Route proactive reminders via the originating chat
channel (WhatsApp vs WeChat), harden Weixin outbound with durable queue and
PG-compatible polling, and fix chat UI to show each scheduled reminder separately.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace Chinese NetX labels with UME Alarm Raised/Updated/Cleared and
English field names in proactive alert messages.
Co-authored-by: Cursor <cursoragent@cursor.com>