77 lines
1.8 KiB
Markdown
77 lines
1.8 KiB
Markdown
# Mattermost Sync
|
|
|
|
This directory contains the workspace-local Mattermost extractor used by OpenCode to refresh communication context.
|
|
|
|
## Files
|
|
|
|
- `mattermost_context.py`
|
|
Extracts recent Mattermost messages as JSONL.
|
|
- `sync.sh`
|
|
Stable wrapper intended to be called by OpenCode.
|
|
- `.env.example`
|
|
Example configuration without secrets.
|
|
- `requirements.txt`
|
|
Reserved for future optional dependencies.
|
|
|
|
## Recommended Setup
|
|
|
|
1. Copy `.env.example` to `.env`.
|
|
2. Fill in your Mattermost values.
|
|
3. Create a local virtual environment if you want an isolated runtime.
|
|
|
|
Preferred channel config:
|
|
|
|
- `CHANNELS=fidelity-preguntas`
|
|
|
|
Channel names are preferred for AI context because the exported records will use the readable channel name instead of the raw channel ID.
|
|
|
|
The script can resolve channel names without a team if the authenticated user can access the channel and the name is unique across the user's teams.
|
|
|
|
Supported env options:
|
|
|
|
- `CHANNELS`
|
|
Mixed list of channel names or channel IDs.
|
|
- `CHANNEL_NAMES`
|
|
Channel names only.
|
|
- `CHANNEL_IDS`
|
|
Legacy channel IDs only.
|
|
|
|
Optional only for disambiguation:
|
|
|
|
- `MATTERMOST_TEAM_NAME`
|
|
- `MATTERMOST_TEAM_ID`
|
|
|
|
Use one of those only if the same channel name exists in multiple teams or if you want to force team-specific resolution.
|
|
|
|
Example:
|
|
|
|
```bash
|
|
cd scripts/mattermost
|
|
bash bootstrap.sh
|
|
```
|
|
|
|
## Usage
|
|
|
|
Manual run:
|
|
|
|
```bash
|
|
bash scripts/mattermost/sync.sh
|
|
```
|
|
|
|
OpenCode can use this script directly. If `FIDELITY_MATTERMOST_SYNC_CMD` is not set, the workspace plugins will fall back to this wrapper automatically.
|
|
|
|
## Bootstrap
|
|
|
|
You can initialize the local runtime with:
|
|
|
|
```bash
|
|
bash scripts/mattermost/bootstrap.sh
|
|
```
|
|
|
|
This will:
|
|
|
|
- create `.venv/` if missing
|
|
- create `.env` from `.env.example` if needed
|
|
|
|
The current extractor uses only the Python standard library, so no third-party install is required.
|