mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-25 07:00:48 +09:00
bc374fe8cd
* refactor(attachment): multimodal attachment refactor with snapshot schema and storage layer - Add snapshot schema migration (0008) and update init/versions/snapshots - Add internal/attachment and internal/channel normalize for unified attachment handling - Move containerfs provider from internal/media to internal/storage - Update agent types, channel adapters (Telegram/Feishu), inbound and handlers - Add containerd snapshot lineage and local_channel tests - Regenerate sqlc, swagger and SDK * refactor(media): content-addressed asset system with unified naming - Replace asset_id foreign key with content_hash as sole identifier for bot_history_message_assets (pure soft-link model) - Remove mime, size_bytes, storage_key from DB; derive at read time via media.Resolve from actual storage - Merge migrations 0008/0009 into single 0008; keep 0001 as canonical schema - Add Docker initdb script for deterministic migration execution order - Fix cross-channel real-time image display (Telegram → WebUI SSE) - Fix message disappearing on refresh (null assets fallback) - Fix file icon instead of image preview (mime derivation from storage) - Unify AssetID → ContentHash naming across Go, Agent, and Frontend - Change storage key prefix from 4-char to 2-char for directory sharding - Add server-entrypoint.sh for Docker deployment migration handling * refactor(infra): embedded migrations, Docker simplification, and config consolidation - Embed SQL migrations into Go binary, removing shell-based migration scripts - Consolidate config files into conf/ directory (app.example.toml, app.docker.toml, app.dev.toml) - Simplify Docker setup: remove initdb.d scripts, streamline nginx config and entrypoint - Remove legacy CLI, feishu-echo commands, and obsolete incremental migration files - Update install script and docs to require sudo for one-click install - Add mise tasks for dev environment orchestration * chore: recover migrations --------- Co-authored-by: Acbox <acbox0328@gmail.com>
121 lines
2.5 KiB
TOML
121 lines
2.5 KiB
TOML
experimental_monorepo_root = true
|
|
|
|
[tools]
|
|
# Go version from go.mod
|
|
go = "1.25.6"
|
|
# Node.js for frontend packages
|
|
node = "25"
|
|
# Bun for agent gateway
|
|
bun = "latest"
|
|
# pnpm for workspace management
|
|
pnpm = "10"
|
|
# sqlc for sql management
|
|
sqlc = "latest"
|
|
# typos for spell check
|
|
typos = "latest"
|
|
|
|
[task_config]
|
|
dir = "{{cwd}}"
|
|
|
|
[settings]
|
|
experimental = true
|
|
|
|
[tasks.pnpm-install]
|
|
description = "Install dependencies"
|
|
run = "pnpm install"
|
|
|
|
[tasks.go-install]
|
|
description = "Install Go dependencies"
|
|
run = "go mod download"
|
|
|
|
[tasks.swagger-generate]
|
|
description = "Generate Swagger documentation"
|
|
run = "cd internal/handlers && go generate"
|
|
|
|
[tasks.sdk-generate]
|
|
description = "Generate SDK code"
|
|
run = "pnpm run generate-sdk"
|
|
depends = ["//:swagger-generate"]
|
|
|
|
[tasks.sqlc-generate]
|
|
description = "Generate SQL code"
|
|
run = "sqlc generate"
|
|
|
|
[tasks.infra]
|
|
description = "Start dev infrastructure (postgres + qdrant)"
|
|
run = "docker compose -f devenv/docker-compose.yml up -d"
|
|
|
|
[tasks.infra-down]
|
|
description = "Stop dev infrastructure"
|
|
run = "docker compose -f devenv/docker-compose.yml down"
|
|
|
|
[tasks.infra-logs]
|
|
description = "View dev infrastructure logs"
|
|
run = "docker compose -f devenv/docker-compose.yml logs -f"
|
|
|
|
[tasks.db-up]
|
|
description = "Initialize and Migrate Database"
|
|
run = "scripts/db-up.sh"
|
|
|
|
[tasks.db-down]
|
|
description = "Drop Database"
|
|
run = "scripts/db-drop.sh"
|
|
|
|
[tasks.release]
|
|
description = "Release new version"
|
|
run = "pnpm release"
|
|
|
|
[tasks.install-cli]
|
|
description = "Install CLI"
|
|
depends = ["//:pnpm-install"]
|
|
run = "cd packages/cli && npm install -g"
|
|
|
|
[tasks.compile-mcp]
|
|
description = "Build MCP binary into /app and signal container"
|
|
run = "scripts/compile-mcp.sh"
|
|
|
|
[tasks.dev]
|
|
description = "Start development environment"
|
|
depends = [
|
|
"//:swagger-generate",
|
|
"//:sdk-generate",
|
|
"//agent:dev",
|
|
"//cmd/agent:start",
|
|
"//packages/web:dev",
|
|
]
|
|
|
|
[tasks.setup]
|
|
description = "Setup development environment"
|
|
depends = [
|
|
"//:sqlc-generate",
|
|
"//:pnpm-install",
|
|
"//:go-install",
|
|
"//:install-cli",
|
|
]
|
|
run = """
|
|
#!/bin/bash
|
|
set -e
|
|
|
|
# Auto-copy dev config if config.toml doesn't exist
|
|
if [ ! -f config.toml ]; then
|
|
cp conf/app.dev.toml config.toml
|
|
echo '✓ Copied conf/app.dev.toml → config.toml'
|
|
fi
|
|
|
|
# Start dev infrastructure
|
|
docker compose -f devenv/docker-compose.yml up -d
|
|
|
|
# Wait for postgres to be healthy
|
|
echo 'Waiting for postgres...'
|
|
until docker compose -f devenv/docker-compose.yml exec -T postgres pg_isready -U memoh >/dev/null 2>&1; do
|
|
sleep 1
|
|
done
|
|
echo '✓ Postgres ready'
|
|
|
|
# Run migrations
|
|
scripts/db-up.sh
|
|
|
|
echo '✓ Setup complete! Run: mise run dev'
|
|
"""
|
|
|