- TraceDisplayer: new timeline-style layout with vertical track, dot markers, and expandable event cards
- TracePage: redesigned topbar with custom toggle switch, removed scoped CSS conflicts
- All colors use explicit hex values with !important to ensure visibility across themes
- Vue 3 Composition API with shallowRef to avoid reactive overhead
Root cause: invalid CSS var --v-theme-primaryText resolved to white,
making text invisible against transparent background.
Fix: add global (non-scoped) <style> block with !important color
overrides and explicit dark background for trace table elements.
Also changed .trace-table background from transparent to
var(--v-theme-surface) for proper dark theme support.
- 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
- 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
- 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
- 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
- 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
Introduce session-level state management for tools that need to maintain
state across conversation turns within the same session (UMO).
- Add ToolSessionManager class for central per-(UMO, tool_name) state
- Add ToolSessionState with set_persistent(key) support
- Add is_stateful flag to FunctionTool base class
- Wire session_manager through run_context in all agent runners
- Update ExecuteShellTool to use framework session manager
- Update CLAUDE.md with stateful tool documentation
BREAKING: Tools that were manually managing session state via _sessions
dict should migrate to use the framework's ToolSessionManager for proper
lifecycle management and persistence support.
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
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.
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.
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.