Files
synapbus/specs/007-platform-features-bundle/quickstart.md
T
Algis DumbrisandClaude Opus 4.6 75d6238f1d plan: 007 platform features — research, data model, contracts, quickstart
Phase 0-1 complete: technical decisions, entity schemas (a2a_tasks,
user_identities, identity_providers), API contracts (A2A JSON-RPC,
IdP routes, StalemateWorker config), and quickstart guide.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 20:17:08 +02:00

94 lines
2.9 KiB
Markdown

# Quickstart: SynapBus v0.6.0 Development
## Prerequisites
- Go 1.25+
- Node.js 20+ (for Svelte frontend)
- Git
## Build & Test
```bash
make build # Build Go binary + Svelte SPA
make test # Run all Go tests
go test ./... # Alternative: all tests
cd web && npm run build # Build frontend only
```
## New Features Development
### F1: StalemateWorker
- Edit: `internal/messaging/stalemate.go` (new file)
- Test: `internal/messaging/stalemate_test.go`
- Wire: `cmd/synapbus/main.go` (start worker after message service)
- Config: env vars `SYNAPBUS_STALEMATE_*`
### F2: Channel reply_to
- Edit: `internal/actions/registry.go` (add reply_to param to send_channel_message)
- Edit: `internal/mcp/bridge.go` (pass reply_to in callSendChannelMessage)
- Edit: `internal/channels/service.go` (accept reply_to in BroadcastMessage)
- Test: `internal/channels/service_test.go`
### F3: A2A Agent Cards
- New: `internal/a2a/agentcard.go`
- Edit: `internal/api/router.go` (add /.well-known/agent-card.json route)
- Edit: `cmd/synapbus/admin.go` (agent update-capabilities command)
- Test: `internal/a2a/agentcard_test.go`
### F4: Mobile UI
- Edit: `web/src/routes/+layout.svelte` (responsive sidebar)
- Edit: `web/src/lib/components/Sidebar.svelte` (drawer mode)
- Edit: `web/src/lib/components/Header.svelte` (hamburger button)
- Test: Visual verification at 375px viewport
### F5: A2A Gateway
- New: `internal/a2a/gateway.go`, `taskstore.go`, `routes.go`
- New: `schema/010_a2a_tasks.sql`
- Edit: `internal/api/router.go` or `cmd/synapbus/main.go` (mount /a2a)
- Test: `internal/a2a/gateway_test.go`
### F6: K8s Handlers
- Edit: `internal/k8s/dispatcher.go` (add mention event matching)
- Edit: `cmd/synapbus/admin.go` (user-friendly register-handler command)
- Test: `internal/k8s/dispatcher_test.go`
### F7: Enterprise IdP
- New: `internal/auth/idp/` package
- New: `schema/011_external_auth.sql`
- Edit: `web/src/routes/login/+page.svelte` (IdP buttons)
- Edit: `cmd/synapbus/main.go` (wire IdP routes)
- Test: `internal/auth/idp/idp_test.go`
### F8: CLAUDE.md
- Edit: `CLAUDE.md` (add SynapBus Communication Protocol section)
## Running Locally
```bash
./synapbus serve --port 8080 --data ./data --log-level debug
```
## Testing StalemateWorker
```bash
# Set short timeouts for testing
SYNAPBUS_STALEMATE_PROCESSING_TIMEOUT=1m \
SYNAPBUS_STALEMATE_REMINDER_AFTER=30s \
SYNAPBUS_STALEMATE_ESCALATE_AFTER=2m \
SYNAPBUS_STALEMATE_INTERVAL=10s \
./synapbus serve --port 8080 --data ./test-data
```
## Testing A2A
```bash
# Fetch Agent Card
curl http://localhost:8080/.well-known/agent-card.json | jq
# Send A2A task
curl -X POST http://localhost:8080/a2a \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <api-key>" \
-d '{"jsonrpc":"2.0","id":1,"method":"message.send","params":{"message":{"role":"user","parts":[{"text":"Hello"}],"metadata":{"target_agent":"test-bot"}}}}'
```