fix: multiple UI and API issues

- Fix tool calls format for DeepSeek API (add type field)

- Fix config event handler name

- Fix message history display (preserve all messages)

- Fix right panel width and scrolling

- Add async config update to prevent UI freeze

- Add prompt caching with singleton pattern

- Update build scripts with complete hidden imports
This commit is contained in:
JianFeeeee
2026-04-12 23:41:19 +08:00
parent efc8182aa2
commit 82903a3fa7
8 changed files with 223 additions and 54 deletions

View File

@ -1,22 +1,63 @@
#!/bin/bash
set -e
echo "Building macOS binary..."
echo "===== Building TrulyMEM for macOS ====="
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
cd "$PROJECT_ROOT"
echo "Project root: $PROJECT_ROOT"
if ! command -v python3 &> /dev/null; then
echo "Error: python3 not found"
exit 1
fi
echo "Installing dependencies..."
pip3 install -r requirements.txt
python3 -m PyInstaller --clean --onefile --console \
echo "Cleaning previous builds..."
rm -rf build/dist build/__pycache__ 2>/dev/null || true
echo "Running PyInstaller..."
python3 -m PyInstaller trulymem_entry.py \
--clean \
--onefile \
--console \
--name TrulyMEM \
--add-data "ui/styles:ui/styles" \
--add-data "core/prompts/templates:core/prompts/templates" \
--hidden-import textual \
--hidden-import textual.app \
--hidden-import textual.widgets \
--hidden-import textual.css \
--hidden-import openai \
--hidden-import openai._client \
--hidden-import neo4j \
--hidden-import sqlite3 \
--hidden-import core \
--hidden-import core.embedded_db \
--hidden-import core.graph_client \
--hidden-import core.tool_executor \
--hidden-import core.tool_limiter \
--hidden-import core.tools \
--hidden-import core.tools.memory_tools \
--hidden-import core.prompts \
--hidden-import core.prompts.prompt_manager \
--hidden-import ui \
--hidden-import ui.app \
--hidden-import ui.models \
--hidden-import ui.models.message \
--hidden-import ui.models.config \
--hidden-import ui.models.log_entry \
--hidden-import ui.widgets \
--hidden-import ui.handlers \
--hidden-import ui.services \
--hidden-import ui.services.config_manager \
--collect-all textual \
trulymem_entry.py
--noconfirm
echo "Done! Binary: dist/TrulyMEM"
echo "===== Build Complete ====="
echo "Binary: dist/TrulyMEM"
ls -la dist/

View File

@ -1,5 +1,9 @@
@echo off
echo Building Windows binary...
echo ===== Building TrulyMEM for Windows =====
REM 切换到脚本所在目录的上一级目录(项目根目录)
cd /d "%~dp0.."
echo Project root: %CD%
python --version >nul 2>&1
if errorlevel 1 (
@ -7,16 +11,48 @@ if errorlevel 1 (
exit /b 1
)
echo Installing dependencies...
pip install -r requirements.txt
python -m PyInstaller --clean --onefile --console ^
echo Running PyInstaller...
python -m PyInstaller trulymem_entry.py ^
--clean ^
--onefile ^
--console ^
--name TrulyMEM ^
--add-data "ui/styles;ui/styles" ^
--add-data "core/prompts/templates;core/prompts/templates" ^
--hidden-import textual ^
--hidden-import textual.app ^
--hidden-import textual.widgets ^
--hidden-import textual.css ^
--hidden-import openai ^
--hidden-import openai._client ^
--hidden-import neo4j ^
--hidden-import sqlite3 ^
--hidden-import core ^
--hidden-import core.embedded_db ^
--hidden-import core.graph_client ^
--hidden-import core.tool_executor ^
--hidden-import core.tool_limiter ^
--hidden-import core.tools ^
--hidden-import core.tools.memory_tools ^
--hidden-import core.prompts ^
--hidden-import core.prompts.prompt_manager ^
--hidden-import ui ^
--hidden-import ui.app ^
--hidden-import ui.models ^
--hidden-import ui.models.message ^
--hidden-import ui.models.config ^
--hidden-import ui.models.log_entry ^
--hidden-import ui.widgets ^
--hidden-import ui.handlers ^
--hidden-import ui.services ^
--hidden-import ui.services.config_manager ^
--collect-all textual ^
trulymem_entry.py
--noconfirm
echo Done! Binary: dist\TrulyMEM.exe
echo ===== Build Complete =====
echo Binary: dist\TrulyMEM.exe
dir dist\TrulyMEM.exe
pause