Skip to content

Commit e529eba

Browse files
grokifyclaude
andcommitted
docs: add release notes and structured changelog for v0.1.0
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent c1ad1b2 commit e529eba

File tree

3 files changed

+175
-0
lines changed

3 files changed

+175
-0
lines changed

CHANGELOG.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"irVersion": "1.0",
3+
"project": "omnichat",
4+
"repository": "https://github.com/agentplexus/omnichat",
5+
"versioning": "semver",
6+
"commitConvention": "conventional",
7+
"maintainers": ["agentplexus", "johncwang@gmail.com"],
8+
"releases": [
9+
{
10+
"version": "v0.1.0",
11+
"date": "2026-02-22",
12+
"highlights": [
13+
{ "description": "Unified Go interface for messaging platforms with Discord, Telegram, and WhatsApp providers" },
14+
{ "description": "Multi-provider message routing with pattern matching" },
15+
{ "description": "WhatsApp support via whatsmeow with QR code authentication and SQLite session persistence" }
16+
],
17+
"added": [
18+
{ "description": "`Provider` interface with Connect, Disconnect, Send, OnMessage, OnEvent methods", "commit": "c923d0d" },
19+
{ "description": "`StreamingProvider` interface for typing indicators and streaming messages", "commit": "c923d0d" },
20+
{ "description": "`IncomingMessage` and `OutgoingMessage` types with media attachment support", "commit": "c923d0d" },
21+
{ "description": "`Router` for multi-provider message routing with pattern matching", "commit": "c923d0d" },
22+
{ "description": "Route patterns: `All()`, `DMOnly()`, `GroupOnly()`, `FromProviders()`", "commit": "c923d0d" },
23+
{ "description": "`providertest` package with conformance test helpers for provider implementations", "commit": "84d9319" },
24+
{ "description": "Discord provider using discordgo with guild, DM, and thread support", "commit": "9dc7321" },
25+
{ "description": "Telegram provider using telebot with group, channel, and private message support", "commit": "baaa5ab" },
26+
{ "description": "WhatsApp provider using whatsmeow with QR code authentication", "commit": "55fcace" },
27+
{ "description": "SQLite session persistence for WhatsApp using pure Go driver (no CGO)", "commit": "55fcace" },
28+
{ "description": "Echo bot example demonstrating multi-provider usage", "commit": "3deab82" }
29+
],
30+
"documentation": [
31+
{ "description": "README with installation, quick start, and provider examples", "commit": "05771bf" },
32+
{ "description": "MIT License", "commit": "05771bf" }
33+
],
34+
"infrastructure": [
35+
{ "description": "GitHub Actions CI workflow", "commit": "c454b30" },
36+
{ "description": "GitHub Actions lint workflow with golangci-lint", "commit": "c454b30" },
37+
{ "description": "CodeQL security analysis workflow", "commit": "c454b30" },
38+
{ "description": "Dependabot configuration for Go modules", "commit": "c454b30" }
39+
]
40+
}
41+
]
42+
}

CHANGELOG.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
7+
commits follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/),
8+
and this changelog is generated by [Structured Changelog](https://github.com/grokify/structured-changelog).
9+
10+
## [Unreleased]
11+
12+
## [v0.1.0] - 2026-02-22
13+
14+
### Highlights
15+
16+
- Unified Go interface for messaging platforms with Discord, Telegram, and WhatsApp providers
17+
- Multi-provider message routing with pattern matching
18+
- WhatsApp support via whatsmeow with QR code authentication and SQLite session persistence
19+
20+
### Added
21+
22+
- `Provider` interface with Connect, Disconnect, Send, OnMessage, OnEvent methods ([`c923d0d`](https://github.com/agentplexus/omnichat/commit/c923d0d))
23+
- `StreamingProvider` interface for typing indicators and streaming messages ([`c923d0d`](https://github.com/agentplexus/omnichat/commit/c923d0d))
24+
- `IncomingMessage` and `OutgoingMessage` types with media attachment support ([`c923d0d`](https://github.com/agentplexus/omnichat/commit/c923d0d))
25+
- `Router` for multi-provider message routing with pattern matching ([`c923d0d`](https://github.com/agentplexus/omnichat/commit/c923d0d))
26+
- Route patterns: `All()`, `DMOnly()`, `GroupOnly()`, `FromProviders()` ([`c923d0d`](https://github.com/agentplexus/omnichat/commit/c923d0d))
27+
- `providertest` package with conformance test helpers for provider implementations ([`84d9319`](https://github.com/agentplexus/omnichat/commit/84d9319))
28+
- Discord provider using discordgo with guild, DM, and thread support ([`9dc7321`](https://github.com/agentplexus/omnichat/commit/9dc7321))
29+
- Telegram provider using telebot with group, channel, and private message support ([`baaa5ab`](https://github.com/agentplexus/omnichat/commit/baaa5ab))
30+
- WhatsApp provider using whatsmeow with QR code authentication ([`55fcace`](https://github.com/agentplexus/omnichat/commit/55fcace))
31+
- SQLite session persistence for WhatsApp using pure Go driver (no CGO) ([`55fcace`](https://github.com/agentplexus/omnichat/commit/55fcace))
32+
- Echo bot example demonstrating multi-provider usage ([`3deab82`](https://github.com/agentplexus/omnichat/commit/3deab82))
33+
34+
### Documentation
35+
36+
- README with installation, quick start, and provider examples ([`05771bf`](https://github.com/agentplexus/omnichat/commit/05771bf))
37+
- MIT License ([`05771bf`](https://github.com/agentplexus/omnichat/commit/05771bf))
38+
39+
### Infrastructure
40+
41+
- GitHub Actions CI workflow ([`c454b30`](https://github.com/agentplexus/omnichat/commit/c454b30))
42+
- GitHub Actions lint workflow with golangci-lint ([`c454b30`](https://github.com/agentplexus/omnichat/commit/c454b30))
43+
- CodeQL security analysis workflow ([`c454b30`](https://github.com/agentplexus/omnichat/commit/c454b30))
44+
- Dependabot configuration for Go modules ([`c454b30`](https://github.com/agentplexus/omnichat/commit/c454b30))
45+
46+
[unreleased]: https://github.com/agentplexus/omnichat/compare/v0.1.0...HEAD
47+
[v0.1.0]: https://github.com/agentplexus/omnichat/releases/tag/v0.1.0

RELEASE_NOTES_v0.1.0.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Release Notes - v0.1.0
2+
3+
**Release Date:** 2026-02-22
4+
5+
## Highlights
6+
7+
- **Unified Go interface for messaging platforms** with Discord, Telegram, and WhatsApp providers
8+
- **Multi-provider message routing** with pattern matching for flexible message handling
9+
- **WhatsApp support via whatsmeow** with QR code authentication and SQLite session persistence (pure Go, no CGO required)
10+
11+
## Overview
12+
13+
OmniChat provides a unified interface for building messaging applications across multiple platforms. Write your message handling logic once and deploy it across Discord, Telegram, and WhatsApp.
14+
15+
## Features
16+
17+
### Core Provider Interface
18+
19+
```go
20+
type Provider interface {
21+
Name() string
22+
Connect(ctx context.Context) error
23+
Disconnect(ctx context.Context) error
24+
Send(ctx context.Context, chatID string, msg OutgoingMessage) error
25+
OnMessage(handler MessageHandler)
26+
OnEvent(handler EventHandler)
27+
}
28+
```
29+
30+
### Message Router
31+
32+
The router manages multiple providers and routes messages using pattern matching:
33+
34+
```go
35+
router := provider.NewRouter(logger)
36+
router.Register(discordProvider)
37+
router.Register(telegramProvider)
38+
39+
// Route patterns
40+
router.OnMessage(provider.All(), handler) // All messages
41+
router.OnMessage(provider.DMOnly(), handler) // DMs only
42+
router.OnMessage(provider.GroupOnly(), handler) // Groups only
43+
router.OnMessage(provider.FromProviders("discord"), handler)
44+
```
45+
46+
### Providers
47+
48+
| Provider | Library | Features |
49+
|----------|---------|----------|
50+
| Discord | discordgo | Guilds, DMs, threads, media |
51+
| Telegram | telebot | Groups, channels, private, media |
52+
| WhatsApp | whatsmeow | QR auth, session persistence, media |
53+
54+
### WhatsApp Session Persistence
55+
56+
WhatsApp sessions are persisted using SQLite with a pure Go driver (modernc.org/sqlite), requiring no CGO:
57+
58+
```go
59+
whatsapp.New(whatsapp.Config{
60+
DBPath: "whatsapp.db",
61+
QRCallback: func(qr string) {
62+
// Display QR code for scanning
63+
},
64+
})
65+
```
66+
67+
## Installation
68+
69+
```bash
70+
go get github.com/agentplexus/omnichat
71+
```
72+
73+
## Quick Start
74+
75+
See the [README](README.md) for complete usage examples and the `examples/echo/` directory for a working multi-provider bot.
76+
77+
## Dependencies
78+
79+
- `github.com/bwmarrin/discordgo` - Discord API
80+
- `gopkg.in/telebot.v3` - Telegram Bot API
81+
- `go.mau.fi/whatsmeow` - WhatsApp Web API
82+
- `modernc.org/sqlite` - Pure Go SQLite driver
83+
84+
## Contributors
85+
86+
- Claude Opus 4.5 (AI pair programming)

0 commit comments

Comments
 (0)