## Problem
When users ran `ao init`, no `sessionPrefix` was set in the config.
Then `ao start` would create sessions named `undefined-orchestrator`
instead of `{projectId}-orchestrator`, causing the dashboard to not
find the orchestrator session (button missing).
## Root Cause
In `start.ts` lines 177 & 369, the orchestrator session ID was
constructed without a fallback:
```typescript
const sessionId = `${project.sessionPrefix}-orchestrator`;
```
## Fix
Added fallback to projectId (consistent with other commands):
```typescript
const sessionId = `${project.sessionPrefix || projectId}-orchestrator`;
```
## Additional Improvements
- Dashboard: Show helpful tooltip when orchestrator missing
- Documentation: Added QUICKTEST.md with manual test procedures
- Testing: Added automated test script (./scripts/test-orchestrator-setup.sh)
- Testing: Added .github/TESTING_GUIDE.md for contributors
## Testing
- ✅ Automated test passes (creates session with correct name)
- ✅ Tested on fresh integrator checkout with no sessionPrefix
- ✅ Session created as `integrator-orchestrator` (not `undefined-orchestrator`)
- ✅ Metadata file created correctly
- ✅ Dashboard can find orchestrator session
Run test: ./scripts/test-orchestrator-setup.sh
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>