Commit graph

83 commits

Author SHA1 Message Date
9cf026f605 Fix WhatsApp Admin QR bind and show the scan prompt only after Bind.
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>
2026-08-17 23:54:48 +08:00
5c6833612f Add WhatsApp session bind/unbind to Admin Runtime, and fix related Admin JS errors.
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>
2026-08-17 22:23:35 +08:00
91c5a1a754 Trigger async runtime prewarm immediately after Admin MCP tools sync.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 22:59:17 +08:00
e095901f61 Slim MCP sync Admin status and stop page-wide horizontal overflow.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 22:53:35 +08:00
3785e78a72 Make prewarm resync MCP tools and rebuild frozen wire cache.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 21:34:45 +08:00
42092423fb Fix login hang, chat boot wiring, and username wipe on remount.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 20:21:31 +08:00
5bcaf7fd2d Show login progress immediately and stop auth 401 hangs.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 20:03:34 +08:00
f92cb85a4a Localize Plugins actions and parallelize Plugins/Skills boot fetches.
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>
2026-08-12 19:44:07 +08:00
f6f129931f Ship Cursor-only MCP admin and modular Admin/Chat UI.
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>
2026-08-12 19:38:26 +08:00
c3f3992a51 Paginate chat history so long sessions open quickly.
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>
2026-08-11 10:13:18 +08:00
2a52349668 Restyle chat model picker as a themed custom dropdown.
Drop the bordered native select chrome and open a soft popup that follows light/dark theme tokens.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 05:05:52 +08:00
746570dfc9 Polish Admin/Chat UI and fix WhatsApp group session titles.
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>
2026-08-11 04:59:39 +08:00
8ad4768476 Polish Admin/Chat UI: utilities, chat tokens, denser topbar.
Replace high-traffic inline styles with shared utility classes, retokenize chat chrome off white-mist hardcodes, and align the admin topbar to NetX 48px density.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 03:39:04 +08:00
cbd9942b0b Align Admin/Chat UI with NetX dark ops shell.
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>
2026-08-11 03:25:48 +08:00
e4b7b8d12e Clean Admin UI copy left from Manager-era labels.
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>
2026-08-11 03:17:18 +08:00
8fce428540 Drop dead admin/chat protocol fields and fix MCP specialist docs.
Align AIA_MCP_SPECIALISTS defaults, remove inherit/perm-ban/wire-effective noise from admin APIs, and stop echoing confirm_strategy/plan_agent_version on chat mode endpoints.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 03:13:59 +08:00
454c841af7 Converge manager out of product roles and drop dead inherit prefs.
Specialists-only binding/prewarm/MCP allowlists fold legacy manager aliases into generalist; stop persisting confirm/plan prefs and strip inherit from prompt signatures.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 03:07:38 +08:00
bc20b41ee2 Fix Plugins page crash after wire-policy UI removal.
Restore foldToolPolicy/market/install/instances blocks accidentally deleted with 线侧策略.
2026-08-11 02:51:12 +08:00
fe29b43695 Remove MCP wire suppression; keep specialist binding only.
Drop Admin 线侧策略 UI/APIs and gut tool_wire_policy to schema+size prep so MCP tools are gated solely by expert bindings.
2026-08-11 02:48:47 +08:00
4277ad6b14 Remove dead confirm-strategy setting from chat UI.
Plan-mode confirm gate is gone; drop the settings control and coerce API values to strict.
2026-08-11 02:42:32 +08:00
9da63de21b Remove Plan/Agent v2 selector from chat settings.
v2 is gone; hide the dead version menu and force classic v1 on wire paths.
2026-08-11 02:39:20 +08:00
ff9ef7279d Remove Manager/comprehensive mode; route everything expert-only.
Keep WhatsApp/Weixin channels intact—only drop manager dispatch UI and force expert normalization end-to-end.
2026-08-11 01:43:40 +08:00
cf31fd104d Simplify oclaw product surface: drop niche specialists and admin noise.
Remove stock/image/video specialists, Gmail watcher, CocoLoop market, desktop packaging, and extra memory plugins; disable dynamic agents and hide Session Monitor / API grants / Admin Audit from nav.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 01:34:10 +08:00
efa72df362 Remove plan mode, skill toolcall path, and inline netx tools.
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>
2026-08-11 01:17:39 +08:00
628a9dffd2 Subtract dead agent husks and unify the gateway executor path.
Remove SpecialistAgentRunner, plan_agent_v2 re-export shims, empty runtime husks, and disconnected Admin knobs. Fold ops into build_gateway_executor, align AIA_ENABLE_PLUGIN_TOOLS with catalog, and allow ops on the default MCP specialist list.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 01:02:29 +08:00
9d4dced4e4 Skip overlapping scheduled runs and surface playbook status in job lists.
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>
2026-08-11 00:07:42 +08:00
3cdf550298 Make Chat abort actually stop the agent turn.
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>
2026-07-23 10:16:07 +08:00
896126ef88 Move Chat background-jobs entry to the sidebar footer.
Keeps the running-count badge visible without competing with the new-chat action above the session list.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 09:26:53 +08:00
0cf6aafa30 Add background jobs with Chat UI so long agent scripts can run for hours safely.
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>
2026-07-23 01:02:57 +08:00
c31625d05b Fix WhatsApp image delivery and Chat duplicate attachment display.
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>
2026-07-22 20:03:05 +08:00
ad1b95d0bc fix(admin): make popups and overlays respect light theme
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>
2026-07-14 15:29:21 +08:00
1ea13a205d feat(whatsapp): add access control with quote-based admin approval
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>
2026-07-01 11:36:58 +08:00
47813f6a94 feat(scheduler): add scheduled jobs with channel-aware delivery
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>
2026-06-26 15:56:10 +08:00
7210293f42 feat(netx-bridge): WhatsApp proactive alerts from NetX key alarms
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-22 11:17:32 +08:00
bc1b45a8fd fix(chat,channels): admin session delete, weixin inbound, PG and docs
- List/delete chat sessions for administrator by username (cross-tenant UUID)

- Return 404 when delete does not remove a session; add tests

- Weixin: dispatch lang, inbound attachments, reply persist, native reply timeout

- PG compat scrub and administrator session delete repo path

- RUNBOOK: WhatsApp re-bind with Remove-Item auth; weixin poll diag scripts

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 01:36:45 +08:00
39fd1905b6 fix(chat): keep tool-call process notes out of visible body
Preserve tool_call event_type when hydrating WS final messages, never render main-channel process notes as assistant body text, and prefer structured message content over stream buffer on finalize.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-31 12:41:12 +08:00
4610989d72 fix(mcp): preflight python module check and surface install errors
- Verify python -m module import in preflight with fix hints

- Pass env_schema defaults in health/sync; catch JSON install exceptions in UI

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-30 23:42:44 +08:00
a0a3f4b65f feat(mcp): integrate netx via netx_mcp and improve MCP install
- Gate builtin netx tools; ops docs/skills use mcp__netx__*

- Import Cursor mcpServers JSON; pass env_schema defaults to subprocess

- Allow source_type=local; UTF-8 MCP stdio on Windows

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-30 15:44:34 +08:00
8233db93db Increase default tool rounds to 100 with 300 cap.
Raise Admin/UI defaults and backend clamps for AIA_TURN_MAX_TOOL_ROUNDS across gateway, worker, and direct loop paths.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 11:34:20 +08:00
89b295293d Raise default tool rounds to 30 and cap at 100 per turn.
Update gateway, worker, direct_loop, and Admin tool policy UI/docs for AIA_TURN_MAX_TOOL_ROUNDS.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-27 17:34:39 +08:00
f1626195f7 fix(chat): honor ui_lang on WebSocket turns; ops NE display by host_name
Resolve runtime language from ui_lang and chat.send lang instead of hardcoding zh.
Align generalist/ops prompts with user language and require host_name (not ne_id) in ops outputs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 22:14:44 +08:00
428eed7ae4 chore(admin): remove netx ops tools sidebar link
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-17 12:11:43 +08:00
807679aaaa feat: 更新 knowledge-base-manager skill,添加完整 ID 映射和严格目录限制 2026-05-16 22:27:57 +08:00
d14e9d3596 feat(persistence): PostgreSQL assistant store, chat persist fixes, gateway scripts
- Add SQLAlchemy Core repos, pg adapter/compat, assistant_store factory, Alembic bootstrap and migration/cutover scripts.

- Harden chat_message writes (NUL scrub for PG), turn_uuid on attempt failure, WS turn_runner fallbacks and gateway executed_turn_uuid init.

- start_gateway: log paths, PS7 stderr handling via cmd, background stdout/stderr redirect; runtime assistant_runtime_log_dir export.

- Ops: clear_all_chat_sessions with PG-only --postgresql and env-gated wipe; clear_postgres_chat_sessions.ps1.

- Tests: SA repos, pg compat, persist fallback, smoke env isolation; CI and docs touch-ups.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 09:33:50 +08:00
4ea26a022b fix(chat): fold tool_call main-channel text and fix aggregate row loss
- _buildRenderRows: include assistant content for event_type=tool_call as
  assistant_text items with assistantEventType=tool_call (was omitted).
- Tag other assistant_text slices with assistantEventType for clarity.
- _buildAggregatedAssistantBubble: for tool_call slices, add non-redundant
  main-channel text to the reasoning fold under reasoning.processNotes;
  skip when already covered by reasoning blocks (whitespace-normalized
  substring). Inline markdown for those process lines is omitted to avoid
  duplicate display. Bump chat.js cache query.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-13 00:02:18 +08:00
c938147fdb fix(chat): default reasoning fold on for new browsers and bump chat.js cache
The reasoning/tool collapsed bundle is gated by adminChatShowToolOutput,
which was only read from localStorage with default false. A fresh browser
therefore hid persisted reasoning in the fold while streaming still showed
tokens. Default to true and bump chat.html asset version so deployments pick
up the script.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 20:29:58 +08:00
46ebfeb54f fix(chat): persist/split <thinking>/<thought> blocks like stream UI
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 19:32:19 +08:00
7ea02e66ca fix(chat): show thinking_mode reasoning in folded bundle from event_payload
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 19:28:03 +08:00
c33ca303a2 Fix prewarm prompt preview staleness (cache + Admin wait)
Include skill_role_binding store JSON in executor and manager prompt cache signatures so skill catalog updates after binding edits without restart. Admin async prewarm now polls prewarm/status until not running before router() so parallel prompts fetch matches completed warm.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 16:24:33 +08:00
4dbb834c95 Fix role binding filter when mapping is empty
should_apply_workspace_role_filter no longer requires at least one bound skill. With binding enabled and an empty map, the catalog shows only public workspace skills per role (matches prewarm and runtime). Update Admin copy and add regression test.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 16:07:34 +08:00