Cross-Project Messaging Guide
Send improvement requests, bug reports, and feedback from your AILANG-using project back to AILANG core.
This enables a feedback loop where projects using AILANG can automatically report issues, request features, and suggest improvements that get routed to AILANG developers.
Quick Start
From any project with AILANG installed, send a message to the global user inbox:
ailang messages send user "Your feedback here" \
--title "Improvement request" \
--from "your-project-name"
That's it! The message is stored in ~/.ailang/state/collaboration.db and will be picked up by AILANG developers in their next session.
With GitHub Sync
For visibility across all AILANG instances, sync to GitHub Issues:
# Bug report (creates GitHub issue with "bug" label)
ailang messages send user "Parser crashes on nested records" \
--title "Parser bug" --from "your-project" --type bug --github
# Feature request
ailang messages send user "Need async/await support" \
--title "Async support" --from "your-project" --type feature --github
Message Types
Use the --type flag for automatic categorization:
| Type | Use For | GitHub Label |
|---|---|---|
bug | Something broken | Red |
feature | Feature suggestions | Cyan |
general | Other feedback | Light blue |
Full Message Format
For structured feedback, include these fields:
ailang messages send user "When a string literal spans multiple lines, the parser loses track of line numbers. Expected: parse successfully. Actual: Parser error at line -1. Version: 0.4.7, macOS 14.2" \
--title "Parser fails on multi-line strings" \
--from "game-engine-project" \
--type bug \
--github
The message payload can contain any text including JSON if you need structured data.
Examples
Report a Bug
ailang messages send user "Type inference fails on recursive ADTs. Code: type Tree = Leaf(int) | Node(Tree, Tree). Error: cannot unify Tree with Tree" \
--title "Type inference fails on recursive ADTs" \
--from "my-compiler-project" \
--type bug \
--github
Request a Feature
ailang messages send user "Building a web framework and need non-blocking IO. Current effect system requires explicit continuation passing." \
--title "Add async/await syntax" \
--from "web-framework" \
--type feature \
--github
Report Compatibility Issue
ailang messages send user "Binary crashes with SIGILL on startup on Ubuntu 22.04 ARM64 (Graviton3). AILANG version: 0.4.7" \
--title "Binary crashes on Ubuntu 22.04 ARM64" \
--from "ci-pipeline" \
--type bug \
--github
Suggest Documentation Improvement
ailang messages send user "The teaching prompt has basic ADT examples but lacks complex nested pattern matching examples. Students struggle with this." \
--title "Need more ADT examples" \
--from "tutorial-project" \
--type feature
GitHub Configuration
For GitHub sync to work, create ~/.ailang/config.yaml:
github:
expected_user: YourGitHubUsername # Must match gh auth status
default_repo: sunholo-data/ailang # Target repo for issues
create_labels:
- ailang-message
watch_labels:
- ailang-message
auto_import: true # Auto-import issues on session start
Prerequisites
- Install GitHub CLI:
brew install gh(macOS) or see cli.github.com - Authenticate:
gh auth login - Verify account:
gh auth status - Switch if needed:
gh auth switch --user YourUsername
How Messages Are Processed
- You send a message from your project
- Message stored in SQLite (
~/.ailang/state/collaboration.db) - Optionally synced to GitHub Issues if
--githubflag used - AILANG developer starts a Claude Code session
- SessionStart hook checks for unread messages and imports GitHub issues
- Developer reviews and decides on action
- Message acknowledged with
ailang messages ack <message-id>
Message Lifecycle
Your Project AILANG Core
| |
| ailang messages send user |
|------------------------------->|
| |
| collaboration.db (SQLite)
| |
| --github flag (optional) |
|------------------------------->|
| GitHub Issue #42 |
| |
| [SessionStart hook fires]
| |
| [import-github runs]
| |
| [Developer sees message]
| |
| [Issue fixed / closed]
| |
| ailang messages ack
| |
| status: read |
Checking Messages
View messages from the AILANG core project:
# All messages
ailang messages list
# Only unread
ailang messages list --unread
# From specific sender
ailang messages list --from your-project-name
# Full JSON output
ailang messages list --json
Storage
Messages are stored in a SQLite database (not files):
~/.ailang/state/
└── collaboration.db # Unified database
├── inbox_messages # All messages
└── schema_version # Database version
This database is shared between:
- CLI (
ailang messages) - Collaboration Hub dashboard
- All AILANG instances on the machine
Best Practices
- Be specific - Include version numbers, OS, and exact error messages
- Include reproducible examples - Code that demonstrates the issue
- Use --type appropriately -
bugfor broken things,featurefor requests - Use consistent project names - Makes it easy to track feedback sources
- Include context - What you're building helps prioritize fixes
- Use --github for important issues - Creates visibility across all AILANG instances
Automated Feedback (Advanced)
Set up automatic feedback when your CI/CD detects AILANG issues:
#!/bin/bash
# In your CI pipeline
# Run AILANG tests
if ! ailang run --caps IO --entry main tests/integration.ail 2>error.log; then
# Send failure report
ERROR=$(cat error.log | head -50)
VERSION=$(ailang --version)
OS=$(uname -a)
ailang messages send user "CI failure: $ERROR. Version: $VERSION, OS: $OS" \
--title "CI failure on $(git rev-parse --short HEAD)" \
--from "my-project-ci" \
--type bug \
--github
fi
Semantic Search
Find messages by meaning, not just exact text. AILANG uses SimHash by default for fast, free semantic search:
# Search messages
ailang messages search "parser error handling"
# Use neural search (requires Ollama running locally)
ailang messages search "type inference bugs" --neural
# Find similar messages
ailang messages list --similar-to MSG_ID
# Hide duplicates
ailang messages list --collapsed
For neural search, configure Ollama in ~/.ailang/config.yaml:
embeddings:
provider: ollama
ollama:
model: nomic-embed-text
endpoint: http://localhost:11434
See Agent Messaging - Neural Embeddings for full setup.
Related Documentation
- Agent Messaging - Full messaging documentation (includes semantic search)
- Agent Workflows - Automated agent workflows
- Hooks Setup - Configure session hooks