Files
Memoh/mise.toml
T
BBQ bc374fe8cd refactor: content-addressed assets, cross-channel multimodal, infra simplification (#63)
* 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>
2026-02-19 00:20:27 +08:00

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'
"""