Commit Graph

282 Commits

Author SHA1 Message Date
matevip
e911af2192 feat(wiki): JSON output mode — structured transformation output for programmatic downstream 2026-05-12 14:11:02 +08:00
matevip
90936dba4f feat(wiki): cross-material transformation aggregator — map-reduce all runs of a template into one KB page 2026-05-12 14:10:54 +08:00
matevip
2fc9a5153b fix(enterprise): contain panels in scrollable body and rebuild steppers as centered vertical layout 2026-05-12 11:41:29 +08:00
matevip
093925e191 feat(ui): enterprise scenario workbench combining contract review, account intel, approvals, and audit 2026-05-12 11:26:05 +08:00
matevip
f04ea58c8d feat(wiki): cancel a running transformation and re-run any past run 2026-05-12 11:25:44 +08:00
matevip
ef6ad1b91a feat(wiki): expose per-template model picker in the transformations modal 2026-05-12 11:25:38 +08:00
matevip
bae9f68261 feat(wiki): user-defined transformation templates with optional auto-save to synthesis pages 2026-05-12 10:49:58 +08:00
matevip
dac3f5be20 fix(extract): trigger OCR when text extraction returns unreadable bytes 2026-05-12 08:44:20 +08:00
matevip
08fcab12d1 fix(deploy): drop DASHSCOPE_API_KEY requirement so Docker boots with no LLM key configured (#99) 2026-05-11 20:44:31 +08:00
matevip
6d5fb595d3 fix(agent): harden digital-employee isolation across creation, skill binding and prompt catalog 2026-05-11 16:10:28 +08:00
czhcc
18148aa724
feat(skill-mcp): expose readable display name alongside prefixed MCP tool names
Add a parallel effectiveAllowedToolsDisplay field on the runtime status payload so the SkillMarket detail drawer can render mcp_<server>_<slug>_<hash> with the raw tool name appended in parentheses, while leaving the original prefixed list unchanged for any caller that needs the machine name. McpSkillBridge#decorateToolNameForDisplay reverses a prefixed name via the per-server cached tool list; the frontend prefers the new display field and falls back to effectiveAllowedTools when the field is absent.
2026-05-10 23:30:22 +08:00
matevip
adddf0402a style(ui-chat): align useI18n destructuring spacing in MessageBubble 2026-05-10 22:32:54 +08:00
DayByDay
7b9ec75137
feat(ui-chat): respect locale and bucket message bubble timestamps by today/yesterday/earlier
Replace hardcoded zh-CN locale with vue-i18n locale.value, add a yesterday bucket reusing the security.activity.yesterday key, and fall back to YYYY/MM/DD HH:mm for older messages. Computes the previous day with setDate(getDate()-1) so DST transitions stay correct, and short-circuits invalid Date inputs.
2026-05-10 22:30:35 +08:00
matevip
2f73bec94a fix(ui-i18n): escape JSON examples in trigger placeholders so vue-i18n stops parsing them as interpolation 2026-05-10 21:53:47 +08:00
matevip
3984591ffe fix(ui-build): invoke node directly with heap flag + .npmrc fallback for workers 2026-05-10 21:17:09 +08:00
matevip
617831ed90 fix(ui-build): export NODE_OPTIONS so vite build inherits the 6GB heap 2026-05-10 21:17:02 +08:00
matevip
5021760cbe fix(ui-build): bump Node heap to 6GB to avoid OOM during vite build 2026-05-10 21:16:56 +08:00
matevip
6e57f78fc2 feat(wiki-ui): library home + workspace split for Wiki page 2026-05-10 19:16:22 +08:00
matevip
f18626304e feat(agent,ui): recovery affordance card for non-transient LLM errors 2026-05-10 19:15:57 +08:00
matevip
63f14acb72 fix(settings): stop bulk save from clobbering multimodal sidecar config 2026-05-10 19:15:27 +08:00
matevip
2b84d94897 fix(channel): adaptive debounce window for paste-split long messages 2026-05-10 19:15:15 +08:00
matevip
9075abfef2 feat(channel + settings): wecom quote message parsing + sidecar config preservation
WeCom quoted-message context:
- Parse the body.quote field that arrives alongside any inbound message
  (text / image / voice / file / mixed sub-types). When a user long-
  presses a previous bot bubble and types a follow-up like "解释一下",
  the agent now sees both the user's new text and the referenced
  content as proper context — replies stay on topic instead of
  guessing what was being explained.
- Quoted images / files are downloaded through the same pipeline as
  inbound new media (magic-byte sniff, ZIP container peek for
  DOCX / XLSX / PPTX recovery, chat-uploads layout) so the vision
  sidecar and document tools can actually analyse what was quoted.
- Reading order in the assembled prompt: "[引用消息: ...]\n<user text>"
  first, then quoted media parts, then the user's own current-message
  media. Mixed quotes flatten into a space-joined summary.

Multimodal sidecar settings preservation:
- The bulk settings PUT used to unconditionally overwrite the vision /
  video sidecar model ids — null in a partial payload became "" in
  the DB, silently wiping the configured sidecar every time a user
  saved an unrelated settings page (System / Music / Image / etc.).
  Symptom: "I picked a vision model, saved a different settings tab,
  now the bot can't see images anymore."
- Bulk save now guards both keys with non-null checks, matching the
  pattern used for music / 3D / image / video / tts / stt blocks.
- A dedicated /settings/sidecar endpoint always writes both keys, so
  the sidecar UI can still explicitly clear via null without leaking
  the write-on-null semantics into every other settings save.
- Frontend sidecar card switches to the dedicated endpoint; other
  settings pages keep their existing partial-payload behaviour.
2026-05-10 11:38:35 +08:00
matevip
b54fd7a24a fix(ui): channel binding agent dropdown — render pi:* icons + 员工 wording 2026-05-10 08:27:55 +08:00
matevip
4567bd6019 fix(security): require tool guard rule id (#88) 2026-05-10 08:02:15 +08:00
matevip
932f3de402 feat(chat,settings): multimodal sidecar configuration + routing visibility (#87) 2026-05-09 16:41:36 +08:00
matevip
97e2b12f71 feat(chat): show reply model attribution in assistant message bubbles 2026-05-09 16:41:18 +08:00
matevip
d2886bdaa3 fix(llm): let custom OpenAI-compatible providers opt out of API Key requirement (#89) 2026-05-09 14:26:35 +08:00
matevip
88fb28a22a feat(stt): route OpenAI Whisper provider to any OpenAI-compatible endpoint (#76) 2026-05-09 13:57:52 +08:00
matevip
77456d26f8 fix(skill): hide toggle and rescan on virtual MCP/ACP skill cards (#83) 2026-05-09 11:32:56 +08:00
matevip
d5969bb32c fix(chat,llm): liveness-aware model popup with row-based configured check (#81) 2026-05-09 11:07:08 +08:00
matevip
95b7fed6d5 fix(docker): pin pnpm@10 + whitelist build scripts (#80) 2026-05-09 06:53:09 +08:00
matevip
52e06afec4 feat(llm,tool/image): dashscope-compat provider + media-gen test profile 2026-05-09 06:28:38 +08:00
matevip
0cbe271f6f fix(ui/chat): mermaid streaming flicker + copy/download buttons 2026-05-08 17:09:22 +08:00
matevip
5909cb601e fix(ui/workflows): publish dialog auto-closes on compile failure 2026-05-08 15:09:37 +08:00
matevip
2f62794be6 fix(ui/api): axios interceptor preserves response body on rejection 2026-05-08 15:09:23 +08:00
matevip
2804905500 fix(workflow,trigger): template preview-compile + 3 alpha consistency cleanups 2026-05-08 15:09:14 +08:00
matevip
2416d603c4 fix(workflow,trigger): generator triggerDrafts loop closure + 5 paper cuts 2026-05-08 15:09:06 +08:00
matevip
826c20639a feat(workflow): natural-language → workflow draft generator + agent tool 2026-05-08 15:08:58 +08:00
matevip
de89df6900 feat(ui/workflows): Monaco editor + schema validation + compile-error markers 2026-05-08 15:08:50 +08:00
matevip
48f87066bd fix(ui/clipboard): surface fallback copy failure + unify PreflightInstallDialog 2026-05-08 15:08:33 +08:00
matevip
57a459602e fix(ui): clipboard copy fails in non-HTTPS context 2026-05-08 15:08:27 +08:00
matevip
3ed540e6eb feat(workflow,trigger): async dispatch + GC schedulers + trigger list polish 2026-05-08 15:07:55 +08:00
matevip
533868c41b feat(ui/workflows): canvas add-node toolbar + workspace agent picker 2026-05-08 15:07:47 +08:00
matevip
160bf28981 chore(ui/workflows): drop schema-constant noise from mode label dropdown 2026-05-08 15:07:40 +08:00
matevip
6bcf6b5ee4 feat(ui/triggers): structured per-pattern form for all 6 pattern types 2026-05-08 15:07:25 +08:00
matevip
dae74cf26c feat(channel,trigger): wire channel_message + content_match event sources 2026-05-08 15:07:11 +08:00
matevip
69719eb35e fix(ui/triggers): expose all 6 supported pattern types in the dropdown 2026-05-08 15:07:03 +08:00
matevip
87727414d5 feat(workflow,trigger): wire workflow_completion as a real event source 2026-05-08 15:06:53 +08:00
matevip
247caaac3d feat(ui/workflows): paused-run resume loop in workflow editor 2026-05-08 15:06:36 +08:00
matevip
dac774f15e feat(workflow): trigger workspace isolation + step property editor + custom dialogs 2026-05-08 15:06:16 +08:00