chore: ROADMAP Phase 8, parallel AI team script, docker and infra updates

- ROADMAP.md: add Phase 8 — Freifunk / Community Mesh Networking with
  F0-F8 checkboxes; F0-F2 marked complete
- scripts/ai_team.py: rewrite to support asyncio.gather parallel agent
  runs; add --sprint flag with predefined work packages (audit,
  phase1-hardening, phase2-tests, phase1-infra, status); add --parallel
  for ad-hoc concurrent agent invocations; output written to
  logs/ai_team/<sprint>_<timestamp>/<agent>.md
- scripts/dev-shell.sh: convenience development shell helper
- docker: update Dockerfiles for quicproquo rename and new server flags
- .gitignore: add qpq-state artifacts (*.bin, *.session, *.pending.ks,
  *.convdb*)
This commit is contained in:
2026-03-03 14:42:21 +01:00
parent d7e530435f
commit b6483dedbc
7 changed files with 1255 additions and 30 deletions

View File

@@ -7,7 +7,7 @@
# Usage:
# ./scripts/chat-test.sh
#
# Requirements: docker, docker compose, tmux
# Requirements: docker (or podman + podman-compose), tmux
# Exit: Ctrl+D in both panes, or: tmux kill-session -t qpc-chat
set -euo pipefail
@@ -15,7 +15,6 @@ set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
COMPOSE_FILE="$PROJECT_ROOT/docker/docker-compose.chat-test.yml"
COMPOSE="docker compose -f $COMPOSE_FILE -p qpc-chat-test"
# ── Colors ────────────────────────────────────────────────────────────────────
@@ -27,6 +26,37 @@ step() { echo -e "${GREEN}==> $1${NC}"; }
info() { echo -e " ${CYAN}$1${NC}"; }
error() { echo -e "${RED}ERROR: $1${NC}" >&2; }
# ── Preflight checks ─────────────────────────────────────────────────────────
# Prefer docker; fall back to podman.
if command -v docker &>/dev/null; then
if ! docker compose version &>/dev/null; then
error "docker compose (v2 plugin) is required."
echo " See: https://docs.docker.com/compose/install/"
exit 1
fi
COMPOSE_BIN="docker compose"
elif command -v podman &>/dev/null; then
if ! command -v podman-compose &>/dev/null; then
error "podman-compose is required when using podman."
echo " pip install podman-compose"
exit 1
fi
COMPOSE_BIN="podman-compose"
else
error "docker or podman is required but neither is installed."
exit 1
fi
COMPOSE="$COMPOSE_BIN -f $COMPOSE_FILE -p qpc-chat-test"
if ! command -v tmux &>/dev/null; then
error "tmux is required but not installed."
echo " macOS: brew install tmux"
echo " Linux: sudo apt-get install tmux"
exit 1
fi
# ── Cleanup on exit ──────────────────────────────────────────────────────────
cleanup() {
@@ -36,26 +66,6 @@ cleanup() {
}
trap cleanup EXIT INT TERM
# ── Preflight checks ─────────────────────────────────────────────────────────
if ! command -v docker &>/dev/null; then
error "docker is required but not installed."
exit 1
fi
if ! docker compose version &>/dev/null; then
error "docker compose (v2 plugin) is required."
echo " See: https://docs.docker.com/compose/install/"
exit 1
fi
if ! command -v tmux &>/dev/null; then
error "tmux is required but not installed."
echo " macOS: brew install tmux"
echo " Linux: sudo apt-get install tmux"
exit 1
fi
# ── Step 1: Build ─────────────────────────────────────────────────────────────
step "Building Docker image (server + client)..."