b5c0deb6bcc6ba0755a0d87591acfed2ba7dcb9b
This commit resolves multiple blocking issues that were preventing WHOOSH from properly detecting and converting bzzz-task labeled issues from Gitea: ## Issues Fixed: 1. **JSON Parsing Error**: Gitea API returns repository owner as string in issue responses, but code expected User object. Added IssueRepository struct to handle this API response format difference. 2. **Database Error Handling**: Code was using database/sql.ErrNoRows but system uses pgx driver. Updated imports and error constants to use pgx.ErrNoRows consistently. 3. **NULL Value Scanning**: Database fields (repository, project_id, estimated_hours, complexity_score) can be NULL but Go structs used non-pointer types. Added proper NULL handling with pointer scanning and safe conversion. ## Results: - ✅ WHOOSH now successfully detects bzzz-task labeled issues - ✅ Task creation pipeline working end-to-end - ✅ Tasks API functioning properly - ✅ First bzzz-task converted: "Logic around registered agents faulty" The core issue monitoring workflow is now fully operational and ready for CHORUS integration. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
WHOOSH - Autonomous AI Development Teams
WHOOSH is the orchestration platform for autonomous AI development teams in the CHORUS ecosystem. It transforms from a simple project template tool into a sophisticated system that enables AI agents to form optimal teams, collaborate democratically, and deliver high-quality solutions through consensus-driven development processes.
🎯 MVP Goals
The current MVP focuses on:
- Single-Agent Execution: Process
bzzz-tasklabeled issues with single-agent teams - GITEA Integration: Webhook handling for task discovery and PR management
- Basic Team Management: Minimal team state tracking and assignment
- SLURP Integration: Artifact submission and retrieval proxy
- Docker Swarm Deployment: Production-ready containerization
🏗️ Architecture
Core Components
- Go Backend: HTTP server with chi/echo framework, structured logging with zerolog
- PostgreSQL Database: Team, agent, and task state management with migrations
- GITEA Integration: Webhook processing and API client for issue management
- Docker Swarm: Production deployment with secrets management
- Redis: Optional caching and session management
MVP Workflow
- GITEA webhook receives issue with
bzzz-tasklabel - WHOOSH parses task information and creates team assignment
- Single-agent executor processes task (stubbed Team Composer)
- Results submitted via SLURP proxy for artifact preservation
- PR creation and status updates back to GITEA
🚀 Quick Start
Local Development
# Clone repository
git clone https://gitea.chorus.services/tony/WHOOSH.git
cd WHOOSH
# Copy environment configuration
cp .env.example .env
# Edit .env with your configuration
# Start with Docker Compose
docker-compose up -d
# Or run locally
go run ./cmd/whoosh
Production Deployment
# Setup Docker Swarm secrets
./scripts/setup-secrets.sh
# Deploy to swarm
./scripts/deploy-swarm.sh v0.1.0-mvp
📋 API Endpoints
Health & Status
GET /health- Service health checkGET /health/ready- Readiness check with database connection
Teams (MVP Minimal)
GET /api/v1/teams- List teamsPOST /api/v1/teams- Create team (stub)GET /api/v1/teams/{teamID}- Get team details (stub)PUT /api/v1/teams/{teamID}/status- Update team status (stub)
Task Management
POST /api/v1/tasks/ingest- Task ingestion (stub)GET /api/v1/tasks/{taskID}- Get task details (stub)
SLURP Integration
POST /api/v1/slurp/submit- Submit artifacts (stub)GET /api/v1/slurp/artifacts/{ucxlAddr}- Retrieve artifacts (stub)
CHORUS Integration
GET /api/v1/projects/{projectID}/tasks- List project tasksGET /api/v1/projects/{projectID}/tasks/available- List available tasksGET /api/v1/projects/{projectID}/repository- Get project repository infoGET /api/v1/projects/{projectID}/tasks/{taskNumber}- Get specific taskPOST /api/v1/projects/{projectID}/tasks/{taskNumber}/claim- Claim task for agentPUT /api/v1/projects/{projectID}/tasks/{taskNumber}/status- Update task statusPOST /api/v1/projects/{projectID}/tasks/{taskNumber}/complete- Complete taskPOST /api/v1/agents/register- Register CHORUS agentPUT /api/v1/agents/{agentID}/status- Update agent status
Webhooks
POST /webhooks/gitea- GITEA webhook endpoint (implemented)
🗄️ Database Schema
Core Tables (MVP)
- teams: Team management and status tracking
- team_roles: Available roles (executor, coordinator, reviewer)
- team_assignments: Agent-to-team assignments
- agents: Minimal agent registry
- slurp_submissions: Artifact tracking
🔐 Security Features
- Docker Swarm Secrets: Sensitive data management
- SHHH Integration: Data redaction and encryption
- JWT Authentication: Service and user token validation
- Webhook Signature Validation: GITEA webhook authenticity
- Rate Limiting: API endpoint protection
🛠️ Development Commands
# Build binary
go build ./cmd/whoosh
# Run tests
go test ./...
# Format code
go fmt ./...
# Static analysis
go vet ./...
# Database migrations
migrate -path migrations -database "postgres://..." up
📊 Monitoring
Docker Swarm Services
# Service status
docker service ls --filter label=com.docker.stack.namespace=whoosh
# Service logs
docker service logs -f whoosh_whoosh
# Scale services
docker service scale whoosh_whoosh=3
Health Endpoints
- Health:
https://whoosh.chorus.services/health - Ready:
https://whoosh.chorus.services/health/ready
🔄 Future Roadmap
Post-MVP Features
- Team Composer: LLM-powered task analysis and team formation
- P2P Communication: UCXL addressing and HMMM integration
- Agent Self-Organization: Automatic team application and consensus
- Advanced Analytics: Performance metrics and team effectiveness
- Multi-Repository Support: Cross-project team coordination
Integration Points
- CHORUS Agents: P2P task coordination and execution
- BZZZ System: Distributed task management integration
- SHHH Encryption: Secure data handling and transmission
- UCXL Addressing: Decentralized resource identification
- SLURP Storage: Comprehensive artifact preservation
📚 Documentation
- Development Plan - Comprehensive transformation roadmap
- Database Schema - Complete schema documentation
- API Specification - Full API reference
- Team Composer Spec - LLM integration details
🤝 Contributing
WHOOSH follows the CHORUS ecosystem development patterns:
- Branch from
mainfor features - Implement with comprehensive tests
- Update version tags for container builds
- Deploy to staging for validation
- Create PR with detailed description
📄 License
This project is part of the CHORUS ecosystem. All rights reserved.
WHOOSH - Where autonomous AI development teams come together 🎭
Description
Languages
Go
86.9%
JavaScript
4%
HTML
2.6%
Makefile
1.7%
CSS
1.4%
Other
3.4%