Skip to content

Feat/UI optimize 0629#228

Merged
jsyqrt merged 15 commits into
mainfrom
feat/ui-optimize-0629
Jul 1, 2026
Merged

Feat/UI optimize 0629#228
jsyqrt merged 15 commits into
mainfrom
feat/ui-optimize-0629

Conversation

@jsyqrt

@jsyqrt jsyqrt commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

No description provided.

jsyqrt and others added 15 commits June 25, 2026 16:51
…ring, and code block UX

- Integrate highlight.js via rehype-highlight for syntax highlighting with dark/light theme support
- Add MermaidBlock component for lazy-loaded Mermaid diagram rendering
- Add PlantUMLBlock component for lazy-loaded PlantUML diagram rendering (via @plantuml/core)
- Add CodeBlock component with language labels and copy-to-clipboard button
- Extract markdown preprocessing utilities (transformOutsideCode, normalizeMathDelimiters,
  preprocessMentions, preprocessEntityIds, etc.) into shared markdown-utils.ts module
- Protect code block content from mention/entity preprocessing corruption
- Add 52 unit tests for markdown utility functions covering text transformation,
  math delimiters, mention preprocessing, entity detection, and diagram content detection

Co-authored-by: Cursor <cursoragent@cursor.com>
- Change streamingForSessionRef from Map<string,string> to Map<string,Set<string>>
  so multiple sessions of the same agent can track streaming state concurrently
- Key actBuffers by sessionId instead of convKey to prevent tool activities
  from leaking between sessions
- Remove dead code: api.agents.message(), api.agents.injectMessage(),
  sse-handler-enhanced.ts
- Remove redundant R7 attention heuristic (subset of R1), add decision table
- Fix virtualizer overlap: remove measure() call, improve estimateSize
- Add useConversationBuffers hook as foundation for buffer management

Co-authored-by: Cursor <cursoragent@cursor.com>
- Overhaul all agent role prompts with advanced patterns (security, quality gates,
  error recovery, state-machine workflows) based on AI tools system prompt analysis
- Add Karpathy's agent work principles (Think Before Acting, Simplicity First,
  Surgical Changes, Goal-Driven Execution, Negotiate Contract, Write to Disk)
- Integrate AutoResearch ratchet-loop pattern into developer, AI engineer, and
  self-evolution workflows
- Add dynamic browser fallback in context-engine based on available skills
- Enforce subtask contract: task_submit_review rejects if pending subtasks exist
- Add subtask_cancel tool so agents can mark inapplicable subtasks
- Enhance web-search error hints with browser tool fallback guidance
- Create HEARTBEAT.md and POLICIES.md for roles that lacked them

Co-authored-by: Cursor <cursoragent@cursor.com>
…ypography, HTML selection

- Copy menu: wire i18n, add responsive labels, info button with copy option descriptions
- Code/diagram blocks: add rendered/source mode toggle (DiagramToggleBlock + CodeBlock)
- Mermaid/PlantUML: fix theme not updating on dark/light mode switch (useSyncExternalStore)
- Deliverables: add GitHub-style edit/preview mode with save button and unsaved-changes guard
- Typography settings: customizable font family/size/heading scale for HTML copy output
- HTML iframe selection: cross-frame postMessage with XPath/CSS selector context for Agent
- Backend: add /api/files/write endpoint for in-place file editing

Co-authored-by: Cursor <cursoragent@cursor.com>
…ization

- Add streaming interactive cards for real-time agent progress feedback
- Fix session persistence so Feishu messages appear in Secretary's main session
- Pre-install @larksuiteoapi/lark-mcp and optimize npx cold-start (54s → <1s)
- Connect global MCP servers in bootAgent (previously only createAgentFromRequest)
- Return available_tools list in discover_tools response for correct tool naming
- Use tenant_access_token mode to avoid user token configuration complexity
- Add feishu-interaction skill template with MCP server config

Co-authored-by: Cursor <cursoragent@cursor.com>
… config

The skill.json had unresolved ${FEISHU_APP_ID} placeholders causing
"invalid param" errors on every API call. Now skill declares reuseGlobal: true
and the activator uses globalMcpServers config with real credentials.

Co-authored-by: Cursor <cursoragent@cursor.com>
Previously required integrations.feishu.mcp.enabled === true which was
never set by the Web UI. Now injects feishu-lark MCP server into
globalMcpServers whenever appId + appSecret are available (from config
or env vars), making the tools available to agents at boot.

Co-authored-by: Cursor <cursoragent@cursor.com>
…sion error hint

- Add startup lock to shared MCP connectServer to prevent duplicate child
  processes when multiple agents restore concurrently (memory leak fix)
- Cap MCP stderr buffer at 20 chunks to prevent unbounded growth
- Cap MemoryStore entries at 500 per agent on load
- Move cancel button from global header to each processing mailbox item
  row with confirmation dialog
- Add Permission Error Handling section to feishu-interaction SKILL.md
  instructing agent to surface authorization URLs on scope errors

Co-authored-by: Cursor <cursoragent@cursor.com>
…e in scheduler

- cancelTask() now auto-pauses scheduleConfig for scheduled tasks
- Remove 'cancelled' from scheduler's resettable/fireable states (FSM violation)
- Add re-validation in stagger callback to prevent double-fire on startup
- Broadcast WebSocket on schedule config changes for real-time frontend sync
- Add schedule-specific warning in cancel confirmation dialog
- Allow "Run Now" for cancelled scheduled tasks
- Update FSM to permit cancelled → in_progress for explicit Run Now

Co-authored-by: Cursor <cursoragent@cursor.com>
- Refine CodeBlock and DiagramToggleBlock rendered/source toggle
- Fix MermaidBlock and PlantUMLBlock border styling
- Auto-expand deliverables edit textarea to match content height
- Minor CSS adjustments for code highlight theme

Co-authored-by: Cursor <cursoragent@cursor.com>
…apse, mobile

- Fix stale selection and scroll position after filter changes
- Add active filter indicator bar with clear-all support
- Redesign list items: inline relative time, remove status badge/subtitle
- Add skeleton loading for detail panel, fade transitions, keyboard nav
- Polish group headers, resize handle, filter pill scroll hints
- Add team groupBy, remove type groupBy; load all items for non-date groups
- Default groups to collapsed with today expanded in date mode
- Persist collapse state across groupBy switches
- Mobile: collapsible filters, pull-to-refresh, Chat FAB animation
- i18n: add relative time keys and new filter/group labels (en + zh-CN)

Co-authored-by: Cursor <cursoragent@cursor.com>
- Fix eqeqeq lint errors (!= → !==) in feishu cards and notifier
- Add @plantuml/core type declaration and remove unused @ts-expect-error
- Increase timeout for agent-manager integration tests under parallel load
- Add missing isProcessing/sendMessageStream mocks in api-server tests
- Fix feishu handler test to match sendMessageStream API change
- Wrap FeishuAdapter server.listen in promise to prevent EADDRINUSE crashes

Co-authored-by: Cursor <cursoragent@cursor.com>
@jsyqrt
jsyqrt merged commit 3b14c0c into main Jul 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant