- Remove hardcoded URL list for remote API detection
- Try /health first, then probe with HEAD if 404/405
- Re-enable embedding server ready check in drive_monitor
- No more embedding_key hack that skipped health checks entirely
- Bug 1: check_gbkb_changes now preserves indexed=true from previous
state when etag matches, preventing redundant re-indexing every cycle
- Bug 2: USE KB fallback uses bot_id_short (8 chars) instead of random
UUID, matching the collection name convention used by DriveMonitor
- Bug 3: handle_gbkb_change now upserts into kb_collections table after
successful indexing, so USE KB can find the collection at runtime
- Changed ON CONFLICT DO NOTHING to DO UPDATE for kb_collections inserts
- Changed process_gbkb_folder return type to Result<IndexingResult>
File states were stored under /opt/gbo/work/{UUID}/file_states.json
but should be under /opt/gbo/work/{bucket_name}/file_states.json
like other bot data (e.g. /opt/gbo/work/salesianos.gbai/)
Also fixed file_states_static signature to use bucket_name consistently.
- get_work_path_default/get_stack_path no longer rely on CWD-relative botserver-stack check which caused wrong output path in production when CI left that directory
- DriveMonitor now marks .bas file states as indexed=true after list+compile cycle
- Added compile_tool logging for work_dir path
1. Fix model.starts_with('') always true - was limiting ALL models to 768 tokens
(local llama limit), truncating system prompts and KB context. Now only
applies when model=='local' or empty string, default is 32k tokens.
2. Fix create_bot_from_drive missing NOT NULL columns (llm_provider,
context_provider) - bots auto-created from S3 buckets failed to persist.
3. Fix S3 endpoint URL construction missing port 9100.
4. Fix Vault seed: vectordb.url was empty string, now defaults to
http://localhost:6333.
5. Fix Vault credential regeneration on recovery - added vault_seeds_exist().
6. Fix CA cert path for Vault TLS (botserver-stack vs botserver-stack).
7. Add bot verification after insert in create_bot_from_drive.
- SSH to system container and clean unused workspaces
- Keep only botserver/target and active CI directories
- Clean alm-ci workspaces not used by botserver
- Free up disk space before compilation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Restore botlib repository with --depth 1 fetch
- Restore gb-ws workspace from /opt/gbo/data/gb
- Use --depth 1 for all clone operations (faster)
- Build with --features chat flag
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- If /opt/gbo/data/botserver/.git exists, pull instead of clone
- Prevents 'destination already exists' errors from persistent directories
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove only /opt/gbo/data/botserver/.git to preserve workspace
- Avoids 'destination already exists' error on git clone
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Proper workspace setup with botlib and botserver repos
- Incremental git pull for sccache optimization
- Production deployment via SSH tarball
- Workspace: /opt/gbo/data
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add ZITADEL_DATABASE_* environment variables to directory component env_vars
- Remove inline env vars from exec_cmd (now applied via spawn_with_envs)
- Use $DB_PASSWORD reference to fetch from Vault at runtime
- This ensures Zitadel gets database credentials on every boot, not just during install
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed from 'git pull --ff-only' to 'git fetch + git reset --hard'
- This handles cases where local submodule history has diverged from remote
- Ensures CI always uses exact remote state regardless of local history
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed WORKSPACE from /opt/gbo/data/botserver to /home/gbuser/workspace
- Changed CARGO_TARGET_DIR from /opt/gbo/data/botserver/target to /home/gbuser/target
- Restored original Setup Workspace approach that clones gb-ws and uses its Cargo.toml
- Uses shallow clones (--depth 1) for efficiency
- Only initializes necessary submodules (botlib and botserver)
- Updated build and deploy paths to use gbuser home directory
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove gb-ws clone (unnecessary intermediate step)
- Use --depth 1 for shallow clones (only latest commit)
- Create minimal Cargo.toml directly (only botlib + botserver members)
- Use git pull --ff-only for updates (no full history)
- Significantly reduces CI time and disk usage
- Maintains single-pull strategy
- Removed duplicate file_state_path() and load_file_states() methods
- Kept only new save_file_states_static() helper
- Original methods still exist at lines 79-84 and 87-128
- Fixes compilation errors from previous commit
- Added static save_file_states_static() helper method
- Changed tokio::spawn calls to use Arc::clone instead of Arc::new(self.clone())
- This prevents double Arc wrapping which causes 'dispatch failure' errors
- Fixes config.csv not syncing from bucket to database for salesianos/default bots