> _Originally released on 2020-04-01 10:17:05+00:00 ([link](https://github.com/zalando-incubator/kopf/releases/tag/0.27rc1))._
**WARNING:** The changes are backward-compatible (in theory). But the changes are also massive, so things can break unexpectedly (in practice). Test this upgrade carefully.
New features:
* `kopf.daemon` for background resource-accompanying tasks/threads. 330
* `kopf.timer` for regular and/or delayed activities & checks. 330
* `kopf.PRESENT` for labels/annotations filters (instead of misleading `None`). 327
* `kopf.ABSENT` for labels/annotations filters. 327
* Arbitrary callbacks for labels/annotations filters. 328
* A proper official documented way to configure operators; plus docs. 336 337
* Operators can be configured to use their own names for persistence, allowing multiple non-colliding operators for the same resources. 331
Improvements:
* Internals instant functions (lifecycles, when-filters) do not use thread pools anymore. 326
* Documentation is restructured for separate pages for all aspects of handling (kwargs, filters, etc). 325
* Bodies & patches now have magical properties for metadata, spec, status, with "live view" into data. 327
* Labels and annotations are passed as additional kwargs (similar to body/spec/meta/status). 327
* Configurable client-side timeouts for watch requests. 322 336
* Configurable storages for handling state & diff-bases. 331
Fixes:
* Threads from the sync handlers executors are not leaked (not left orphaned) at exit. 326
* Handlers' state is now persisted in annotations, not in status: for custom & built-in resources. This solves the issues with built-ins not handled properly in K8s 1.16+. 331
Internal changes:
* Compatibility with Kubernetes 1.18 in CI/CD. 335