This establishes a structured knowledge base for autonomous agents to avoid rediscovering solved problems and to coordinate architecture decisions. Files: - ai-memory/architecture.md – rings of stability, subsystem responsibilities - ai-memory/bug-patterns.md – catalog of recurring failures and fixes - ai-memory/debugging-playbook.md – diagnostic checklists - ai-memory/agent-notes.md – agent activity log and learnings - ai-memory/failure-archive/ – placeholder for losing PR summaries
3.9 KiB
Bug Patterns Memory
A catalog of recurring failure modes and their proven fixes. Consult before attempting a fix.
Pattern: Python ImportError for app.services
Symptom
ModuleNotFoundError: No module named 'trading_surveillance'
or
ImportError: cannot import name 'X' from 'app.services'
Root Cause
CLI command modules attempted to import service modules using relative imports or path hacks. The services/ directory lacked __init__.py, preventing package imports. Previous code added user-specific fallback paths.
Correct Solution
- Ensure
apps/coordinator-api/src/app/services/__init__.pyexists (can be empty). - Add
apps/coordinator-api/srctosys.pathin the CLI command module. - Import using absolute package path:
from app.services.trading_surveillance import start_surveillance - Provide stub fallbacks with clear error messages if the module fails to import.
Example Fix Location
cli/aitbc_cli/commands/surveillance.pycli/aitbc_cli/commands/ai_trading.pycli/aitbc_cli/commands/ai_surveillance.pycli/aitbc_cli/commands/advanced_analytics.pycli/aitbc_cli/commands/regulatory.pycli/aitbc_cli/commands/enterprise_integration.py
See Also
- PR #10: resolves these import errors
- Architecture note: coordinator-api services use
app.services.*namespace
Pattern: Missing README blocking package installation
Symptom
error: Missing metadata: "description"
when running pip install -e . on a package.
Root Cause
setuptools/build requires either long description or minimal README content. Empty or absent README causes build to fail.
Correct Solution
Create a minimal README.md in the package root with at least:
- One-line description
- Installation instructions (optional but recommended)
- Basic usage example (optional)
Example
# AITBC Agent SDK
The AITBC Agent SDK enables developers to create AI agents for the decentralized compute marketplace.
## Installation
pip install -e .
(Resolved in PR #6 for aitbc-agent-sdk)
Pattern: Test ImportError due to missing package in PYTHONPATH
Symptom
ImportError: cannot import name 'aitbc' from 'aitbc'
when running tests in packages/py/aitbc-core/tests/.
Root Cause
aitbc-core not installed or PYTHONPATH does not include src/.
Correct Solution Install the package in editable mode:
pip install -e ./packages/py/aitbc-core
Or set PYTHONPATH to include packages/py/aitbc-core/src.
Pattern: Git clone permission denied (SSH)
Symptom
git@...: Permission denied (publickey).
fatal: Could not read from remote repository.
Root Cause SSH key not added to Gitea account or wrong remote URL.
Correct Solution
- Add
~/.ssh/id_ed25519.pubto Gitea SSH Keys (Settings → SSH Keys). - Use SSH remote URLs:
git@gitea.bubuit.net:oib/aitbc.git. - Test:
ssh -T git@gitea.bubuit.net.
Pattern: Gitea API empty results despite open issues
Symptom
curl .../api/v1/repos/.../issues returns [] when issues clearly exist.
Root Cause
Insufficient token scopes (needs repo access) or repository visibility restrictions.
Correct Solution
Use a token with at least repository: Write scope and ensure the user has access to the repository.
Pattern: CI only runs on Python 3.11/3.12, not 3.13
Symptom CI matrix missing 3.13; tests never run on default interpreter.
Root Cause Workflow YAML hardcodes versions; default may be 3.13 locally.
Correct Solution
Add 3.13 to CI matrix; consider using python-version: '3.13' as default.
Pattern: Claim branch creation fails (already exists)
Symptom
git push origin claim/7 fails with remote: error: ref already exists.
Root Cause Another agent already claimed the issue (atomic lock worked as intended).
Correct Solution Pick a different unassigned issue. Do not force-push claim branches.