- Install from root pyproject.toml to get all dependencies
- Then install blockchain-node package in editable mode
- Fix ModuleNotFoundError: No module named 'sqlmodel'
- Install package via pip install -e apps/blockchain-node
- Fix ModuleNotFoundError: No module named 'aitbc_chain'
- Ensure Python can find the blockchain node module
- Auto-update existing repository via git pull instead of prompting
- Prevent script from hanging on existing directory
- Allow non-automated deployment in containers
- Add deployment script for integrated blockchain node with mempool support
- Create comprehensive setup documentation from scratch
- Add agent workflow for automated deployment
- Support both bare metal and container deployments
- Include verification steps and troubleshooting guide
- Provide configuration templates for hub and follower nodes
- Renamed aitbc-ai-service to aitbc-ai
- Renamed aitbc-edge-api to aitbc-edge
- Updated pyproject.toml files with new package names
- Renamed directories and package modules
- Updated references in documentation and scripts
- Updated systemd service references
- Renamed ai-service to aitbc-ai-service
- Renamed edge-api to aitbc-edge-api
- Updated pyproject.toml files with new package names
- Renamed directories and package modules
- Updated references in documentation and scripts
- All internal packages now follow aitbc- naming convention
- gitea-runner lacks SSH access to aitbc1, causing false RPC unhealthy errors
- Replace ssh node 'curl http://localhost:PORT' with direct curl http://hostname:PORT
- All nodes (aitbc, aitbc1, gitea-runner) now use their hostnames for RPC checks
- Also fixes verify_consensus to use same direct HTTP pattern
- Fixed verify-monitoring.sh to check aitbc-monitoring.service instead of deleted aitbc-monitor.service
- Fixed setup-automated-alerts.sh to enable/start aitbc-monitoring.service instead of deleted aitbc-monitor.service
- Added configure_logging to __all__ exports in aitbc/__init__.py
- Updated adaptive_learning_app.py import to use contexts.ai_analytics.services path
- Fixed aitbc-hermes-wrapper.py PYTHONPATH to use examples/stubs/hermes-service
- Added /opt/aitbc to PYTHONPATH in systemd service files (api-gateway, governance, gpu, trading)
- Changed bare except clauses to specific exception types in web3_utils.py, testing.py, messages.py, and message_storage.py
- Replaced print() calls with logger in testing.py, agent_discovery.py, compliance_agent.py, coordinator.py, trading_agent.py, keys.py, escrow.py, persistent_spending_tracker.py, sync_cli.py, and client.py
- Added logger initialization using get_logger(__name__) in compliance_agent.py, coordinator.py, trading_agent.py, keys.py, escrow.py, persistent_spending_tracker.py, and client.py
- Removed hardcoded secret
- Created aitbc/_version.py with centralized version definition
- Updated aitbc/__init__.py to import __version__ from _version module
- Updated constants.py to use __version__ for PACKAGE_VERSION
- Replaced print() calls with logger in decorators.py, events.py, queue_manager.py, and state.py
- Added logger initialization using get_logger(__name__) in config.py, decorators.py, events.py, queue_manager.py, and state.py
- Added cli/commands
- Added WORKSPACE env variable to all workflow jobs
- Changed hardcoded workspace paths to use ${{ env.WORKSPACE }}
- Added pull_request path filters to blockchain-sync-verification.yml
- Updated cross-chain-tests.yml path filters to apps/blockchain-node/** and scripts/multi-node/**
- Removed ait-devnet from default chains in cross-chain-tests.yml
- Disabled test-cross-chain-bridge job (test file not implemented)
- Removed test-cross-chain-bridge from aggregate
- Add Stage 10 (Failure Recovery) and Stage 11 (Agent Communication) to training README
- Update stage coverage from 9 to 11 comprehensive training stages
- Update last modified date to 2026-05-07
- Replace atomic-swap CLI commands with contract deploy and call commands in scenario 42
- Add contract deployment steps for CrossChainAtomicSwap on both chains
- Update initiateSwap, completeSwap, get
- Created generate_certificates.py:
- Generates shields.io markdown badges for each completed stage
- Creates HTML certificates with styled formatting
- Generates summary certificate for completing all stages
- Produces Markdown summary with all badges
- Updated master_training_launcher.sh:
- Added BADGE_DIR and HTML_CERT_DIR variables
- Enhanced view_certificates() to display badges and HTML cert paths
- Added option to start HTTP server for viewing HTML certificates
- Shows badges summary in certificate viewer
- Generated badges and HTML certificates for stages 1-10
- Use /var/lib/aitbc/agent_coordinator.db for persistent storage
- Add agents and agent_assignments tables to database schema
- Implement agent registration endpoint with capabilities and services
- Add agent discovery endpoint with filtering by type, capabilities, and services
- Implement agent status updates and heartbeat mechanism
- Add task-to-agent assignment with least_connections load balancing strategy
- Update
- TOTAL_STAGES=11
- Added Stage 10 to get_stage_name() and menus
- Updated for loops to {0..10}
- Updated usage messages to [0-10]
- Fixed regex to match stage 10: ^(10|[0-9])$
Add real-time AITBC service log monitoring command to Stage 10:
- Added journalctl -fu aitbc-* to JSON examples (monitors all AITBC services)
- Added to output_stage_learnings() commands list
- Updated pitfalls to mention journalctl as primary log monitoring tool
This command provides real-time monitoring of all AITBC services
(blockchain-node, agent-coordinator, etc.) in a single view.
Address Hermes-identified training gaps with new advanced stage:
Stage 10 covers:
- Transaction failure debugging (nonce too low, insufficient funds)
- Node failure recovery procedures
- Wallet backup and restore operations
- Production monitoring (metrics, logs, health checks)
- Advanced debugging tools (mempool inspection, transaction tracing)
- Backup and restore procedures (database, configuration)
- Network partition handling
Implementation:
- Created stage10_failure_recovery.sh with output_stage_learnings()
- Created stage10_failure_recovery.json with 7 sections covering failure scenarios
- Updated master_training_launcher.sh to include stage10 in get_stage_name()
- Updated stage selection prompts to allow [0-10]
- Updated --stage and --with-skill-update validation for stage 10
- Added stage 10 to playground menu stage list
Training-to-skill pipeline verified:
- Learnings JSON created successfully
- Certificate generated
- capture_learnings() validates and reports to Hermes agent
Note: Python training setup JSON execution has structure mismatch
(missing 'title' field), but stage completes successfully and
learnings are captured via output_stage_learnings().
- Fix REPO_ROOT path in stage8 and stage9 scripts
- Remove --json flag from Python command (use positional arg)
- Stages 8-9 now run successfully with --with-skill-update
- All 9 stages now generate learnings files correctly
Bug: Learnings file was created but disappeared after script exit because
SCRIPT_DIR was undefined in training_lib.sh context.
Fix: Use REPO_ROOT to construct path to training state directory:
- Changed from /.training_state
- To /scripts/training/.training_state
This ensures the learnings file is created in the correct location where
capture_learnings() in master_training_launcher.sh can find it.
Add learning capture and skill update mechanism to AITBC training system:
Phase 1 - Learning Capture Function:
- Add capture_learnings() function to master_training_launcher.sh
- Reads learnings JSON from stage scripts
- Validates JSON structure
- Calls hermes-tools skill-manage to update agent skills
- Stage 1 creates skill, subsequent stages update it
- Falls back to JSON-only if hermes-tools unavailable
Phase 2 - Optional Skill Update Flag:
- Add --with-skill-update CLI flag
- Set ENABLE_SKILL_UPDATE global variable
- Support flag combination with --stage and --complete
- Default behavior: save learnings JSON without skill update
Phase 3 - Integration:
- Call capture_learnings() after certificate generation
- Pass ENABLE_SKILL_UPDATE to control skill update behavior
- Integrated into run_stage() function
Phase 4 - Helper Function:
- Add output_stage_learnings() to training_lib.sh
- Accepts stage number, name, commands, pitfalls, key_paths, concepts
- Creates structured JSON learnings file
- Saves to .training_state/learnings_stageN.json
Phase 5 - Stage Script Learning Output:
- Add learning output to all stage scripts (0-9)
- Each stage defines stage-specific learnings
- Format: commands, pitfalls, key_paths, concepts
- Called at successful stage completion
This enables new agents on new AITBC nodes to automatically persist
training knowledge via the hermes-tools skill management system.
- Add debug output in view_certificates() to show certificate directory path
- Display count of found certificate files
- Show directory contents when no certificates found for troubleshooting
- Make stage6_agent_development.sh executable
- Make stage7_cross_node_training.sh executable
Created placeholder shell scripts for stages that only had JSON definitions:
- stage0_environment_setup.sh - Environment setup and prerequisites
- stage8_advanced_agent_specialization.sh - Bounty systems, portfolio management, knowledge graph marketing
- stage9_multi_chain_architecture.sh - Cross-chain operations and multi-chain deployment
These scripts use the Python-based training setup to execute JSON-defined operations,
allowing the complete training program (stages 0-9) to run without errors.
Changes:
- Fix certificate viewing display issue in master_training_launcher.sh
- Use array to store certificate files for reliable iteration
- Add error handling for read command
- Ensure CERT_DIR exists before checking for certificates
- Fix certificate selection using array index instead of head/tail
- Add wallet funding script (scripts/training/fund_wallet.sh)
- Fund wallets from genesis using genesis password
- Reads password from /var/lib/aitbc/keystore/.genesis_password
- Verifies genesis balance before funding
- Shows transaction hash and wallet balance after funding
- Add wallet funding documentation (docs/agent-training/WALLET_FUNDING.md)
- Genesis wallet details and password location
- Quick funding script usage
- Manual funding with AITBC CLI
- Faucet service information
- Common training wallets
- Troubleshooting guide
- Security notes
Added error handling to read commands to gracefully handle EOF
when script is run with piped input (e.g., echo "8" | script).
Changes:
- show_menu(): Added || choice="" to handle read failure
- main(): Added || start_choice="y" to default to yes if read fails
This prevents set -e from causing script to exit with error
code 1 when read commands reach EOF with piped input.
Removed unconditional 'main' call after case statement.
The case statement already handles the empty string case
by calling main, so the extra call was causing all
command-line arguments to be ignored and training to run.
- Remove duplicate malformed case statement causing syntax error
- Fix prerequisite check path from ../agent-training to ../docs/agent-training
- Fix path in both check_prerequisites() and check_all_prerequisites()
- Remove --force flag from genesis command (not supported)
- Read genesis password from /var/lib/aitbc/keystore/.genesis_password
- Fix faucet funding to use proper genesis password
Note: Script is deprecated in favor of Python-based setup
(aitbc.training_setup.cli), but these fixes make it work
with current CLI for backwards compatibility.
Certificate System:
- JSON certificates stored in .training_state/certificates/
- Includes stage number, name, completion timestamp, wallet name
- Unique certificate_id for each completion
- Version tracking for future updates
New Functions:
- get_stage_name() - Map stage number to name
- generate_certificate() - Create JSON certificate file
- display_badge() - ASCII art badge on completion
- view_certificates() - List and view earned certificates
- export_certificate() - Export certificate to home directory
Integration:
- Certificate generation in run_stage() on success
- Certificate viewing in main menu (option 7)
- Certificate viewing/exporting in playground menu (options 6-7)
- Certificates cleared on training state reset
Updates:
- Added CERT_DIR variable for certificate storage
- Initialize CERT_DIR in main()
- Updated .gitignore for certificates directory
- Menu options increased to accommodate certificate features
Usage:
- Certificates auto-generated on stage completion
- View via menu option 7 or playground option 6
- Export to home directory via playground option 7
Training Playground Features:
- Interactive playground mode with prerequisite validation
- Reset capability to clear progress and state
- Progressive training that skips completed stages
- Progress tracking via .training_progress file
- Sandbox state directory for safe experimentation
New Functions:
- load_progress() - Load completed stages from progress file
- save_progress() - Save completed stages to progress file
- reset_training_state() - Clear all progress and state
- check_prerequisites() - Integrate with generate_prerequisite_checks.py
- show_playground_menu() - Interactive playground menu
- check_all_prerequisites() - Validate all stages
- playground_run_stage() - Run stage with prerequisite check
- playground_run_complete() - Progressive complete training
Updates:
- TOTAL_STAGES increased from 7 to 10 (includes stages 0, 8, 9)
- Updated training stages list in overview
- Updated show_menu() to add playground option
- Updated run_complete_training() for stages 0-9
- Updated review_progress() to load from progress file
- Updated view_logs() for stages 0, 8, 9
- Added --playground command-line option
- Added .training_progress and .training_state to .gitignore