Skip to content

add dashboard#16

Open
Fanglinqiang wants to merge 16 commits intoRunchuan-BU:mainfrom
Fanglinqiang:main
Open

add dashboard#16
Fanglinqiang wants to merge 16 commits intoRunchuan-BU:mainfrom
Fanglinqiang:main

Conversation

@Fanglinqiang
Copy link
Copy Markdown

@Fanglinqiang Fanglinqiang commented Mar 15, 2026

Type of Change

  • Skill - adds a new skill in .claude/skills/
  • Fix - bug fix or security fix to source code
  • Simplification - reduces or simplifies source code

Description

For Skills

  • I have not made any changes to source code
  • My skill contains instructions for Claude to follow (not pre-built code)
  • I tested this skill on a fresh clone

Fanglinqiang and others added 16 commits March 15, 2026 15:26
- Add built-in HTTP dashboard (port 3847) with 8 tabs: Overview, Groups,
  Tasks, Stats, Alerts, Settings, Models, Skills
- Dashboard features: dark/light theme toggle, zh/en i18n, auto-refresh
  interval selector, per-group message stats, activity charts (messages
  and task runs per day), alert rules management
- Add Telegram channel support (src/channels/telegram.ts)
- Add MiniMax and Qwen model config entries to config.ts
- Add getTaskRunLogs, getActivityStats, getGroupMessageStats to db.ts
- Add parseConfigBlob helper + agentType/notifyUser support in
  registered_groups accessors
- Add agentType and notifyUser fields to RegisteredGroup type
- Fix container-runner.ts path resolution to use import.meta.url
- Update README.md and README.zh-CN.md with dashboard documentation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Multi-agent biological research pipeline:
- Stage 1: Parallel literature search (PubMed + bioRxiv/medRxiv + KEGG/Reactome)
- Stage 2: Pathway synthesis + ≥5 mechanistic hypothesis generation
- Stage 3: 3-role debate per hypothesis (Supporter / Skeptic / Methodologist)
- Stage 4: Top-3 refinement with full molecular detail
- Stage 5: Wet-lab experimental plan per hypothesis (controls, timeline, risks)

Helper scripts: pubmed-fetch, preprint-fetch, pathway-search
Dockerfile: add litellm + AutoResearchClaw (future use)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Stage 1 now dispatches to 3 different models simultaneously:
- Task A (Claude): real PubMed API + bioRxiv API fetch via Python scripts
- Task B (MiniMax): biomedical knowledge analysis via call_minimax MCP tool
- Task C (Qwen): pathway landscape + regulatory network via call_qwen + pathway-search script

Progress update sent to user after all 3 tasks complete.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Chinese description and keywords to frontmatter for better matching
- Add explicit auto-trigger instructions at top of skill body
- Agent now recognizes Chinese research requests like "帮我研究" and "提假说"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Route all agent types (Claude, MiniMax, Qwen) through container runner
  instead of direct API calls, enabling tool use and skills for all models
- Add text event emission from agent-runner for streaming assistant responses
- Filter "No response requested." from chat responses
- Render send_message tool calls as text instead of tool blocks
- Fix model test/display: read env vars from .env fallback chain
- Fix IPC "Unauthorized" warnings for dashboard chat (whitelist 'dashboard')
- Fix chat streaming state stuck when switching chats mid-stream (AbortController)
- Add localStorage persistence for chat sessions
- Fix xattr ENOTSUP error on skill directory copy (docker grpcfuse)
- Improve light mode input contrast and send button styling

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Text was appearing twice because both send_message tool_call events and
assistant text events contained the same content. Track send_message texts
on the frontend and skip duplicate text events. On the backend, skip
output.result when text/send_message events were already streamed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add WeCom (企业微信) as a messaging channel with support for up to 3
bot instances (wc:/wc2:/wc3: JID prefixes). Includes WebSocket
connection, markdown message chunking, proactive Corp API messaging,
and file/image sending.

Also fix duplicate text in dashboard chat when MiniMax returns both
a text event and a send_message tool call with identical content.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ti-bot support

- FeishuChannel: WebSocket long-connection via @larksuiteoapi/node-sdk
- Image/file download via message resources API (native https)
- Multi-bot support (fs:/fs2:/fs3: prefixes)
- Auto-registration: new chats mapped to defaultFolder without manual setup
- Fix log level back to warn, fix jidPrefix for all resource operations
- Add FEISHU2/3_DEFAULT_FOLDER config vars

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…, pyGenomeTracks

Key upstream changes merged:
- OpenRouter/OpenAI-compatible provider support in container-runner
- Tool iteration limit increased to 64
- Memory improvements (_latest.md snapshots)
- cnsplots + pyGenomeTracks plotting tools in container
- Local web channel (optional, disabled by default)
- Discord channel (optional)
- platform.ts cross-platform utilities

Our additions preserved:
- WeCom (3 bots, full implementation)
- Feishu (3 bots, auto-registration, image/file download)
- Dashboard multi-model chat

Fix: sendImage ?? Promise.resolve() for type safety

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Feishu (Lark) channel: WebSocket long-connection, image/file
  download via message resource API, auto-registration, multi-bot
  support (up to 3 bots with fs:/fs2:/fs3: prefixes)
- Fix dashboard chat send button stuck disabled after agent response:
  write _close sentinel to container IPC after first result so the
  container exits and SSE stream closes properly
- Fix dashboard chat session saving with images: strip large base64
  data URIs before saving to localStorage to avoid exceeding 5MB limit
- Default to most recent chat on dashboard load instead of restoring
  last active session
- Fix scheduled task double-execution: advance next_run before
  enqueuing (not inside runTask) to prevent duplicate triggers when
  task is queued behind an active container
- WeCom: retry via proactive Corp API on 846604 WebSocket expiry error
- Feishu: use GROUPS_DIR instead of fragile STORE_DIR/../groups path
- Update README and README.zh-CN with Feishu setup docs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add comprehensive Claude skills for:
- Single-cell analysis (preprocessing, clustering, trajectory, annotation, integration)
- Genomics (variant calling, structural variants, copy number variation)
- Epigenomics (ChIP-seq, ATAC-seq, bisulfite-seq, methylation)
- Transcriptomics (differential expression, RNA quantification, isoform detection)
- Spatial transcriptomics (preprocessing, multiomics, Visium analysis)
- Immunogenomics (TCR-seq, BCR-seq, HLA typing)
- Proteomics/Metabolomics (quantification, annotation, pathway mapping)
- Database queries (AlphaFold, DrugBank, Ensembl, gnomAD, KEGG)
- Literature search, PubMed search, and bio-research pipeline
- Sequence alignment, phylogenetics, motif discovery
- Agent browser for web-based database access

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Runchuan-BU
Copy link
Copy Markdown
Owner

This PR has merge conflicts due to recent codebase restructuring (db, channels, index.ts). Please rebase onto latest main. Also consider splitting into smaller PRs (Feishu, skills, dashboard separately) for easier review. Thank you!

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.

2 participants