Released: November 24, 2025
Status: Production
Branch: production (commit 5aab5320)
v0.8.1 is a stability and UX improvement release that introduces version tracking, enhances user settings, fixes critical LLM API issues, and includes foundational infrastructure refactoring for better maintainability.
Single Source of Truth: Version managed in pyproject.toml and exposed throughout the application.
Features:
services/version.py - Reads version from pyproject.toml using tomli/api/v1/version endpoint - Returns version + environment info__version__ export for Python importsImpact: Users can now verify which version is running in production vs development.
Files Changed:
New Settings Hub: Centralized settings page with card-based navigation.
Available Settings:
Design: Clean, responsive card layout with hover effects and meta tags.
Access: Navigate to /settings or click Settings in main navigation.
Files Changed:
Issue: Learning dashboard had hardcoded dark mode colors, ignoring user theme preferences.
Solution: Replaced all hardcoded color values with CSS variables to support theme switching.
CSS Variables Used:
--bg-primary, --bg-secondary, --bg-tertiary - Background colors--text-primary, --text-secondary - Text colors--primary-color, --primary-color-hover - Accent colors--border-color - BordersImpact: Learning dashboard now respects system theme (light/dark mode).
Files Changed:
Issue: LLMDomainService.complete() and LLMService.complete() didn’t support system parameter, causing failures in conversations requiring system prompts.
Root Cause: Methods only passed messages, model, max_tokens - ignored system parameter.
Fix: Added system parameter to method signatures and API calls.
Impact: System prompts now work correctly in LLM conversations.
Files Changed:
Issue: ConversationDB and ConversationTurnDB models referenced but not defined.
Fix: Added proper model definitions with relationships.
Impact: Conversation tracking now works correctly.
UUID Format Issues: Fixed invalid UUID format in file resolver and scoring tests.
SEC-RBAC Migration: Completed session_id → owner_id migration across:
Result: Test suite now passes with proper UUID validation.
Audited Safe: These refactors are currently in production and have been audited as non-breaking.
Problem: Duplicate router mounting code repeated 8+ times in web/app.py.
Solution: Created mount_routers() factory function.
Benefits:
Files Changed:
Problem: Monolithic startup logic mixed with app creation in web/app.py.
Solution: Extracted lifespan management to separate module.
Benefits:
Files Changed:
Risk Assessment: LOW - Both phases are structural refactors with zero breaking changes.
Added:
Files Changed:
Added: Nov 22-23 test scenarios and results.
Files Changed:
5aab5320 fix(#391): Replace hardcoded dark mode with CSS variables in learning dashboard
fab1f838 chore: Bump version to 0.8.1
3e41e144 feat(INFR-MAINT-REFACTOR): Phase 2 - Lifespan Extraction & Startup Phases
676bb870 fix(tests): Fix invalid UUID format in file resolver and scoring tests
5ff37e64 feat(INFR-MAINT-REFACTOR): Phase 1 - Router Factory Implementation
c3fae1cb feat(#383): Create basic user settings page
debeae99 feat: Implement version tracking system (Option 2)
1347f14f fix: Add missing ConversationDB and ConversationTurnDB models
48a4ee22 fix(#381): Add system parameter support to LLM complete() methods
Passing: 1154+ tests
Known Failures: Tracked in .pytest-known-failures
Pre-Push Validation: Enabled with fast test suite (<30s)
SEC-RBAC: Completed migration from session_id to owner_id across all repositories.
None reported for v0.8.1 features.
git pull origin productionNew Dependencies:
tomli - TOML parsing for pyproject.toml (already in requirements.txt)Environment Variables:
ENVIRONMENT - Set to “production”, “staging”, or “development” (defaults to “development”)Phase 3 & 4 Refactors (#385):
Generated: 2025-11-24 10:21 AM By: Claude Code (Programmer) Session: 2025-11-24-0516-prog-code-log.md