Skip to content

Commit b156b84

Browse files
docs(changelog): drop premature 0.2.0; fold into Unreleased at 0.1.4
The branch carried a dated `[0.2.0] - 2026-06-04` release section and `version = "0.2.0"` while the active release line is still 0.1.x, which misrepresents unshipped work as a released version. Treat 0.1.4 as the latest release and move everything above it back under `[Unreleased]`, merging the 0.2.0 bullets into the existing Added/Changed/Fixed groups. Set the package version to 0.1.4 and realign the example `requires` (>= 0.2.0 -> >= 0.1.4) so they stay satisfiable. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 79e5dc6 commit b156b84

4 files changed

Lines changed: 19 additions & 30 deletions

File tree

CHANGELOG.md

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,12 @@ All notable changes to this project are documented in this file.
44

55
## [Unreleased]
66

7-
### Changed
8-
- Enforce `-d:noSignalHandler` at compile time: the build now fails with an
9-
actionable message unless the consumer sets `-d:noSignalHandler` (libraries
10-
embedded in a foreign host such as Go/Rust) or `-d:ffiAllowSignalHandler`
11-
(standalone Nim binaries). Prevents the Nim runtime from installing its own
12-
OS signal handlers and clobbering the host's — the cause of a real status-go
13-
regression.
14-
- User event callbacks now run on a dedicated event thread fed by a
15-
bounded SPSC queue (default capacity 1024), so a slow listener can no
16-
longer block the FFI thread or concurrent `add_event_listener` /
17-
`remove_event_listener` calls
18-
([#6](https://github.com/logos-messaging/nim-ffi/issues/6)).
19-
- Replaced the dedicated watchdog thread with a heartbeat check that
20-
runs on the event thread. The FFI thread advances an atomic heartbeat
21-
each loop iteration; if it stalls for more than 1s past the start-up
22-
grace window, the event thread emits the `not_responding` event.
23-
247
### Added
258
- Queue-overflow handling: when the bounded event queue is full, the
269
library sets a sticky "stuck" flag, logs an error, fires
2710
`not_responding` from the event thread, and rejects subsequent
2811
`sendRequestToFFIThread` calls with `event queue stuck - library
2912
cannot accept new requests`.
30-
31-
## [0.2.0] - 2026-06-04
32-
33-
Major release introducing the CBOR-based wire format, CBOR-backed FFI events
34-
with a multi-listener registry, multi-language binding generation (C++, Rust,
35-
CDDL), CI hardening with sanitizers, and several robustness fixes around
36-
context lifetime and memory safety.
37-
38-
### Added
3913
- **CBOR serialization** as the FFI wire format, replacing the previous
4014
JSON/string-based `serial.nim`
4115
([#23](https://github.com/logos-messaging/nim-ffi/pull/23)).
@@ -70,6 +44,21 @@ context lifetime and memory safety.
7044
([#41](https://github.com/logos-messaging/nim-ffi/pull/41)).
7145

7246
### Changed
47+
- Enforce `-d:noSignalHandler` at compile time: the build now fails with an
48+
actionable message unless the consumer sets `-d:noSignalHandler` (libraries
49+
embedded in a foreign host such as Go/Rust) or `-d:ffiAllowSignalHandler`
50+
(standalone Nim binaries). Prevents the Nim runtime from installing its own
51+
OS signal handlers and clobbering the host's — the cause of a real status-go
52+
regression.
53+
- User event callbacks now run on a dedicated event thread fed by a
54+
bounded SPSC queue (default capacity 1024), so a slow listener can no
55+
longer block the FFI thread or concurrent `add_event_listener` /
56+
`remove_event_listener` calls
57+
([#6](https://github.com/logos-messaging/nim-ffi/issues/6)).
58+
- Replaced the dedicated watchdog thread with a heartbeat check that
59+
runs on the event thread. The FFI thread advances an atomic heartbeat
60+
each loop iteration; if it stalls for more than 1s past the start-up
61+
grace window, the event thread emits the `not_responding` event.
7362
- Removed the redundant `ffiType` macro; the `ffi` macro is now the single
7463
authoring entry point
7564
([#22](https://github.com/logos-messaging/nim-ffi/pull/22)).
@@ -97,7 +86,7 @@ context lifetime and memory safety.
9786
and `rust_client`, the latter with a Tokio async variant) (#15).
9887
- JSON/string-based FFI (de)serialization via `ffi/serial.nim`
9988
(`ffiSerialize`/`ffiDeserialize`), with `tests/test_serial.nim` coverage.
100-
(CBOR replaced this layer later, in 0.2.0.)
89+
(CBOR replaced this layer later.)
10190
- FFI context pool (`ffi/ffi_context_pool.nim`) using a fixed array of contexts.
10291
- Test suite expansion: `test_alloc.nim`, `test_ctx_validation.nim`,
10392
`test_ffi_context.nim`, `test_gc_compat.nim`.

examples/echo/echo.nimble

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ requires "nim >= 2.2.4"
99
requires "chronos"
1010
requires "chronicles"
1111
requires "taskpools"
12-
requires "https://github.com/logos-messaging/nim-ffi >= 0.2.0"
12+
requires "https://github.com/logos-messaging/nim-ffi >= 0.1.4"
1313

1414
const nimFlags = "--mm:orc -d:chronicles_log_level=WARN"
1515

examples/timer/timer.nimble

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ requires "nim >= 2.2.4"
88
requires "chronos"
99
requires "chronicles"
1010
requires "taskpools"
11-
requires "https://github.com/logos-messaging/nim-ffi >= 0.2.0"
11+
requires "https://github.com/logos-messaging/nim-ffi >= 0.1.4"
1212

1313
const nimFlags = "--mm:orc -d:chronicles_log_level=WARN"
1414

ffi.nimble

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ffi.nimble
22

3-
version = "0.2.0"
3+
version = "0.1.4"
44
author = "Institute of Free Technology"
55
description = "FFI framework with custom header generation"
66
license = "MIT or Apache License 2.0"

0 commit comments

Comments
 (0)