Skip to content

feat: 主题皮肤系统与多项稳定性改进#33

Merged
pallyoung merged 101 commits into
mainfrom
develop
May 13, 2026
Merged

feat: 主题皮肤系统与多项稳定性改进#33
pallyoung merged 101 commits into
mainfrom
develop

Conversation

@pallyoung

Copy link
Copy Markdown
Contributor

主题皮肤系统

  • 新增多皮肤支持(mint/graphite/nord/hc 各有深浅两套)
  • 认证/门禁壳层改为基于主题 token,浅色皮肤下不再出现固定深色背景
  • 图标色也纳入主题系统,文件树/Git 状态/终端/Toast 等统一走 token
  • Monaco 编辑器与 xterm.js 终端主题按皮肤自动切换

稳定性与体验改进

  • 新增 Session Gate 激活门禁页面,被挤占时可重新进入
  • 简化激活心跳,移除冗余心跳调用
  • 移动端终端复制模式与行高测量优化
  • 设置页主题选择器统一使用共享 Select 组件
  • 修复文件树默认图标在局部规则中被覆盖的问题

测试与覆盖

  • 新增主题相关样式断言,防回归
  • 扩展 UI 预览/e2e 场景矩阵,覆盖多皮肤与 Session Gate
  • 补充 providers 生命周期与主题持久化测试

pallyoung added 30 commits May 11, 2026 07:31
… picker spec

- Add consistent padding and footer rail styling to supervisor detail sheets
- Enforce 44px minimum button height in supervisor action areas
- Add CSS theme regression tests for supervisor sheet layout
- Draft DateTimePicker component design spec for scheduled execution
… scheduled execution

- Create new DateTimePicker component with desktop popover and mobile sheet support
- Add calendar grid and time selector placeholders for future implementation
- Support clearable and minDate constraints
- Replace native datetime-local input with DateTimePicker in supervisor dialog
- Add i18n keys for datetime picker in both en and zh locales
- Add component tests with viewport mocking for desktop/mobile scenarios
- Add CalendarGrid component with month navigation and date selection
- Add TimeSelector component with hour/minute dropdowns
- Integrate calendar and time selector into main DateTimePicker component
- Support minDate/maxDate constraints for date selection
- Add i18n keys for month navigation in both en and zh locales
- All tests passing for both datetime-picker and supervisor features
…gers

- If scheduledAt is set and hasn't arrived yet, skip evaluation on turn_completed
- Only after the scheduled time passes will turn_completed triggers proceed
- Update helper text to clarify the behavior: first evaluation at scheduled time, then auto-trigger on each turn completion
- Fixes behavior where scheduled time was only checked for 'scheduled' trigger but not for 'turn_completed'
- Change 'Edit Objective' to 'Edit Supervisor' for consistency
- Change 'Disable Supervisor' to 'Disable' to keep button text short
- Aligns with other buttons that use short labels without repeating context
- Replace Select dropdowns with native number inputs for hour/minute
- Fixes PC/desktop popover not opening Select dropdowns properly
- Add max-width constraints for popover and sheet body to prevent overflow
- Inputs support direct typing and validation (hour: 0-23, minute: 0-59)
…n compatibility

xterm.js and Monaco Editor use eval/new Function internally for performance.
When browser extensions (uBlock Origin, AdGuard) inject strict CSP, these
libraries fail silently:
- xterm.js: terminal shows only [Process exited with code 0]
- Monaco Editor: code editor renders blank

Add  config option (env: RELAX_CSP=true) to inject a permissive
CSP header allowing 'unsafe-eval', 'unsafe-inline', and WebSocket connections.
- Change popover z-index from --z-dropdown (100) to --z-modal (400)
- Fixes desktop popover being hidden behind other UI elements
- Add padding, border, border-radius, and background to popover .content
- Fixes popover appearing invisible without background styling
pallyoung added 27 commits May 12, 2026 22:47
- Add Stars, Discussions, Issues, and Contributors badges
- Apply to both English and Chinese READMEs
@pallyoung
pallyoung merged commit b816d91 into main May 13, 2026
2 checks passed
pallyoung added a commit that referenced this pull request Jun 7, 2026
feat: 主题皮肤系统与多项稳定性改进
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