Knowledge files were only partitioned in the database, which made nested uploads, local folder visibility, and delete behavior diverge from the UI. This change makes folder selection drive physical storage paths, keeps original filenames, adds a minimal WebDAV mount/sync path, and reshapes the knowledge panel so local and remote sources can share the same surface.
Constraint: Existing knowledge flow already depends on local-folder-backed uploads and document indexing
Rejected: Real-time bidirectional WebDAV sync | too much conflict and lifecycle complexity for the first pass
Confidence: medium
Scope-risk: moderate
Reversibility: messy
Directive: Keep remote mounts single-direction into local knowledge folders until etag-based incremental sync and conflict rules are verified
Tested: Python py_compile on new/modified backend files; LSP diagnostics on new frontend/backend files; manual targeted code-path inspection
Not-tested: Full pytest/vitest end-to-end runs blocked by environment temp/cache permission errors; live WebDAV server interoperability
- Set default weather (Clear 25°C, Beijing) on mount before API call
- Don't overwrite weather on API failure to keep default visible
- Use Beijing coordinates as default fallback location
- Add selected date state and conversation mapping in useSidebarPlan
- Connect calendar cells to conversation switching logic
- Add conversation indicator dot on dates with sessions
- Only clickable dates show hand cursor (today + dates with conversations)
- Add .selected styling for non-today dates, today keeps blue
- Fix hover effect to only apply to non-today dates
- Add daily doc for session date mapping feature
BREAKING: Calendar click now switches sessions by date
- Add KanbanPanel component with four-quadrant task layout
- Add KanbanDetail component for task configuration modal
- Add "待办" (Todo) module to sidebar collapsed icon rail
- Click TODAY'S STATUS card or sidebar icon to open kanban drawer
- Click quadrant check icon to open detail modal with Teleport to body
- Apply blur effect to sidebar and chat area when detail modal is open
- Import ListTodo icon from lucide-vue-next
- Update sidebar labels to English for consistency
- Change time locale from zh-CN to en-US to properly display AM/PM
- Increase letter-spacing for better readability (0.08em → 0.12em)
- Update all time displays to use 12-hour format consistently
Backend changes:
- Add LOCATION configuration option to Settings
- Add /api/system/config endpoint to expose public config
- Implement location priority: config > geolocation > default
Frontend changes:
- Install and integrate weather-icons npm package (Erik Flowers)
- Redesign calendar header with date/time on left, weather/location on right
- Display weather icon using CSS classes instead of SVG components
- Fetch location from backend API on component mount
- Use configured location name (from .env) instead of geocoded result
Layout:
- Left: month/year + current time
- Right: city name + weather description + weather icon
- Remove calendar-title-row (year/month + time) that was showing below the main date row
- Keep only the primary date display (jarvis-date-row) at the top
- Also removes unused calendarYear/calendarMonth computed properties
Sidebar width reduced for denser layout. Font stacks updated to include Noto Sans SC and Microsoft YaHei fallbacks so Chinese text renders with consistent mech typography. Left sidebar elements (new-chat-btn, conv-title, empty-text, empty-hint) now explicitly use var(--font-display).
- M.2: ForgettingCurve, MemoryDecay, MemoryReinforcement (selective forgetting)
- M.3: DailyDigestGenerator, ReminderScheduler, ProactiveInformer (proactive reminders)
- M.4: MemoryExtractor with LLM-based memory extraction from conversations
- M.5: MemoryRecallInjector with token budget control for prompt injection
- All phases include comprehensive unit tests (109 tests passing)
- Updated checklist.md to mark all tasks complete
Expand the agents page into a three-tier org chart, refine zoom and active route feedback, and cover the hierarchy behavior with targeted tests.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add sub-commander orchestration updates, align frontend integrations, and refine knowledge view behavior without including local data artifacts.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Strengthen the Ultron command center with clearer blueprint-style hierarchy, embedded route telemetry, and test coverage for active path visualization.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Capture the current local data snapshot and planning artifacts alongside
this development batch so the workspace state matches the code changes.
This preserves the reference materials and generated files that were
kept in the working tree.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Expand the frontend with brain, graph, and chat workspace updates so the
new backend orchestration and memory features have matching screens.
These changes also wire the new APIs into routing and add focused view
and routing tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Keep folder selection stable across refreshes, surface upload failures
more clearly, and add focused composable tests for the knowledge page.
This keeps newly uploaded files visible and makes MinerU dependency
errors easier to understand from the frontend.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move the runtime log screen into the new pages structure, add compact page navigation, and apply the minimal component fixes needed to keep the refactored frontend buildable.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Reorganize the frontend around app-level routing and page modules so the runtime and feature screens share a clearer navigation and composition layout for future work.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Make runtime log queries support request correlation and date-range diagnostics with shared filtering semantics so the log page can use one consistent contract.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Implemented a complete log system for tracking:
- Agent logs:智能体调用
- System logs: 系统运行
- Chat logs: 问答对话
Backend:
- Log model with type, level, user_id, message, source, duration_ms
- LogService with methods for logging and querying
- API endpoints: GET /api/logs, GET /api/logs/stats, GET /api/logs/recent
Frontend:
- LogView.vue with filters, stats, pagination, auto-refresh
- log.ts API client with TypeScript interfaces
- Added "运行日志" nav item to sidebar
When test passes, props.model.enabled is updated but editingModel wasn't
synced, causing save button to remain disabled.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove old card-based model list UI
- Add LLM config state management (expandedRow, editingSnapshot)
- Implement addModel/removeModel with embedding/rerank constraints
- Implement updateModel, testModel, saveModel, toggleRow, cancelEdit
- Add showRequiredWarning computed property
- Rewrite template with 4 LLM type sections using LLMTableRow
- Add styles for llm-type-section, warning-bar, etc.
- Update loadSettings to initialize with empty arrays
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>