chore: rename quicproquo → quicprochat in docs, Docker, CI, and packaging
Rename all project references from quicproquo/qpq to quicprochat/qpc across documentation, Docker configuration, CI workflows, packaging scripts, operational configs, and build tooling. - Docker: crate paths, binary names, user/group, data dirs, env vars - CI: workflow crate references, binary names, artifact names - Docs: all markdown files under docs/, SDK READMEs, book.toml - Packaging: OpenWrt Makefile, init script, UCI config (file renames) - Scripts: justfile, dev-shell, screenshot, cross-compile, ai_team - Operations: Prometheus config, alert rules, Grafana dashboard - Config: .env.example (QPQ_* → QPC_*), CODEOWNERS paths - Top-level: README, CONTRIBUTING, ROADMAP, CLAUDE.md
This commit is contained in:
@@ -79,14 +79,14 @@ $COMPOSE up -d --wait
|
||||
# ── Step 3: Verify server reachable via QUIC ──────────────────────────────────
|
||||
|
||||
step "Verifying QUIC connectivity from alice..."
|
||||
$COMPOSE exec -T alice qpq health
|
||||
$COMPOSE exec -T alice qpc health
|
||||
|
||||
# ── Step 4: Alice — register identity + upload KeyPackage ─────────────────────
|
||||
|
||||
step "Alice: register-state..."
|
||||
$COMPOSE exec -T alice qpq register-state --state /chat/alice.bin
|
||||
$COMPOSE exec -T alice qpc register-state --state /chat/alice.bin
|
||||
|
||||
ALICE_KEY=$($COMPOSE exec -T alice qpq whoami --state /chat/alice.bin \
|
||||
ALICE_KEY=$($COMPOSE exec -T alice qpc whoami --state /chat/alice.bin \
|
||||
| grep 'identity_key' | awk '{print $3}' | tr -d '[:space:]')
|
||||
info "Alice identity: ${ALICE_KEY}"
|
||||
|
||||
@@ -98,9 +98,9 @@ fi
|
||||
# ── Step 5: Bob — register identity + upload KeyPackage ───────────────────────
|
||||
|
||||
step "Bob: register-state..."
|
||||
$COMPOSE exec -T bob qpq register-state --state /chat/bob.bin
|
||||
$COMPOSE exec -T bob qpc register-state --state /chat/bob.bin
|
||||
|
||||
BOB_KEY=$($COMPOSE exec -T bob qpq whoami --state /chat/bob.bin \
|
||||
BOB_KEY=$($COMPOSE exec -T bob qpc whoami --state /chat/bob.bin \
|
||||
| grep 'identity_key' | awk '{print $3}' | tr -d '[:space:]')
|
||||
info "Bob identity: ${BOB_KEY}"
|
||||
|
||||
@@ -112,21 +112,21 @@ fi
|
||||
# ── Step 6: Alice creates group ───────────────────────────────────────────────
|
||||
|
||||
step "Alice: create-group 'docker-chat'..."
|
||||
$COMPOSE exec -T alice qpq create-group \
|
||||
$COMPOSE exec -T alice qpc create-group \
|
||||
--state /chat/alice.bin \
|
||||
--group-id docker-chat
|
||||
|
||||
# ── Step 7: Alice invites Bob ─────────────────────────────────────────────────
|
||||
|
||||
step "Alice: invite Bob..."
|
||||
$COMPOSE exec -T alice qpq invite \
|
||||
$COMPOSE exec -T alice qpc invite \
|
||||
--state /chat/alice.bin \
|
||||
--peer-key "$BOB_KEY"
|
||||
|
||||
# ── Step 8: Bob joins ─────────────────────────────────────────────────────────
|
||||
|
||||
step "Bob: join group..."
|
||||
$COMPOSE exec -T bob qpq join --state /chat/bob.bin
|
||||
$COMPOSE exec -T bob qpc join --state /chat/bob.bin
|
||||
|
||||
# ── Step 9: Launch tmux ──────────────────────────────────────────────────────
|
||||
|
||||
@@ -140,8 +140,8 @@ echo " Ctrl+D exits a pane."
|
||||
echo " tmux kill-session -t qpc-chat to stop."
|
||||
echo ""
|
||||
|
||||
ALICE_CMD="$COMPOSE exec alice qpq chat --state /chat/alice.bin"
|
||||
BOB_CMD="$COMPOSE exec bob qpq chat --state /chat/bob.bin"
|
||||
ALICE_CMD="$COMPOSE exec alice qpc chat --state /chat/alice.bin"
|
||||
BOB_CMD="$COMPOSE exec bob qpc chat --state /chat/bob.bin"
|
||||
|
||||
# Kill any stale tmux session with the same name.
|
||||
tmux kill-session -t qpc-chat 2>/dev/null || true
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Cross-compile quicproquo for musl targets (OpenWrt / embedded Linux).
|
||||
# Cross-compile quicprochat for musl targets (OpenWrt / embedded Linux).
|
||||
#
|
||||
# Produces statically linked, stripped binaries optimised for size.
|
||||
# Requires: cargo-zigbuild (preferred) or cross.
|
||||
@@ -8,7 +8,7 @@
|
||||
# ./scripts/cross-compile.sh # all targets
|
||||
# ./scripts/cross-compile.sh x86_64-unknown-linux-musl # single target
|
||||
#
|
||||
# Output: target/<triple>/release/qpq-server (stripped)
|
||||
# Output: target/<triple>/release/qpc-server (stripped)
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
@@ -47,7 +47,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
|
||||
echo "=== quicproquo cross-compilation ==="
|
||||
echo "=== quicprochat cross-compilation ==="
|
||||
echo "Build tool: $BUILD_CMD"
|
||||
echo "Targets: ${TARGETS[*]}"
|
||||
echo ""
|
||||
@@ -55,8 +55,8 @@ echo ""
|
||||
FAILED=()
|
||||
for target in "${TARGETS[@]}"; do
|
||||
echo "--- Building for $target ---"
|
||||
if $BUILD_CMD --release --target "$target" --bin qpq-server; then
|
||||
BINARY="target/$target/release/qpq-server"
|
||||
if $BUILD_CMD --release --target "$target" --bin qpc-server; then
|
||||
BINARY="target/$target/release/qpc-server"
|
||||
if [ -f "$BINARY" ]; then
|
||||
SIZE=$(stat -c%s "$BINARY" 2>/dev/null || stat -f%z "$BINARY")
|
||||
SIZE_MB=$(echo "scale=2; $SIZE / 1048576" | bc)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
# ── qpq Dev Shell ─────────────────────────────────────────────────────────────
|
||||
# ── qpc Dev Shell ─────────────────────────────────────────────────────────────
|
||||
#
|
||||
# Builds qpq (if needed), starts a local server, registers Alice + Bob, then
|
||||
# Builds qpc (if needed), starts a local server, registers Alice + Bob, then
|
||||
# opens a tmux session with two side-by-side REPL panes and a server-log strip.
|
||||
#
|
||||
# Layout (window 0 — "chat"):
|
||||
@@ -12,7 +12,7 @@
|
||||
# │ /create-group g ← or create a group │ /join ← to accept invite │
|
||||
# │ │ │
|
||||
# ├──────────[ SERVER LOG ]────────────────────┴──────────────────────────────┤
|
||||
# │ live qpq-server stdout / stderr │
|
||||
# │ live qpc-server stdout / stderr │
|
||||
# └───────────────────────────────────────────────────────────────────────────┘
|
||||
#
|
||||
# Window 1 — "ref": full slash-command cheatsheet (read-only)
|
||||
@@ -23,7 +23,7 @@
|
||||
# ./scripts/dev-shell.sh --resume reuse existing state files + server data
|
||||
# ./scripts/dev-shell.sh --help show this message
|
||||
#
|
||||
# Stop: Ctrl-C here OR tmux kill-session -t qpq-dev
|
||||
# Stop: Ctrl-C here OR tmux kill-session -t qpc-dev
|
||||
# Ref: Ctrl-B 1 (inside tmux → cheatsheet window)
|
||||
# Nav: Ctrl-B ←/→ (switch Alice ↔ Bob pane)
|
||||
# Ctrl-B z (zoom current pane)
|
||||
@@ -33,19 +33,19 @@ set -euo pipefail
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
BIN_DIR="$PROJECT_ROOT/target/debug"
|
||||
SESSION="qpq-dev"
|
||||
SESSION="qpc-dev"
|
||||
SERVER_PORT=7000
|
||||
SERVER_ADDR="127.0.0.1:$SERVER_PORT"
|
||||
SERVER_NAME="localhost"
|
||||
|
||||
# All runtime state lives in /tmp so the project tree stays clean
|
||||
RUN_DIR="/tmp/qpq-devshell"
|
||||
RUN_DIR="/tmp/qpc-devshell"
|
||||
DATA_DIR="$RUN_DIR/server-data" # server stores TLS cert + OPAQUE data here
|
||||
CA_CERT="$DATA_DIR/server-cert.der"
|
||||
LOG_FILE="$RUN_DIR/server.log"
|
||||
|
||||
QPQ="$BIN_DIR/qpq"
|
||||
QPQS="$BIN_DIR/qpq-server"
|
||||
QPQ="$BIN_DIR/qpc"
|
||||
QPQS="$BIN_DIR/qpc-server"
|
||||
|
||||
# ── Colours ────────────────────────────────────────────────────────────────────
|
||||
GRN='\033[0;32m'; CYN='\033[0;36m'; YLW='\033[1;33m'; RED='\033[0;31m'; NC='\033[0m'
|
||||
@@ -125,7 +125,7 @@ cleanup() {
|
||||
step "Shutting down..."
|
||||
tmux kill-session -t "$SESSION" 2>/dev/null || true
|
||||
if [[ -n "$SERVER_PID" ]] && kill -0 "$SERVER_PID" 2>/dev/null; then
|
||||
info "Stopping qpq-server (PID $SERVER_PID)..."
|
||||
info "Stopping qpc-server (PID $SERVER_PID)..."
|
||||
kill "$SERVER_PID" 2>/dev/null || true
|
||||
wait "$SERVER_PID" 2>/dev/null || true
|
||||
fi
|
||||
@@ -135,7 +135,7 @@ cleanup() {
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
# ── Start server ───────────────────────────────────────────────────────────────
|
||||
step "Starting qpq-server on $SERVER_ADDR..."
|
||||
step "Starting qpc-server on $SERVER_ADDR..."
|
||||
"$QPQS" \
|
||||
--listen "$SERVER_ADDR" \
|
||||
--data-dir "$DATA_DIR" \
|
||||
@@ -166,7 +166,7 @@ for i in $(seq 1 20); do
|
||||
done
|
||||
sleep 0.5 # brief pause for the QUIC listener to open
|
||||
|
||||
QPQ_GLOBAL=(--ca-cert "$CA_CERT" --server-name "$SERVER_NAME")
|
||||
QPC_GLOBAL=(--ca-cert "$CA_CERT" --server-name "$SERVER_NAME")
|
||||
|
||||
# ── Build REPL command strings ─────────────────────────────────────────────────
|
||||
# Registration is handled automatically by the REPL on first launch:
|
||||
@@ -177,7 +177,7 @@ QPQ_GLOBAL=(--ca-cert "$CA_CERT" --server-name "$SERVER_NAME")
|
||||
# the identity key from ever being bound on a subsequent REPL launch.
|
||||
repl_cmd() {
|
||||
local user="$1" pass="$2"
|
||||
echo "$QPQ ${QPQ_GLOBAL[*]} repl \
|
||||
echo "$QPQ ${QPC_GLOBAL[*]} repl \
|
||||
--state $RUN_DIR/${user}.bin \
|
||||
--server $SERVER_ADDR \
|
||||
--username $user \
|
||||
@@ -244,7 +244,7 @@ tmux send-keys -t "${SESSION}:1" "clear" Enter
|
||||
# Heredoc piped through cat so it renders immediately and stays visible
|
||||
tmux send-keys -t "${SESSION}:1" "cat << 'CHEAT'
|
||||
╔══════════════════════════════════════════════════════════════════════════╗
|
||||
║ qpq REPL ─ Slash Command Cheatsheet ║
|
||||
║ qpc REPL ─ Slash Command Cheatsheet ║
|
||||
╠══════════════════════════════════════════════════════════════════════════╣
|
||||
║ GENERAL ║
|
||||
║ /help show all commands in the REPL ║
|
||||
@@ -303,7 +303,7 @@ tmux send-keys -t "${SESSION}:1" "cat << 'CHEAT'
|
||||
║ ║
|
||||
║ EXIT / STOP ║
|
||||
║ Ctrl-B :kill-session Enter kill tmux + triggers script cleanup ║
|
||||
║ tmux kill-session -t qpq-dev from any other terminal ║
|
||||
║ tmux kill-session -t qpc-dev from any other terminal ║
|
||||
║ /quit (in Alice or Bob pane) exit that REPL only ║
|
||||
╚══════════════════════════════════════════════════════════════════════════╝
|
||||
CHEAT" Enter
|
||||
@@ -315,7 +315,7 @@ tmux select-pane -t "${SESSION}:0.0"
|
||||
# ── Print startup summary ──────────────────────────────────────────────────────
|
||||
printf "\n"
|
||||
printf "${GRN}╔══════════════════════════════════════════════════════╗${NC}\n"
|
||||
printf "${GRN}║${NC} ${GRN}qpq dev shell — ready${NC} ${GRN}║${NC}\n"
|
||||
printf "${GRN}║${NC} ${GRN}qpc dev shell — ready${NC} ${GRN}║${NC}\n"
|
||||
printf "${GRN}╠══════════════════════════════════════════════════════╣${NC}\n"
|
||||
printf "${GRN}║${NC} Session ${CYN}%s${NC}\n" "$SESSION ${GRN}║${NC}"
|
||||
printf "${GRN}║${NC} Server ${CYN}%s${NC}\n" "$SERVER_ADDR (log → $LOG_FILE) ${GRN}║${NC}"
|
||||
@@ -326,7 +326,7 @@ printf "${GRN}║${NC} Quick DM: ${CYN}[Alice pane]${NC} type: /dm bob
|
||||
printf "${GRN}║${NC} Cheatsheet: Ctrl-B 1 (inside tmux) ${GRN}║${NC}\n"
|
||||
printf "${GRN}║${NC} Exit: Ctrl-B :kill-session Enter ${GRN}║${NC}\n"
|
||||
printf "${GRN}║${NC} or from another terminal: ${GRN}║${NC}\n"
|
||||
printf "${GRN}║${NC} tmux kill-session -t qpq-dev ${GRN}║${NC}\n"
|
||||
printf "${GRN}║${NC} tmux kill-session -t qpc-dev ${GRN}║${NC}\n"
|
||||
printf "${GRN}╚══════════════════════════════════════════════════════╝${NC}\n"
|
||||
printf "\n"
|
||||
|
||||
|
||||
@@ -6,14 +6,14 @@ cd "$(git rev-parse --show-toplevel)"
|
||||
INTERACTIVE=false
|
||||
[[ "${1:-}" == "--interactive" ]] && INTERACTIVE=true
|
||||
|
||||
SESSION="qpq-screenshot"
|
||||
SESSION="qpc-screenshot"
|
||||
SERVER_PORT=17123
|
||||
SERVER_ADDR="127.0.0.1:${SERVER_PORT}"
|
||||
DATA_DIR=$(mktemp -d)
|
||||
CERT="${DATA_DIR}/server-cert.der"
|
||||
KEY="${DATA_DIR}/server-key.der"
|
||||
QPQ="./target/debug/qpq"
|
||||
SERVER="./target/debug/qpq-server"
|
||||
QPQ="./target/debug/qpc"
|
||||
SERVER="./target/debug/qpc-server"
|
||||
SLOG="${DATA_DIR}/server.log"
|
||||
|
||||
cleanup() {
|
||||
@@ -26,7 +26,7 @@ trap cleanup EXIT
|
||||
|
||||
# ── Build ────────────────────────────────────────────────────────────────────
|
||||
echo "Building binaries..."
|
||||
cargo build --bin qpq --bin qpq-server 2>&1 | tail -1
|
||||
cargo build --bin qpc --bin qpc-server 2>&1 | tail -1
|
||||
|
||||
# ── Start server ─────────────────────────────────────────────────────────────
|
||||
echo "Starting server on ${SERVER_ADDR}..."
|
||||
|
||||
Reference in New Issue
Block a user