2026-02-24 22:55:41 +01:00
|
|
|
.PHONY: install install-cli db db-tools migrate seed api dashboard check start clean register-project
|
Add state-hub v0.1 — local-first state service for the Custodian
Implements the first live layer of the Custodian cognitive infrastructure:
PostgreSQL schema, FastAPI REST API, FastMCP stdio server, and Observable
Framework telemetry dashboard.
- state-hub/: full stack (docker-compose, FastAPI, Alembic, MCP server, dashboard)
- 5 DB tables: topics, workstreams, tasks, decisions, progress_events
- 11 MCP tools + 5 resources registered in .mcp.json
- Observable dashboard: Overview, Workstreams, Decisions, Progress pages
- CLAUDE.md: session protocol (get_state_summary / add_progress_event ritual)
- ~/.claude/CLAUDE.md: global cross-project reference to the hub
- scripts/pull_image.py: WSL2 TLS-resilient Docker image downloader
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 17:47:49 +01:00
|
|
|
|
|
|
|
|
COMPOSE = docker compose -f infra/docker-compose.yml --env-file .env
|
|
|
|
|
|
|
|
|
|
install:
|
|
|
|
|
uv sync
|
|
|
|
|
|
2026-02-24 22:55:41 +01:00
|
|
|
## Symlink the custodian CLI into ~/.local/bin so it's on PATH system-wide
|
|
|
|
|
install-cli: install
|
|
|
|
|
mkdir -p ~/.local/bin
|
|
|
|
|
ln -sf "$(shell pwd)/.venv/bin/custodian" ~/.local/bin/custodian
|
|
|
|
|
@echo "Installed: custodian → $$(readlink -f ~/.local/bin/custodian)"
|
|
|
|
|
@echo "Make sure ~/.local/bin is on your PATH:"
|
|
|
|
|
@echo " echo 'export PATH=\"\$$HOME/.local/bin:\$$PATH\"' >> ~/.bashrc && source ~/.bashrc"
|
|
|
|
|
|
Add state-hub v0.1 — local-first state service for the Custodian
Implements the first live layer of the Custodian cognitive infrastructure:
PostgreSQL schema, FastAPI REST API, FastMCP stdio server, and Observable
Framework telemetry dashboard.
- state-hub/: full stack (docker-compose, FastAPI, Alembic, MCP server, dashboard)
- 5 DB tables: topics, workstreams, tasks, decisions, progress_events
- 11 MCP tools + 5 resources registered in .mcp.json
- Observable dashboard: Overview, Workstreams, Decisions, Progress pages
- CLAUDE.md: session protocol (get_state_summary / add_progress_event ritual)
- ~/.claude/CLAUDE.md: global cross-project reference to the hub
- scripts/pull_image.py: WSL2 TLS-resilient Docker image downloader
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 17:47:49 +01:00
|
|
|
db:
|
|
|
|
|
$(COMPOSE) up -d postgres
|
|
|
|
|
|
|
|
|
|
db-tools:
|
|
|
|
|
$(COMPOSE) --profile tools up -d
|
|
|
|
|
|
|
|
|
|
migrate:
|
|
|
|
|
uv run alembic upgrade head
|
|
|
|
|
|
|
|
|
|
seed:
|
|
|
|
|
uv run python scripts/seed.py
|
|
|
|
|
|
|
|
|
|
api:
|
|
|
|
|
uv run uvicorn api.main:app --reload --host 127.0.0.1 --port 8000
|
|
|
|
|
|
|
|
|
|
dashboard:
|
|
|
|
|
cd dashboard && npm run dev
|
|
|
|
|
|
|
|
|
|
check:
|
|
|
|
|
curl -sf http://127.0.0.1:8000/state/health | python3 -m json.tool
|
|
|
|
|
|
|
|
|
|
start: db
|
|
|
|
|
sleep 3
|
|
|
|
|
$(MAKE) migrate
|
|
|
|
|
$(MAKE) api
|
|
|
|
|
|
2026-02-24 22:22:53 +01:00
|
|
|
## Register a project: make register-project DOMAIN=railiance PROJECT_PATH=/home/worsch/railiance
|
|
|
|
|
register-project:
|
|
|
|
|
@test -n "$(DOMAIN)" || (echo "ERROR: DOMAIN is required. Usage: make register-project DOMAIN=<domain> PROJECT_PATH=<path>"; exit 1)
|
|
|
|
|
@test -n "$(PROJECT_PATH)" || (echo "ERROR: PROJECT_PATH is required."; exit 1)
|
|
|
|
|
scripts/register_project.sh "$(DOMAIN)" "$(PROJECT_PATH)"
|
|
|
|
|
|
Add state-hub v0.1 — local-first state service for the Custodian
Implements the first live layer of the Custodian cognitive infrastructure:
PostgreSQL schema, FastAPI REST API, FastMCP stdio server, and Observable
Framework telemetry dashboard.
- state-hub/: full stack (docker-compose, FastAPI, Alembic, MCP server, dashboard)
- 5 DB tables: topics, workstreams, tasks, decisions, progress_events
- 11 MCP tools + 5 resources registered in .mcp.json
- Observable dashboard: Overview, Workstreams, Decisions, Progress pages
- CLAUDE.md: session protocol (get_state_summary / add_progress_event ritual)
- ~/.claude/CLAUDE.md: global cross-project reference to the hub
- scripts/pull_image.py: WSL2 TLS-resilient Docker image downloader
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 17:47:49 +01:00
|
|
|
clean:
|
|
|
|
|
$(COMPOSE) down -v
|