Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
05ee090
fix: remove duplicate MOSMCPStdioServer class, use MOSMCPServer
Jan 24, 2026
56d5927
feat: add PostgreSQL + pgvector backend for graph database
Jan 25, 2026
a33f297
feat: change embedding dimension to 768 (all-mpnet-base-v2)
Jan 25, 2026
1a35147
fix: add missing methods to PostgresGraphDB
Jan 27, 2026
e05a01d
fix(recall): preserve vector similarity ranking in search results
Jan 28, 2026
4ad5716
fix(reranker): use recall relativity scores when embeddings unavailable
Jan 28, 2026
bf2b107
feat: add overlay pattern for Krolik security extensions
Jan 29, 2026
273dde6
Merge upstream/main: fix playground chat bug
Jan 29, 2026
bc5647e
feat: Initialize data structures and class for managing memory versio…
bittergreen Jan 30, 2026
57b3cf6
fix: avoid adding fileurl to memoryvalue (#995)
whipser030 Feb 2, 2026
c750c3c
feat: add delete_node_by_mem_cube_id && recover_memory_by_mem_kube_id…
wustzdy Feb 2, 2026
4a79e70
Merge branch 'dev-20260202-v2.0.5' into main
CaralHsi Feb 3, 2026
3b17db4
Delete SYNC_UPSTREAM.md
CaralHsi Feb 3, 2026
02019b3
Merge branch 'main' of https://github.com/MemTensor/MemOS
anatolykoptev Feb 7, 2026
b136e97
chore: Remove overlays directory
anatolykoptev Feb 7, 2026
eafaf9f
feat: Integrate krolik-server patches - production enhancements
anatolykoptev Feb 7, 2026
bebd4c4
fix: Restore original embedder factory.py
anatolykoptev Feb 7, 2026
39baf36
docs: Add development workflow and CI/CD guide
anatolykoptev Feb 7, 2026
d92e268
Add comprehensive diagnostic logging for search pipeline
anatolykoptev Feb 7, 2026
945f2c5
Add diagnostic logging to TaskGoalParser output
anatolykoptev Feb 7, 2026
00f13d0
Change diagnostic logs from INFO to WARNING level
anatolykoptev Feb 7, 2026
6c94aef
Add print() statements for immediate diagnostic visibility
anatolykoptev Feb 7, 2026
210f7c1
Add print to tree.search to confirm entry point
anatolykoptev Feb 7, 2026
f280618
fix: add schedule module to Docker requirements
anatolykoptev Feb 7, 2026
9adf8f4
debug: add diagnostic logs to search results
anatolykoptev Feb 7, 2026
defa2ec
fix: strip agtype double quotes from PolarDB ID values
anatolykoptev Feb 7, 2026
441811d
refactor: clean up graph_dbs module — remove dead code, deduplicate, …
anatolykoptev Feb 7, 2026
034d2a0
fix: downgrade AuthConfig partial-init warning to info
anatolykoptev Feb 7, 2026
1d53b4b
fix: remove act_mem from MOSConfig dict (extra=forbid crash)
anatolykoptev Feb 7, 2026
7241860
fix: skip kv_cache act_mem when no local model backend available
anatolykoptev Feb 7, 2026
fb342f0
fix: require explicit activation_memory_backend for kv_cache act_mem
anatolykoptev Feb 7, 2026
c17a337
feat: add PolarDB support to get_default_cube_config and MCP server
anatolykoptev Feb 7, 2026
35cee7d
feat: cherry-pick URL protection and markdown header fix from upstrea…
anatolykoptev Feb 7, 2026
c262c72
refactor: decompose polardb.py into mixin-based package
anatolykoptev Feb 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 168 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
# Development Workflow

## 🎯 Основной репозиторий для доработок

**Используйте:** `/home/krolik/MemOSina`

## 📋 Workflow для изменений

### 1. Внести изменения локально
```bash
cd /home/krolik/MemOSina
git checkout -b feature/my-feature
# Делайте изменения в коде
```

### 2. Коммит и пуш
```bash
git add .
git commit -m "feat: описание изменений"
git push origin feature/my-feature
```

### 3. CI/CD автоматически запустится
GitHub Actions выполнит все проверки:
- **16 матричных билдов:**
- 4 ОС: ubuntu, windows, macos-14, macos-15
- 4 версии Python: 3.10, 3.11, 3.12, 3.13

- **Проверки:**
- ✅ Установка зависимостей
- ✅ Сборка sdist и wheel
- ✅ Ruff linting (`ruff check`)
- ✅ Ruff formatting (`ruff format --check`)
- ✅ PyTest unit tests

### 4. Обновить krolik-server
После пуша в GitHub:
```bash
cd ~/krolik-server/services/memos-core
git pull origin main # или нужную ветку
cd ../..
docker compose build --no-cache memos-api memos-mcp
docker compose restart memos-api memos-mcp
```

## 🔒 Branch Protection (main ветка)

✅ **Настроено:**
- Требуются проверки CI для Python 3.10, 3.11, 3.12, 3.13 на ubuntu-latest
- Strict mode: ветка должна быть актуальной
- Force push запрещен
- Удаление ветки запрещено

## 🧪 Локальная проверка перед коммитом

### Pre-commit hooks (опционально)
```bash
# Установить pre-commit
pip install --user pre-commit

# В директории MemOSina
cd /home/krolik/MemOSina
pre-commit install

# Запустить вручную
pre-commit run --all-files
```

### Ручная проверка с Ruff
```bash
# В контейнере или локально
cd /home/krolik/MemOSina

# Проверка стиля
ruff check .

# Автоисправление
ruff check . --fix

# Проверка форматирования
ruff format --check .

# Автоформатирование
ruff format .
```

## 📊 Проверка статуса CI

```bash
cd /home/krolik/MemOSina

# Список последних запусков
gh run list --limit 10

# Статус для конкретной ветки
gh run list --branch feature/my-feature

# Просмотр логов последнего запуска
gh run view --log
```

## 🔄 Синхронизация с upstream MemOS

```bash
cd /home/krolik/MemOSina

# Добавить upstream remote (если еще нет)
git remote add upstream https://github.com/MemTensor/MemOS.git

# Получить обновления
git fetch upstream

# Слить в main
git checkout main
git merge upstream/main

# Разрешить конфликты если есть
# git add .
# git commit

# Пуш в форк
git push origin main
```

## 📁 Структура репозиториев

```
/home/krolik/
├── MemOSina/ ⭐ ОСНОВНОЙ - все доработки здесь
│ ├── .github/workflows/ - CI/CD конфигурация
│ ├── src/memos/ - Исходный код с патчами
│ └── tests/ - Тесты
├── memos-pr-work/ 🔧 Для создания PR в upstream
│ └── (ветки для PR: fix/*, feat/*)
└── krolik-server/
├── services/
│ └── memos-core/ 📦 Git submodule → MemOSina
└── docker-compose.yml
```

## ✅ Гарантия качества

С этой настройкой каждый коммит в main проходит:
- ✅ 16 матричных билдов (4 ОС × 4 Python версии)
- ✅ Ruff проверки (код и форматирование)
- ✅ Unit тесты
- ✅ Проверка зависимостей

**Ваш форк теперь такой же качественный, как upstream MemOS!**

## 🚀 Quick Reference

| Задача | Команда |
|--------|---------|
| Создать ветку | `git checkout -b feature/name` |
| Запушить изменения | `git push origin feature/name` |
| Проверить CI | `gh run list --branch feature/name` |
| Обновить submodule | `cd ~/krolik-server/services/memos-core && git pull` |
| Пересобрать контейнеры | `docker compose build --no-cache memos-api memos-mcp` |
| Перезапустить сервисы | `docker compose restart memos-api memos-mcp` |
| Проверить код Ruff | `ruff check . && ruff format --check .` |

---

**Все изменения делайте в `/home/krolik/MemOSina`**
**CI/CD гарантирует качество перед попаданием в upstream!**
65 changes: 65 additions & 0 deletions docker/Dockerfile.krolik
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# MemOS with Krolik Security Extensions
#
# This Dockerfile builds MemOS with authentication, rate limiting, and admin API.
# It uses the overlay pattern to keep customizations separate from base code.

FROM python:3.11-slim

# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc \
g++ \
build-essential \
libffi-dev \
python3-dev \
curl \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*

# Create non-root user
RUN groupadd -r memos && useradd -r -g memos -u 1000 memos

WORKDIR /app

# Use official Hugging Face
ENV HF_ENDPOINT=https://huggingface.co

# Copy base MemOS source
COPY src/ ./src/
COPY pyproject.toml ./

# Install base dependencies
RUN pip install --upgrade pip && \
pip install --no-cache-dir poetry && \
poetry config virtualenvs.create false && \
poetry install --no-dev --extras "tree-mem mem-scheduler"

# Install additional dependencies for Krolik
RUN pip install --no-cache-dir \
sentence-transformers \
torch \
transformers \
psycopg2-binary \
redis

# Apply Krolik overlay (AFTER base install to allow easy updates)
COPY overlays/krolik/ ./src/memos/

# Create data directory
RUN mkdir -p /data/memos && chown -R memos:memos /data/memos
RUN chown -R memos:memos /app

# Set Python path
ENV PYTHONPATH=/app/src

# Switch to non-root user
USER memos

EXPOSE 8000

# Healthcheck
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=60s \
CMD curl -f http://localhost:8000/health || exit 1

# Use extended entry point with security features
CMD ["gunicorn", "memos.api.server_api_ext:app", "--preload", "-w", "2", "-k", "uvicorn.workers.UvicornWorker", "--bind", "0.0.0.0:8000", "--timeout", "120"]
1 change: 1 addition & 0 deletions docker/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ rich-toolkit==0.15.1
rignore==0.7.6
rpds-py==0.28.0
safetensors==0.6.2
schedule==1.2.2
scikit-learn==1.7.2
scipy==1.16.3
sentry-sdk==2.44.0
Expand Down
Loading
Loading