[#94] Add operations dashboard and setup script for Uni-Wizard v4
This commit is contained in:
129
docs/OPERATIONS_DASHBOARD.md
Normal file
129
docs/OPERATIONS_DASHBOARD.md
Normal file
@@ -0,0 +1,129 @@
|
||||
# Timmy Operations Dashboard
|
||||
|
||||
**Generated:** March 30, 2026
|
||||
**Generated by:** Allegro (Tempo-and-Dispatch)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Current Sprint Status
|
||||
|
||||
### Open Issues by Priority
|
||||
|
||||
| Priority | Count | Issues |
|
||||
|----------|-------|--------|
|
||||
| P0 (Critical) | 0 | — |
|
||||
| P1 (High) | 3 | #99, #103, #94 |
|
||||
| P2 (Medium) | 8 | #101, #97, #95, #93, #92, #91, #90, #87 |
|
||||
| P3 (Low) | 6 | #86, #85, #84, #83, #72, others |
|
||||
|
||||
### Issue #94 Epic: Grand Timmy — The Uniwizard
|
||||
|
||||
**Status:** In Progress
|
||||
**Completion:** ~40%
|
||||
|
||||
#### Completed
|
||||
- ✅ Uni-Wizard v4 architecture (4-pass evolution)
|
||||
- ✅ Three-House separation (Timmy/Ezra/Bezalel)
|
||||
- ✅ Self-improving intelligence engine
|
||||
- ✅ Pattern database and adaptive policies
|
||||
- ✅ Hermes bridge for telemetry
|
||||
|
||||
#### In Progress
|
||||
- 🔄 Backend registry (#95)
|
||||
- 🔄 Caching layer (#103)
|
||||
- 🔄 Wizard dissolution (#99)
|
||||
|
||||
#### Pending
|
||||
- ⏳ RAG pipeline (#93)
|
||||
- ⏳ Telemetry dashboard (#91)
|
||||
- ⏳ Auto-grading (#92)
|
||||
- ⏳ Evennia world shell (#83, #84)
|
||||
|
||||
---
|
||||
|
||||
## 🏛️ House Assignments
|
||||
|
||||
| House | Status | Current Work |
|
||||
|-------|--------|--------------|
|
||||
| **Timmy** | 🟢 Active | Local sovereign, reviewing PRs |
|
||||
| **Ezra** | 🟢 Active | Research on LLM routing (#101) |
|
||||
| **Bezalel** | 🟡 Standby | Awaiting implementation tasks |
|
||||
| **Allegro** | 🟢 Active | Tempo-and-dispatch, Gitea bridge |
|
||||
|
||||
---
|
||||
|
||||
## 📊 System Health
|
||||
|
||||
### VPS Fleet Status
|
||||
|
||||
| Host | IP | Role | Status |
|
||||
|------|-----|------|--------|
|
||||
| Allegro | 143.198.27.163 | Tempo-and-Dispatch | 🟢 Online |
|
||||
| Ezra | TBD | Archivist/Research | ⚪ Not deployed |
|
||||
| Bezalel | TBD | Artificer/Builder | ⚪ Not deployed |
|
||||
|
||||
### Services
|
||||
|
||||
| Service | Status | Notes |
|
||||
|---------|--------|-------|
|
||||
| Gitea | 🟢 Running | 19 open issues |
|
||||
| Hermes | 🟡 Configured | Awaiting model setup |
|
||||
| Overnight Loop | 🔴 Stopped | Issue #72 reported |
|
||||
| Uni-Wizard | 🟢 Ready | PR created |
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Recent Activity
|
||||
|
||||
### Last 24 Hours
|
||||
|
||||
1. **Uni-Wizard v4 Completed** — Four-pass architecture evolution
|
||||
2. **PR Created** — feature/uni-wizard-v4-production
|
||||
3. **Allegro Lane Narrowed** — Focused on Gitea/Hermes bridge
|
||||
4. **Issue #72 Reported** — Overnight loop not running
|
||||
|
||||
### Pending Actions
|
||||
|
||||
1. Deploy Ezra VPS (archivist/research)
|
||||
2. Deploy Bezalel VPS (artificer/builder)
|
||||
3. Start overnight loop
|
||||
4. Configure Syncthing mesh
|
||||
5. Implement caching layer (#103)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Recommendations
|
||||
|
||||
### Immediate (Next 24h)
|
||||
|
||||
1. **Review Uni-Wizard v4 PR** — Ready for merge
|
||||
2. **Start Overnight Loop** — If operational approval given
|
||||
3. **Deploy Ezra VPS** — For research tasks
|
||||
|
||||
### Short-term (This Week)
|
||||
|
||||
1. Implement caching layer (#103) — High impact
|
||||
2. Build backend registry (#95) — Enables routing
|
||||
3. Create telemetry dashboard (#91) — Visibility
|
||||
|
||||
### Medium-term (This Month)
|
||||
|
||||
1. Complete Grand Timmy epic (#94)
|
||||
2. Dissolve wizard identities (#99)
|
||||
3. Deploy Evennia world shell (#83, #84)
|
||||
|
||||
---
|
||||
|
||||
## 📈 Metrics
|
||||
|
||||
| Metric | Current | Target |
|
||||
|--------|---------|--------|
|
||||
| Issues Open | 19 | < 10 |
|
||||
| PRs Open | 1 | — |
|
||||
| VPS Online | 1/3 | 3/3 |
|
||||
| Loop Cycles | 0 | 100/day |
|
||||
|
||||
---
|
||||
|
||||
*Dashboard updated: March 30, 2026*
|
||||
*Next update: March 31, 2026*
|
||||
183
scripts/setup-uni-wizard.sh
Executable file
183
scripts/setup-uni-wizard.sh
Executable file
@@ -0,0 +1,183 @@
|
||||
#!/bin/bash
|
||||
# Uni-Wizard v4 Production Setup Script
|
||||
# Run this on a fresh VPS to deploy the Uni-Wizard architecture
|
||||
|
||||
set -e
|
||||
|
||||
echo "╔═══════════════════════════════════════════════════════════════╗"
|
||||
echo "║ Uni-Wizard v4 — Production Setup ║"
|
||||
echo "╚═══════════════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
|
||||
# Configuration
|
||||
TIMMY_HOME="/opt/timmy"
|
||||
UNI_WIZARD_DIR="$TIMMY_HOME/uni-wizard"
|
||||
SERVICE_USER="timmy"
|
||||
|
||||
# Check if running as root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "❌ Please run as root (use sudo)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "📦 Step 1: Installing dependencies..."
|
||||
apt-get update
|
||||
apt-get install -y python3 python3-pip python3-venv sqlite3 curl git
|
||||
|
||||
echo "👤 Step 2: Creating timmy user..."
|
||||
if ! id "$SERVICE_USER" &>/dev/null; then
|
||||
useradd -m -s /bin/bash "$SERVICE_USER"
|
||||
echo "✅ User $SERVICE_USER created"
|
||||
else
|
||||
echo "✅ User $SERVICE_USER already exists"
|
||||
fi
|
||||
|
||||
echo "📁 Step 3: Setting up directories..."
|
||||
mkdir -p "$TIMMY_HOME"
|
||||
mkdir -p "$TIMMY_HOME/logs"
|
||||
mkdir -p "$TIMMY_HOME/config"
|
||||
mkdir -p "$TIMMY_HOME/data"
|
||||
chown -R "$SERVICE_USER:$SERVICE_USER" "$TIMMY_HOME"
|
||||
|
||||
echo "🐍 Step 4: Creating Python virtual environment..."
|
||||
python3 -m venv "$TIMMY_HOME/venv"
|
||||
source "$TIMMY_HOME/venv/bin/activate"
|
||||
pip install --upgrade pip
|
||||
|
||||
echo "📥 Step 5: Cloning timmy-home repository..."
|
||||
if [ -d "$TIMMY_HOME/repo" ]; then
|
||||
echo "✅ Repository already exists, pulling latest..."
|
||||
cd "$TIMMY_HOME/repo"
|
||||
sudo -u "$SERVICE_USER" git pull
|
||||
else
|
||||
sudo -u "$SERVICE_USER" git clone http://143.198.27.163:3000/Timmy_Foundation/timmy-home.git "$TIMMY_HOME/repo"
|
||||
fi
|
||||
|
||||
echo "🔗 Step 6: Linking Uni-Wizard..."
|
||||
ln -sf "$TIMMY_HOME/repo/uni-wizard/v4/uni_wizard" "$TIMMY_HOME/uni_wizard"
|
||||
|
||||
echo "⚙️ Step 7: Installing Uni-Wizard package..."
|
||||
cd "$TIMMY_HOME/repo/uni-wizard/v4"
|
||||
pip install -e .
|
||||
|
||||
echo "📝 Step 8: Creating configuration..."
|
||||
cat > "$TIMMY_HOME/config/uni-wizard.yaml" << 'EOF'
|
||||
# Uni-Wizard v4 Configuration
|
||||
house: timmy
|
||||
mode: intelligent
|
||||
enable_learning: true
|
||||
|
||||
# Database
|
||||
pattern_db: /opt/timmy/data/patterns.db
|
||||
|
||||
# Telemetry
|
||||
telemetry_enabled: true
|
||||
telemetry_buffer_size: 1000
|
||||
|
||||
# Circuit breaker
|
||||
circuit_breaker:
|
||||
failure_threshold: 5
|
||||
recovery_timeout: 60
|
||||
|
||||
# Logging
|
||||
log_level: INFO
|
||||
log_dir: /opt/timmy/logs
|
||||
|
||||
# Gitea integration
|
||||
gitea:
|
||||
url: http://143.198.27.163:3000
|
||||
repo: Timmy_Foundation/timmy-home
|
||||
poll_interval: 300 # 5 minutes
|
||||
|
||||
# Hermes bridge
|
||||
hermes:
|
||||
db_path: /root/.hermes/state.db
|
||||
stream_enabled: true
|
||||
EOF
|
||||
|
||||
chown "$SERVICE_USER:$SERVICE_USER" "$TIMMY_HOME/config/uni-wizard.yaml"
|
||||
|
||||
echo "🔧 Step 9: Creating systemd services..."
|
||||
|
||||
# Uni-Wizard service
|
||||
cat > /etc/systemd/system/uni-wizard.service << EOF
|
||||
[Unit]
|
||||
Description=Uni-Wizard v4 - Self-Improving Intelligence
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=$SERVICE_USER
|
||||
WorkingDirectory=$TIMMY_HOME
|
||||
Environment=PYTHONPATH=$TIMMY_HOME/venv/lib/python3.12/site-packages
|
||||
ExecStart=$TIMMY_HOME/venv/bin/python -m uni_wizard daemon
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# Health daemon
|
||||
cat > /etc/systemd/system/timmy-health.service << EOF
|
||||
[Unit]
|
||||
Description=Timmy Health Check Daemon
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=$SERVICE_USER
|
||||
WorkingDirectory=$TIMMY_HOME
|
||||
ExecStart=$TIMMY_HOME/venv/bin/python -m uni_wizard health_daemon
|
||||
Restart=always
|
||||
RestartSec=30
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# Task router
|
||||
cat > /etc/systemd/system/timmy-task-router.service << EOF
|
||||
[Unit]
|
||||
Description=Timmy Gitea Task Router
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=$SERVICE_USER
|
||||
WorkingDirectory=$TIMMY_HOME
|
||||
ExecStart=$TIMMY_HOME/venv/bin/python -m uni_wizard task_router
|
||||
Restart=always
|
||||
RestartSec=60
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
echo "🚀 Step 10: Enabling services..."
|
||||
systemctl daemon-reload
|
||||
systemctl enable uni-wizard timmy-health timmy-task-router
|
||||
|
||||
echo ""
|
||||
echo "╔═══════════════════════════════════════════════════════════════╗"
|
||||
echo "║ Setup Complete! ║"
|
||||
echo "╠═══════════════════════════════════════════════════════════════╣"
|
||||
echo "║ ║"
|
||||
echo "║ Next steps: ║"
|
||||
echo "║ 1. Configure Gitea API token: ║"
|
||||
echo "║ edit $TIMMY_HOME/config/uni-wizard.yaml ║"
|
||||
echo "║ ║"
|
||||
echo "║ 2. Start services: ║"
|
||||
echo "║ systemctl start uni-wizard ║"
|
||||
echo "║ systemctl start timmy-health ║"
|
||||
echo "║ systemctl start timmy-task-router ║"
|
||||
echo "║ ║"
|
||||
echo "║ 3. Check status: ║"
|
||||
echo "║ systemctl status uni-wizard ║"
|
||||
echo "║ ║"
|
||||
echo "╚═══════════════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
echo "Installation directory: $TIMMY_HOME"
|
||||
echo "Logs: $TIMMY_HOME/logs/"
|
||||
echo "Config: $TIMMY_HOME/config/"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user