Commit Graph

1005 Commits

Author SHA1 Message Date
LIghtJUNction
2e660595c9 fix(dashboard): AddNewPlatform - show platform-specific MDI icon when logo unavailable 2026-03-29 23:58:35 +08:00
LIghtJUNction
48e54e5ecc revert(dashboard): remove mdi-robot fallback that caused all platforms to show same icon 2026-03-29 23:57:51 +08:00
LIghtJUNction
8919d4debb fix(dashboard): TraceDisplayer - use resolveApiUrl instead of manual VITE_API_BASE concat to avoid /api/api double prefix 2026-03-29 23:17:57 +08:00
LIghtJUNction
9dc345976d fix(dashboard): AddNewPlatform - show v-icon fallback when platform icon is undefined 2026-03-29 23:06:46 +08:00
LIghtJUNction
c464d7add6 fix(dashboard): use CDN MDI font and apply light mode style fixes
- Replace self-hosted MDI subset with CDN (@mdi/font) to avoid
  binary font files being missing after git pull
- Remove vite-plugin-mdi-subset from build (no longer needed)
- Add light mode glass styling to ChatInput
- Fix DailyQuote, Logo, TraceDisplayer for proper theme colors
- Apply theme-specific SCSS overrides across components
2026-03-29 22:09:27 +08:00
LIghtJUNction
7fc1a13519 fix(dashboard): ReactorBg eased scope, CSS comments, theme types, and chat text color
- ReactorBg.vue: fix eased variable scoping bug (moved to outer loop scope)
- WelcomePage.vue: fix CSS // comments (not valid in SCSS)
- DiamondBg.vue: fix CSS // comment in style block
- ThemeType.ts: add missing MD3 hyphenated color properties
- AddNewPlatform.vue: add optional chaining and emits declaration
- FullLayout.vue: console.error -> console.warn for backend timeout
- ConsoleDisplayer.vue: add content-type based log line coloring
- VerticalHeader.vue + i18n: remove deprecated defaultCredentials hint
- MessageList.vue: fix user/bot bubble text color for dark mode
2026-03-29 21:24:39 +08:00
LIghtJUNction
0c021494aa fix(dashboard): add additional SCSS overrides for dark mode 2026-03-29 18:16:39 +08:00
LIghtJUNction
0dd91f1d10 fix: add noqa comments to platform adapter imports and update theme files
- Add F401 suppression to lazy-loaded platform adapter imports
- Update BlueBusiness theme files
- Add ThemeType definitions and WelcomePage enhancements
2026-03-29 18:16:28 +08:00
LIghtJUNction
158a26cac8 fix(dashboard): improve sidebar styling and dark mode SCSS overrides 2026-03-29 18:16:07 +08:00
LIghtJUNction
15e3c12eab fix(dashboard): improve ChatInput dark mode styling and placeholder visibility
- Use semi-transparent dark background in input container
- Add backdrop blur and glow effects
- Fix placeholder text color in dark mode
2026-03-29 18:15:52 +08:00
LIghtJUNction
a9d657520c fix(dashboard): lock theme to dark-only for industrial aesthetic 2026-03-29 17:12:02 +08:00
LIghtJUNction
65d01b7e62 feat(dashboard): theme-aware reactor canvas and blueprint light mode
ReactorBg now adapts to light/dark theme:
- Dark: #0A0A0C bg, white crosshairs, cyan Cherenkov glow
- Light: #F0F4F8 matte silver, deep indigo crosshairs,
  ink-drop radial shadow (no glow)

Light mode sidebar: stays dark blueprint panel
(light content + dark sidebar = classic MD3 premium pairing)
2026-03-29 17:09:21 +08:00
LIghtJUNction
c7c878a8e2 feat(dashboard): blueprint light mode theme
- Surface/background: #F0F4F8 cool blue-gray lab white
- On-surface text: #1A2B3C deep indigo
- ContainerBg: translucent rgba glass for light mode
- Surface-variant: slightly deeper cool tone
2026-03-29 17:07:12 +08:00
LIghtJUNction
5109ca96ca feat(dashboard): reactor glow on logo
- Logo image: brightness(1.6) + dual drop-shadow cyan glow
- Radial gradient glow ring beneath logo with slow 4s breath animation
- Title: JetBrains Mono, #00F2FF with text-shadow glow
- All elements share synchronized 4s breathing pulse
2026-03-29 17:04:33 +08:00
LIghtJUNction
0eb04374ce feat(dashboard): reactor form controls and config card glassmorphism
- AstrBotConfigV4: card now uses translucent glassmorphism
  (rgba 15,15,22,0.45, blur 20px) with inset shadow
  for recessed "embedded panel" feel
- Section titles: JetBrains Mono font, cyan (#00F2FF) with
  left 3px glowing gradient bar
- _override.scss: global form control hardening
  * Switch: 4px rounded rectangle, Cherenkov cyan glow
  * Text fields: cyan border on focus with glow
  * Tabs: uppercase monospace, cyan underline + glow on active
  * Slider: cyan track fill + glowing thumb
  * Checkbox: hollow rectangle with cyan check
2026-03-29 16:58:38 +08:00
LIghtJUNction
86e6d08aef feat(dashboard): redesign log console as reactor terminal
ConsoleDisplayer:
- Status tags: hollow 1px-border chips with glowing level dots
  - DEBUG: dim gray, INFO: Cherenkov cyan, WARNING: amber
  - ERROR: #FF4D4D, CRITICAL: magenta
- Terminal: deep charcoal glass (rgba 10,10,15,0.6), blur 20px
  - Inset shadow for recessed monitor feel
  - Animated scanline overlay (CRT effect)
- Log lines: JetBrains Mono, line-height 1.7
- ERROR/CRITICAL: left colored glow bar (inset 3px indicator)
- New entry: brief cyan pulse animation
- Custom thin scrollbar in cyan theme
- ConsolePage toolbar: glassmorphism matching the theme
2026-03-29 16:54:56 +08:00
LIghtJUNction
b79e252100 feat(dashboard): glassmorphism editor and reactor Monaco theme
ConfigPage.vue:
- Editor dialog now uses glassmorphism container with backdrop-filter blur(40px)
- Editor card: deep obsidian translucent bg, inset shadow, cyan border
- Monaco theme changed from vs-dark to custom reactor-dark
  - Transparent background reveals reactor canvas beneath
  - Cherenkov blue line highlights and cursor
  - Industrial precision line numbers

New monacoTheme.ts:
- defineReactorMonacoTheme() registers the custom theme
- Transparent editor background (rgba 0,0,0,0)
- Cyan cursor, selection, and line highlight colors
2026-03-29 16:51:59 +08:00
LIghtJUNction
282ef94911 feat(dashboard): introduce reactor core glassmorphism theme
Global reactor background (ReactorBg):
- Full-screen canvas with 24px crosshair grid and socket dots
- Mouse energy field (120px radius) with lerp=0.08 smooth tracking
- Crosses shrink and glow cyan when energy field passes
- Canvas sits behind all UI (z-index 0, pointer-events none)

Theme updates:
- Dark surface now #0F0F12 for reactor aesthetic
- Background deepens to #0A0A0C
- Cards: translucent glassmorphism (40% opacity, blur 12px)
  with inset shadow, 1px cyan border on hover
- Sidebar: glassmorphism (75% opacity, blur 16px, cyan border)
- Header: glassmorphism (80% opacity, blur 20px, cyan border)
- V-main: transparent so reactor bg shows through
2026-03-29 16:48:52 +08:00
LIghtJUNction
0121df1754 fix(dashboard): show native cursor on login background 2026-03-29 16:45:04 +08:00
LIghtJUNction
90184239c1 feat(dashboard): redesign login page with reactor core aesthetic
- DiamondBg: Canvas-based interactive background with:
  - 24px grid with faint crosshairs and recessed socket dots
  - 150px mouse energy field with lerp following (0.1 speed)
  - Crosses shrink/darken when "pressed" by energy field
  - Cherenkov blue core dot at exact cursor position
  - Gravity well glow beneath login panel
- Login card: cyan edge border (rgba 0,242,255,0.2), deep blue shadow
- Radial fade mask around login area
- DailyQuote component replaces static welcome text
2026-03-29 16:43:36 +08:00
LIghtJUNction
487c1988d6 refactor(dashboard): torch reveal effect with radial cursor glow 2026-03-29 16:36:22 +08:00
LIghtJUNction
daaeb9474b refactor(dashboard): recessed slot grid with lerp cursor tracking 2026-03-29 16:33:23 +08:00
LIghtJUNction
1530ce1932 refactor(dashboard): add elastic cursor tracking with gravity pit effect 2026-03-29 16:31:28 +08:00
LIghtJUNction
fc0e185246 refactor(dashboard): add recessed pit effect with Cherenkov glow under login panel 2026-03-29 16:30:31 +08:00
LIghtJUNction
3e232fb31e refactor(dashboard): crosshair schematic background for login 2026-03-29 16:27:25 +08:00
LIghtJUNction
7c0e8414a6 refactor(dashboard): replace diamond bg with sci-fi cylinder panel 2026-03-29 16:25:54 +08:00
LIghtJUNction
f97aca8501 refactor(dashboard): simplify diamond bg with hexagonal close packing 2026-03-29 16:13:48 +08:00
LIghtJUNction
d13ff84a20 feat(dashboard): add animated diamond background to login page 2026-03-29 16:11:58 +08:00
LIghtJUNction
0ee84ae362 fix(dashboard): align daily quote text to left 2026-03-29 16:06:14 +08:00
LIghtJUNction
b9b3d50986 feat(dashboard): rename to Starlight Panel and add daily quote
- Change login page title from "AstrBot WebUI/Dashboard" to "AstrBot Starlight Panel"
- Replace welcome subtitle with DailyQuote component showing programming quotes
- Quotes are localized for en-US, zh-CN, and ru-RU
- Quote of the day stays consistent throughout each day
2026-03-29 16:05:22 +08:00
LIghtJUNction
90d565f4c7 fix(dashboard): remove stray closing div in InstalledPluginsTab 2026-03-29 15:51:09 +08:00
LIghtJUNction
2b70c29ea4 chore: bump version to 4.25.0 2026-03-29 15:46:11 +08:00
LIghtJUNction
5ea790d045 chore: misc fixes and new test files
- fix(openai_source): remove dead code comment
- fix(common.ts): use resolveApiUrl helper for live-log endpoint
- style(mdi-subset): clean up icon CSS
- feat: add translation check script and unit tests
2026-03-29 15:40:58 +08:00
LIghtJUNction
610370f3e8 i18n(dashboard): update translation files
Update ru-RU, zh-CN and en-US locale files for various features.
2026-03-29 15:40:58 +08:00
LIghtJUNction
d84565f21b feat(dashboard): switch to BlueBusiness theme
Replace PurpleTheme with BlueBusiness theme for improved visual design.
Includes new light and dark theme definitions.
2026-03-29 15:40:57 +08:00
LIghtJUNction
64bc582879 fix(dashboard): wrap VWindowItem in VWindow to fix Vuetify 4 injection error
VWindowItem requires a VWindow parent for group context injection.
Without it, Vuetify 4 throws:
  "Could not find useGroup injection with symbol vuetify:v-window"

Changes:
- ExtensionPage.vue: wrap all tab content in v-window v-model="activeTab"
- InstalledPluginsTab.vue: remove v-window-item root wrapper
- MarketPluginsTab.vue: remove v-window-item root wrapper
2026-03-28 16:34:07 +08:00
LIghtJUNction
f000a21c01 fix(dashboard): suppress known Vuetify 4 internal slot invocation warning
Vuetify 4's VDefaultsProvider triggers "Slot default invoked outside of
render function" internally - not fixable from our side without framework
changes. Suppress via Vue warnHandler.
2026-03-28 16:20:23 +08:00
LIghtJUNction
495ca70ec5 fix(dashboard): replace remaining dense prop with density="compact"
Vuetify 4 deprecates `dense` prop on v-row and form fields.
2026-03-28 15:31:25 +08:00
LIghtJUNction
84c88db712 fix(dashboard): fix extraneous @update event listener in PlatformPage
@update was passed to AddNewPlatform but the component only emits
update:show, causing Vue warning about unrecognized event.
2026-03-28 15:27:54 +08:00
LIghtJUNction
b70aa517c8 fix(dashboard): pin pinia to 3.0.0 to avoid regression in 3.0.1+
Pinia 3.0.1-3.0.4 introduced a bug where devtoolsPlugin receives
undefined options when createOptionsStore is called, causing
"Cannot destructure property 'state' of 'options' as it is undefined"
on page load. Downgrade to 3.0.0 which is stable.
2026-03-28 14:43:29 +08:00
LIghtJUNction
d927f01da0 fix(dashboard): Vuetify 4 compatibility fixes
- Replace deprecated v-chip-text with span (PersonaForm)
- Replace deprecated v-tab-item with v-window-item (ExtensionPage, InstalledPluginsTab, MarketPluginsTab)
- Replace deprecated v-row dense with density="compact" (SessionManagementPage, InstalledPluginsTab)
- Add missing hasUnsavedChanges field to ConfigPage data()
- Add missing i18n key editPersona (en-US, zh-CN)

Fixes multiple Vue warnings about failed component resolution and deprecated Vuetify props.
2026-03-28 14:12:36 +08:00
LIghtJUNction
c823fcd3ae chore(dashboard): add d3 dependency and postinstall patch script 2026-03-28 13:09:12 +08:00
LIghtJUNction
bae7ec410c fix(dashboard): patch bundled DOMPurify to fix XSS vulnerability
monaco-editor@0.55.1 hardcodes dompurify@3.2.7 (vulnerable to SAFE_FOR_XML
bypass via rawtext elements). Added postinstall script that downloads the
patched 3.3.3 source and replaces the bundled file in node_modules.

Also keeps dompurify override at 3.3.2 for the npm package.
2026-03-28 12:40:02 +08:00
LIghtJUNction
7a6cea3da1 fix(dashboard): remove Authorization header and withCredentials from SSE connections
SSE connections to /api/live-log are same-origin (VITE_API_BASE is empty
in production, resolves to relative /api path). The Authorization header
and withCredentials:true triggered CORS preflight (OPTIONS) requests,
but the SSE route only handles GET, causing the preflight to fail.
2026-03-28 12:27:52 +08:00
LIghtJUNction
1faeee3732 merge: pull latest master into dev
Resolved conflicts:
- openai_source.py: keep dev version with abort_signal filtering
- customizer.ts: keep dev version with viewMode functionality
- useSessions.ts: keep dev version with pendingSessionId handling
- platformUtils.js: keep dev version with correct tutorial links
- AddNewPlatform.vue: keep dev version with correct docs link
- FullLayout.vue: keep dev version with viewMode-based logic
- VerticalHeader.vue: keep dev version with viewMode-based logic
2026-03-28 12:14:10 +08:00
LIghtJUNction
bc01532e59 fix(provider): filter abort_signal from payloads to avoid JSON serialize error
`abort_signal` (asyncio.Event) is passed via **kwargs into payloads during
tool_call streaming, causing "Object of type Event is not JSON serializable"
when the OpenAI client tries to serialize the request body.

Regression test added: test_prepare_chat_payload_strips_non_json_serializable_kwargs
2026-03-28 01:15:21 +08:00
LIghtJUNction
335daa03c4 Merge branch 'Sjshi763/issue4409' into dev
Feature: persona export/import support (#4409)

Conflicts resolved:
- dashboard/src/i18n/locales/en-US/features/persona.json: merged buttons (clone, addDialogPair, import)
- dashboard/src/i18n/locales/zh-CN/features/persona.json: merged buttons (clone, addDialogPair, import)
- dashboard/src/views/persona/PersonaCard.vue: merged emits (clone + export both preserved)
- dashboard/src/views/persona/PersonaManager.vue: merged template (import toolbar button + clone handler), merged methods (importPersona + clonePersona both mapped)

Also adds export error i18n key for both zh-CN and en-US locales.
2026-03-27 23:41:16 +08:00
LIghtJUNction
18bc37aaae chore(dashboard): 将 views 目录剩余 :deep() 迁移到 ::v-deep() 2026-03-27 19:10:42 +08:00
LIghtJUNction
a8045851c4 fix(dashboard): 小修复和安全改进
- ProviderSourcesPanel 添加可选链 item.raw?.icon
- ChangelogDialog 和 useProviderSources 的 console.error 改为 console.warn
2026-03-27 19:10:26 +08:00
LIghtJUNction
20bd0c22b1 chore(dashboard): 将剩余 :deep() 迁移到 ::v-deep() 2026-03-27 19:10:17 +08:00