Commit Graph

231 Commits

Author SHA1 Message Date
oib
36be9c814e feat: add blockchain state and balance endpoints with multi-chain support
- Add GET /state endpoint to blockchain RPC router for chain state information
- Add GET /rpc/getBalance/{address} endpoint for account balance queries
- Add GET /rpc/head endpoint to retrieve current chain head block
- Add GET /rpc/transactions endpoint for latest transaction listing
- Add chain-specific wallet balance endpoint to wallet daemon
- Add blockchain state CLI command with --all-chains flag for multi-chain queries
2026-03-07 20:00:21 +01:00
oib
d92d7a087f feat: add CLI interface functions to enterprise integration service and refactor CLI command imports
- Add CLI interface functions to enterprise_integration.py: create_tenant, get_tenant_info, generate_api_key, register_integration, get_system_status, list_tenants, list_integrations
- Replace direct service imports with importlib-based module loading to avoid naming conflicts
- Refactor start_gateway command to create_tenant_cmd with name and domain parameters
- Update integration test success rate from
2026-03-07 19:23:12 +01:00
oib
532523b139 refactor: move /api/chains endpoint to top of file and update explorer default IP
- Move /api/chains endpoint definition before BLOCKCHAIN_RPC_URLS configuration
- Remove duplicate async version of list_chains endpoint
- Change blockchain explorer version from 2.0.0 to 0.1.0
- Update default explorer IP from 10.1.223.93 to 10.1.223.1
- Remove warning messages from enterprise integration import errors
2026-03-07 19:01:03 +01:00
oib
7341808f01 feat: add multi-chain support to blockchain explorer and improve GPU review handling
- Add multi-chain configuration with devnet, testnet, and mainnet RPC URLs
- Add chain selector dropdown in explorer UI for network switching
- Add chain_id parameter to all API endpoints (chain/head, blocks, transactions, search)
- Add /api/chains endpoint to list supported blockchain networks
- Update blockchain explorer port from 3001 to 8016
- Update devnet RPC port from 8080 to 8026
- Add GPU reviews table
2026-03-07 18:44:15 +01:00
oib
89e161c906 refactor: replace SessionDep with explicit Annotated[Session, Depends(get_session)] across all routers
- Replace SessionDep type alias with explicit Annotated[Session, Depends(get_session)]
- Add missing imports for Session, Annotated, and Depends types
- Update all endpoint function signatures to use explicit dependency annotation
- Remove redundant `= Depends()` default values from session parameters
- Update docstrings and comments to reference new annotation pattern
- Apply changes consistently across all router
2026-03-07 15:45:11 +01:00
oib
93aae0edb3 refactor: replace SessionDep with explicit Annotated[Session, Depends(get_session)] across all routers
- Replace SessionDep type alias with explicit Annotated[Session, Depends(get_session)]
- Add missing imports for Session and Annotated types
- Update all endpoint function signatures to use explicit dependency annotation
- Apply changes consistently across all router files (admin, agent, marketplace, etc.)
- Add marketplace_gpu router to main.py router includes
2026-03-07 15:11:42 +01:00
oib
a24e160b67 feat: add GPU booking confirmation, Ollama task submission, and payment endpoints
- Add POST /marketplace/gpu/{gpu_id}/confirm endpoint for client booking acknowledgment
- Add POST /tasks/ollama endpoint for Ollama task submission with model and prompt parameters
- Add POST /payments/send endpoint as stub for blockchain payment processing
- Add GPUConfirmRequest, OllamaTaskRequest, and PaymentRequest models
- Add CLI commands: confirm, ollama-task, and pay for new endpoints
- Include validation
2026-03-07 13:59:28 +01:00
oib
52244c3ca5 fix: update cleanup script to use correct coordinator database path
- Change from in-memory database to file-based SQLite at coordinator.db
- Remove create_db_and_tables() call as tables already exist
- Use same database path as coordinator-api for consistency
- Apply database path fix to both cleanup_fake_gpus() and show_remaining_gpus()
2026-03-07 13:03:12 +01:00
oib
7c6a9a26c1 feat: add comprehensive input validation for GPU booking
- Add validation for negative and zero booking hours
- Add maximum booking duration limit (8760 hours = 1 year)
- Add validation to ensure booking end time is in future
- Prevent negative costs and invalid booking periods
- Improve error messages with detailed validation feedback

Fixes edge cases where users could book GPUs with invalid parameters
leading to negative costs and impossible booking periods.
2026-03-07 13:00:19 +01:00
oib
2b47c35a61 fix: add GPU hardware validation to prevent fake GPU registration
- Auto-detect GPU hardware using nvidia-smi
- Validate GPU name and memory against detected hardware
- Prevent fake GPU registrations (RTX 4080 on RTX 4060 Ti system)
- Add --force flag for emergency override situations
- Ensure only real hardware can be registered

Fixes issue where fake GPUs could be registered on systems with different hardware.
2026-03-07 12:51:25 +01:00
oib
6bcbe76c7d feat: switch to persistent SQLite database and improve GPU booking/release handling
- Change database from in-memory to file-based SQLite at aitbc_coordinator.db
- Add status="active" to GPU booking creation
- Allow GPU release even when not properly booked (cleanup case)
- Add error handling for missing booking attributes during refund calculation
- Fix get_gpu_reviews query to use scalars() for proper result handling
2026-03-07 12:23:01 +01:00
oib
e84b096236 refactor: rename generic metadata fields to specific names in multitenant models
- Rename metadata to user_metadata in TenantUser model
- Rename metadata to usage_metadata in UsageRecord model
- Rename metadata to invoice_metadata in Invoice model
- Rename metadata to event_metadata in TenantAuditLog model
- Update TenantManagementService to use event_metadata parameter name
2026-03-07 11:28:18 +01:00
oib
b20e93d7b8 Merge remote-tracking branch 'github/dependabot/github_actions/github/codeql-action-4' 2026-03-07 11:03:02 +01:00
oib
26014c522a Merge remote-tracking branch 'github/dependabot/github_actions/actions/setup-python-6' 2026-03-07 11:02:59 +01:00
oib
699146f687 Merge remote-tracking branch 'github/dependabot/github_actions/actions/checkout-6' 2026-03-07 11:02:54 +01:00
oib
bd9d36c39f Merge remote-tracking branch 'github/dependabot/pip/pytest-mock-3.15.1' 2026-03-07 11:02:50 +01:00
oib
867aba79ef resolve: merge conflict - keep ruff 0.15.5, update isort to 8.0.1 2026-03-07 11:02:46 +01:00
oib
8e682b1211 Merge remote-tracking branch 'github/dependabot/pip/ruff-0.15.5' 2026-03-07 11:02:16 +01:00
oib
a7bf9a5501 Merge remote-tracking branch 'github/dependabot/pip/asyncpg-0.31.0' 2026-03-07 11:02:06 +01:00
oib
3952a80bbe Merge remote-tracking branch 'github/dependabot/pip/pyyaml-6.0.3' 2026-03-07 11:02:03 +01:00
oib
77b051228a feat: add test mode support to CLI commands with mock responses for offline testing
- Add test_mode parameter detection to client commands (submit, status, cancel)
- Add test_mode parameter detection to wallet commands (restore, info, history, address, rewards, unstake, staking_info)
- Implement mock response data for all test mode scenarios with realistic timestamps and values
- Update test suite to use --test-mode flag instead of mocking HTTP responses
- Refactor rewards command to include blockchain
2026-03-07 10:58:37 +01:00
oib
63f4975019 fix: update init_db.py to use asyncio and correct database import 2026-03-07 10:57:52 +01:00
oib
4546288f2a Local changes before sync: updated docs and startup scripts 2026-03-07 09:52:41 +01:00
oib
9297e45b8b feat: enhance dev environment stop script with persistent service handling and detailed reporting
- Add force_stop_service function with 3-tier escalation (stop, TERM, SIGKILL)
- Implement has_auto_restart detection for services with Restart=yes/always
- Categorize services into normal and persistent groups for targeted shutdown
- Add purple color output for persistent service operations
- Add detailed success rate calculation and reporting for services and containers
- Add comprehensive final summary with component
2026-03-06 22:36:28 +01:00
dependabot[bot]
591a40d36e deps(deps): bump pyyaml from 6.0.1 to 6.0.3
Bumps [pyyaml](https://github.com/yaml/pyyaml) from 6.0.1 to 6.0.3.
- [Release notes](https://github.com/yaml/pyyaml/releases)
- [Changelog](https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES)
- [Commits](https://github.com/yaml/pyyaml/compare/6.0.1...6.0.3)

---
updated-dependencies:
- dependency-name: pyyaml
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 21:19:08 +00:00
dependabot[bot]
1d1d60b62d deps(deps-dev): bump ruff from 0.1.15 to 0.15.5
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.15 to 0.15.5.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.15...0.15.5)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.15.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 21:19:04 +00:00
dependabot[bot]
8e96288778 deps(deps): bump asyncpg from 0.29.0 to 0.31.0
Bumps [asyncpg](https://github.com/MagicStack/asyncpg) from 0.29.0 to 0.31.0.
- [Release notes](https://github.com/MagicStack/asyncpg/releases)
- [Commits](https://github.com/MagicStack/asyncpg/compare/v0.29.0...v0.31.0)

---
updated-dependencies:
- dependency-name: asyncpg
  dependency-version: 0.31.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 21:18:54 +00:00
dependabot[bot]
54b724a954 ci(deps): bump actions/checkout from 4 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 21:18:53 +00:00
dependabot[bot]
ca3914de1f deps(deps-dev): bump isort from 5.13.2 to 8.0.1
Bumps [isort](https://github.com/PyCQA/isort) from 5.13.2 to 8.0.1.
- [Release notes](https://github.com/PyCQA/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PyCQA/isort/compare/5.13.2...8.0.1)

---
updated-dependencies:
- dependency-name: isort
  dependency-version: 8.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 21:18:50 +00:00
dependabot[bot]
33c20599de ci(deps): bump actions/setup-python from 4 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 21:18:49 +00:00
dependabot[bot]
2ca1ee6bfe deps(deps-dev): bump pytest-mock from 3.12.0 to 3.15.1
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.12.0 to 3.15.1.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.12.0...v3.15.1)

---
updated-dependencies:
- dependency-name: pytest-mock
  dependency-version: 3.15.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 21:18:46 +00:00
dependabot[bot]
5cdd593fe9 ci(deps): bump github/codeql-action from 2 to 4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 21:18:44 +00:00
oib
15427c96c0 chore: update file permissions to executable across repository
- Change file mode from 644 to 755 for all project files
- Add chain_id parameter to get_balance RPC endpoint with default "ait-devnet"
- Rename Miner.extra_meta_data to extra_metadata for consistency
2026-03-06 22:17:54 +01:00
oib
bb5363bebc refactor: consolidate blockchain explorer into single app and update backup ignore patterns
- Remove standalone explorer-web app (README, HTML, package files)
- Add /web endpoint to blockchain-explorer for web interface access
- Update .gitignore to exclude application backup archives (*.tar.gz, *.zip)
- Add backup documentation files to .gitignore (BACKUP_INDEX.md, README.md)
- Consolidate explorer functionality into main blockchain-explorer application
2026-03-06 18:14:49 +01:00
oib
dc1561d457 refactor: standardize systemd service port assignments and fix hardcoded paths
- Update blockchain RPC port from 8003 to 8006
- Update wallet service port from 8001 to 8002
- Update multimodal service port from 8002 to 8010
- Update modality optimization port from 8004 to 8012
- Update adaptive learning port from 8005 to 8013
- Update marketplace enhanced port from 8006 to 8014
- Update OpenClaw enhanced port from 8007 to 8015
- Update multimodal GPU port from 8010 to 8011
- Add port 8017 to geographic
2026-03-06 10:37:43 +01:00
oib
a302da73a9 refactor: migrate blockchain CLI commands to use centralized config and update port assignments
- Replace load_multichain_config() with ctx.obj['config'] in all blockchain commands
- Update blockchain RPC port from 8003 to 8006 throughout CLI
- Add blockchain_rpc_url and wallet_url fields to Config class with environment variable support
- Update node status command to use new port logic (8006 for primary, 8026 for dev)
- Update installation docs to reflect new blockchain RPC port (8006)
- Update
2026-03-06 10:25:57 +01:00
oib
1511e7e7f5 docs: remove outdated workflow completion summaries and documentation organization files
- Delete comprehensive documentation organization summary (COMPREHENSIVE_DOCUMENTATION_ORGANIZATION.md)
- Delete general workflow completion summary (DOCS_WORKFLOW_COMPLETION_SUMMARY.md)
- Delete API authentication workflow summary (DOCS_WORKFLOW_COMPLETION_SUMMARY_API_AUTH.md)
- Delete duplicate workflow completion summary (DOCS_WORKFLOW_COMPLETION_SUMMARY_20260303.md)
- Remove superseded documentation organization
2026-03-05 19:25:04 +01:00
oib
037a9aacc0 docs: remove outdated planning documents and consolidate milestone documentation
- Delete obsolete next milestone plan (00_nextMileston.md) with outdated Q2 2026 targets
- Delete global marketplace launch strategy (06_global_marketplace_launch.md) with superseded Q2 2026 plans
- Remove duplicate planning documentation and outdated status indicators
- Clean up planning directory structure for current development phase
- Consolidate strategic planning into active documentation
2026-03-05 14:07:08 +01:00
oib
c8ee2a3e6e feat: implement role-based configuration system for CLI with automatic API key management
- Add role detection to command groups (admin, client, miner, blockchain)
- Load role-specific config files (~/.aitbc/{role}-config.yaml)
- Add role field to Config class with environment variable support
- Implement automatic role detection from invoked subcommand
- Add development mode API key bypass for testing (APP_ENV=dev)
- Update CLI checklist with role-based configuration documentation
- Add configuration override priority and
2026-03-05 14:02:51 +01:00
oib
83b5152b40 fix: add debug logging to admin API key validation and re-enable all routers
- Add debug print statements to _validate_api_key and require_admin_key for troubleshooting
- Add /admin/debug-settings and /admin/test-key endpoints for API key validation testing
- Bypass require_admin_key dependency in /admin/stats endpoint for direct validation
- Fix database warmup to properly handle session generator lifecycle
- Re-enable all previously disabled routers in main.py
- Add custom OpenAPI security scheme
2026-03-05 13:44:37 +01:00
oib
b44aeaad97 docs: complete documentation updates workflow for API endpoint fixes
- Update next milestone plan with API endpoint fixes completion status
- Update backend implementation status with latest resolution details
- Add comprehensive documentation workflow completion summary
- Validate all cross-references and formatting consistency
- Ensure documentation accurately reflects production-ready CLI commands

All documentation now properly marked with  COMPLETE indicators
and aligned with actual system capabilities.
2026-03-05 13:34:58 +01:00
oib
7d71ef27c8 fix: resolve CLI API endpoint 404/405 errors
- Fix admin status command endpoint path and authentication
- Update CLI to use correct API prefix /api/v1
- Configure proper admin API key for authentication
- Update CLI checklist with working command status
- Add comprehensive API endpoint fixes documentation

Commands now working:
- admin status:  Fixed (API endpoint + authentication)
- blockchain status:  Working (uses local node)
- blockchain sync-status:  Working (uses local node)
- monitor dashboard:  Working (API endpoint functional)

All target CLI commands are now functional.
2026-03-05 13:32:13 +01:00
oib
0c090c96fa fix: temporarily disable routers to isolate Pydantic validation issue and add agent endpoints to working routers
- Comment out most routers in main.py to isolate Pydantic issue
- Keep only blockchain router enabled for testing
- Fix database warmup to use get_session() instead of SessionDep()
- Add blockchain router to __init__.py exports
- Add test endpoint to agent_router for verification
- Duplicate agent network and execution receipt endpoints in client and exchange routers as temporary workaround
2026-03-05 12:57:40 +01:00
oib
40cf275985 fix: add missing API endpoints for CLI compatibility
- Add /v1/admin/status endpoint for system status
- Add /v1/blockchain/status endpoint for blockchain status
- Add /v1/blockchain/sync-status endpoint for sync status
- Add /v1/monitor/dashboard endpoint for monitoring dashboard
- Fix router imports and missing dependencies
- Handle optional dependencies gracefully (torch, tenseal)
- Update admin router with comprehensive system status endpoint
- Fix blockchain router endpoint paths
- Improve error handling in monitoring dashboard

These endpoints resolve CLI 404/405 errors reported in testing.
2026-03-05 12:42:01 +01:00
oib
af68f46249 docs: update CLI checklist with comprehensive test results
- Mark all commands as tested with [x] status
- Add test results and status notes for each command
- Include working status, error messages, and help availability
- Update 184 commands across 24 groups with test outcomes

Test Results Summary:
 Working: Basic CLI, config, wallet, node, test, simulate, plugin
 Help Available: Most commands have help documentation
 Network Errors: Some API endpoints return 404/405 errors
 Help Commands: All --help options working properly

All CLI commands are now documented with their current test status.
2026-03-05 12:32:19 +01:00
oib
efd85060db fix: change miner authentication to use separate X-Miner-ID header instead of API key for miner identification
- Add get_miner_id() dependency to extract miner ID from X-Miner-ID header
- Update miner register and heartbeat endpoints to require both X-Miner-ID and X-Api-Key headers
- Remove miner_id from query parameters in favor of header-based extraction
- Fix miner heartbeat CLI to send proper JSON payload with inflight, status, and metadata fields
- Fix typo in MinerService: extra_metadata → extra_meta_data
2026-03-05 12:28:17 +01:00
oib
80b9ea4b25 feat: add miner management endpoints and standardize all API paths to /api/v1 prefix
- Add POST /api/v1/miners/{miner_id}/jobs endpoint for listing miner-assigned jobs with filtering
- Add POST /api/v1/miners/{miner_id}/earnings endpoint for miner earnings tracking (mock implementation)
- Add PUT /api/v1/miners/{miner_id}/capabilities endpoint for updating miner capabilities
- Add DELETE /api/v1/miners/{miner_id} endpoint for miner deregistration (sets OFFLINE status)
- Add JobService.fail_job()
2026-03-05 11:12:57 +01:00
oib
c2d4f39a36 feat: add blockchain info endpoints and client job filtering capabilities
- Add /rpc/info endpoint to blockchain node for comprehensive chain information
- Add /rpc/supply endpoint for token supply metrics with genesis parameters
- Add /rpc/validators endpoint to list PoA validators and consensus info
- Add /api/v1/agents/networks endpoint for creating collaborative agent networks
- Add /api/v1/agents/executions/{id}/receipt endpoint for verifiable execution receipts
- Add /api/v1/jobs and /api/v1/jobs/
2026-03-05 10:55:19 +01:00
oib
5ff2d75cd1 fix: wrap async ChainManager calls with asyncio.run and update exchange endpoints to use /api/v1 prefix
- Add asyncio.run() wrapper to get_chain_info, delete_chain, and add_chain_to_node calls in chain.py
- Update all exchange command endpoints from /exchange/* to /api/v1/exchange/* for API consistency
- Mark blockchain block command as fixed in CLI checklist (uses local node)
- Mark all chain management commands help as available (backup, delete, migrate, remove, restore)
- Mark client batch-submit
2026-03-05 10:37:37 +01:00
oib
35a546ee01 fix: update blockchain block command to use local node RPC endpoints with fallback search, revert client job submission to /v1/jobs, and document Concrete ML Python 3.13 compatibility limitation
- Change blockchain block command to query local node at /rpc/blocks/by_hash/{hash} instead of coordinator
- Add fallback to /rpc/blocks/{height} for numeric block identifiers
- Implement block hash search across recent blocks (last 10) when direct lookup fails
- Revert client job submission endpoint from
2026-03-05 10:19:43 +01:00