Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## [1.9.0] - 2026-11-07

Minor release: new remote-trigger signature scheme (v2, backwards compatible), `maxConcurrentTasks`
now actually enforced, and Android cancellation fixes. **Backends signing remote-trigger pushes should
move to v2** (`doc/REMOTE_TRIGGER_SIGNING.md`); v1 keeps working but is deprecated and logged.

### Fixed
- **Android: cancelling a `WebSocketWorker` now closes the connection promptly.** The worker
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ No boilerplate. No native code to write. No `AndroidManifest.xml` changes. Each

```yaml
dependencies:
native_workmanager: ^1.8.3
native_workmanager: ^1.9.0
```

**2. Initialize once in `main()`:**
Expand Down
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
group = "dev.brewkits.native_workmanager"
version = "1.8.3"
version = "1.9.0"

apply plugin: "com.android.library"
// No `apply plugin: "kotlin-android"` here (issue #76). Flutter >= 3.44 applies KGP to plugin
Expand Down
2 changes: 1 addition & 1 deletion doc/API_REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -1137,5 +1137,5 @@ See [ANDROID_SETUP.md](ANDROID_SETUP.md) for the full guidance.

---

**Version:** 1.8.3
**Version:** 1.9.0
**Last Updated:** 2026-09-24
33 changes: 17 additions & 16 deletions example/integration_test/device_integration_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2676,22 +2676,23 @@ void main() {
// run all 50 iterations if the cancellation was never observed.
await Future.delayed(const Duration(seconds: 3));

expect(
bCounterFile.existsSync(),
isTrue,
reason: 'lib_audit_5: B must have started once a slot freed up',
);
final iterations = int.parse(bCounterFile.readAsStringSync().trim());
expect(
iterations,
lessThan(5),
reason:
'lib_audit_5: B was cancelled before it ever got a '
'concurrency slot — it must stop at its very first '
'isTaskCancelled() poll. A count this high means the cancel '
'landed in the pre-fix gap and was silently dropped, letting '
'B run on uncancelled. Iterations observed: $iterations',
);
// Since issue #84 the limiter is cancellation-aware: a task cancelled while parked is
// removed from the queue and never starts (file absent). Before #84 it woke up when a
// slot freed and had to stop at its first poll. Either way the invariant is the same:
// a cancelled B must never run on as if uncancelled.
if (bCounterFile.existsSync()) {
final iterations = int.parse(bCounterFile.readAsStringSync().trim());
expect(
iterations,
lessThan(5),
reason:
'lib_audit_5: B was cancelled before it ever got a '
'concurrency slot — it must stop at its very first '
'isTaskCancelled() poll. A count this high means the cancel '
'landed in the pre-fix gap and was silently dropped, letting '
'B run on uncancelled. Iterations observed: $iterations',
);
}
});

testWidgets(
Expand Down
2 changes: 1 addition & 1 deletion example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,7 @@ class _DemoHomePageState extends State<DemoHomePage> {
});

_addLog(
'🚀 NativeWorkManager v1.8.3 — Industrial Reliability & FGS Bypass',
'🚀 NativeWorkManager v1.9.0 — Industrial Reliability & FGS Bypass',
);
}

Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/demo_scenarios_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -703,7 +703,7 @@ class _DemoScenariosPageState extends State<DemoScenariosPage> {
),
),
Text(
'v1.8.3 · 50+ ready-to-run examples',
'v1.9.0 · 50+ ready-to-run examples',
style: TextStyle(
color: Colors.white.withAlpha(200),
fontSize: 12,
Expand Down
2 changes: 1 addition & 1 deletion ios/native_workmanager.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
Pod::Spec.new do |s|
s.name = 'native_workmanager'
s.version = '1.8.3'
s.version = '1.9.0'
s.summary = 'Background task manager for Flutter using platform-native APIs.'
s.description = <<-DESC
Native WorkManager is a Flutter plugin that provides native background task scheduling
Expand Down
4 changes: 4 additions & 0 deletions native_workmanager_gen/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## [1.9.0] - 2026-11-07

- Version bump synchronized with `native_workmanager` 1.9.0. No codegen changes.

## [1.8.3] - 2026-09-24

- Version bump synchronized with `native_workmanager` 1.8.3 (lib/ audit: two
Expand Down
2 changes: 1 addition & 1 deletion native_workmanager_gen/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Generates type-safe Dart callback IDs and a worker registry from `@WorkerCallbac

```yaml
dev_dependencies:
native_workmanager_gen: ^1.8.3
native_workmanager_gen: ^1.9.0
build_runner: ^2.4.0
```

Expand Down
2 changes: 1 addition & 1 deletion native_workmanager_gen/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: native_workmanager_gen
version: 1.8.3
version: 1.9.0
description: >
Code generator for native_workmanager.
Generates type-safe DartWorker callback IDs and worker registry from
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: native_workmanager
description: "Background task scheduling for Flutter — 25+ native workers (HTTP, image, crypto, file), task chains, zero Flutter Engine overhead."
version: 1.8.3
version: 1.9.0
homepage: https://github.com/brewkits/native_workmanager
repository: https://github.com/brewkits/native_workmanager
issue_tracker: https://github.com/brewkits/native_workmanager/issues
Expand Down
Loading