Files
Memoh/mise.toml
T
BBQ 04bce702b7 feat(devenv): MCP dev hot-reload with image-based approach (#145)
Add mcp-build.sh that compiles the MCP binary and packages it as an
OCI image layer on top of the base rootfs, imported directly into
containerd. Air triggers rebuild on code changes, cleaning stale
containers automatically.

Consolidate dev-only files (Dockerfiles, entrypoint, config, build
script) into devenv/ to separate dev tooling from production artifacts.
Skip image pull when already imported to speed up dev startup.
2026-03-02 14:59:48 +08:00

131 lines
2.9 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"
env = { CI = "true" }
run = "pnpm install"
[tasks.go-install]
description = "Install Go dependencies"
run = "go mod download"
[tasks.swagger-generate]
description = "Generate Swagger documentation"
depends = [
"//:go-install",
]
run = "cd internal/handlers && go generate"
[tasks.sdk-generate]
description = "Generate SDK code"
run = "pnpm run generate-sdk"
depends = [
"//:pnpm-install",
"//:swagger-generate"
]
[tasks.sqlc-generate]
description = "Generate SQL code"
run = "sqlc generate"
[tasks.dev]
description = "Start development environment"
run = """
#!/bin/bash
set -e
cp devenv/app.dev.toml config.toml
docker compose -f devenv/docker-compose.yml up --build
"""
[tasks."dev:down"]
description = "Stop development environment"
run = "docker compose -f devenv/docker-compose.yml down --remove-orphans"
[tasks."dev:logs"]
description = "View development logs"
run = "docker compose -f devenv/docker-compose.yml logs -f"
[tasks."dev:restart"]
description = "Restart a service (usage: mise run dev:restart -- server)"
run = "docker compose -f devenv/docker-compose.yml restart $@"
[tasks."mcp:build"]
description = "Manually build MCP dev binary (normally auto-triggered by air)"
run = """
#!/bin/bash
set -e
docker compose -f devenv/docker-compose.yml exec server \
sh -c 'cd /workspace && sh devenv/mcp-build.sh'
"""
[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.build-embedded-assets]
description = "Build and stage embedded web/agent/bun assets"
run = "scripts/release.sh --prepare-assets"
depends = ["//:pnpm-install"]
[tasks.build-unified]
description = "Build unified memoh binary"
depends = ["//:build-embedded-assets"]
run = "go build -o bin/memoh ./cmd/memoh"
[tasks.release-binaries]
description = "Build release archive for one target (requires TARGET_OS TARGET_ARCH)"
depends = ["//:pnpm-install"]
run = "scripts/release.sh"
[tasks.install-cli]
description = "Install CLI"
depends = ["//:pnpm-install"]
run = "cd packages/cli && npm install -g"
[tasks.install-socktainer]
description = "Install socktainer"
run = "brew tap socktainer/tap && brew install socktainer"
[tasks.setup]
description = "Setup development environment"
depends = [
"//:sqlc-generate",
"//:pnpm-install",
"//:go-install",
"//:install-cli",
]
run = """
#!/bin/bash
set -e
cp devenv/app.dev.toml config.toml
echo '✓ Setup complete! Run: mise run dev'
"""