forked from genewildish/Mainline
- Fix TerminalDisplay: add screen clear each frame (cursor home + erase down) - Fix CameraStage: use set_canvas_size instead of read-only viewport properties - Fix Glitch effect: preserve visible line lengths, remove cursor positioning - Fix Fade effect: return original line when fade=0 instead of empty string - Fix Noise effect: use input line length instead of terminal_width - Remove HUD effect from all presets (redundant with border FPS display) - Add regression tests for effect dimension stability - Add docs/ARCHITECTURE.md with Mermaid diagrams - Add mise tasks: diagram-ascii, diagram-validate, diagram-check - Move markdown docs to docs/ (ARCHITECTURE, Refactor, hardware specs) - Remove redundant requirements files (use pyproject.toml) - Add *.dot and *.png to .gitignore Closes #25
80 lines
2.4 KiB
TOML
80 lines
2.4 KiB
TOML
[tools]
|
|
python = "3.12"
|
|
hk = "latest"
|
|
pkl = "latest"
|
|
uv = "latest"
|
|
|
|
[tasks]
|
|
# =====================
|
|
# Core
|
|
# =====================
|
|
|
|
test = "uv run pytest"
|
|
test-cov = { run = "uv run pytest --cov=engine --cov-report=term-missing", depends = ["sync-all"] }
|
|
lint = "uv run ruff check engine/ mainline.py"
|
|
format = "uv run ruff format engine/ mainline.py"
|
|
|
|
# =====================
|
|
# Run
|
|
# =====================
|
|
|
|
run = "uv run mainline.py"
|
|
run-pygame = { run = "uv run mainline.py --display pygame", depends = ["sync-all"] }
|
|
run-terminal = { run = "uv run mainline.py --display terminal", depends = ["sync-all"] }
|
|
|
|
# =====================
|
|
# Presets
|
|
# =====================
|
|
|
|
run-demo = { run = "uv run mainline.py --preset demo --display pygame", depends = ["sync-all"] }
|
|
|
|
# =====================
|
|
# Daemon
|
|
# =====================
|
|
|
|
daemon = "nohup uv run mainline.py > nohup.out 2>&1 &"
|
|
daemon-stop = "pkill -f 'uv run mainline.py' 2>/dev/null || true"
|
|
daemon-restart = "mise run daemon-stop && sleep 2 && mise run daemon"
|
|
|
|
# =====================
|
|
# Environment
|
|
# =====================
|
|
|
|
sync = "uv sync"
|
|
sync-all = "uv sync --all-extras"
|
|
install = "mise run sync"
|
|
clean = "rm -rf .venv htmlcov .coverage tests/.pytest_cache .mainline_cache_*.json nohup.out"
|
|
clobber = "git clean -fdx && rm -rf .venv htmlcov .coverage tests/.pytest_cache .mainline_cache_*.json nohup.out"
|
|
|
|
# =====================
|
|
# CI
|
|
# =====================
|
|
|
|
ci = { run = "mise run topics-init && mise run lint && mise run test-cov", depends = ["topics-init", "lint", "test-cov"] }
|
|
topics-init = "curl -s -d 'init' https://ntfy.sh/klubhaus_terminal_mainline_cc_cmd > /dev/null && curl -s -d 'init' https://ntfy.sh/klubhaus_terminal_mainline_cc_resp > /dev/null && curl -s -d 'init' https://ntfy.sh/klubhaus_terminal_mainline > /dev/null"
|
|
|
|
# =====================
|
|
# Hooks
|
|
# =====================
|
|
|
|
pre-commit = "hk run pre-commit"
|
|
|
|
# =====================
|
|
# Diagrams
|
|
# =====================
|
|
|
|
# Render Mermaid diagrams to ASCII art
|
|
diagram-ascii = "python3 scripts/render-diagrams.py docs/ARCHITECTURE.md"
|
|
|
|
# Validate Mermaid syntax in docs (check all diagrams parse)
|
|
# Note: classDiagram not supported by mermaid-ascii but works in GitHub/GitLab
|
|
diagram-validate = """
|
|
python3 scripts/validate-diagrams.py
|
|
"""
|
|
|
|
# Render diagrams and check they match expected output
|
|
diagram-check = "mise run diagram-validate"
|
|
|
|
[env]
|
|
KAGI_API_KEY = "lOp6AGyX6TUB0kGzAli1BlAx5-VjlIN1OPCPYEXDdQc.FOKLieOa7NgWUUZi4mTZvHmrW2uNnOr8hfgv7jMvRQM"
|