ymq
6faecb58bd
feat: use MdWidget for final reply and notifications — full markdown rendering
2026-08-10 08:18:37 +08:00
ymq
b6422d646e
feat: push pending questions as first NDJSON line before LLM processes message
2026-08-10 00:16:01 +08:00
ymq
22f76e71b9
feat: inject pending questions into env_text — active notification from role agents to cockpit
2026-08-10 00:15:10 +08:00
ymq
2544081529
feat: reply formatting guidance — line breaks, lists, bold, concise
2026-08-10 00:11:00 +08:00
ymq
cb5846c39e
fix: strip tool_call JSON fragments from reply text before display and history
2026-08-10 00:08:40 +08:00
ymq
3e8fc551ef
feat: require login for send_message and list_messages + dedup uid fetch
2026-08-10 00:06:15 +08:00
ymq
b494b242db
fix: handle None user_id — skip DB persistence, use in-memory ctx only
2026-08-10 00:04:13 +08:00
ymq
7cb23c7f88
debug: trace LLM raw output, tool calls, history rows, system prompt env
2026-08-09 23:58:15 +08:00
ymq
09d51b87c7
fix: _load_ctx fallback — recover project_id from conversation history when settings table empty
2026-08-09 23:55:46 +08:00
ymq
e14db2cde7
feat: project-scoped conversation history via iteration_id=project_id
2026-08-09 23:32:29 +08:00
ymq
b3a24a1250
fix: filter tetris/俄罗斯方块 from conversation history to stop hallucination
2026-08-09 23:29:53 +08:00
ymq
9b4f7dd4ae
feat: LLM classification for project name matching — _call_llm_raw with temp=0
2026-08-09 23:18:15 +08:00
ymq
98d4f5e8ad
refactor: remove all hardcoded matching — LLM classifies project names from full list in env
2026-08-09 23:12:47 +08:00
ymq
d4d59aa97e
fix: _find_project substring matching — 人事系统 matches 人事系统
2026-08-09 23:06:56 +08:00
ymq
317f4e30ee
fix: root cause — raw tool_call JSON in msgs was teaching LLM to mimic old calls
2026-08-09 22:59:45 +08:00
ymq
3da96af786
fix: remove switch_project from tools — switch handled by pre-processing before LLM runs
2026-08-09 22:54:52 +08:00
ymq
d86307e5f4
fix: create_project iteration_name + _save_ctx race condition
2026-08-09 22:49:00 +08:00
ymq
13f9b3d56f
fix: remove list_projects tool — switch_project handles listing; hard ban on auto-switch
2026-08-09 22:40:13 +08:00
ymq
38c4e69513
fix: agent must NOT auto-switch — stay in current project unless user explicitly asks
2026-08-09 22:35:44 +08:00
ymq
f82c349cd6
fix: prevent spurious project switch — prompt warns check current, switch returns early if already in project
2026-08-09 22:32:21 +08:00
ymq
6900a86782
fix: project_id→tenant_id + task_detail default list + diagnose_project tool
2026-08-09 22:22:27 +08:00
ymq
dbef268202
fix: cascade delete uses correct column names (tenant_id), remove non-existent pipeline_project_agents
2026-08-09 22:06:53 +08:00
ymq
a111c056e5
fix: conversational delete confirm + fix pipeline_agent_questions table name + cleanup system action bypass
2026-08-09 21:58:00 +08:00
ymq
d076a0a9f2
fix: Conform yield once + system action reads nested params + skip timeout text after widget
2026-08-09 20:06:16 +08:00
ymq
a2106e4365
delete_project: Conform confirm dialog + _sys_delete_project + system action bypass
2026-08-09 20:00:01 +08:00
ymq
dedb2a60e1
feat: delete_project tool with cascade cleanup + confirm gate
2026-08-09 19:55:16 +08:00
ymq
258afb1e7e
fix: left-align agent response text widgets
2026-08-09 19:49:19 +08:00
ymq
915333d9bd
cockpit agent: add task lifecycle tools (task_detail, deliverables, questions, start_agents)
2026-08-09 17:32:49 +08:00
ymq
ae1aaadd91
refactor: LLM-driven agent — list_projects/create_project/clone_repo/run_command tools, exact-match only
2026-08-09 17:24:33 +08:00
ymq
053b71ae95
fix agent: user-scoped conversation history + stricter _find_project matching
2026-08-09 17:19:59 +08:00
ymq
255f41c780
fix: handle prompt at top level from bricks AgentIO request body
2026-08-09 17:05:36 +08:00
ymq
426998b6c6
cockpit_chat: use _w_progress/_w_card/_w_text widget descriptors in yield stream
2026-08-09 17:02:49 +08:00
ymq
61a3ae43b5
fix: default action to send_message instead of list_messages
2026-08-09 16:57:11 +08:00
ymq
d46ab14e12
revert: cockpit_chat.dspy back to yield streaming version (6f5e989), remove request.read() raw body path
2026-08-09 16:55:04 +08:00
ymq
9a1d8083fd
fix: read raw body as JSON when bricks_fetch omits Content-Type header
2026-08-08 23:37:07 +08:00
ymq
47d5c490e4
fix: robust DictObject handling for AgentIO JSON body auto-detect
2026-08-08 23:35:00 +08:00
ymq
6f5e989b89
revert backend to 0x0a, frontend index.ui has hook with XHR+0x0a split
2026-08-08 23:00:28 +08:00
ymq
3377e6686b
fix: backend delimiter chr(92)+chr(110) = 5c6e
2026-08-08 22:57:31 +08:00
ymq
e2291b7735
frontend: intercept AgentIO.inputw in project_form.changed, XHR splits on 0x0a
...
Backend: untouched (sends 0x0a newlines)
Frontend: on project_form.changed, unbind AgentIO's native inputed, rebind with custom XHR that sends url-encoded body and parses 0x0a-separated NDJSON
2026-08-08 22:08:55 +08:00
ymq
75dff51764
fix: 4 backslashes in source for literal \n (5c6e) delimiter
...
Python: '\\\\n' → '\\n' → bytes 5c 6e
JS: split('\\n') → splits on 5c 6e
Match confirmed via eval+hex verification.
2026-08-08 22:07:27 +08:00
ymq
0309a6a29a
Revert "fix: use \\\\n (4 backslashes) for literal \\n delimiter — JS split('\\n') needs backslash-n"
...
This reverts commit 33f49b13ff844db574867f91266de54cabfd4d12.
2026-08-08 22:03:52 +08:00
ymq
33f49b13ff
fix: use \\\\n (4 backslashes) for literal \\n delimiter — JS split('\\n') needs backslash-n
2026-08-08 22:02:14 +08:00
ymq
25af57c9ed
fix: handle AgentIO JSON body (params.prompt/model_id), auto-detect action
2026-08-08 21:50:18 +08:00
ymq
08dc10620f
fix: content-type charset=utf-8 for proper Chinese encoding
2026-08-08 21:46:15 +08:00
ymq
aeb865b02a
v3.2: AgentInput native handler — {content:...} format + url option
...
Backend: yields {content: 'text'} | {error: 'text'} chunks (AgentOut compatible)
Frontend: AgentInput.url set, native HttpResponseStream splits \n + JSON.parse
Bind script: just creates chat bubbles, no custom XHR
2026-08-08 21:41:45 +08:00
ymq
5ff3c35a91
v3.1: clean NDJSON streaming — no SSE prefix, no [DONE], content-type text/plain
...
Backend: yields raw JSON+\n, stream_response with text/plain
Frontend: XHR.onprogress splits on \n, parses each line as JSON
2026-08-08 21:32:04 +08:00
ymq
ba0c02c7c0
fix: remove json/os from imports (pre-imported in DSPY env)
2026-08-08 21:24:31 +08:00
ymq
6023c16556
chore: remove vim swap file
2026-08-08 21:22:39 +08:00
ymq
bac65a61aa
SSE mode: text/event-stream + data: prefix + [DONE] end
...
Backend: _sse() wraps each widget as 'data: <json>\n\n', ends with [DONE]
Frontend: XHR.onprogress splits on 'data: ', extracts json before \n\n
2026-08-08 21:22:34 +08:00
ymq
620b12dee0
debug: show full yield content (remove 80-char truncation)
2026-08-08 21:12:57 +08:00