- Add ChatSessionCache to manage chat history per session
- Add SEARCH_USER_METADATA cypher query for retrieving user entity metadata
- Add "str" mode support to StructResponse for raw text extraction
- Add content_str field to MemorySearchResult for pre-formatted content
- Fix sandbox URL by removing hardcoded port
- Add description field to entity search results
- Remove history from UserInput schema, use session_id instead
- Replace "document" with "file" in perceptual summary prompts
- Adjust summary length from 2-4 to 3-5 sentences
- Add explicit language output instruction in problem split prompt
- Sync memory_count after Neo4j write and forgetting cycle
- Filter Neo4j end user list by memory_count > 0
- Filter RAG end user list by Memory knowledge chunk count
- Implement regex matching for {{xxx}} template variable format.
- Enable recursive parsing of all string template variables within node configurations.
- Resolve and substitute template variables with runtime values during input data extraction.
- Support dynamic parsing and substitution of file selector variables in the document extraction node.
- Make strict template variable mode optional and introduce support for default values.
The default thinking budget tokens value was changed from 10000 to 1024 in base.py, and the minimum validation constraint was updated from 1024 to 1 in app_schema.py to allow smaller budgets while maintaining backward compatibility.
- Incorporate model reference metadata (name, provider, type) into workflow nodes and refactor parsing logic to support the new format.
- Streamline code structure by removing redundant model_id fields to enhance maintainability.
- Replace truthiness checks with 'is not None' for data.message in graph_data and community_graph endpoints to handle empty string correctly
- Remove Optional wrapper from GraphStatistics.edge_types since it already has a default_factory
- Add user_memory_schema.py with typed Pydantic models for all user memory
API responses: MemoryInsightReportData, UserSummaryData, GraphData,
MemoryTypeStatItem, cache result models, and RelationshipEvolutionData
- Refactor user_memory_controllers.py to construct schema instances and
return model_dump() instead of raw dicts
- Remove unused imports (datetime, timestamp_to_datetime, EndUserInfoResponse,
EndUserInfoCreate, EndUser)
- Replace plain image URLs with `<img src="..." data-url="...">` HTML tags in multimodal and document extractor services
- Propagate citations from workflow end events to client responses
- Update system prompts to instruct LLMs to render images using Markdown `` with strict UUID-preserving URL copying
* release/v0.3.2: (245 commits)
fix(conversation_schema): refine citations field type to Dict[str, Any]
fix(tool_controller): re-raise HTTPException to preserve original status codes
fix(workflow): add reasoning content, suggested questions, citations and audio status support
feat(workflow): augment logging queries and ameliorate error handling
fix(api_key): bypass publication check for SERVICE type API keys
fix(multimodal_service): add '文档内容:' prefix to document text and simplify image placeholder text
fix(api): convert config_id to string in write_router
fix(api): convert end_user_id to string in write_router
fix(multimodal_service): refactor image processing to use intermediate list before extending result
fix(web): node status ui
fix(api): correct import paths in memory_read and celery task command
fix(api): correct import paths in memory_read and celery task command
refactor(tool): flatten request body parameters for model exposure
fix(api): correct import paths in memory_read and celery task command
refactor(workflow): streamline node execution handling and log service logic
feat(web): http request add process
feat(web): workflow app logs
fix(app_chat_service,draft_run_service): move system_prompt augmentation before LangChainAgent instantiation
fix(app_chat_service,draft_run_service): move system_prompt augmentation before LangChainAgent instantiation
refactor(http_request): simplify request handling and remove unused fields
...
# Conflicts:
# api/app/controllers/file_controller.py
# api/app/tasks.py
- Introduce `reasoning_content`, `suggested_questions`, `citations`, and `audio_status` fields in conversation and app response schemas
- Conditionally set `audio_status` to `"pending"` only when `audio_url` is present
- Replace `model_dump` override with `@model_serializer(mode="wrap")` for cleaner serialization logic
- Change knowledge base validation failure from `RuntimeError` to warning + `continue` to avoid halting retrieval on invalid KB
- Augment log search with app type filtering to enable keyword searching within workflow_executions.
- Introduce execution sequence markers to ensure logs are displayed in the correct chronological order.
- Ameliorate error handling to capture successful node outputs alongside failure details.
- Rectify the processing of empty JSON bodies in HTTP request nodes.
- Fix relative imports in memory_read.py to use absolute app paths
- Change celery scheduler command from `python app/celery_task_scheduler.py` to `python -m app.celery_task_scheduler`
- Fix relative imports in memory_read.py to use absolute app paths
- Change celery scheduler command from `python app/celery_task_scheduler.py` to `python -m app.celery_task_scheduler`