Skip to content

Commit 0ee4ebd

Browse files
committed
Update changelog for v0.2.0
1 parent 76da284 commit 0ee4ebd

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed

CHANGELOG.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,111 @@
11

2+
## v0.2.0
3+
4+
### Session Resumption & Routing
5+
6+
- **Session Resumption:** Implement full client/server session resumption flow
7+
(`resume.go`) so that peers can reconnect and restore an existing session
8+
without repeating the handshake. Ratchet state is persisted and restored
9+
automatically.
10+
- **Ratchet State Serialization:** Add a `State` type with JSON
11+
`Serialize`/`Deserialize` and `Restore` support in `pkg/ratchet`, enabling
12+
durable persistence of Double Ratchet state across restarts.
13+
- **Router & Route Dispatching:** Introduce `Router` and `RouteDispatcher` with
14+
middleware support (`router.go`). Add a `Route` enum and thread route
15+
constants through `Transport.Send` and serialization for structured message
16+
routing.
17+
- **Session Manager:** Add persistent `SessionManager` (`session.go`) with
18+
handshake tracking, session save/load, `ListSessions`, and `CreatedAt`
19+
preservation.
20+
21+
### Desktop GUI (Bus)
22+
23+
- **Fyne-based Chat GUI:** Add a cross-platform desktop client under `bus/`
24+
built with Fyne, including chat UI, custom widgets, peer verification dialog,
25+
and encrypted history viewer.
26+
- **Session List & In-App Logs:** Display active sessions and live application
27+
logs inside the GUI.
28+
- **App Icons:** Ship platform-specific app icons for macOS, Windows, and Linux.
29+
- **Unified DB Path:** GUI and CLI now share a single default database path
30+
(`~/.config/kamune/db`), overridable via `KAMUNE_DB_PATH`.
31+
- **File Logger:** Concurrent file logger (`bus/logger`) with `Init`, `Close`,
32+
`Info`/`Warn`/`Error`/`Errorf` helpers, plus tests and benchmarks.
33+
34+
### Daemon
35+
36+
- **JSON-over-stdio Daemon:** Add `cmd/daemon` — a headless wrapper that
37+
exposes Kamune operations over JSON-over-stdio IPC, with its own README and
38+
tests.
39+
40+
### Relay Improvements
41+
42+
- **Refactored Relay:** Switch `attest.Identity``attest.Algorithm` across
43+
the relay API and models. Improve client IP extraction and rate-limit error
44+
responses.
45+
- **Queue Operations:** Extend relay storage API with queue ops
46+
(`storage/queue.go`, `services/queue.go`) and a new queue HTTP handler, with
47+
tests.
48+
- **Centralized Parsing:** Add `handlers/parse.go` to share base64 and
49+
public-key parsing logic; remove duplicate code from handlers.
50+
51+
### Storage
52+
53+
- **`DeleteBatch`:** Remove multiple keys from a bucket in a single
54+
transaction; missing buckets produce `ErrMissingBucket`, non-existent keys
55+
are silently skipped.
56+
- **Bucket Listing Helpers:** Add `ListBuckets` and `ListKeys` queries to
57+
`pkg/store`.
58+
- **`PubKeySessionIndex`:** New protobuf model and storage index mapping public
59+
keys to session IDs.
60+
- **Peer `LastSeen`:** Track and persist the last-seen timestamp on every
61+
`Peer`, with full test coverage.
62+
63+
### Cryptography & Fingerprinting
64+
65+
- **SHA-256 Fingerprint:** Add `fingerprint.Sum` (SHA-256) alongside the
66+
existing emoji/hex helpers.
67+
- **stdlib `crypto/sha3`:** Replace `golang.org/x/crypto/sha3` with the Go
68+
standard library `crypto/sha3` package.
69+
70+
### Connection & Transport
71+
72+
- **Conn Mutex:** Protect `Conn` fields with a mutex for safe concurrent use;
73+
simplify `Option` type by removing its error return.
74+
- **Improved Dial/Serve/Resume:** Better error messages, cleaner control flow,
75+
and style improvements across `dial.go`, `server.go`, and `resume.go`.
76+
77+
### Configuration & Environment
78+
79+
- **Environment Variables:** `KAMUNE_DB_PASSPHRASE` and `KAMUNE_DB_PATH` are
80+
now preferred over interactive prompts and hard-coded paths.
81+
- **Default DB Directory:** `getDefaultDBDir()` resolves
82+
`KAMUNE_DB_PATH``~/.config/kamune/db``./db`.
83+
84+
### Testing & Quality
85+
86+
- **Testify Adoption:** Replace manual `t.Error`/`t.Fatalf` checks with
87+
`testify/assert` and `testify/require` across the entire test suite.
88+
- **Comprehensive Storage Tests:** Add tests covering peer timestamps, session
89+
index persistence, expiry/cleanup, batch deletes, session update/info, and
90+
resume checks.
91+
- **Per-Goroutine Done Channels:** Replace shared signal channels with
92+
individual done channels in concurrent tests; capture and assert goroutine
93+
errors after joining.
94+
- **New Fingerprint Tests:** Expand fingerprint coverage including `Hex`
95+
empty-input edge case.
96+
97+
### Miscellaneous
98+
99+
- **Protobuf Regeneration:** Regenerate Go protobuf bindings (protoc v6.33.4);
100+
add `Route` field to `SignedTransport`, update `box.proto` and `model.proto`.
101+
- **Logo & Assets:** Add `assets/logo.png`; move `demo.gif` from `.assets/` to
102+
`assets/`.
103+
- **ECDH Private Key Marshal:** Fix ECDH private key marshalling in
104+
`pkg/exchange`.
105+
- **README Updates:** Refresh feature checklist and fix demo image path.
106+
107+
---
108+
2109
## v0.1.0 - Initial Release
3110

4111
Kamune is a secure, peer-to-peer communication library for real-time messaging

0 commit comments

Comments
 (0)