initi AGENTS.md
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# Development Notes for lxst-relay
|
||||
|
||||
## Quick start
|
||||
|
||||
```bash
|
||||
# Run as script or directly (if executable)
|
||||
python lxst_relay.py --help
|
||||
|
||||
# Run with custom config directory
|
||||
python lxst_relay.py --config /path/to/config
|
||||
|
||||
# Optional verbose output
|
||||
python lxst_relay.py -v --config /path/to/config
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
- Single-file Python app (`lxst_relay.py`) using CLI argparse
|
||||
- No external dependencies beyond the script (imports RNS, LXMF from system/site)
|
||||
- Each voice channel = its own Reticulum node with persistent identity
|
||||
- Channels persisted to `${configdir}/channels/<name>/identity` and admins file
|
||||
- LXMF bot handles `/create_channel <name>` commands
|
||||
|
||||
## Commands & arguments
|
||||
|
||||
Common:
|
||||
- `--config, -c` : path to config directory (defaults to `~/.lxst-relay` or `/etc/lxst-relay`)
|
||||
- `--rnsconfig` : alternative Reticulum config directory
|
||||
- `--channel, -n` : lobby channel name (default: `"default"`)
|
||||
- `--version` : show version and exit
|
||||
- `-v, --verbose` : increase logging verbosity
|
||||
- `--announce_interval` : seconds between network announces (0 = once at startup)
|
||||
|
||||
## Operations
|
||||
|
||||
- Creating a channel: Send `/create_channel <name>` to the LXMF bot
|
||||
- Listing channels: Send `/channels` or `/channels_json` to the bot
|
||||
- Admins: Creator of each channel is its admin; admins stored in `${configdir}/channels/<name>/admins`
|
||||
- Identity: Stored in `${configdir}/identity`; regenerated if missing
|
||||
|
||||
## Gotchas
|
||||
|
||||
- Channel names cannot contain `/` or have adjacent directories (`..`)
|
||||
- First run creates a new RNS identity in config dir
|
||||
- Signal handlers (`SIGINT`, `SIGTERM`) properly clean up participants before exit
|
||||
- No test framework; testing done manually via calls/messages or by inspecting logs
|
||||
- Logs to RNS; use `-v` and/or `--rnsconfig` to control verbosity
|
||||
- If `--rnsconfig` unset, RNS uses system-wide location; set explicitly on first run for reproducible setups
|
||||
|
||||
## Project layout
|
||||
|
||||
```
|
||||
lxst_relay.py # Main application entrypoint
|
||||
lxst-relay # Executable wrapper (generated symlink or copy)
|
||||
.git/ # Version control only
|
||||
.gitignore # Ignore patterns
|
||||
```
|
||||
Reference in New Issue
Block a user