v0.2.0 — User Runtime, Legal Consent, Source Cron, Auth Scene
Added
User Runtime: Tools, Skills, MCP
- Per-user external tool definitions (name, endpoint, auth, schema) callable by the AI advisor
- User-authored Python skills with AST-checked sandboxed imports
- MCP settings card: configure Model Context Protocol servers per user
- Skill settings card: upload / enable / disable user skills
- Personal service keys: per-user encrypted API keys (OpenAI / Anthropic / Alibaba / DeepSeek / etc.)
- Personal model settings: per-user default model + per-task overrides
- User service policy: per-user rate limits and allowed provider lists
Legal Consent & Privacy
- Versioned Terms of Service and Privacy Policy; users must consent before first use
- /terms and /privacy frontend pages
- Legal-consent dialog on first visit post-registration
Scenario Evolution Tracking
- Records each scenario state transition with timestamp, trigger, and delta
- Timeline view in the scenario detail panel
- Structured evidence ledger and per-factor model for auditable reasoning
Source Cron Refresh + Risk Alerts
- Per-source auto-refresh schedule (auto_refresh, refresh_interval_minutes, next_refresh_at, last_refreshed_at)
- Celery beat task refresh_due_sources runs every minute, re-fetches due sources via Tavily Extract
- High-risk events extracted during refresh trigger risk-propagation + notification flow
- PATCH /sources/{id}/schedule and POST /sources/{id}/refresh API endpoints
- Frontend source-schedule-dialog with presets (1m-24h) and custom minute input
Auth Page ASCII Scene
- Day/night themes with growing forest, wind sway
- Day: ASCII sun, drifting clouds, flying birds with flapping wings
- Night: crescent moon, twinkling stars, right-to-left meteors fading above treetops
- Victorian street lamp with flicker glow halo, fireflies around the lamp
- Lamp/bench/person grow from the ground in sync with trees
- Lamp stays off during the day; only lights up at night with flicker
- prefers-reduced-motion static fallback
Chat & AI Advisor
- chat-model-selector: per-conversation model picker
- ai-elements overhaul: richer tool-call rendering with proper icons (no emojis)
- AI avatar uses @lobehub/icons CDN for model brand icons
Changed
- Chat history sidebar defaults to collapsed on first visit
- /auth ASCII art extracted into ascii-scene-art.ts for reuse
- README documentation updated across all 7 language variants
Fixed
- structuring.py undefined user_id variable in multi-user scenarios
- OAuth callback routing: dynamic [provider] path parameter
- AuthGate no longer renders children when unauthenticated in multi-user mode
- DEFAULT_USER role is now user (not admin); admin applied dynamically via _apply_admin_override
- Trees no longer occlude the lamp/bench/person in the foreground
Full Changelog: v0.1.0...v0.2.0