Skip to content

feat: 移动端编辑对话框滚动修复 + DnD迁移到@dnd-kit - #301

Open
Andieqqq wants to merge 10 commits into
bestruirui:devfrom
Andieqqq:dev
Open

feat: 移动端编辑对话框滚动修复 + DnD迁移到@dnd-kit#301
Andieqqq wants to merge 10 commits into
bestruirui:devfrom
Andieqqq:dev

Conversation

@Andieqqq

Copy link
Copy Markdown
  • 底部已选模型列表改为chip折叠栏
  • 迁移DnD从@hello-pangea/dnd到@dnd-kit
  • 移动端Editor表单折叠/展开设计

Andieqqq added 10 commits July 19, 2026 22:42
- 修复app.tsx根容器overflow导致主界面无法滚动
- 修复MorphingDialogContent高度锁死内容
- 底部已选模型列表改为chip折叠栏
- 迁移DnD从@hello-pangea/dnd到@dnd-kit
- 移动端Editor表单折叠/展开设计
- 修复设置页面无法滚动的问题
- 版本对齐到v0.9.28
- bestruirui#289: 首字超时前移到 forward() 中,用 context.WithTimeout 覆盖整个请求周期
  (发出请求→等待响应头→等待首个 token),超时后自动故障转移
- bestruirui#300: busy_timeout 5s→30s, cache_size 翻倍, flush 加 3 次重试,
  keepPeriod<=0 时默认保留 7 天防止日志无限增长
- ghost-fix: 将 Tooltip 移出 MorphingDialogTrigger,避免 framer-motion
  快照克隆 Tooltip 文字覆盖在对话标题上
- default-expand: 分组名称编辑表单默认展开
- 新增 2 分钟周期主动探活任务,失败强制熔断,成功恢复
- 转发前跳过 unhealthy 渠道
- API Key 增加 rate_limit_rpm 字段 + 令牌桶限流中间件
- /api/v1/stats/health 与 /realtime 接口
- 首页渠道健康看板 + APIKey 表单限流配置
- stream: cap log retention (32 events/64KB default), pass-through flush
- chaos: delay/error/drop injection middleware (default off)
- health-score: EWMA latency + success rate soft re-rank (no new GroupMode)
- semantic: rule-based complexity bias for high-Weight channels (default off)
- eBPF: deferred (kernel CAP_BPF + host netns; document only)
- frontend: AdvancedRouting + Chaos setting panels
…me select)

- Remove SettingKeyHealthProbeModel: chat probe now uses channel's own
  model/custom_model list via pickProbeModel() — eliminates redundant
  global setting that duplicated per-channel config
- Add internal/netobs package: NetworkObserver interface with GoObserver
  (always available) and EBPFObserver (build tag 'ebpf', cilium/ebpf)
- Runtime selection via net_obs_mode setting: auto|go|ebpf
  auto = try eBPF → fallback Go (default)
- Add bpf/tcp_conn.c skeleton for future tcp_probe integration
- Health API now reports net_obs_backend (go/ebpf/none)
- Frontend: remove probe model input, add netobs mode selector
- Clean up DB: remove stale health_probe_model row from settings table
- bpf2go generated tcpconn BPF objects (sys_enter_connect tracepoint)
- EBPFObserver.Start() loads collection + attaches tracepoint, readLoop
  polls connect_hits map every 2s
- NetworkObserver interface gains ConnectHits() uint64
- Health API + realtime dashboard return net_obs status (mode/backend/active/hits)
- Frontend health board shows Go/eBPF badge with live connect_hits counter
- Docker compose: CAP_BPF+PERFMON+SYS_ADMIN+NET_ADMIN, mounts
  /sys/fs/bpf + /sys/kernel/debug + /sys/kernel/tracing + BTF
- seccomp=unconfined for tracefs access
- Verified: backend=ebpf, active=true, connect_hits incrementing
- real sys_enter/exit_connect bpf maps (per-host latency/fail proxy)
- hostkey parsing for channel URL → IPv4 key
- health handler surfaces active netobs backend
- frontend health card shows eBPF/Go badge
- ignore dist/binaries/db artifacts in gitignore
Non-blocking connect returns -EINPROGRESS/-EALREADY which was counted as
fail, producing ~96% kernel_fail_rate and microsecond-scale fake RTT.
Only hard errors increment fails; latency is recorded only on ret==0.
- sockops: RTT_CB / RETRANS_CB / STATE_CB (SYN_SENT→CLOSE async fails)
- split ChannelFailRate (syscall+async) vs ChannelRetransRate (true retrans)
- health API kernel_retrans_rate + frontend 建连失败/重传 labels
- EWMA soft-bias uses both fail and retrans
@Monsterespin

Copy link
Copy Markdown

怎么联系你?我想给我的画布准备一个后端

@tomygin

tomygin commented Aug 5, 2026

Copy link
Copy Markdown
  • 底部已选模型列表改为chip折叠栏
  • 迁移DnD从@hello-pangea/dnd到@dnd-kit
  • 移动端Editor表单折叠/展开设计

感觉你这个被合并的可能性不大,上次我提交了totp就被说改动范围过大

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.

3 participants