- Added explicit CI/CD deployment directives (NEVER use scp, ALWAYS use CI)
- Updated CI runner documentation: runs as gbuser, sccache config, workspace paths
- Fixed deprecated block_in_place code example to use std:🧵:spawn pattern
- Added security headers: NEVER include sensitive data in documentation
- Updated container architecture table with all services
Messages from WhatsApp are being correctly received and processed by the bot now.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated setup_directory() to try multiple credential sources:
1. Existing config file
2. Zitadel log extraction
3. Default credentials
4. Helpful error message if all fail
- Made ensure_admin_token() async to actually authenticate with credentials
- Added test_zitadel_credentials() helper function
- Improved error messages for debugging
This addresses the issue where OAuth client creation was failing because
credentials couldn't be extracted from Zitadel logs.
Related: zit.md plan for automatic OAuth client creation
- Documented that /opt/gbo/data is also a location for bots
- Added warning to never search /target folder (compiled binaries)
- Synced all submodules with latest changes
Related to tool loading fix that moved .mcp.json files to
botserver-stack/data/system/work/ and updated code to use
relative paths instead of hardcoded HOME/gb path.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>