- Delete package-lock.json and create .npmrc with engine-strict setting
- Generate pnpm-lock.yaml (without shamefully-hoist, works with Hardhat 3/TypeScript)
- Update package-tests.yml to use pnpm for aitbc-token package
- Validate migration: build, test (17 passing), and lint all succeed
- smart-contract-tests.yml already handles aitbc-token via pnpm from previous migration
- Create docs/contracts/PNPM_SETUP.md with pnpm configuration guide
- Update docs/contracts/README.md to link to PNPM_SETUP.md
- Document .npmrc settings, common commands, and troubleshooting
- Delete package-lock.json and create pnpm-lock.yaml
- Add .npmrc with strict peer deps and frozen lockfile settings
- Update CI workflows to use pnpm instead of npm
- Update shell scripts to use pnpm instead of npm/npx
- Update documentation to reference pnpm commands
- Validate migration with successful hardhat compile
- Set ENABLE_BLOCK_PRODUCTION=true to enable block creation
- Add BLOCK_PRODUCTION_CHAINS to specify which chains produce blocks
- Add PROPOSER_ID to set the block proposer identity
- Fixes heartbeat block creation on blockchain nodes
- Add fund_wallet function to directly update database with initial balance
- Bypasses SQLite INTEGER overflow by using direct database update
- Funds genesis wallet with 1 million tokens after node deployment
- Called in main deployment flow after systemd service setup
- Add 'wallet fund' CLI command to fund wallets via blockchain faucet
- Uses POST /faucet endpoint to request test tokens
- Supports custom amount and chain_id parameters
- Auto-creates account if it doesn't exist
- Rate-limited to 10 requests per hour per IP
- Remove genesis allocation to work around SQLite INTEGER overflow
- Wallet generation now creates wallet without initial coin allocation
- Wallet can be funded via blockchain API after node startup
- Genesis allocation funding to be implemented separately
- Set initial wallet balance to 1 million tokens
- Compatible with BigInteger Account model fix
- Wallet receives initial coin allocation from genesis block
- Change Account.balance from INTEGER to BigInteger to support large values
- Fixes SQLite INTEGER overflow error when creating accounts from genesis allocations
- Allows wallet to receive initial coin allocation from genesis block
- Generate wallet with private/public keys during node deployment
- Create genesis allocation file with wallet address and initial coins
- Wallet receives 1 billion tokens from genesis block
- Save wallet to keystore for later use
- Replace genesis block generation with wallet+genesis generation
- Moved 9 AITBC-specific skills to skills/aitbc/
- Moved autonomous-ai-agents hermes skill to skills/hermes/
- Keeps AITBC operational skills separate from hermes agent coordination skills
- Fix connection string to use postgresql+psycopg2://
- Add libpq-dev for PostgreSQL development headers
- Update deployment script with correct PostgreSQL driver
- Add PostgreSQL installation and configuration to deployment script
- Create mempool database and user (aitbc_mempool)
- Update environment configuration to use database mempool backend
- Add psycopg2 to dependencies for PostgreSQL support
- Enable persistent mempool storage for production deployments
- Generate unique chain ID based on hostname (ait-{hostname})
- Add genesis block generation step to deployment script
- Each new node gets its own chain/island instead of sharing ait-mainnet
- Update environment files with node-specific configuration
- Remove psycopg2 from dependencies (compilation requires pg_config.h)
- Set default MEMPOOL_BACKEND=memory to avoid PostgreSQL
- Fix build error: fatal error: pg_config.h: No such file or directory
- 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
- Document differences between integrated and standalone blockchain nodes
- Clarify which implementation has mempool endpoint support
- Provide deployment recommendations for each use case
- Add troubleshooting guide for mempool endpoint issues
- Include migration guide from standalone to integrated implementation
- Add import os for environment variable support
- Change env_file from /etc/aitbc/.env to /etc/aitbc/blockchain.env (standard)
- Make gossip_broadcast_url configurable via GOSSIP_BROADCAST_URL env var
- Add cross_site_remote_endpoints configuration via CROSS_SITE_REMOTE_ENDPOINTS env var
- Remove hardcoded URLs and IPs from source code
- Align local codebase with container configuration
- Added ns3 node documentation with IP 95.216.198.140
- Updated multi-node operations to include ns3
- Added ns3-specific command examples for environment checks
- Update package names from aitbc-ai-service to aitbc-ai
- Update package names from aitbc-edge-api to aitbc-edge
- Reflect the actual final package names implemented in the release
- 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
- Update idna from 3.13 to 3.15 (fixes CVE-2026-45409)
- Update ujson from 5.12.0 to 5.12.1 (fixes CVE-2026-44660)
- Update urllib3 from 2.6.3 to 2.7.0 (fixes CVE-2026-44431, CVE-2026-44432)
- Remove vllm (transitive dependency causing diskcache vulnerability)
- Remove diskcache (CVE-2025-69872 - no longer required)
- Update requirements.txt with secure dependency versions
All vulnerabilities now resolved: pip-audit shows no known vulnerabilities found
- Added format and title parameters to output() function in utils/__init__.py
- Handle format='json'/'yaml' for structured data output
- Display optional title with underline separator when provided
- Fixed import in dual_mode_wallet_adapter.py from config.Config to aitbc_cli.config.CLIConfig
Renamed cli/config/ directory to cli/config_data/ to prevent package
shadowing of cli/aitbc_cli/config.py module. Removed problematic
sys.modules manipulation in aitbc_cli/__init__.py that was causing
circular import issues. Now 'from aitbc_cli.config import CLIConfig' works correctly.
- Add get_join_instructions() function that generates structured join data
- Include environment variables, config files, P2P config, RPC config sections
- Add route handlers for /agent/join/{chain_id}.json (FastAPI and Flask)
- Update discovery endpoint to include join endpoint in agent APIs
- Add nginx proxy configuration for /agent/join/ path
- S05 Islands: edge.py list_islands now has name='list' for 'aitbc edge island list'
- S06 Market: output() now handles structured data (dict/list) by JSON-encoding
- S09 GPU: added safe_load_credentials() to gpu_marketplace.py and exchange_island.py
with graceful FileNotFoundError handling and helpful error message
- S13 Mining: added 'list' subcommand to mining.py for listing active miners
- Deleted chains.json, discovery.json, islands.json static configuration files
- Removed /agent/join/ait-mainnet.json configuration guide
- Updated index.html to show only mainnet island, removed testnet card
- Changed note from "Agent-First Design" to "Live Data Only" emphasizing real-time RPC queries
- Added "Live data from RPC" indicator to mainnet island card
- All agent endpoints now serve dynamic data from blockchain
- Removed ait-testnet from chains.json, discovery.json, and islands.json
- Deleted /agent/join/ait-testnet.json configuration guide
- Updated metadata counts from 2 to 1 active chain/island
- Added notes clarifying this node (aitbc) is HUB for mainnet only
- Updated index.html title and description to reflect mainnet hub role
- Removed testnet join section from homepage, kept only mainnet join guide
- Changed "Multi-island architecture" to "Federated multi-node architecture"